| 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 분 · 1317 단어 · 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 분 · 988 단어 · In-Jun

서블릿 Filter

서블릿 필터의 개념과 역사 서블릿 필터(Servlet Filter)는 2001년 발표된 Servlet 2.3 명세에서 처음 도입된 기능으로, 서블릿이 HTTP 요청을 처리하기 전과 응답을 클라이언트에게 보내기 전에 요청과 응답을 가로채어 전처리(preprocessing)와 후처리(postprocessing)를 수행하는 자바 컴포넌트이며, 이 기능의 도입으로 인증, 로깅, 문자 인코딩, 데이터 압축 같은 횡단 관심사(cross-cutting concerns)를 비즈니스 로직과 분리하여 재사용 가능한 형태로 구현할 수 있게 되었고, Chain of Responsibility 디자인 패턴을 기반으로 여러 필터를 체인 형태로 연결하여 순차적으로 실행할 수 있는 구조를 제공한다. ...

2024년 6월 4일 · 5 분 · 919 단어 · 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의 대안으로 등장하여 POJO(Plain Old Java Object) 기반의 경량 개발 방식을 제시했다. EJB 2.x는 컨테이너에 강하게 결합되어 있어 단위 테스트가 어렵고 XML 설정이 방대했으며 개발 생산성이 낮았는데, Spring은 IoC(Inversion of Control)와 DI(Dependency Injection) 개념을 핵심으로 하여 객체 간의 결합도를 낮추고 테스트 용이성을 높였다. ...

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