Spring(14)
-
Spring Validation 정복하기
이번에 회사에서 Validation을 도입하면서 추가적으로 배운 Spring Validation에 대해 작성해보겠습니다.일단 기존의 저희 회사에서는 Application 단에서의 값 검증은 이루어 지지 않았었습니다. 일단 업무 자체가 하나의 기능을 개발할때 협업을 하기보단 본인이 해당 기능, 해당 페이지에 대해Front, API 까지 개발을 혼자 담당하는 경우가 많기 때문이었습니다. 이러한 업무 특성상 굳이 데이터 검증할 필요성을 못느끼셨던 것 같습니다.어차피 화면에서도 체크를하고 DB에서도 데이터 타입이 지정되어 있으면 최소한의 데이터 정합성은 흐트러지지 않으니까요하지만 제 개인적인 생각으로는 이러한 업무 방식은 좋지 못하다고 판단 되었습니다. 첫번째, 클라이언트에서는 값이 변조되기가 쉽습니다. 브라우..
2024.05.07 -
Spring 에서 전략패턴 적용해보기
전략 패턴이란? 전략 패턴은 GoF 디자인 패턴 중 객체의 행위를 변경할 수 있게 하는 디자인 패턴입니다. 이 패턴은 여러 알고리즘을 하나의 추상적인 접근점(인터페이스)을 통해 각각의 알고리즘을 캡슐화하여 사용할 수 있도록 합니다. 클라이언트는 런타임에 알고리즘을 선택할 수 있으므로, 같은 문제를 다른 방식으로 해결할 수 있는 유연성을 제공합니다. 전략 패턴의 구성 요소 전략 패턴은 주로 세가지 주요 구성 요소로 이루어집니다: Context (문맥): 전략을 사용하는 역할을 합니다. Context는 필요에 따라 다른 Strategy를 사용할 수 있습니다. Strategy (전략): 여러 알고리즘을 인터페이스로 정의합니다. 모든 전략은 이 인터페이스를 구현합니다. ConcreteStrategy (구체적인 ..
2024.04.14 -
Spring의 Event
스프링 프레임워크는 개발자들이 애플리케이션 내에서 발생하는 다양한 이벤트를 효율적으로 관리하고 처리할 수 있도록, 강력한 이벤트 리스너(Event Listener) 메커니즘을 제공합니다. 이 메커니즘은 pub/sub 패턴의 구현을 단순화하며, 애플리케이션의 결합도를 낮추고 유지보수성을 높이는 데 도움을 줍니다. 이벤트 리스너를 활용하면, 특정 이벤트가 발생했을 때 실행되어야 할 비즈니스 로직을 캡슐화하고, 애플리케이션의 다른 부분과 독립적으로 관리할 수 있습니다. 이벤트 기반 프로그래밍의 이점 낮은 결합도(Low Coupling): 이벤트 프로듀서(발행자)와 컨슈머(소비자) 간의 직접적인 의존성을 제거합니다. 이벤트 프로듀서는 이벤트가 발생했다는 사실만 알리고, 이벤트를 처리하는 로직은 별도의 리스너에서..
2024.03.31 -
Annotaion
아시다 싶이 Spring은 Annotation을 기반으로 운영되는 프레임 워크입니다. @Component, @Controller, @Repository, @Transactional, @Aspect 등 다양한 어노테이션이 있습니다. 그렇다면 Annotation이란? 어노테이션은 주석과 비슷합니다. 실제로 컴파일러를 돌려도 주석으로 나오게 됩니다. 즉, 코드 사이에 주석처럼 쓰이면서 특별한 의미, 기능을 수행하도록 하는 기술로써 프로그램에게 추가적인 정보를 제공해주는 일종의 메타 데이터입니다. 어노테이션은 활용 용도는 다음과 같습니다. 1) 컴파일러에게 문법 에러를 체크하도록 정보를 제공합니다. 2) IDE가 빌드나 매치 시 코드를 자동으로 생성할 수 있도록 정보를 재공합니다. 3) 런타임 시 특정 기능을 ..
2023.06.18 -
Servlet과 PSA
서블릿 서블릿(Servlet)은 자바를 기반으로 웹 애플리케이션을 개발하기 위한 서버 사이드 프로그래밍 기술입니다. 서블릿은 클라이언트의 요청에 대해 동적으로 처리하고, 웹 서버와 상호작용하여 웹 애플리케이션의 동작을 제어하는 역할을 수행합니다. 서블릿은 javax.servlet.Servlet 인터페이스를 구현하여 작성되며, 웹 애플리케이션 서버(예: Apache Tomcat)에서 실행됩니다. 서블릿은 클라이언트의 요청을 처리하고, 그에 따른 응답을 생성하여 클라이언트에게 반환합니다. 서블릿의 주요 특징 생명주기(Lifecycle): 서블릿은 초기화(Initialization), 요청 처리(Service), 종료(Destruction)의 생명주기를 가지고 있습니다. 이를 통해 서블릿은 초기 설정, 요청 ..
2023.05.29 -
스프링의 3대 핵심 요소
스프링에서 가장 대표적인 핵심 요소가 3가지 정도에 대해서 알아보겠습니다. 1. PSA, Portable Service Abstraction PSA는 서비스의 추상화를 의미하며 Spring이 다른 기술을 추상화하여 개발자가 각 기술의 구현 세부 정보에 대해 걱정하지 않아도 일관된 방식으로 사용할 수 있게 해주도록 합니다. 기본적으로 스프링은 Servlet을 기반으로 운영되게 됩니다. 스프링 이전에는 우리가 아는 것처럼 단순히 @RequestMapping 어노테이션을 붙인다고 해서 API가 만들어 지지는 않았습니다. 이전에는 webapp의 web.xml(DD, 배포 서술자로도 불립니다.)에 이러한 url 정보들을 적어 놓고 이를 받는 java 클래스에서 doGet, doPost를 overide하여 실질적인..
2023.05.21