| En

Spring Data JPA와 JPA 주요 차이점

JPA의 탄생 배경과 역사 JPA(Java Persistence API)는 2006년 5월 11일 자바 커뮤니티 프로세스 JSR 220을 통해 EJB 3.0 스펙의 일부로 처음 발표되었으며, 기존 EJB 2.x의 엔티티 빈(Entity Bean)이 가진 복잡성과 무거운 구조, 컨테이너 의존성 등의 문제를 해결하기 위해 Hibernate의 핵심 개념들을 표준화한 것이다. EJB 2.x의 엔티티 빈은 홈 인터페이스(Home Interface), 원격 인터페이스(Remote Interface), 빈 클래스(Bean Class)를 모두 작성해야 하고 복잡한 XML 디스크립터를 관리해야 했으며, 이로 인해 개발 생산성이 크게 떨어지고 테스트가 어려웠다. ...

2024년 6월 7일 · 7 분 · 1309 단어 · In-Jun

MVC 패턴

MVC 패턴의 탄생과 역사적 배경 MVC 패턴은 1979년 제록스 팰러앨토 연구소(Xerox PARC)에서 스몰토크(Smalltalk-76) 프로젝트를 진행하던 노르웨이 컴퓨터 과학자 Trygve Reenskaug에 의해 처음 고안되었으며, 이는 개인용 컴퓨터의 태동기에 그래픽 사용자 인터페이스(GUI)를 혁신적으로 발전시키려는 시도의 일환이었다. 당시 제록스 PARC는 현대 컴퓨팅의 많은 개념들을 개척한 곳으로, 이더넷, 레이저 프린터, 객체 지향 프로그래밍 등이 이곳에서 탄생했으며, Reenskaug는 사용자가 복잡한 데이터 구조를 효과적으로 제어하고 시각화할 수 있는 방법을 모색하던 중 데이터(Model), 표현(View), 제어(Controller)의 분리라는 아이디어를 착안했다. ...

2024년 6월 5일 · 8 분 · 1576 단어 · In-Jun

Spring MVC Dispatcher Servlet

디스패처 서블릿이란? 디스패처 서블릿은 스프링 MVC의 핵심 컴포넌트다. 클라이언트의 모든 HTTP 요청을 단일 진입점에서 받아 적절한 컨트롤러로 전달하고, 컨트롤러가 반환한 결과를 View로 렌더링해 응답하는 Front Controller 패턴의 구현체이기도 하다. 모든 요청을 중앙에서 처리하므로 인증, 로깅, 예외 처리 같은 공통 로직을 효율적으로 관리할 수 있고, 개발자는 비즈니스 로직에 더 집중할 수 있다. DispatcherServlet의 역사와 발전 스프링 MVC는 2004년 Spring Framework 1.0과 함께 등장했으며, 당시 J2EE의 복잡한 서블릿 개발 방식에 대한 대안으로 Front Controller 패턴을 구현한 DispatcherServlet을 핵심으로 하는 웹 프레임워크로 자리 잡았다. 초기에는 XML 기반 설정을 통해 서블릿을 등록하고 매핑했으나, Servlet 3.0 이상부터는 WebApplicationInitializer를 통한 자바 설정이 가능해졌으며, Spring Boot의 등장으로 인해 자동 설정(Auto Configuration)이 도입되어 개발자가 별도의 설정 없이도 즉시 사용할 수 있게 되었다. ...

2024년 6월 5일 · 7 분 · 1287 단어 · In-Jun

Spring Interceptor

스프링 인터셉터의 개념과 역사 스프링 인터셉터(Spring Interceptor)는 2006년 Spring Framework 2.0에서 처음 도입된 기능이다. MVC 아키텍처에서 컨트롤러가 요청을 처리하기 전, 후, 그리고 뷰 렌더링이 끝난 뒤에 개입해 공통 기능을 수행한다. HandlerInterceptor 인터페이스의 preHandle, postHandle, afterCompletion 세 가지 메서드를 통해 요청의 전처리와 후처리를 담당하며, 인증, 로깅, 실행 시간 측정, 공통 데이터 설정 같은 횡단 관심사(cross-cutting concerns)를 비즈니스 로직과 분리하도록 설계되었다. 스프링 인터셉터와 서블릿 필터의 핵심 차이는 동작 계층에 있다. 서블릿 필터는 서블릿 컨테이너(Tomcat, Jetty 등) 레벨에서 DispatcherServlet에 도달하기 전에 실행된다. 반면 인터셉터는 스프링 컨텍스트 내부에서 DispatcherServlet이 핸들러 매핑을 통해 컨트롤러를 찾은 뒤, 실제 컨트롤러를 호출하기 전후에 실행된다. 그래서 스프링이 제공하는 의존성 주입, 빈 관리, 예외 처리 같은 기능을 자연스럽게 활용할 수 있다. ...

2024년 6월 4일 · 5 분 · 989 단어 · In-Jun

서블릿 Filter

서블릿 필터의 개념과 역사 서블릿 필터(Servlet Filter)는 서블릿이 HTTP 요청을 처리하기 전과 응답을 클라이언트에게 보내기 전에 요청과 응답을 가로채는 자바 컴포넌트다. 2001년 발표된 Servlet 2.3 명세에서 처음 도입되었으며, 인증, 로깅, 문자 인코딩, 데이터 압축 같은 횡단 관심사(cross-cutting concerns)를 비즈니스 로직과 분리하는 데 쓰인다. 여러 필터를 체인 형태로 연결해 순차적으로 실행할 수 있으며, 구조적으로는 Chain of Responsibility 패턴을 따른다. 서블릿(Servlet) 서블릿은 클라이언트의 HTTP 요청을 처리하고 HTTP 응답을 생성하는 자바 서버 측 컴포넌트로, Java EE(현 Jakarta EE) 표준의 핵심 기술이며 대부분의 자바 웹 프레임워크의 기반이 된다. ...

2024년 6월 4일 · 5 분 · 880 단어 · In-Jun

Spring Boot 개발 모범 사례

계층형 아키텍처의 역사와 배경 계층형 아키텍처(Layered Architecture)는 1990년대 엔터프라이즈 애플리케이션 개발에서 관심사의 분리(Separation of Concerns) 원칙을 실현하기 위해 정립된 설계 패턴으로, Martin Fowler의 “Patterns of Enterprise Application Architecture”(2002)에서 체계화되었다. 전통적인 3계층 아키텍처는 프레젠테이션 계층(Presentation Layer), 비즈니스 로직 계층(Business Logic Layer), 데이터 접근 계층(Data Access Layer)으로 구성되며, Spring Framework는 이 구조를 @Controller, @Service, @Repository 어노테이션으로 자연스럽게 구현할 수 있게 하여 자바 엔터프라이즈 개발의 사실상 표준이 되었다. Spring Boot에서 계층형 아키텍처를 적용하면 각 계층이 인접한 계층과만 통신하도록 제한하여 결합도를 낮추고, 각 계층을 독립적으로 테스트하고 교체할 수 있게 되며, 새로운 개발자가 코드베이스를 이해하기 쉬워진다. 일반적으로 Controller는 HTTP 요청을 받아 Service를 호출하고, Service는 비즈니스 로직을 수행하며 Repository를 통해 데이터에 접근하고, Repository는 데이터베이스와 통신하여 CRUD 연산을 수행한다. ...

2024년 5월 25일 · 5 분 · 1014 단어 · In-Jun

Spring Boot 시작하기

Spring Framework의 역사와 등장 배경 Spring Framework는 2002년 Rod Johnson이 그의 저서 “Expert One-on-One J2EE Design and Development"에서 제시한 아이디어를 바탕으로, 2003년에 처음 공개된 자바 기반 엔터프라이즈 애플리케이션 프레임워크다. 당시 복잡하고 무거웠던 EJB(Enterprise JavaBeans) 2.x는 컨테이너에 강하게 결합되어 단위 테스트가 어렵고 XML 설정이 방대해 개발 생산성이 낮았다. Spring은 이에 대한 대안으로 등장해 POJO(Plain Old Java Object) 기반의 경량 개발 방식을 제시했고, IoC(Inversion of Control)와 DI(Dependency Injection)를 핵심으로 객체 간 결합도를 낮추고 테스트 용이성을 높였다. ...

2024년 5월 16일 · 5 분 · 990 단어 · In-Jun
[email protected]