728x90

[ JAVA ]/JAVA Spring 35

[ Spring ] Spring Interceptor - 소개

Spring Interceptor는 Servlet Filter와 같이 WEB과 관련된 공통 관심 사항을 효과적으로 해결할 수 있는 기술입니다. Servlet Filter가 Servlet이 제공하는 기술이라면, Spring Interceptor는 SpringMVC가 제공하는 기술입니다. 둘 다 WEB과 관련된 공통 관심 사항을 처리하지만, 적용되는 순서와 범위, 그리고 사용방법이 다릅니다. 오늘은 SpringMVC가 제공하는 Interceptor에 대해 알아보겠습니다. Spring Interceptor 흐름 Spring Interceptor의 흐름에 대해 먼저 알고 넘어가자면 다음과 같습니다. HTTP 요청 -> WAS -> Filter -> Servlet -> Spring Interceptor -> Co..

[ Spring ] @SessionAttribute Session Search

오늘은 Spring에서 Session을 더 편리하게 사용할 수 있도록 지원해 주는 @SessionAttribute 애노테이션을 포스팅해보겠습니다. @SessionAttribute 란? @SessionAttribute는 Controller 밖에서 만들어준 Session 데이터에 접근할 때 사용합니다. (Interceptor , Filter 등) Session은 여러 화면이나 요청에서 사용해야 하는 객체를 공유할 때 사용할 수 있는데, HttpSession으로 객체 자체를 값을 넣어줄 수 있고, 사용할 수 있습니다. 해당 HttpSession보다 더 추상화된 방법으로 사용되는 것이 @SessionAttribute 애노테이션입니다. 간단한 조회 메서드를 통해서 알아보자면 @GetMapping("/") publ..

[ Spring Boot ] Bean Validation - HTTP Message Converter

오늘은 Bean Validation 검증 마지막 챕터인 HTTP Message Converter를 포스팅해 보겠습니다. 이전 포스팅으로 Bean Validation의 개념부터 Form 전송 객체 분리까지 알아봤습니다. [ Spring Boot ] Bean Validation 취업 후 회사 설루션 고도화 작업에 투입하면서 여러 가지 코드를 경험하고 기간 내에 끝내야 하는 상황이라서 포스팅을 신경 못쓰고 있었네요.. 오늘부터 포스팅을 다시 시작해보려고 합니다. drg2524.tistory.com [ Spring Boot ] Bean Validation - Form 전송 객체 분리 이전 포스팅에서 Bean Validation의 Groups 기능까지 알아봤습니다. 오늘은 이어서 Form 전송 객체 분리 방식에 ..

[ Spring Boot ] Bean Validation - Form 전송 객체 분리

이전 포스팅에서 Bean Validation의 Groups 기능까지 알아봤습니다. 오늘은 이어서 Form 전송 객체 분리 방식에 대해 포스팅을 해보겠습니다. [ Spring Boot ] Bean Validation 취업 후 회사 설루션 고도화 작업에 투입하면서 여러 가지 코드를 경험하고 기간 내에 끝내야 하는 상황이라서 포스팅을 신경 못쓰고 있었네요.. 오늘부터 포스팅을 다시 시작해보려고 합니다. drg2524.tistory.com (Form 전송 객체 분리에 나오는 예제 및 소스는 이전 포스팅에 사용된 파일을 기반으로 진행됩니다.) 실무에서는 Groups를 잘 사용하지 않는데, 그 이유는 바로 등록 시 폼에서 전달하는 데이터가 Item 도메인 객체와 딱 맞지 않기 때문입니다. 조금 더 풀어보자면 회원 ..

[ Spring Boot ] Bean Validation

취업 후 회사 설루션 고도화 작업에 투입하면서 여러 가지 코드를 경험하고 기간 내에 끝내야 하는 상황이라서 포스팅을 신경 못쓰고 있었네요.. 오늘부터 포스팅을 다시 시작해보려고 합니다. 오늘은 Bean Validation에 대해 알아보겠습니다. Bean Validation이란 ? 먼저 Bean Validation은 특정한 구현체가 아니라 Bean Validation 2.0(JSR-380)이라는 기술 표준입니다. 쉽게 이야기해서 검증 애노테이션과 여러 인터페이스 모음인데, 마치 JPA가 표준 기술이고 그 구현체로 하이버네이트가 있는 것과 같습니다. Bean Validation을 구현한 기술 중에 일반적으로 사용하는 구현체는 하이버네이트 Validator입니다. 이름이 하이버네이트가 붙어서 그렇게 ORM과는..

[ Spring ] 싱글톤 컨테이너

오늘은 김영한님의 스프링 핵심원리 강의 - 싱글톤 컨테이너 파트의 정리글을 작성해보겠습니다. 강의를 통해서 자연스럽게 코드로 좋은 객체지향의 원리(SOLID)와 IoC, DI에 대해서 이해하고, 또 스프링 컨테이너가 왜 필요한 지 깨달을 수 있었습니다. 또한 스프링의 본실에 대해서 깊이 있는 이해를 할 수 있는 공부였고, 객체 지향 애플리케이션의 설계와 아키텍처 레벨까지 고민하는 개발자로 성장할 수 있는 좋은 공부였습니다. 전체 코드는 아래 깃허브를 참고해 보시면 됩니다. GitHub - KiHwanY/Spring_Core_Principle: 김영한님의 스프링 핵심 원리 강의 김영한님의 스프링 핵심 원리 강의. Contribute to KiHwanY/Spring_Core_Principle developm..

[ Spring ] MappingJacksonValue

오늘은 Spring Framework에서 제공해 주는 MappingJacksonValue 클래스에 대해 포스팅을 해보겠습니다. MappingJacksonValue 란? MappingJacksonValue 는 JSON Serialization(직렬화)을 처리하는 데 사용되며, 주로 Spring MVC(혹은 Spring WebFlux) 기반의 웹 애플리케이션에서 Java 객체를 JSON으로 변환하거나, 반대로 JSON 데이터를 Java 객체로 변환하는 데 사용됩니다. Spring에서는 기본적으로 Jackson 라이브러리를 내부적으로 사용하여 JSOn 데이터를 처리하는데, Jackson은 Java 객체를 JSON으로 변환하고, JSON 데이터를 Java 객체로 변환하는데 매우 효율적이고 강력한 라이브러리입니다..

[ Spring ] 페이지네이션 코드 해석 및 기록

이전에 JSP 포스팅할 때 페이지 나누기 기능에 대해서 개념 및 기능 구현을 했습니다. JSP 페이지 나누기 기능에 대해서 찾아보시는 분들은 아래 포스팅 참고해 주시면 감사합니다..! [ JSP ] 페이지 나누기 오늘은 게시판 만들 때 꼭 필요한 페이지 나누는 기능을 포스팅해보겠습니다! ■ 페이지네이션 웹 사이트에는 게시판을 비롯한 여러 정보들을 페이지 단위로 보여줍니다. 따라서 원하는 자료가 drg2524.tistory.com [ JSP ] 게시판 만들기 6 - 페이지 나누기 기능 구현 이전 포스팅에서 답변 기능을 추가로 구현했습니다. 오늘은 게시판에 여러 정보들을 페이지 단위로 보여주기 위해 페이지네이션 기능을 구현합니다. 게시판 기능/ 파일 구조 1 ) CRUD(글 drg2524.tis..

[ Spring ] Component Scan

Component Scan 컴포넌트 스캔이란 스프링이 스프링 빈(Bean)으로 등록될 준비가 된 클래스들을 스캔하여 빈(Bean)으로 등록해 주는 과정을 말합니다. 지금까지 스프링 빈을 등록할 때는 자바 코드의 @Bean이나 XML의 등을 통해서 설정 정보에 직접 등록한 빈을 나열했는데, 만약 스프링 빈이 수십, 수백 개가 되면 일일이 등록하기도 귀찮고, 설정 정보도 커지고, 누락하는 문제도 발생합니다. 그래서 스프링은 설정 정보가 없어도 자동으로 스프링 빈을 등록하는 컴포넌트 스캔이라는 기능을 제공합니다. 또 의존관계도 자동으로 주입하는 @Autowired라는 기능도 제공합니다. 그럼 예제 코드는 AutoAppConfig.java 파일을 생성해서 진행하겠습니다. AutoAppConfig.java pac..

[ Spring ] AOP 개념 및 설정

AOP(Aspect Oriented Programming) AOP(Aspect Oriented Programming)란 풀 네임을 해석하면 관점 지향 프로그래밍으로, 핵심 로직과 부가 기능을 분리하여 애플리케이션 전체에 걸쳐 사용되는 부가 기능을 모듈화 하여 재사용할 수 있도록 지원해 줍니다. 여기서 모듈화란 공통된 로직이나 기능을 하나의 단위로 묶는 것을 의미하며, AOP를 간단하게 해석하기 위해 예를 들자면, 핵심적인 관점은 비즈니스 로직이 될 수 있고, 부가적인 관점은 핵심 로직을 실행하기 위해 행해지는 데이터베이스 연결, 로깅, 파일 입출력 등이 될 수 있습니다. Aspect(측면, 관점, 관심) Aspect는 부가기능을 정의한 코드인 Advice와 해당 Advice를 적용하는 걸 결정하는 Poi..

728x90