WooLam

Docker 이미지는 정말 OS일까?

들어가면서 이전 포스트들에서 VM과 컨테이너의 근본적인 차이와 컨테이너가 어떻게 격리되는지 살펴보았다. 컨테이너는 호스트 OS의 커널을 공유하며 가볍게 동작한다고 했는데, 그렇다면 우리가 흔히 사용하는 ubuntu나 alpine 같은 Docker 이미지는 정말 운영체제(OS)일까? 많은 개발자가 Docker 이미지를 “작은 VM”이나 “OS가 통째...

컨테이너는 어떻게 격리될까?

들어가면서 이전 포스트인 VM과 컨테이너는 무엇이 다를까?에서 컨테이너가 VM보다 가볍고 빠르게 동작하는 이유를 구조적 차이에서 살펴보았다. 컨테이너는 호스트 OS의 커널을 공유하면서도 독립적인 실행 환경을 제공하는데, 이때 핵심적인 역할을 하는 것이 바로 Linux Namespace와 Cgroup이다. “컨테이너는 OS를 새로 띄우지 않는데 어떻...

VM과 컨테이너는 무엇이 다를까?

들어가면서 수업을 통해 가상화 기술을 학습하던 중, 오래전에 자바의 구동 원리를 정리하며 JVM이라는 가상 머신에 대해 고민했던 기억이 떠올랐다. 또한, 과거 Testcontainers를 활용한 통합 테스트 환경을 구축하면서 Docker를 사용했지만, 당시에는 VM과 컨테이너의 구조적 차이를 깊이 이해하지 못한 채 적용하며 겪었던 어려움이 있었다. ...

AOP 기반 로깅 전략 — 이력 파이프라인으로 확장 가능한 시스템 설계

들어가면서 이전에 AOP를 정리하면서 “공통 로직은 어디에 있어야 할까?”에 대해 고민했었다. 실무에서 이 질문에 대한 가장 첫 번째 대답이자, AOP를 가장 먼저 적용하게 되는 곳이 바로 ‘로깅(Logging)’이라고 한다. 처음에는 단순히 에러가 났을 때 콘솔 창을 확인하기 위해 log.info()나 System.out.println()을 쓰는...

Filter를 이해하면서 정리한 생각 — 인증은 어디서 시작되는가

들어가면서 이전에 Filter / Interceptor / AOP를 정리하면서 각각의 역할을 구분해봤다. 👉 Filter vs Interceptor vs AOP — 어디서 무엇을 처리해야 할까 그때는 “어디서 무엇을 처리해야 하는가”라는 기준으로 정리했다면, 이번에는 조금 더 자연스럽게 이런 질문에서 시작하게 됐다. “인증은 정확히 어디서...

Filter vs Interceptor vs AOP — 어디서 무엇을 처리해야 할까

배경 Spring을 사용하다 보면 공통 로직을 어디에 넣어야 할지 고민하게 된다. 인증 처리 로깅 예외 처리 권한 검사 처음에는 단순하게 “한 곳에서 처리하면 되지 않을까?”라고 생각했지만, 실제로는 Filter / Interceptor / AOP 각각의 역할이 명확히 다르다는 걸 알게 됐다. 특히 JWT 인증을 적용하면서 이...

코드 컨벤션과 GitHub 규칙을 정리하면서 느낀 것

배경 혼자 개발할 때는 크게 체감하지 못했는데, 프로젝트를 진행하면서 코드 컨벤션과 GitHub 규칙의 중요성을 확실히 느꼈다. 처음에는 단순히 “코드를 보기 좋게 만드는 규칙” 정도로 생각했는데, 실제로는 그보다 훨씬 중요한 역할을 하고 있었다. 코드 컨벤션: 단순한 스타일이 아니다 코드 컨벤션은 단순히 들여쓰기나 네이밍 규칙이 아니다. ...