TCP, UDP 차이
TCP는 연결형 서비스로 3-way handshaking 과정을 통해 연결을 설정하기 때문에
높은 신뢰성을 보장하지만, 속도가 비교적 느리다는 단점이 있습니다.
UDP는 비연결형 서비스로 3-way handshaking을 사용하지 않기 때문에
신뢰성이 떨어지는 단점이 있지만, 데이터 수신 여부를 확인하지 않기 때문에 속도가 빠르다는 장점이 있습니다.
----------------------------------------
TCP는 신뢰성이 중요한 파일 교환과 같은 경우에 쓰이고,
UDP는 실시간성이 중요한 스트리밍 등에 자주 사용됩니다.
배열과 연결리스트의 차이
*배열 (list)
- 삽입이 복잡하다: 배열 중간에 항목을 추가하려면 기존 항목들을 밀어내야 함. O(n)
- 연속된 메모리 주소를 할당받는다
- 인덱스를 가지기 때문에 접근에 용이하다.
*연결 리스트
- 초기에 크기를 정해줄 필요가 없다.
- 삽입이 간단하다: 항목 생성 후 포인터만 새로 연결해주면 됨.
- 항목 접근이 오래 걸린다: 처음에 위치한 항목부터 순서대로 접근해야 함. O(n)
- 물리적으로 인접해있지 않다: 캐싱에 불리할 수도 있다
- 참조 포인터를 위한 메모리 공간이 낭비된다.
트리에 대해서 간단히 설명
- 비선형 계층적 자료구조
- 노드와 간선으로 이루어지고 트리 안에 또 다른 트리가 있는 재귀적 구조이다.
- 노드가 n개인 트리는 n-1개의 간선을 가진다
- 루트 노드는 한 개이며 각 노드 사이에 부모-자식 관계를 가진다.
데이터베이스와 SQL
- 데이터베이스는 구조화된 정보를 저장, 관리, 검색할 수 있는 데이터의 집합체이며 테이블, 필드, 레코드로 구성됨.
- 데이터를 관리하기 위해 데이터베이스 관리 시스템(DBMS) 사용
- SQL(Structured Query Language)은 관계형 데이터베이스에서 데이터를 관리하기 위한 표준화된 언어
파이썬의 기본 자료형 3가지 이상 설명
*딕셔너리
- 해쉬테이블로 구현되어 있는 키-값 쌍의 mutable한 자료 구조
- 삭제, 삽입, 연산 속도 O(1)로 빠르다.
*set (집합)
- 중복을 허용하지 않고 순서를 보장하지 않으며 mutable한 자료 구조
- 특정 원소가 있는지 확인하는 연산이 O(1)로 빠르다.
*list
- 여러 값을 한꺼번에 저장할 때 사용하며 순서를 보장하고 서로 다른 타입을 한꺼번에 저장할 수 있다.
재귀 함수에 대해서 간단하게 정의
- 재귀 함수는 함수 내부에서 자기 자신을 호출하는 구조를 가진 함수
- 자신이 계속해서 자신을 호출하므로 반복을 중단할 조건이 필요하다.
- 재귀를 사용할 수 있는 알고리즘의 예: 팩토리얼, 피보나치 수열
- 재귀를 사용할 수 있는 자료구조의 예: 트리
프로토콜이 무엇이며, 알고 있는 프로토콜 중 하나를 설명하시오.
프로토콜
- 둘 이상의 통신 개체 간에 데이터를 주고받기 위해 설정한 양식과 규칙의 체계 [즉, 규약]
- 개인이나 기업이 발표하는 것이 아니라 IEEE, IETF라는 표준화 단체가 정한다.
프로토콜의 예: HTTP (hyper text transfer protocol)
- 인터넷 상에서 서버와 클라이언트가 자원을 주고 받을 때 사용하는 통신 규약
- 특징: stateless 상태 정보를 저장하지 않음, connectionless 연결을 유지하지 않음
+ HTTP / HTTPS 의 차이점
- HTTP의 경우 중간에 신호를 가로채면 내용이 노출되는 보안 이슈가 존재
- HTTPS는 정보를 암호화하는 SSL 프로토콜을 사용