Loading...

카테고리: SPRING

SPRING/ 스프링 타입 컨터버

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술을 공부하고 정리하는 포스트입니다. 🏷 스프링 타입 컨버터 HTTP 요청 파라미터는 모두 문자로 처리됨. → 즉, 다른 타입으로 변환해서 사용하고 싶으면 변환하는...

SPRING/ API 예외 처리

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술을 공부하고 정리하는 포스트입니다. 🏷 API 예외 처리 API의 경우 어떻게 예외 처리를 할까 오류 페이지는 단순히 고객에게 오류 화면을 보여주고 끝...

SPRING/ 예외 처리와 오류 페이지

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술을 공부하고 정리하는 포스트입니다. 서블릿 예외 처리 스프링이 아닌 순수 서블릿 컨테이너의 예외 처리 2가지 방식을 지원 Exception(예외) response.sendError(HTTP status code, error...

SPRING/ 로그인 처리 - 인터셉터

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술을 공부하고 정리하는 포스트입니다. 스프링 인터셉터 서블릿 필터와 같이 웹 관련 공통 관심 사항을 효과적으로 해결할 수 있는 기술 서블릿 필터 :...

SPRING/ 로그인 처리 - 필터

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술을 공부하고 정리하는 포스트입니다. 공통 관심사항 애플리케이션이 여러 로직에 공통적으로 관심이 있는 것 = 공통 관심사(cross-cutting concern) 일일이 처리할 경우 중복 코드가...

SPRING/ 로그인 처리 - 쿠키, 세션

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술을 공부하고 정리하는 포스트입니다. 로그인 처리 로그인의 핵심 비즈니스 로직 회원을 조회한 다음 파라미터로 넘어온 password와 비교 → 같으면 회원을 반환, 다르면...

SPRING/ Bean Validation

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술을 공부하고 정리하는 포스트입니다. Bean Validation Bean Validation 이란? 특정한 구현체가 아닌 Bean Validation 2.0(JSR-380)이라는 기술 표준 검증 애노테이션과 여러 인터페이스의 모음...

SPRING/ 검증

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술을 공부하고 정리하는 포스트입니다. 검증 검증 직접 처리 사용자가 상품 등록 페이지에 접근(HTTP GET /add) 사용자가 상품 정보를 입력 후 서버로 전송(HTTP...

SPRING/ 메시지, 국제화

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술을 공부하고 정리하는 포스트입니다. 메시지 흩어져 있는 메시지들을 한 곳에서 관리하도록 하는 기능 국제화 접속한 나라에 맞춰서 별도로 메시지를 관리하는 기능 위의...

SPRING/ 타임리프 - 스프링 통합과 폼

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술을 공부하고 정리하는 포스트입니다. 타임리프 스프링 통합 타임리프는 크게 2가지 메뉴얼을 제공. 기본 메뉴얼: https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html 스프링 통합 메뉴얼: https://www.thymeleaf.org/doc/tutorials/3.0/thymeleafspring.html 타임리프는 스프링 없이도...

SPRING/ 타임리프 - 기본 기능

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술을 공부하고 정리하는 포스트입니다. 타임리프 특징 서버 사이드 HTML 렌더링 (SSR) 내츄럴 템플릿 스프링 통합 지원 서버 사이드 HTML 렌더링 (SSR) 타임리프는...

SPRING/ 스프링 MVC 기본 기능 - 웹 페이지 만들기

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술을 공부하고 정리하는 포스트입니다. Thymeleaf(타임리프) 설명 개념 스프링에서 권장하는 템플릿 엔진 TML파일을 가져와서 파싱하고 분석한 후, 정해진 위치에 데이터를 치환해서 웹 페이지를...

SPRING/ 스프링 MVC 기본 기능 - HTTP 응답

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술을 공부하고 정리하는 포스트입니다. HTTP 응답 종류 HTTP Response로 서버에서 클라이언트로 제공하는 데이터를 만드는 방법은 3가지. 정적 리소스 : 웹 브라우저에 정적인...

SPRING/ 스프링 MVC 기본 기능 - HTTP 요청

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술을 공부하고 정리하는 포스트입니다. HTTP 요청 기본, 헤더 조회 HttpServletRequest / HttpServletResponse : 서블릿 기반의 request / response 객체 Httpmethod : HTTP...

SPRING/ 스프링 MVC 기본 기능 - 요청 매핑

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술을 공부하고 정리하는 포스트입니다. 요청 매핑 매핑 정보 @RestController @Controller는 반환 값이 String이면 뷰 이름으로 인식됨 -> 뷰를 찾고 뷰가 랜더링 @RestController는...

SPRING/ 스프링 MVC 기본 기능

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술을 공부하고 정리하는 포스트입니다. 로깅 간단히 알아보기 로그(log)?? 기록을 남기는 것 프로그램 개발이나 운영 시 발생하는 문제점을 추적하거나 운영 상태를 모니터링하는 정보를...

SPRING/ 스프링 MVC 구조 이해

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술을 공부하고 정리하는 포스트입니다. 스프링 MVC 구조 이해 직접 만든 MVC 프레임 워크와 비교 프론트 컨트롤러(Front Controller) 패턴의 MVC 프레임워크와 스프링 MVC의...

SPRING/ MVC 프레임워크 만들기 - V4, V5

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술을 공부하고 정리하는 포스트입니다. MVC 프레임워크 만들기 개요 MVC 패턴에서 발생되는 많은 중복을 개선하기 위해 프론트 컨트롤러(Front Controller) 패턴 도입 공통된 부분을...

SPRING/ MVC 프레임워크 만들기 - V1, V2, V3

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술을 공부하고 정리하는 포스트입니다. MVC 프레임워크 만들기 개요 MVC 패턴에서 발생되는 많은 중복을 개선하기 위해 프론트 컨트롤러(Front Controller) 패턴 도입 공통된 부분을...

SPRING/ 서블릿, JSP, MVC 패턴

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술을 공부하고 정리하는 포스트입니다. 서블릿, JSP, MVC 패턴 개요 Java 백엔드 웹 기술의 역사에 따라 순차적으로 어떻게 발전되었는지 비교 서블릿 -> JSP...

SPRING/ 서블릿

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술을 공부하고 정리하는 포스트입니다. 서블릿(Servlet) 서블릿(Servlet)이란? 클라이언트의 요청을 처리하고 결과를 반환하는 Servlet 클래스의 규칙을 지킨 자바 웹 프로그래밍 기술 자바를 사용하여 웹을...

SPRING/ 웹 애플리케이션 이해

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술을 공부하고 정리하는 포스트입니다. HTTP Hyper Text Transfer Protocol의 약자 HTTP는 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 응용 계층 프로토콜...

SPRING/ 스프링 웹 계층이란?

스프링 MVC

스프링 웹 계층    스프링을 배운 이후 스프링 프로젝트를 진행하던 중 분명히 배운 내용임에도 불구하고 기억하지 못하는 경우가 많이 있다. 그래서 이 기회에 기초부터 다시 싹 정리할 예정이다. 스프링은 어떤 계층이...

SPRING SECURITY/ 스프링 시큐리티 공식문서 번역

스프링 시큐리티 공식문서

이 포스트는 스프링 시큐리티 공식문서를 번역한 포스트입니다. 버전은 5.5.2 버전을 기준으로 하고 있습니다. Ben Alex Luke Taylor Rob Winch Gunnar Hillert Joe Grandja Jay Bryant Eddú Meléndez Josh Cummings Dave...

SPRING FRAMEWORK/ 스프링 AOP 총정리 : 개념, 프록시 기반 AOP, @AOP

스프링 프레임워크 핵심 기술

스프링 프레임워크 핵심기술을 공부하고 정리하는 포스트입니다. 스프링 AOP    AOP란 Aspect-oriented Programming의 약어로 스프링 AOP는 AOP의 구현체를 제공하며, 자바에 만들어져 있는 프레임워크 AspectJ1라는 또 다른 구현체와 연동해서 사용할 수 있는 기능을...

SPRING FRAMEWORK/ SpEL (스프링 Expression Language)

스프링 프레임워크 핵심 기술

스프링 프레임워크 핵심기술을 공부하고 정리하는 포스트입니다. SpEL(Spring Expression Language)    SpEL은 Spring Expression Language의 줄임말로 여기서 Expression Language, 줄여서 EL은 객체 그래프를 조회하거나 조작하는 기능을 제공한다. 예시로 JSP에서 EL을 볼 수...

SPRING FRAMEWORK/ 데이터 바인딩 추상화 : Converter와 Formatter

스프링 프레임워크 핵심 기술

스프링 프레임워크 핵심기술을 공부하고 정리하는 포스트입니다. 데이터 바인딩 추상화 : Converter와 Formatter    PropertyEditor는 Object-String간의 변환만 가능하다. 이러한 단점을 해결하기 위해 생긴 인터페이스가 바로 Converter와 Formatter이다. Converter    Converter는 A 타입을 B...

SPRING FRAMEWORK/ 데이터 바인딩 추상화 : PropertyEditor

스프링 프레임워크 핵심 기술

스프링 프레임워크 핵심기술을 공부하고 정리하는 포스트입니다. 데이터 바인딩 추상화 : PropertyEditor 데이터 바인딩    데이터 바인딩을 두 가지 관점에서 설명하면 다음과 같다. 기술적 관점 프로퍼티 값을 타겟 객체에 설정하는 기능 사용자...

SPRING FRAMEWORK/ Validation 추상화

스프링 프레임워크 핵심 기술

스프링 프레임워크 핵심기술을 공부하고 정리하는 포스트입니다. Validation 추상화    스프링 프레임워크에서 제공하는 추상화 중에는 Validation 추상화가 있다. 이와 관련된 org.springframework.Validation.Validator는 애플리케이션에서 사용하는 객체를 검증하기 위한 인터페이스이다. Validator는 주로 스프링 MVC에서 사용하긴...

SPRING FRAMEWORK/ Resource 추상화

스프링 프레임워크 핵심 기술

스프링 프레임워크 핵심기술을 공부하고 정리하는 포스트입니다. Resource 추상화    스프링 레퍼런스의 아주 많은 부분을 차지하는 추상화 중의 일부분인 Resource 추상화에 대해 알아보자. Resource 추상화는 java.net.URL이라는 클래스를 org.springframework.core.io.Resource 클래스로 감싸서 실제 low-level에...

SPRING FRAMEWORK/ IoC 컨테이너 9부

스프링 프레임워크 핵심 기술

스프링 프레임워크 핵심기술을 공부하고 정리하는 포스트입니다. ResourceLoader    ResourceLoader는 이름에서 알 수 있듯이 리소스를 읽어오는 기능을 제공하는 인터페이스로 ApplicationContext의 상위 인터페이스이다. ▶ AppRunner package me.gracenam.demospring51; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner;...

SPRING FRAMEWORK/ IoC 컨테이너 8부

스프링 프레임워크 핵심 기술

스프링 프레임워크 핵심기술을 공부하고 정리하는 포스트입니다. ApplicationEventPublisher    ApplicationEventPublisher는 옵저버 패턴(observer pattern)의 구현체로 이벤트 기반의 프로그래밍을 할 때 유용한 인터페이스이다. 이것 역시 ApplicationContext의 상위 인터페이스이다. 간단한 코드를 통해서 더 알아보자. 일단...

SPRING FRAMEWORK/ IoC 컨테이너 7부

스프링 프레임워크 핵심 기술

스프링 프레임워크 핵심기술을 공부하고 정리하는 포스트입니다. MessageSource    MessageSource는 국제화(i18n) 기능을 제공하는 인터페이스로 쉽게 말해 메세지를 다국화하는 방법이다. 이것 역시 ApplicationContext가 상속받고 있는 기능이다. MessageSource의 기능을 간단하게 살펴보자. resource 폴더 아래에...

SPRING FRAMEWORK/ IoC 컨테이너 6부

스프링 프레임워크 핵심 기술

스프링 프레임워크 핵심기술을 공부하고 정리하는 포스트입니다. Environment    Environment는 ApplicationContext의 기능 중 하나로 EnvironmentCapable이라는 인터페이스를 상속받은 것이다. EnvironmentCapable이 제공하는 기능이 두 가지가 있는데 바로 프로파일(Profile)과 프로퍼티(Properties)이다. 프로파일 Profile    프로파일은 빈들을 묶은...

SPRING FRAMEWORK/ IoC 컨테이너 5부

스프링 프레임워크 핵심 기술

스프링 프레임워크 핵심기술을 공부하고 정리하는 포스트입니다. 빈의 스코프    빈의 Scope에는 싱글톤과 프로토타입이 있는데, 스프링 IoC 컨테이너에 등록되는 빈들은 기본적으로 싱글톤으로 등록이 된다. 싱글톤은 해당 빈의 인스턴스를 오직 하나만 생성해 모든...

SPRING FRAMEWORK/ IoC 컨테이너 4부

스프링 프레임워크 핵심 기술

스프링 프레임워크 핵심기술을 공부하고 정리하는 포스트입니다. @Component와 @ComponentScan    @Service나 @Repository 같은 애노테이션을 사용해서 빈으로 등록을 할 수 있다. 여기서 한 가지 궁금증이 생긴다. 어떻게 빈으로 등록을 할 수 있는 것일까?...

SPRING FRAMEWORK/ IoC 컨테이너 3부

스프링 프레임워크 핵심 기술

스프링 프레임워크 핵심기술을 공부하고 정리하는 포스트입니다. @Autowire    @Autowired 애노테이션은 이 애노테이션이 붙은 객체. 즉, 필요한 의존 객체의 타입에 해당하는 빈을 찾아서 주입해준다. Autowired를 사용할 수 있는 위치는 총 세 곳으로...

SPRING FRAMEWORK/ IoC 컨테이너 2부

스프링 프레임워크 핵심 기술

스프링 프레임워크 핵심기술을 공부하고 정리하는 포스트입니다. ApplicationContext    ApplicationContext인터페이스는 BeanFactory처럼 IoC 컨테이너로서의 기능과 더불어 다양한 기능을 제공해주는 인터페이스이다. 다음 예제에서 ApplicationContext를 사용해 빈으로 등록하는 법을 알아보자. Xml을 직접 만들어서 의존성 주입...

SPRING FRAMEWORK/ IoC 컨테이너 1부

스프링 프레임워크 핵심 기술

스프링 프레임워크 핵심기술을 공부하고 정리하는 포스트입니다. IoC 컨테이너 IoC란?    Inversion of Control의 약자로 의존 관계 주입(Dependency Injection)이라고도 하며, 어떠한 객체가 사용하는 의존 객체를 직접 만들어 사용하는 것이 아니라, 주입 받아...

SPRING REVISED EDITION/ 스프링 PSA

예제로 배우는 스프링 입문

예제로 배우는 스프링 입문 (개정판)의 내용을 정리하는 포스트 스프링 PSA PSA?? PSA는 Protable Service Abstraction의 약자로 스프링이 제공하는 것으로 Spring Triangle의 한 요소이다. 지금까지 Servlet Application을 만들고 있지만 Servlet을 전혀...

SPRING REVISED EDITION/ 스프링 @AOP 실습

예제로 배우는 스프링 입문

예제로 배우는 스프링 입문 (개정판)의 내용을 정리하는 포스트 스프링 @AOP 실습 스프링 AOP를 사용하여 성능 측정해보기 Annotation을 활용하여 성능 측정을 해보자. 성능을 측정하고 싶은 메소드에 annotation을 붙여서 콘솔에 성능이 출력되도록...

SPRING REVISED EDITION/ 프록시 패턴

예제로 배우는 스프링 입문

예제로 배우는 스프링 입문 (개정판)의 내용을 정리하는 포스트 프록시 패턴 새로운 패키지(proxy)를 만들고 Payment라는 인터페이스를 만든다. Payment.java package org.springframework.samples.petclinic.proxy; public interface Payment { void pay(int amount); } Store.java package org.springframework.samples.petclinic.proxy;...

SPRING REVISED EDITION/ 스프링 AOP

예제로 배우는 스프링 입문

예제로 배우는 스프링 입문 (개정판)의 내용을 정리하는 포스트 스프링 AOP AOP가 뭐야? 스프링에는 IoC, AOP, PSA 세 가지 개념을 제공해주는 Spring Triangle이라고 부르는 개념이 있다. AOP는 Aspect Oriented Programming의 약자로...

SPRING REVISED EDITION/ 의존성 주입(Dependency Injection)

예제로 배우는 스프링 입문

예제로 배우는 스프링 입문 (개정판)의 내용을 정리하는 포스트 의존성 주입(Dependency Injection) @Autowired Autowired라는 annotation을 사용할 수 있는 지점은 필드, 센터, 생성자 등이 있다. Spring 4.3 부터 어떠한 클래스에 생성자가 하나뿐이고...

SPRING REVISED EDITION/ 스프링 빈(Bean)

예제로 배우는 스프링 입문

예제로 배우는 스프링 입문 (개정판)의 내용을 정리하는 포스트 스프링 빈(Bean) 빈(Bean) 일반적인 객체인데 스프링 IoC 컨테이너가 관리하는 객체를 빈(Bean)이라고 한다. 가령 어떠한 객체를 만들었을 때, 직접 new를 사용하여 만든 그...

SPRING REVISED EDITION/ 스프링 IoC 컨테이너

예제로 배우는 스프링 입문

예제로 배우는 스프링 입문 (개정판)의 내용을 정리하는 포스트 스프링 IoC 컨테이너 IoC(Inversion of Control) 컨테이너 스프링이 제공하는 컨테이너로 핵심적인 클래스이지만 실제로 참고해서 쓸 일은 거의 없다. IoC 컨테이너로 BeanFactory 또는...

SPRING REVISED EDITION/ 스프링 IoC

예제로 배우는 스프링 입문

예제로 배우는 스프링 입문 (개정판)의 내용을 정리하는 포스트 스프링 IoC Inversion of Control Inversion of Control은 해석하면 제어권이 뒤바뀌었다는 말인데 이게 무슨 말일까? 일반적인 (의존성에 대한) 제어권: “내가 사용할 의존성은...