Spring
-
Front Controller Pattern 아이디어 구현에 따른 변경Spring/MVC 2026. 5. 13. 17:59
2026.05.13 작성Front Controller Pattern을 적용하면서 변경된 URL 매핑 환경과 그에 영향을 받은 것을 생각하며 작성한 글입니다.학습 중 생각 정리의 목적으로 작성된 글로, 전반적으로 짧습니다. Front Controller Pattern이란?모든 클라이언트 요청에 대해 단일 진입점을 두는 디자인 패턴입니다. Front Controller Pattern 도입의 이유과거에는, URL의 개수 만큼 Servlet이 존재했습니다.URL이 늘어나면 늘어날 수록 그에 매칭되는 Servlet을 작성해야 했고, 중복 코드와 관리 부담이 함께 늘어났습니다. Servlet을 통한 Front Controller Pattern 아이디어 구현하나의 Servlet을 두고, 내부에서 doGet(), d..
-
Spring Batch로 배치 처리하기 - Reader, Processor, Writer 커스텀하기Spring/Batch 2025. 7. 3. 01:27
Spring Batch를 사용하여 외부 API를 통해 데이터를 적재하는 배치 처리를 구현했습니다.The Sports DB API로부터 데이터를 수집하고, 이를 도메인 모델에 맞게 가공한 뒤 데이터베이스에 저장하는 과정을 커스텀한 Step으로 구현한 과정을 기록합니다.250724 메모: 리팩토링으로 해당 게시글 소폭 수정 예정들어가기 전1. 사용한 기술 스택Spring Boot 3.5.3, Gradle(빌드 도구), PostgreSQL 2. 메타데이터 테이블 분리 여부실무에서는 메타데이터 테이블을 별도의 데이터베이스로 분리하여 운영하는 경우가 많습니다. 하지만 메타데이터 테이블의 부하 정도가 크지 않고, 소규모 프로젝트의 경우 메인 애플리케이션 DB와 함께 구성하는 경우가 많습니다. - by. 멘토님 위..
-
Spring BatchSpring/Batch 2025. 7. 2. 18:41
Spring Batch를 활용한 배치 처리의 개념, 장점, 핵심 구성요소를 정리한 소개 문서입니다. 간단히 개념을 소개하기 위해 작성된 문서로, 구현을 위한 문서는 아닙니다.배치 처리Batch 자체가 (일괄적으로 처리되는) 집단[무리] 라는 의미를 가지고 있습니다. 배치 처리란?반복되는 대량의 데이터 작업을 하기 위해 사용하는 방식을 배치 처리라고 합니다. 배치 처리의 장점[v] 주기적으로 반복되는 작업을 자동으로 처리매일 반복되는 작업을 자동으로 처리하여 시간과 인건비를 아낌으로서 시간적, 금전적 효율성을 높일 수 있습니다. [v] 대용량 데이터 처리를 한 번에, 시스템 부하가 없는 시간대에 처리사용자가 거의 없는 새벽 시간대에 수백만 개의 레코드를 처리하도록 설정하여 시스템 부하를 줄일 수 있습니다..
-
JWT(JSON Web Token)의 구조, 구성 요소Spring/Security 2025. 5. 19. 23:20
JWT(JSON Web Token)의 구조와 각 구성 요소의 역할에 대해 정리한 문서입니다. JWT는 JSON-Web Token의 준말로, 당사자 간에 정보를 안정하게 전송하기 위한 JSON 기반의 open standard(RFC 7519)*입니다. 즉, 서버와 클라이언트 사이에서 사용자 인증 정보를 주고받기 위한 토큰으로, 토큰 자체에 필요한 정보를 모두 포함하고 있어서 별도의 인증 저장소에 없이도 검증할 수 있습니다.*Request for Comments : 인터넷 표준을 정의하는 문서 시리즈. IETF(Internet Engineering Task Force)라는 국제 표준화 기구에서 관리한다. 2015.05 에 발표된 JWT의 공식 표준 규격. 사용자가 로그인하면 서버는 JWT 를 생성하여 클라..
-
Spring 기반 웹 애플리케이션에서 발생할 수 있는 4가지 주요 보안 공격Spring/Security 2025. 5. 19. 23:19
Spring 기반 웹 애플리케이션에서 발생할 수 있는 4가지 주요 보안 공격인 CSRF, XSS, 세션 고정, JWT 탈취와 Spring Security 또는 일반적인 대응 전략을 간단히 정리한 글입니다. 1. CSRF(Cross-Site Request Forgery)공격 방식 : 사용자가 웹 사이트(A)에 로그인한 상태에서 악의적인 웹사이트(B)에 접속하면, (B)가 사용자 모르게 (A) 웹사이트에 대한 요청을 하는 공격입니다. 브라우저의 경우 자동으로 인증 쿠키를 포함시켜 서버는 이 요청이 합법적인 것으로 간주합니다. e.g.은행 사이트에 로그인하면, 이 은행 사이트에 대한 쿠키를 가집니다.이후 서핑 중 특정 사이트가 궁금해서, 광고를 잘못 클릭해서 등의 이유로 공격자가 만든 사이트에 접속합니다. ..
-
N+1 이란Spring/JPA 2025. 3. 10. 09:11
JPA에서 발생하는 N+1 문제, 그리고 해결 방안에 대해 정리한 문서입니다. N+1 문제란?데이터베이스와 객체 관계 매핑(ORM)을 사용할 때 자주 발생하는 성능 이슈로, 특정 엔티티를 조회(1)할 때, 해당 엔티티와 연관된 다른 엔티티를 (N)번 쿼리로 추가적으로 조회하는 상황을 말합니다. 해당 문제는 로딩 전략(EAGER Loading, LAZY Loading)에 상관없이 발생합니다. 즉, 연관 관계가 있는 엔티티에 접근할 때 추가 쿼리가 발생하는 패턴일 때, N+1 문제가 발생한다고 생각하면 됩니다. EAGER Loading, LAZY Loading과 N+1 문제더보기EAGER Loading(즉시 로딩)엔티티를 로드할 때 연관된 엔티티도 함께 로드합니다.@ManyToOne과 @OneToOne 관..
-
Spring Boot 애플리케이션 설정과 DB 설정Spring/Boot 2025. 2. 27. 17:00
개인 공부를 위해 작성된 글입니다.postgreSQL DB를 사용하기 위해 applicaiton.yml 내부 속성(property)을 지정하고 database설정을 하던 중, 두 가지 설정 사이에서 '이걸 설정하면 무슨 일이 일어나는거지?' 혼란스러워 하는 것을 느껴, application설정에 대해 잘 모르고 있다 판단되어 짧게 정리한 글입니다.편의상 속성 파일 포맷을 yml이 아닌 properties로 작성했습니다. Spring Boot 프로젝트를 생성하면, src/main/resources 경로 하위에 application.properties 라는 파일이 생성됩니다. 이 파일은 애플리케이션의 환경 설정을 정의하는 곳으로, 해당 파일을 통해 데이터베이스 연결 정보, 서버 포트, 로깅 수준, 캐시 설정..
-
Spring MVC @Controller와 @RestController의 차이점Spring/MVC 2025. 2. 17. 09:22
먼저 MVC 패턴에 대해 설명하고, Spring에서 MVC 패턴을 구현하기 위해 만든 모듈인 Spring-webMVC을 간단히 소개합니다. 그 후 클라이언트의 요청 처리 흐름을 설명하며, @Controller와 @RestController의 차이점을 중심으로 각각의 처리 과정을 보여주는 문서입니다. 1. MVC 패턴MVC(Model-View-Controller) 패턴은 웹 애플리케이션을 설계할 때 가장 널리 사용되는 패턴 중 하나입니다. 데이터 및 비즈니스 로직을 관리하는 Model, 사용자에게 데이터를 보여주는 쪽인 View, Model과 View의 사이에서 요청을 받고 응답하며 두 레이어 사이를 연결하며 흐름을 제어하는 Controller가 있습니다. MVC 패턴은 관심사의 분리 지향하여 나온 패턴입..