2026/03 9

4. HTTP 요청 — 실제 데이터를 주고받는 규칙

TCP 연결 + TLS 암호화까지 끝났으면, 이제 드디어 실제 요청을 보내요.HTTP는 클라이언트와 서버가 데이터를 주고받는 약속된 형식이에요. 요청은 크게 세 부분으로 구성돼요 — 시작줄, 헤더, 바디. 각 부분 설명:시작줄은 딱 한 줄로 "무슨 메서드로, 어느 경로를, 어떤 HTTP 버전으로" 요청하는지를 담아요.GET /index.html HTTP/1.1 이런 식이에요. 헤더는 요청의 메타데이터예요. 실제 데이터는 아니지만 서버가 요청을 처리하는 데 필요한 정보들이에요.주요한 것들만 보면 —Host는 어느 도메인에 요청하는지(하나의 IP에 여러 도메인이 붙어있을 수 있어서 필수),Cookie는 로그인 상태 유지, Authorization은 API 인증 토큰,Accept는 응답으로 어떤 형식을 원하..

3-1. TLS 1.2, TLS1.3 차이

TLS 1.2 vs 1.3크게 3가지 차이가 있어요 — 속도, 보안, 키 교환 방식. 차이점 하나씩 짚어볼게요:왕복 횟수 (RTT) — 1.2는 핸드셰이크에 왕복이 2번 필요해요. ClientHello/ServerHello로 암호화 방식 합의하고, 그 다음에 키 교환을 별도로 해야 했어요. 1.3은 ClientHello에 키 교환 재료(ECDHE 공개키)를 처음부터 같이 보내서 1번으로 줄었어요. 키 교환 방식 — 1.2는 RSA 방식도 허용했는데, RSA는 서버 개인키 하나로 모든 세션을 복호화할 수 있어요. 서버 개인키가 털리면 과거 통신 기록도 전부 복호화 가능해요. 1.3은 ECDHE만 허용해서 매 세션마다 임시 키를 새로 만들기 때문에 개인키가 털려도 과거 통신은 안전해요. 이게 Forward ..

3. TLS handshake — HTTPS 암호화 연결

TCP 연결이 끝났으면, HTTPS라면 여기서 암호화 채널을 만들어요. "우리 어떤 방식으로 암호화할지 협의하고, 서버가 진짜인지 검증하자"는 과정이에요. TCP handshake가 "연결 확인"이라면, TLS handshake는 "신원 확인 + 암호화 키 교환"이에요. 각 단계 설명:ClientHello — 클라이언트가 "나는 TLS 1.3 쓸 수 있고, 이런 암호화 방식들 지원해"라고 먼저 제안해요.지원하는 cipher suite 목록을 쭉 보내요. ServerHello + 인증서 — 서버가 "그 중에 이 방식 쓰자"고 결정하고, 자신의 신원을 증명하는 인증서(공개키 포함)를 보내요. 인증서 검증 — 브라우저가 "이 인증서 진짜야?"를 확인해요. CA(인증기관, ex. Let's Encrypt)가 서..

2. TCP 연결 — 3-way handshake

DNS로 IP를 알아냈으면, 이제 그 서버와 실제로 연결을 맺어야 해요.TCP는 데이터를 주고받기 전에 "우리 연결됐어?" 하고 서로 확인하는 악수 과정을 거치는데, 이걸 3-way handshake라고 해요. 왜 3번이냐면 — 양방향 통신이 가능한지 확인해야 하기 때문이에요.클라이언트→서버 방향,서버→클라이언트 방향,두 방향 모두 문제없다는 걸 확인하고 나서야 데이터를 보내요. 각 단계에서 무슨 일이 일어나는지:SYN — 클라이언트가 서버에 "나 연결하고 싶어, 내 시작 번호는 0이야"라고 보내요.seq(sequence number)는 이후 패킷 순서를 맞추기 위한 번호예요. SYN-ACK — 서버가 "좋아, 받았어(ACK). 나도 연결 준비됐어(SYN), 내 시작 번호는 0이야"라고 응답해요.AC..

1. DNS

① DNS 조회 — 도메인을 IP로 바꾸는 과정브라우저가 example.com을 입력받으면 가장 먼저 하는 일이 "이 도메인의 IP가 뭐지?"를 알아내는 것이에요.전화번호부에서 이름으로 번호를 찾는 것과 같아요. 핵심은 캐시를 단계적으로 확인하고, 없으면 점점 더 높은 서버에 물어보는 구조예요. 핵심 포인트 3가지:캐시는 단계별로 확인돼요.브라우저 캐시 → OS 캐시 → ISP 리졸버 캐시 순서로, 어느 단계에서든 찾으면 거기서 바로 끝나요.그래서 자주 방문하는 사이트는 빠른 거예요.리졸버가 대신 발품을 팔아요. 브라우저는 직접 루트 서버에 묻지 않고, ISP의 리졸버한테 "알아서 찾아줘"라고 위임해요.리졸버가 루트 → TLD → 권한 서버 순서로 쫓아가며 IP를 찾아옵니다. TTL이 캐시 수명을 결정..

0. 브라우저에서 URL 입력했을 때 무슨 일이 일어나는가?

URL을 입력하면 무슨 일이 일어나는가?크게 보면 이렇게 5단계예요: DNS 조회 — 도메인을 IP 주소로 변환 (캐시 → OS → ISP → 루트 서버 순서로 찾음)TCP 연결 — 3-way handshake로 서버와 연결 수립TLS handshake — HTTPS라면 암호화 채널 추가 설정HTTP 요청 — 실제 데이터 요청응답 + 렌더링 — HTML 받아서 화면 그리기

Claude Code 초기 세팅 가이드

📋 사전 요건시작하기 전에 Anthropic 계정이 필요하며, 다음 중 하나가 있어야 합니다: Claude Pro/Max/Team/Enterprise 구독 또는 Anthropic Console API 크레딧.무료 Claude.ai 플랜은 Claude Code를 포함하지 않습니다. Claude Pro ($20/월) 는 대부분의 개발자에게 충분하며, Claude Max ($100~200/월) 는 더 높은 사용량이 필요한 경우에 적합합니다.🖥️ OS별 지원 환경Claude Code는 macOS (Intel 및 Apple Silicon), Linux (Ubuntu 22.04+, Debian 12+), Windows 11 (네이티브 또는 WSL2)에서 실행됩니다. Windows에서는 PowerShell을 사용..

using AI 2026.03.28

SSHJ란 무엇인가

SSHJ는 Java에서 SSH 프로토콜을 사용하기 위한 라이브러리다.JSch의 대안으로 많이 사용되며, 더 현대적인 API를 제공한다.주요 기능은 동일하다.SFTP 파일 업로드 / 다운로드SSH 명령 실행포트 포워딩하지만 중요한 차이는안정성과 API 사용성이 훨씬 좋다왜 SSHJ를 사용하는가JSch 대비 장점은 명확하다.1. 유지보수JSch → 사실상 정체SSHJ → 꾸준히 업데이트2. API 가독성스트림 처리 / 예외 처리 훨씬 직관적3. 안정성연결 안정성 좋음타임아웃, 재시도 구현 용이기본 구조 이해SSHJ는 구조가 훨씬 단순하다.SSHClient → SFTPClient또는SSHClient → Session → CommandSFTP 파일 업로드 예제SSHClient ssh = new SSHClient..

Back-End 2026.03.19

AES-256-GCM 암호화 방식 정리

데이터를 암호화할 때 단순히 AES 알고리즘만 선택하는 것으로는 충분하지 않다.AES는 항상 운용 모드(Mode of Operation)와 함께 사용되며, 어떤 모드를 선택하느냐에 따라 보안 특성이 크게 달라진다.최근 많은 시스템에서 사용되는 방식이 AES-256-GCM이다.이 글에서는 AES-GCM이 어떤 방식이며 왜 많이 사용되는지 정리해본다.1. AES란 무엇인가AES(Advanced Encryption Standard)는 대표적인 대칭키 암호화 알고리즘이다.대칭키 암호화란같은 키로 암호화같은 키로 복호화를 수행하는 방식이다.AES는 키 길이에 따라 세 가지 버전이 존재한다.알고리즘키길이AES-128128bitAES-192192bitAES-256256bit 키 길이가 길수록 브루트포스 공격에 대한 ..

Back-End 2026.03.17