- HTTP의 개념을 이해한다.
- HTTP의 특징을 파악한다.
- Server - Client 구조
- 무상태(Stateless)
- 비연결성(Connectionless)
- Request - Response
- HTTP : 다양한 형태의 정보를 전송하는 프로토콜
- 인터넷 상에서 서로 데이터를 주고받게끔 규정된 약속
- 웹 페이지를 방문하면, 컴퓨터는 http를 통해 다른 컴퓨터에서 웹 페이지를 다운로드 받는다.
Server Client 구조
- Server : 클라이언트에게 요청을 받고 응답(Response)하는 장치
- Client : 서버에게 요청(Request)하고 응답을 대기하는 사용자
- 클라이언트가 브라우저를 통해 어떠한 서비스를 요청하면, 서버는 요청사항에 맞는 결과를 찾아 사용자에게 응답하는 형태로 동작한다
- 브라우저 : 웹 서버와 통신하여 원하는 정보를 찾고, 사용자의 검색을 돕는 프로그램
무상태 (Stateless)
- 무상태 : 서버가 클라이언트의 상태를 보존하지 않는다.
- 장점 : 클라이언트가 매번 응답 서버를 바꿀 수 있기 때문에, 서버 증설이 무한히 가능하다.
- 단점 : 서버가 클라이언트를 식별할 수 없기 때문에, 클라이언트가 전송해야할 데이터가 많아진다.
- 예상 질문 : "그런데 웹 페이지 들어가니까 제 아이디, 심지어 비밀번호까지 기억하던데요??"
- 나중에 살펴볼 쿠키, 세션 등이 이러한 작업을 가능하게 했다.
비 연결성(Connectionless)
- 비 연결성 : 서버는 클라이언트에게 응답을 하고나면, 연결을 바로 끊어버린다.
- 장점 : 평소 연결을 유지하기 않기 때문에, 서버 자원을 최소화한다.
- 단점 : 클라이언트가 요청을 할때마다 TCP/IP 연결을 새로 해야해서 시간이 더 소비된다.
Request & Response
- 요청 메소드 : GET , POST , PUT , DELETE 등 다양한 요청을 서버에게 전달
- 응답 코드
- 1XX : 작업이 진행중
- 2XX : 성공적으로 처리 완료
- 3XX : 처리 위해 추가 작업이 필요
- 4XX : 클라이언트 측에서 에러 발생 ex) 잘못된 주소 입력
- 5XX : 서버 측에서 에러 발생 ex ) 22년 10월 카카오 사태
인터넷
인터넷 작동 원리HTTP란?- 브라우저 동작 원리
- DNS 작동 원리
- 도메인 네임이란?
- 호스팅이란?
기본적인 프론트엔드 지식- HTML
- CSS
- JavaScript
OS 및 일반적인 지식- 터미널 사용방법
- OS 작동 방식
- 프로세스 관리
- 스레드와 동시성
- 기본적인 터미널 명령어
- 메모리 관리
- 프로세스간 통신 (IPC)
- 입출력 관리
- POSIX 기초
- 기본적인 네트워크 개념
버전 관리- Git 기본 사용법
DataBase- PostgreSQL (변경 가능성 있음)
- MongoDB
DataBase 상세 정보- ORM
- ACID
- Transaction
- N + 1 Problem
- DataBase 정규화
- Index와 작동 방식
API- 인증
- REST
- JSON APIs
캐싱- CDN
- Server side
- Client side
웹 보안 지식- MD5, SHA family, scyrpt, bcrypt
- HTTPS, CORS, SSL/TL, 보안 정책
Testing- 통합 테스트
- 단위 테스트
- 기능 테스트
- CI/CD
개발과 설계 원칙- SOLID
- KISS
- YAGNI
- DRY
아키텍처 패턴- 모놀로틱 앱
- 마이크로서비스
- SQA
- Serverless
검색 엔진- ElasticSearch
메세지 브로커- RabbitMQ, Kafka
컨테이너화 vs 가상화- Docker
GraphQL- Apollo
- 웹 소켓
- 웹 서버
확장성- 측정, 모니터링, 원격측정
- 마이그레이션 전략
- 수평적 확장 vs 수직적 확장
- 관찰 가능성을 고려한 확장
https://es1015.tistory.com/494#3
https://usefultoknow.tistory.com/entry/HTTP%EB%9E%80