1. HTML과 HTML5의 차이점
- HTML : Hyper Text Markup Language
- HTML5는 HTML 표준의 다섯 번째 업그레이드 버전
- 멀티미디어 기능
- 웹 저장 기능
- 웹 사이트 사용자의 정보를 pc에 저장할 수 있는 매커니즘을 제공함
- 웹 소켓 기능
- 위치 기능
- CSS3

2. GET과 POST의 차이점
GET
- 서버에 정보를 조회하기 위해 사용되는 메서드 ex) 게시글 조회, 상품 조회, 회원 조회
- 서버에 정보를 요청할 때, 쿼리스트링을 통해 데이터 전송
- URL 주소에?로 주소로 데이터를 전송함, 길이 제한이 있음
- 서버에 동일한 요청을 여러 번 보내더라도 항상 동일한 응답이 돌아와야 한다는 것을 의미 == '멱등'
POST
- 서버에 데이터를 생성 또는 수정하기 위해 사용되는 메서드 ex) 글 작성, 회원 가입
- 데이터는 body에 담아서 보냄
- 데이터가 노출되지 않아서 GET방식보다는 안전함
- POST의 경우 서버에 동일한 요청을 여러 번 보내더라도 응답 결과가 다를 수 있다는 것을 의미
3. TCP와 UDP의 차이
TCP와 UDP는 데이터를 전송할 때 사용되는 프로토콜
TCP(Transmission Control Protocol)
- 연결형으로 신뢰성을 보장(3-way handshaking 과정을 통해서)
- 3-way handshaking : TCP로 통신하는 장치 간 서로 연결이 잘 되었는지를 확인하는 방식
- 전송 순서를 보장하나 속도가 UDP보다 느림
- 파일 전송과 같은 신뢰성이 중요한 경우 사용
UDP(User Datagram Protocol)
- 비연결형으로 연속성이 중요한 곳에 사용됨(스트리밍 서비스)
- 전송 순서가 바뀔 수 있음
- 신뢰성이 낮은 대신 속도가 빠름
4. HTTP와 HTTPS의 차이
HTTP(Hyper Text Transfer Protocol)
- 데이터 요청/응답(request/response) 시 사용되는 프로토콜
- 암호화되지 않은 평문 데이터를 전송하기 때문에 서버와 주고받는 데이터를 볼 수 있음
- 80 포트 사용
HTTP + SSL(Secure Soket Layer)
- HTTP에서 데이터 암호화가 추가된 프로토콜
- 암호화된 데이터를 전송하기 때문에 제 3자가 데이터를 볼 수 없음
- 443 포트를 사용
HTTPS의 암호화 방식
대칭키 암호화
- 클라이언트와 서버가 동일한 키를 사용해 암호화/복호화 과정 진행
- 키 노출 위험성이 큰 대신 속도가 빠름
비대칭키 암호화
- 공개키와 개인키를 사용해 암호화/복호화 과정 진행
- 키가 노출되어도 비교적 안전한 대신 속도가 느림
5. Restful API
- REST의 규칙을 지켜서 만든 API를 뜻 함(REST란 소프트웨어 프로그램 아키텍처의 한 형태)
- 성능의 향상보다는 규칙을 통한 API이해도와 호환성을 높이기 위함
6. 동기 & 비동기
동기(Synchronous) 방식
- 요청과 결과가 동시에 일어남
- 요청을 하고 결과가 나올 때까지 기다림
- 여러 요청을 동시에 처리할 수 없음
- Blocking 방식
비동기(Asynchronous) 방식
- 요청과 결과가 동시에 일어나지 않음
- 요청 후 결과와 상관없이 다음 요청을 진행
- 여러 요청을 동시에 처리
- Non-Bloking 방식
7. 프록시 서버
- proxy란? 대리라는 뜻을 갖고 있음
- 클라이언트(유저)가 프록시 자신을 거쳐 다른 다른 네트워크에 접속할 수 있도록 중간에서 대리역할을 하는 서버
- 즉, 인터넷에서 유저를 대신해서 데이터를 가져오는 서버
사용 이유
- 캐시 데이터 활용을 위함
- 프록시 서버에 요청 된 내용은 굳이 한번 더 서버를 거칠 필요가 없기 때문에 전송 시간을 아낄 수 있음
- 보안 목적, 프록시 서버로 중간 경유를 하게 되면 IP노출을 하지 않아도 되기 때문 이러한 이유로 프록시 서버를 방화벽 목적으로 사용하기도 함
8. DNS(Domain Naming Server)
- 도메인 이름과 IP 주소의 변환기 역할
- IP주소와 같이 숫자로 되어있으면 많은 사람들이 불편을 겪기 때문에 사람이 읽을 수 있는 문자의 주소로 변환
9. 패킷
- 패키지와 버킷의 합성어로 네트워크를 통한 정보전송의 기본 단위
10. 쿠키와 세션의 차이
- 쿠키란? 브라우저 로컬에 저장되는 Key-Value 형태의 데이터 파일
- 세션이란? 브라우저가 종료되기 전까지 유저의 요청을 유지하게 해주는 기술
차이점
- 저장 위치 : 쿠키는 로컬에 저장, 세션은 로컬과 서버에 저장
- 생명주기 : 쿠키는 브라우저를 종료해도 파일로 남아있지만, 세션은 브라우저 종료 시 삭제됨
- 속도 : 쿠키는 파일에서 읽기 때문에 상대적으로 빠르지만, 세션은 요청마다 서버에서 처리해야 하기 때문에 비교적 느림
11. 프로세스 & 스레드
- 프로세스란? 운영체제로부터 자원을 할당받은 작업의 단위
- 프로세스는 운영체제로부터 각각 독립된 메모리 영역(Code, Data, Stack, Heap)을 할당받음
- 하나의 프로세스가 생성되면 하나의 스레드가 생성됨
- 스레드란? 프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위
- 스레드는 프로세스 내에서 동작되는 실행의 흐름으로 각각 Stack만 따로 할당받고 Code, Data, Heap 영역은 공유함
12. 컨텍스트 스위칭
- 하나의 프로세스가 실행되고 있는 상태에서 다른 우선순위의 요청이 들어왔을 때, 기존의 컨텍스트를 저장하고 다음 프로세스를 실행할 수 있도록 새로운 컨텍스트로 교체하는 작업
프로세스의 컨텍스트 스위칭의 경우 공유되는 영역이 없으므로 컨텍스트 스위칭에 시간이 오래 걸림
스레드의 경우 공유 역역이 많기 때문에 컨텍스트 스위칭이 프로세스보다 빠름
13. 프로그램 실행을 위해 OS에서 제공하는 메모리 공간
- 코드 영역 : 코드가 저장되는 영역
- 데이터 영역 : 전역 변수와 정적 변수가 저장되는 영역
- 스택 영역 : 지역 변수와 매개 변수가 저장되는 영역, 정적 메모리가 저장, LIFO 방식
- 힙 영역 : 전역 변수가 저장되는 영역, 사용자에 의해 메모리 공간이 동적으로 할당되고 해제됨
'지식 정리 📝' 카테고리의 다른 글
'getStaticProps'와 'getServerSideProps'의 차이 (0) | 2023.06.12 |
---|---|
타입스크립트 기본 타입 복습 (0) | 2023.05.25 |
Vercel react-icons 오류 해결 (0) | 2023.04.07 |
prettier, ESLint 설치법 (0) | 2023.03.23 |
자연수(10진수)를 8, 16진수로 변환 & 피보나치 배열 (1) | 2022.12.22 |