가상머신과 도커 : 무거운 집과 가벼운 텐트
‘가상머신과 도커 차이’를 집과 텐트의 비유로 설명하고, 도커가 가볍고 빠른 원리(OS 공유)와 실무에서의 환경 격리 장점을 다룹니다.
개발 여정을 기록하고, 배움을 나누는 공간
‘가상머신과 도커 차이’를 집과 텐트의 비유로 설명하고, 도커가 가볍고 빠른 원리(OS 공유)와 실무에서의 환경 격리 장점을 다룹니다.
‘서버 보안 기초’를 SSH 보안 강화(포트 변경, 키 인증), 방화벽(UFW), HTTPS(Let’s Encrypt), Fail2Ban까지 단계별로 설명합니다. 1인 개발자의 실제 무차별 대입 공격 경험담을 바탕으로 한 실전 가이드입니다.
‘리눅스 CLI와 권한’의 중요성을 신입 개발자의 서버 배포 경험담(SSH, MobaXterm)을 통해 설명하고, 파일 권한(chmod) 해석법과 터미널 생존 팁을 제공합니다.
‘서버와 리눅스’의 본질을 설명하고, 서버가 윈도우 대신 리눅스를 사용하는 이유(GUI 비용, 안정성)와 가상머신(VM)의 비효율성을 통해 도커의 필요성을 빌드업합니다.
‘REST API 설계와 DTO’의 중요성을 보안 문제와 순환 참조(무한 루프) 예시를 통해 설명하고, 올바른 RESTful URL 설계법과 실무적인 DTO 네이밍 전략을 제시합니다.
‘MyBatis vs JPA’의 갈등을 겪으며 깨달은 실무 경험담. JPA N+1 문제 해결과 두 기술의 장단점을 살린 효율적인 공존(하이브리드) 전략을 제시합니다.
‘데이터베이스 정규화와 JPA’의 관계를 설명하고, 객체와 테이블의 패러다임 불일치 및 실무에서 발생하는 JPA N+1 문제의 원인과 해결책(Fetch Join)을 다룹니다.
‘웹 아키텍처와 CORS’의 개념을 PHP 시절의 SSR과 현대의 CSR 비교를 통해 설명하고, 프론트/백엔드 분리 시 발생하는 CORS 에러의 원인과 스프링 부트 해결책을 다룹니다.
스프링 부트와 프레임워크의 개념을 쉽게 설명하고, 제어의 역전(IoC)과 의존성 주입(DI)이 필요한 이유를 코드 예제와 함께 다룹니다.
브라우저 렌더링 원리를 건축 현장 비유로 설명하고, DOM/CSSOM 생성부터 Reflow/Repaint의 차이까지 성능 최적화 관점에서 다룹니다.