본문 바로가기

spring boot5

스프링 부트 입문 (IoC/DI, JPA, Spring Security) 솔직히 처음 Spring Boot를 접했을 때 가장 당황했던 부분은 new 키워드가 없어도 객체가 알아서 생겨난다는 점이었습니다. 분명히 어디서도 객체를 만든 적이 없는데 실행하면 콘솔에 "서비스 객체 생성됨"이 찍혀 있었습니다. 이게 도대체 왜 되는 건지 이해하는 데 꽤 시간이 걸렸고, 그 과정에서 Spring Boot의 핵심이 무엇인지 조금씩 보이기 시작했습니다.IoC와 DI, 객체를 내가 안 만들어도 되는 이유Spring Boot의 핵심을 한 마디로 표현하면 제어의 역전, 즉 IoC(Inversion of Control)라고 할 수 있습니다. IoC란 객체 생성, 연결, 관리 같은 작업을 개발자가 직접 처리하지 않고 프레임워크가 대신 처리하는 방식을 말합니다. 원래 자바 코드에서는 new TestS.. 2026. 6. 14.
Spring Boot 파일 업로드 (Multipart, 로컬저장, S3) 파일 하나 올리는 데 컨트롤러, 서비스, 유틸, 인터페이스까지 네 군데를 건드려야 한다는 걸 처음 알았을 때 솔직히 당황했습니다. 단순히 @RequestBody를 @RequestPart로 바꾸면 끝나는 줄 알았는데, HTTP 요청 프로토콜 자체가 바뀐다는 사실을 몸으로 겪고 나서야 구조가 눈에 들어왔습니다. 이 글은 그 과정을 순서대로 정리한 기록입니다.Multipart와 @RequestPart — 파일 전송이 왜 달라지는가일반적인 JSON 데이터를 주고받을 때는 Content-Type이 application/json으로 고정됩니다. 그런데 클라이언트가 파일을 함께 보내는 순간, HTTP 요청의 Content-Type이 multipart/form-data로 바뀝니다. 여기서 multipart/form-d.. 2026. 6. 13.
Docker 커스텀 이미지 (Dockerfile, 컨테이너, docker-compose) Dockerfile 하나면 java 설치부터 jar 실행까지 전부 자동화됩니다. 처음 이 사실을 알았을 때 솔직히 이건 예상 밖이었습니다. 매번 서버에 접속해서 손으로 설치하던 게 파일 한 장으로 끝난다는 게 믿기지 않았거든요. 직접 써보고 나서야 "왜 진작 이걸 안 썼지"라는 생각이 들었습니다.Dockerfile로 백엔드·프론트 이미지 직접 만들기일반적으로 Docker는 MariaDB나 Nginx 같은 공식 이미지를 그냥 내려받아 쓰는 도구라고만 생각하는 분들도 있는데, 실제로 써보니 내가 만든 프로젝트 자체를 이미지로 패키징해서 배포하는 게 핵심이었습니다.백엔드 기준으로 기존 배포 방식을 먼저 짚어보면, Spring Boot 프로젝트를 bootJar로 빌드해서 jar 파일을 만들고, 서버에 java를.. 2026. 6. 12.
Spring Boot 소셜 로그인 (이메일 인증, 카카오, DB 라우팅) 소셜 로그인 구현이 그냥 라이브러리 가져다 쓰면 끝나는 줄 알았습니다. 실제로 해보니 OAuth2 흐름 처리부터 JWT 연동, 이메일 인증, 심지어 DB 서버까지 이원화해야 한다는 걸 뒤늦게 깨달았습니다. 이 글은 Spring Boot 환경에서 이메일 인증과 카카오 소셜 로그인, 그리고 마스터/슬레이브 DB 라우팅까지 한 번에 구성하면서 제가 직접 부딪힌 것들을 정리한 내용입니다.이메일 인증, 생각보다 막히는 구간이 많습니다이메일 인증 기능을 처음 붙였을 때 가장 먼저 막힌 건 메일 서버 설정이었습니다. 직접 메일 서버를 구축하려 했는데, 스팸 차단 정책 때문에 대부분의 발신이 막혀버렸습니다. 결국 Gmail SMTP를 쓰는 방향으로 선회했고, 이 과정에서 앱 비밀번호 발급이 필수라는 걸 알게 됐습니다... 2026. 6. 12.
Spring 예외처리 (전역처리, BaseException, BaseResponse) 처음 Spring 프로젝트를 만들 때 예외 처리를 Controller마다 try-catch로 일일이 감쌌던 기억이 납니다. 어느 순간 코드가 길어지면서 "이걸 왜 매번 반복하지?"라는 생각이 들었고, 그때부터 전역 예외 처리 구조를 하나씩 개선해 나갔습니다. 이 글은 그 과정을 단계별로 정리한 기록입니다.전역처리와 BaseException으로 중복 코드 없애기처음 해봤던 방식은 Service 계층에서 예외를 던지고, Controller에서 try-catch로 받는 전통적인 자바 방식이었습니다. 기능 자체는 돌아가긴 했는데, API 엔드포인트가 5개, 10개로 늘어나면서 각 Controller 메서드마다 동일한 try-catch 블록이 반복되는 게 눈에 거슬렸습니다. 같은 코드를 복붙하고 있다는 건 뭔가 .. 2026. 6. 12.

소개 및 문의 · 개인정보처리방침 · 면책조항

© 2026 자동식단생성 연관 블로그