[Network] 네트워크 소켓
📌 들어가며 이번 글에서는 URL과 송수신에 이어, 프로토콜 스택과 소켓이 실제로 어떻게 동작하는지 파고든다. 소켓의 정체부터 TCP 접속(3-way), 데이터 송수신(ACK·윈도우 제어), 연결 종료, IP/이더넷 패킷, UDP까지 다룬다. 소켓이란? 눈에 보이는 실체가 아니라, 프로토콜 스택 내부 메모리에 기록된 제어 정보다. IP·포트·...
📌 들어가며 이번 글에서는 URL과 송수신에 이어, 프로토콜 스택과 소켓이 실제로 어떻게 동작하는지 파고든다. 소켓의 정체부터 TCP 접속(3-way), 데이터 송수신(ACK·윈도우 제어), 연결 종료, IP/이더넷 패킷, UDP까지 다룬다. 소켓이란? 눈에 보이는 실체가 아니라, 프로토콜 스택 내부 메모리에 기록된 제어 정보다. IP·포트·...
📌 들어가며 이번 글에서는 브라우저에 URL을 입력한 순간부터 웹 서버와 메시지를 주고받기까지의 전체 여정을 정리한다. URL 해독 → HTTP 요청/응답 → DNS로 IP 조회 → 소켓 통신으로 이어지는 흐름을 따라간다. URL이란? Uniform Resource Locator — 웹 서버에 어떤 기능(정보 가져오기·보내기)을 요청하는 하나...
📌 들어가며 이번 글에서는 자바 네트워크 프레임워크 Netty를 정리한다. Netty란? 자바 환경에서 네트워크 프로그래밍을 손쉽게 해주는 프레임워크. 고성능·고안정성 프로그램을 만들 수 있다. 순수 소켓 프로그래밍보다 추상화로 훨씬 간결하다. Client ─────────────────────────────────── Server ...
📌 들어가며 이번 글에서는 팩토리 패턴(Factory Pattern)을 다룬다. 무엇이든 될 수 있는 메타몽처럼, 객체 생성을 유연하게 다루는 패턴이다. 팩토리 패턴이란? 객체를 사용하는 코드에서 객체 생성 부분을 떼어내 추상화한 패턴. 상위 클래스가 뼈대를 결정하고, 하위 클래스가 구체적인 객체 생성을 담당한다. 장점: ...
📌 들어가며 이번 글에서는 CI/CD 파이프라인의 대표 도구 Jenkins를 정리한다. CI/CD 개념부터 Jenkins의 기능, 설치, SVN 연동, 그리고 파이프라인으로 JUnit 테스트를 연동하는 과정까지 다룬다. Jenkins란? 모든 언어와 소스 저장소에 대해 지속적 통합(CI)·지속적 배포(CD) 환경을 구축하는 도구. 빌드·테스트...
📌 들어가며 이번 글에서는 MyBatis의 원리와 사용법을 정리한다. MyBatis란? 스프링에서 데이터베이스 연동을 도와주는 프레임워크. JDBC의 중복 코드를 제거하고, SQL을 XML로 분리해 관리한다. 편리하지만 단점이 있어 JPA와 함께 쓰면 좋다. 1. 기존 JDBC의 문제 기존 방식은 하나의 DAO에 연결·SQL·해제...
📌 들어가며 이번 글에서는 자바 개발자가 가장 많이 쓰는 테스트 프레임워크 JUnit을 정리한다. JUnit이란? 자바용 유닛 테스트 프레임워크(자바 개발자의 93%가 사용). 자바 8+·스프링부트 2.2+에서는 JUnit5를 쓴다. JUnit5의 구성: JUnit5 = Platform + Jupiter(5) + Vintage(3,4) ...
📌 들어가며 이번 글에서는 스프링에서 파일 업로드·다운로드를 다룬다. 먼저 전송 방식을 이해하고, 서블릿·스프링 방식으로 업로드한 뒤, 파일 다운로드까지 구현한다. 1. 전송 방식 2가지 방식 특징 application/x-www-form-urlencoded ...
📌 들어가며 이번 글에서는 운영체제의 물리 메모리 관리를 정리한다. 메모리 관리자의 역할(가져오기·배치·재배치), 주소 체계(절대/상대), 단일·다중 프로그래밍 환경의 메모리 할당(오버레이·스왑·분할 방식·버디 시스템)을 다룬다. 메모리 관리가 복잡한 이유 — 시분할 시스템에서는 OS를 포함한 모든 응용 프로그램이 메모리에 올라오기 때문이다....
📌 들어가며 C/C++에서는 개발자가 메모리 할당과 해제를 일일이 직접 관리해야 한다. 실수하면 메모리 누수나 크래시로 이어진다. 자바는 이 부담을 가비지 컬렉터(GC)에게 맡긴다. GC(Garbage Collection)란? JVM의 Heap 영역에서 동적으로 할당했던 메모리 중 더 이상 필요 없는 영역을 주기적으로 삭제하는 프로세스. 덕분...