Docker 이미지는 정말 OS일까?
들어가면서 이전 포스트들에서 VM과 컨테이너의 근본적인 차이와 컨테이너가 어떻게 격리되는지 살펴보았다. 컨테이너는 호스트 OS의 커널을 공유하며 가볍게 동작한다고 했는데, 그렇다면 우리가 흔히 사용하는 ubuntu나 alpine 같은 Docker 이미지는 정말 운영체제(OS)일까? 많은 개발자가 Docker 이미지를 “작은 VM”이나 “OS가 통째...
들어가면서 이전 포스트들에서 VM과 컨테이너의 근본적인 차이와 컨테이너가 어떻게 격리되는지 살펴보았다. 컨테이너는 호스트 OS의 커널을 공유하며 가볍게 동작한다고 했는데, 그렇다면 우리가 흔히 사용하는 ubuntu나 alpine 같은 Docker 이미지는 정말 운영체제(OS)일까? 많은 개발자가 Docker 이미지를 “작은 VM”이나 “OS가 통째...
들어가면서 이전 포스트인 VM과 컨테이너는 무엇이 다를까?에서 컨테이너가 VM보다 가볍고 빠르게 동작하는 이유를 구조적 차이에서 살펴보았다. 컨테이너는 호스트 OS의 커널을 공유하면서도 독립적인 실행 환경을 제공하는데, 이때 핵심적인 역할을 하는 것이 바로 Linux Namespace와 Cgroup이다. “컨테이너는 OS를 새로 띄우지 않는데 어떻...
들어가면서 수업을 통해 가상화 기술을 학습하던 중, 오래전에 자바의 구동 원리를 정리하며 JVM이라는 가상 머신에 대해 고민했던 기억이 떠올랐다. 또한, 과거 Testcontainers를 활용한 통합 테스트 환경을 구축하면서 Docker를 사용했지만, 당시에는 VM과 컨테이너의 구조적 차이를 깊이 이해하지 못한 채 적용하며 겪었던 어려움이 있었다. ...
들어가면서 이전에 AOP를 정리하면서 “공통 로직은 어디에 있어야 할까?”에 대해 고민했었다. 실무에서 이 질문에 대한 가장 첫 번째 대답이자, AOP를 가장 먼저 적용하게 되는 곳이 바로 ‘로깅(Logging)’이라고 한다. 처음에는 단순히 에러가 났을 때 콘솔 창을 확인하기 위해 log.info()나 System.out.println()을 쓰는...
들어가면서 처음에는 단순히 이렇게 생각했다. “EntityGraph랑 Pageable 같이 쓰면 안 되는 거 아닌가?” 실제로 JPA를 공부하다 보면: fetch join + pagination 주의 컬렉션 fetch join 페이징 문제 메모리 페이징 발생 가능 같은 이야기를 자주 보게 된다. 그래서 처음에는 Enti...
들어가면서 최근 Filter, Interceptor를 정리하면서 “공통 로직을 어디에서 처리해야 하는가”를 계속 고민하게 됐다. Filter → 요청 입구 Interceptor → MVC 흐름 제어 그리고 마지막으로 남은 게 AOP였다. 👉 Filter vs Interceptor vs AOP — 어디서 무엇을 처리해야 할까 처음에는...
들어가면서 이전에 Filter / Interceptor / AOP를 비교하면서 각 기술이 어디에서 동작하는지 정리했었다. 👉 Filter vs Interceptor vs AOP — 어디서 무엇을 처리해야 할까 그리고 최근에는 Filter를 더 깊게 보면서 “인증은 Controller 전에 이미 끝난다”는 흐름도 다시 정리했다. 👉 Filter를...
들어가면서 이전에 Filter / Interceptor / AOP를 정리하면서 각각의 역할을 구분해봤다. 👉 Filter vs Interceptor vs AOP — 어디서 무엇을 처리해야 할까 그때는 “어디서 무엇을 처리해야 하는가”라는 기준으로 정리했다면, 이번에는 조금 더 자연스럽게 이런 질문에서 시작하게 됐다. “인증은 정확히 어디서...
배경 Spring을 사용하다 보면 공통 로직을 어디에 넣어야 할지 고민하게 된다. 인증 처리 로깅 예외 처리 권한 검사 처음에는 단순하게 “한 곳에서 처리하면 되지 않을까?”라고 생각했지만, 실제로는 Filter / Interceptor / AOP 각각의 역할이 명확히 다르다는 걸 알게 됐다. 특히 JWT 인증을 적용하면서 이...
배경 혼자 개발할 때는 크게 체감하지 못했는데, 프로젝트를 진행하면서 코드 컨벤션과 GitHub 규칙의 중요성을 확실히 느꼈다. 처음에는 단순히 “코드를 보기 좋게 만드는 규칙” 정도로 생각했는데, 실제로는 그보다 훨씬 중요한 역할을 하고 있었다. 코드 컨벤션: 단순한 스타일이 아니다 코드 컨벤션은 단순히 들여쓰기나 네이밍 규칙이 아니다. ...