자료구조
- 스택: First-In Last-Out(FILO)
- 큐: First-In First-Out(FIFO)
- 트리: 정점과 간선을 이용해 사이클을 이루지 않도록 구성
- 힙:
최대값 또는 최소값을 찾아내는 연산을 쉽게하기 위해 고안,
각 노드의 키 값이 자식의 키 값보다 작지 않거나(최대힙)
그 자식의 키 값보다 크지 않은(최소힙) "완전이진트리"이다.
우선순위 큐
- O(logn)
- 가장 우선순위가 높은 데이터를 먼저 꺼내기 위해 고안, 대표적으로 힙
해시 테이블
- 평균: O(1), 최악: O(n)
- (Key, Value)로 데이터를 저장하는 자료구조
- 빠른 데이터 검색에 유용
- Key 값에 해시 함수 적용
버블 소트
- O(n^2)
- 서로 인접한 두 원소 비교
힙 소트
- O(밑이 2인 nlogn)
- 힙 자료구조를 만들어 최대값 또는 최소값부터 하나씩 꺼내서 정렬
합병 소트
- O(밑이 2인 nlogn)
- 배열의 크기가 1인 배열로 분할하고 합병하면서 정렬
퀵 소트
- O(밑이 2인 nlogn)
- 피벗 선택 후 피벗보다 작은 것은 왼쪽, 큰 것은 오른쪽으로 정렬
삽입 정렬
- O(n^2)
- 두번 째 값부터 시작하여 그 앞에 존재하는 원소들과 비교하여 삽입할 위치 찾음
웹 동작 프로세스
1. URL 입력
2. DNS 통해 주소 찾음
3. HTTP 프로토콜을 통해 HTTP 요청 메시지 생성
4. TCP/IP 연결을 통해 HTTP 요청이 서버로 전송
5. 서버는 HTTP 프로토콜을 통해 HTTP 응답 메시지 생성
6. TCP/IP 연결을 통해 요청한 컴퓨터로 전송
7. 도착한 HTTP 응답 메시지는 웹페이지 데이터로 변환되고, 웹 브라우저에 의해 출력
TCP와 UDP 차이
TCP | UDP | |
연결 방식 | 연결형 | 비연결형 |
패킷 교환 방식 | 가상 회선 방식 | 데이터그램 방식 |
전송 순서 | 보장 | 비보장 |
수신 여부 확인 | O | X |
통신 방식 | 1:1 | 1:1 or 1:N or N:N |
신뢰성 | 높음 | 낮음 |
속도 | 느림 | 빠름 |
GET과 POST의 차이
GET | POST | |
URL에 데이터 노출 | O | X |
데이터 위치 | Header | Body |
캐싱 가능 여부 | O | X |
OSI 7계층
- 7계층(응용): 사용자와 직접 상호작용하는 응용프로그램들이 포함
- 6계층(표현) 데이터 형식을 정의
- 5계층(세션): 컴퓨터끼리 통신하기 위해 세션 생성
- 4계층(전송): 최종 수신 프로세스로 데이터 전송을 담당
- 3계층(네트워크): 패킷을 목적지까지 가장 빠른 길로 전송
- 2계층(데이터링크): 데이터의 물리적인 전송과 에러 검출, 흐름 제어
- 1계층(물리): 데이터를 전기 신호로 바꿈
HTTP(Hyper Text Transfer Protocol)
- 서버/클라이언트 모델
- 응용계층, TCP/IP 위에서 작동
- Stateless
HTTPS
- 메시지를 공개키로 암호화
- 기업을 제외한 누구도 원본 데이터를 얻을 수 없음