1. 대칭키(AES, DES)암호화와 복호화에 같은 키를 사용a와 b는 미리 동일한 비밀키를 공유a는 이 비밀키를 사용해 원본 메시지를 암호화하여 b에게 보냄b는 전달받은 암호문을 자신이 가지고 있던 동일한 비밀키로 복호화하여 원본 메시지를 확인1.1 장점속도가 매우 빠름. → 암호화/복호화 과정의 계산이 단순1.2 단점키 배송 문제(key distribution problem)암호화 통신을 시작하기 전에, 송신자와 수신자가 어떻게 안전하게 동일한 비밀키를 공유할 것인가에 대한 문제키가 중간에 탈취되면 모든 암호문이 해독될 수 있음키 관리 어려움통신해야할 상대방이 많아지면, 각 상대방마다 별도의 키를 만들어야함2. 공개키 / 비대칭키(RSA, ECC..)암호화와 복호화에 서로 다른 키를 사용하는 방식2...
1. 주요 차이점1.1 데이터 전송 방식 및 위치GET : https://www.test.com/search?name=choizz&age=20- URL의 쿼리 스트링을 통해 데이터를 전송- ?뒤에 key=value 형태로 노출- &로 연결=> URL에 데이터가 그대로 드러나므로, 민감한 정보 전송에는 부적합하고 전송할 수 있는 데이터의 양이 제한적POST: - 요청 본문에(Request Body) 데이터를 담아 전송=> URL에 노출되지 않아 비교적 안정성이 높고, 데이터의 양에 제한이 없음1.2 보안성GET :- URL에 데이터가 노출, 북마크, 브라우저 히스토리, 서버 로그에 그대로 기록됨- 스니핑 등의 공격을 당할 경우 데이터 탈취 쉬움POST: - 요청 본문에 포함되므로 GET에 비해 상대적으로 ..
1. Statelessness(무상태성)란?서버가 클라이언트의 상태 정보를 저장하지 않고, 각 요청은 독립적으로 처리되도록 하는 아키텍처 설계 방식 2. 장점1. 서버 확장 용이 (Scalability)서버가 클라이언트의 상태를 저장하지 않기 때문에, 서버 간 상태 공유가 필요 없음서버를 수평적으로 확장하기 쉽고, 로드밸런싱에도 유리2. 단순한 서버 설계세션, 쿠키 등 사용자 상태 관리를 위한 로직이 필요 없어 서버 구현이 단순해짐장애 복구 시에도 상태 복원 부담이 적음3. 높은 안정성과 신뢰성각 요청이 독립적이기 때문에, 이전 요청이 실패해도 전체 흐름에 영향을 주지 않음클라이언트-서버 간의 의존성이 낮아져 유지보수가 쉬워짐4. 캐싱 처리 용이요청 결과가 클라이언트 상태에 의존하지 않기 때문에, 동일한..
1. 쿠키와 세션의 차이1.1 데이터 저장쿠키: 클라이언트(브라우저)세션: 서버1.2 생명 주기쿠키: 브라우져를 닫아도 만료 기간 설정에 따라 유지 가능세션: 브라우저를 닫으면 기본적으로 삭제, 서버에서 시간 조절 가능1.3 보안쿠키: 클라이언트에 저장되어 변조, 탈취에 취약- pc와 네트워크 전송 구간에서 정보 탈취 가능- 한 번 훔치면 평생 사용 가능 세션: 서버에 저장되어 상대적으로 안전 1.4 데이터 크기쿠키: 약 4kb세션: 서버 설정에 따라 제한 없음 1.5 성능쿠키: 요청마다 헤더에 포함되므로, 크기가 크면 네트워크 부하세션: 세션 id만 주고받으므로 네트워크 부하는 적지만, 서버 부하 발생 2. 로그인 방식2.1 쿠키 로그인/로그아웃종류- 영속 쿠키: 만료 날짜를 입력하면 해당 날짜까지 유..
1. Scoket이란?애플리케이션 레벨(유저 모드)에서 OS(커널)에 접근할 수 있도록 프로토콜을 추상화한 인터페이스리눅스 시스템에서 파일(file)처럼 다뤄지며(메모리상 자료구조), 파일 디스크립터(File Descriptor)를 통해 관리개발자는 소켓을 열고, 특정 주소에 연결하고, 데이터를 쓰고 읽는 방식으로 네트워크 프로그래밍을 할 수 있음.소켓은 '파일'이 아니지만, OS가 '파일처럼' 다룰 수 있게 해주는 '파일 디스크립터'를 통해 접근하는 통신 객체파일 디스크립터 (File Descriptor):운영체제(OS)가 자신이 관리하는 파일이나 입출력 자원(소켓, 파이프 등)에 붙이는 고유한 번호표(정수 값)프로그램은 이 번호표를 통해 특정 파일이나 소켓에 접근하여 데이터를 읽거나 쓸 수 있음2. ..
HTTPHTTP는 TCP 기반 프로토콜로 통신 과정에서 TCP의 특성에 영향을 받음.TCP 3-way Handshake통신을 시작하기 위해 클라이언트와 서버가 3단계의 패킷 교환을 거쳐하고 이 과정에서 RTT만큼의 지연시간 발생TCP Slow StartTCP는 네트워크 혼잡을 방지하기 위해 초기 전송량을 적게 시작(혼잡 윈도우(cwnd)를 지수적으로 증가시키는 방식)하여 패킷 손실이 없을 경우에만 점진적으로 전송량을 늘림.새로운 연결이 생성될 때마다 반복되어 초기 데이터 전송 지연 발생1. HTTP 1.0요청마다 새로운 TCP 연결을 생성하고 응답을 받은 후 연결을 종료하는 것이 기본 동작❌ 1.0의 한계요청마다 연결/종료 비용 발생 : 짧은 요청/응답을 위해 매번 3-handshake와 slow sta..
DNS1. DNS(Domain Name System)란?DNS는 도메인 이름을 IP 주소로 변환해주는 시스템1.1 주요 특징분산 구조형 데이터 베이스: 전 세계적으로 분산된 서버들이 협력트리 구조의 도메인 네임 체계: 계층적 구조로 효율적인터넷 핵심 인프라: DNS 문제 시 인터넷 전체 마비 가능성1.1 구조 예시www.naver.com의 경우:www: 호스트 네임(서브 도메인)naver.com: 도메인 네임2. IP 변환 과정hosts 파일에 정적으로 설정한 정보가 있는지 확인 후 있으면 그것을 씀로컬 DNS 캐시를 확인캐시에 없다면 DNS 서버에 질의DNS 서버는 정보가 있으면 반환하고, 없으면 상위 DNS 서버에게 질의하여 ip 주소 반환도메인에 해당하는 ip를 캐시에 추가2.1 로컬 DNS 서버..
- Total
- Today
- Yesterday
- spring session
- java
- AttributeConverter
- SpringBatch
- spring.
- 네트워크
- 리트코드
- 분산락
- 프로그래머스
- 벌크헤드
- http메서드
- leetcode
- 대용량데이터
- socket통신
- 항해99
- 무상태성
- jpa
- fetch join
- 백준
- 알고리즘
- StringBuilder
- 외부API
- 정기결제
- 싱글모듈
- Http 버전
- N + 1
- 세션
- 커넥션풀문제
- 디자인패턴
- redisson
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |