[Spring] Junit4 설정 문제들(Gradle vs IntelliJ IDEA)
📌 들어가며 회사 프로젝트에 TDD를 적용하려 JUnit4를 설정하며 겪은 실전 트러블슈팅 모음이다. 여러 문제 상황과 조치, 그리고 마지막의 진짜 원인(빌드 방식 차이)과 해결 흐름을 정리한다. 1. 흔한 문제와 해결 # 문제 해결 1 Myba...
📌 들어가며 회사 프로젝트에 TDD를 적용하려 JUnit4를 설정하며 겪은 실전 트러블슈팅 모음이다. 여러 문제 상황과 조치, 그리고 마지막의 진짜 원인(빌드 방식 차이)과 해결 흐름을 정리한다. 1. 흔한 문제와 해결 # 문제 해결 1 Myba...
📌 들어가며 이번 글에서는 @Configuration + @Bean에서 static 메소드를 쓸 때 주의할 점을 정리한다. @Configuration과 @Bean은 스프링의 IoC 컨테이너에 빈의 생성·관리를 위임하는 어노테이션이다. 그런데 여기에 static을 붙이면 문제가 생긴다. 1. static 빈 정의 — 문제 상황 @Con...
📌 들어가며 이번 글에서는 스프링의 핵심인 스프링 컨테이너의 개념·종류·동작 방식을 정리한다. 스프링 컨테이너란? 객체의 라이프사이클을 관리하고 의존성 주입(DI)을 수행하는 스프링의 핵심. 개발자가 객체 생성·관리를 신경 쓰지 않고 비즈니스 로직에 집중하게 해준다. 1. 컨테이너의 종류 종류 설...
📌 들어가며 이번 글에서는 객체지향 설계의 5대 원칙 SOLID를 예시와 함께 정리한다. 이 원칙들을 지키면 유연하고 확장 가능한 소프트웨어를 만들 수 있다. 약자 원칙 한 줄 요약 S 단일 책임 클래스는 책임 하나만 ...
📌 들어가며 이번 글에서는 스타벅스 홈페이지를 크롤링해 서울시 전 매장을 수집하고, folium 지도에 시각화한다. Selenium으로 동적 페이지를 조작하고, BeautifulSoup으로 정보를 추출한 뒤, 인구·사업체 통계와 합쳐 지도에 찍는다. 전체 흐름 — Selenium(클릭·페이지 로드) → BeautifulSoup(HTML 파싱)...
📌 들어가며 회사에서 맡은 솔루션에 Swagger로 Open API 문서를 적용하다 만난 실전 트러블슈팅 기록이다. Spring Boot 솔루션은 검색대로 하니 바로 됐지만, 순수 Spring으로 개발된 대형 솔루션(설정 파일 수십 개)에서는 문제가 생겼다. 커스텀 JSON 직렬화로 이를 해결한 과정을 정리한다. JsonSerializer란?...
📌 들어가며 이번 글에서는 Swagger로 Spring 애플리케이션의 API 문서를 자동화하는 방법을 정리한다. Swagger란? API를 설계·빌드·문서화하고 개발자가 쉽게 사용하도록 돕는 도구. OpenAPI Specification(OAS) 표준 기반으로, API를 자동 문서화한다. 문서를 손으로 관리하는 수고를 없애준다. 1. ...
📌 들어가며 이번 글에서는 스프링의 MessageConverter를 정리한다. MessageConverter란? Spring MVC에서 요청·응답 메시지를 변환하는 인터페이스. HTTP 본문 ↔ 자바 객체 변환을 담당한다. 스프링이 자동 처리하므로 개발자가 변환 코드를 따로 안 써도 된다. HTTP 요청 본문 ──read──► 자바 객체...
📌 들어가며 DB 접속 정보(URL, 계정, 비밀번호)를 소스 코드에 하드코딩하면, 개발·운영 환경이 바뀔 때마다 코드를 고쳐야 한다. 이런 환경별로 달라지는 리소스를 코드 밖에서 관리하도록 도와주는 것이 JNDI다. JNDI(Java Naming and Directory Interface)란? 자바 애플리케이션에서 네이밍·디렉터리 서비스에 ...
📌 들어가며 이번 글에서는 객체지향 설계 패턴 중 자주 쓰이는 싱글턴 패턴(Singleton Pattern)을 정리한다. 싱글턴 패턴이란? 특정 클래스의 인스턴스가 오직 하나만 생성되도록 보장하고, 그 인스턴스에 대한 전역 접근점을 제공하는 패턴. 특징 설명 유일...