728x90
반응형

전체 글 48

[웹서버] 라즈베리파이 서버 구축 A to Z (1) - 라즈베리파이 설정

서론 졸업작품에서 웹서버를 구축해야하는데 AWS, NCP, Oracle 등등 의견이 나왔고 비교 분석까지 해봤다. 그런데 개인 프로젝트에서 순수 자바로만 작업해본 덕에 프레임워크의 유용함을 깨달았던 기억 때문에, 라즈베리파이를 통해 직접 서버를 구축하고 배포해보는 경험도 도움이 될 거 같아서 반도체 이슈 때문에 학교에서도 사용하지 못했던 라즈베리파이 20만원(...)을 들여 구매했다. 이걸로 웹서버, DB서버 등을 구축할 예정이다. 환경 - 라즈베리파이4 모델 B - RASPBERRY PI OS (32-BIT) - Nginx - Tomcat8 - mariaDB - React - Springboot 1단계: 라즈베리파이에 운영체제 설치 먼저 SD 카드에 운영체제 이미지를 써줘야한다. 처음에는 centOS를..

웹, 앱 2022.07.26

[스프링부트] 어노테이션(Annotation) 정리

@RestController - 컨트롤러를 JSON을 반환하는 컨트롤러로 만들어 줌 @GetMapping("/path") - HTTP Method인 Get의 요청을 받을 수 있는 API를 만들어 줌. URI는 http://localhost:8080/path가 된다 @RunWith(SpringRunner.class) - 테스트를 진행할 때 JUnit에 내장된 실행자 외에 다른 실행자(SpringRunner)를 실행 - 즉, 스프링부트 테스트와 JUnit사이의 연결자 역할 @WebMvcTest - 여러 스프링 테스트 어노테이션 중, Web(Spring MVC)에 집중할 수 있는 어노테이션 - 선언할 경우 @Controller, @ControllerAdvice 등을 사용할 수 있음 - 단, @Service, ..

웹, 앱 2022.06.25

API와 REST API

API란 애플리케이션 프로그래밍 인터페이스(Application Programming Interface)의 약자로, 응용프로그램에서 데이터를 주고 받기 위한 방법을 의미한다. 즉, API는 데이터를 공유할 때의 Reqeust와 Response에 대한 규격이다. 그렇다면 REST API는 무엇일까. REST API는 REST를 기반으로 만들어진 API이다. 그렇기 때문에 REST API를 이해하기 위해서는 REST가 무엇인가에 대해 먼저 알아보아야한다. REST는 Representational State Transfer의 약자로 데이터를 이름으로 구분하여 데이터의 상태를 주고받는 것을 의미한다. REST는 다음과 같은 요소를 가지고 CRUD operation을 수행한다. HTTP URI(Uniform Re..

웹, 앱 2022.06.25

면접을 위한 CS 전공지식 노트: 5장 자료구조

5.1 복잡도: 시간복잡도, 공간복잡도 시간복잡도: 문제를 해결하는데 걸리는 시간과 입력의 함수 관계. 보통 빅오표기법으로 나타냄. ※ 빅오표기법: 입력 범위 n을 기준으로 로직이 몇 번 반복되는지 나타내는 것. -> 효율적인 코드로 개선하는 데 쓰이는 척도 공간복잡도: 프로그램을 실행시켰을 때 필요로 하는 자원 공간의 양. 자료구조에서의 시간 복잡도 - 평균 시간 복잡도 자료구조 접근 탐색 삽입 삭제 배열 O(1) O(n) O(n) O(n) 스택 O(n) O(n) O(1) O(1) 큐 O(n) O(n) O(1) O(1) 이중 연결 리스트 O(n) O(n) O(1) O(1) 해시 테이블 O(1) O(1) O(1) O(1) 이진 탐색 트리 O(log n) O(log n) O(log n) O(log n) A..

면접을 위한 CS 전공지식 노트: 4장 데이터베이스

4.1 데이터베이스의 기본 e.g., DBMS: MySQL / 응용프로그램: node.js 엔티티: 여러 개의 속성을 가진 명사. e.g., user: name, email, password, ... -> user: 엔티티, name, email, password, ...: 속성 엔티티 A가 혼자서는 존재하지 못하고 B의 존재 여부에 따라 종속적인 상태일 때 A를 약한 엔티티, B를 강한 엔티티라고 함. 릴레이션: 데이터베이스에서 정보를 구분하여 저장하는 기본 단위. RDBM에서는 테이블, NoSQL에서는 컬렉션이라고 함. ※ RDBMS - MySQL: 레코드 - 테이블 - 데이터베이스 ※ NoSQL - MongoDB: 도큐먼트 - 컬렉션 - 데이터베이스 속성: 릴레이션에서 관리하는 구체적이며 고유한 이..

면접을 위한 CS 전공지식 노트: 3장 운영체제

3.1 운영체제와 컴퓨터 운영체제의 역할 - CPU 스케줄링과 프로세스 관리 - 메모리 관리 - 디스크 파일 관리 - I/O 디바이스 관리 System Call: 시스템 콜이란 운영체제가 커널에 접근하기 위한 인터페이스이며, 유저 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출할 때 사용. 유저 프로그램이 I/O request로 trap을 발동하면 올바른 I/O request인지 확인한 후 유저 모드가 시스템 콜을 통해 커널 모드로 변환되어 실행됨. - CPU: Central Processing Unit. 산술논리 연산장치, 제어장치, 레지스터로 구성되어 있는 컴퓨터 장치. interrupt에 의해 단순히 메모리에 존재하는 명령어를 해석해서 실행. - 산술논리 연산장치: ALU(Arithmet..

면접을 위한 CS 전공지식 노트: 2장 네트워크

2.1 네트워크의 기초 throughput: 링크를 통해 전달되는 단위 시간당 데이터 양. 단위 bps. latency: 요청이 처리되는 시간. 어떤 메시지가 두 장치 사이를 왕복하는데 걸린 시간. 네트워크 토폴로지(network topology): 노드와 링크가 어떻게 배치되어 있는 지에 대한 방식이자 연결 형태 - 트리 토폴로지 - 버스 토폴로지 - 스타 토폴로지 - 링형 토폴로지 - 메시 토폴로지 병목현상: 전체 시스템의 성능이나 용량이 하나의 구성 요소로 인해 제한을 받는 현상. - 주요 원인: 네트워크 대역폭, 네트워크 토폴로지, 서버 CPU와 메모리 사용량, 비효율적인 네트워크 구성 ping: 네트워크 상태를 확인하려는 대상 노드를 향해 일정 크기의 패킷을 전송하는 명령어. TCP/IP 프로토..

면접을 위한 CS 전공지식 노트: 1장 디자인 패턴과 프로그래밍 패러다임

1.1 디자인 패턴 1. 싱글톤 패턴(Singleton Pattern): 하나의 클래스에 하나의 인스턴스만 가지는 패턴. 데이터베이스 연결 모듈에 많이 사용. 인스턴스 생성 비용을 줄일 수 있지만 의존성이 증가하는 문제. 1-1. 단점: TDD(Test Driven Development)시 불리: TDD 시에는 보통 테스트가 서로 독립적이어야 하는데 싱글톤 패턴은 미리 생성된 하나의 인스턴스를 기반으로 구현하는 패턴이므로 각 테스트마다 독립적인 인스턴스 생성이 어려움 1-2. 의존성 주입(DI, Dependency Injection): 의존성이 증가하는 문제를 해결 ※ 의존성 주입 원칙: 상위 모듈은 하위 모듈에서 어떠한 것도 가져올 수 없음. 둘 다 추상화에 의존해야 하며, 이때 추상화는 세부 사항에 ..

[자료구조] 스택 & 큐 - 1(배열) (Stack & Queue Using an Array)

Stack & Queue (Using an Array) Stack definition LIFO(Last-In-First-Out) 구조 나중에 들어간 데이터가 먼저 나오는 구조의 리스트 자료구조 Implementation 배열을 이용하는 방법(global or local) non-circular buffer circular buffer 연결 리스트를 이용하는 방법 Using an Array: non-cicular buffer 1차원 배열 (datatype) stack[stack_size] ex) char stack[100] variable: top - 0으로 초기화(empty stack) 삽입할 때마다 top++ int main(void) { int stack[5]; int top = 0; // inser..

자료구조 2022.05.30

[자료구조] 그래프

Graph Definition Node(Vertex) Edge undirected edge(무방향 간선) 무방향 그래프 directed edge(방향 간선) 방향 그래프 weighted edge 가중치 그래프(방향/무방향 그래프) Subgraph 그래프의 부분이면서 그 자체로 그래프인 것 Connected Graph 한 노드에서 출발했을 때 모든 노드를 방문할 수 있는 그래프 Disconnected Graph 한 노드에서 출발했을 때 모든 노드를 방문할 수 없는 그래프 Adjacent Nodes edge로 서로 연결되어있는 인접한 두 개의 노드 Complete(Connected) Graph 모든 노드가 다른 노드의 인접한 노드인 그래프 Graph Algorithms Graph representation ..

자료구조 2022.05.29
728x90
반응형