개념.log/Spring 15

@RequestMapping

2023.02.23 - [🐢 Study/Spring boot] - 2. REST-API 설계 2. REST-API 설계REST-API (Representational State Transfer API) REST API 제대로 알고 사용하기 : NHN Cloud Meetup REST API 제대로 알고 사용하기 meetup.nhncloud.com 스프링 부트를 활용한 REST-API 서버 구성 스프링 부트 프레임워크는 애ljg960730.tistory.com RequestMappingHandlerMapping DispatcherServlet이 클라이언트의 요청을 처리할 때는 RequestMappingHandlerMapping 컴포넌트의 메서드를 이용하여 클라이언트의 요청과 매칭되는 핸들러 메서드를 조회할..

개념.log/Spring 2023.02.23

Spring Web MVC - MVC 패턴

2023.02.04 - [🐢 Study/Spring boot] - 1. Spring Web MVC(1) - Servlet 1. Spring Web MVC(1) - ServletHTTP 기본 0. HTTP 상태 코드 HTTP 상태 코드 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 아래는 HTTP(하이퍼텍스트 전송 프로토콜) 응답 상태 코드의 목록이다. IANA가 현재 공ljg960730.tistory.com  MVC 패턴- Model, View, Controller 역할에 따라 크게 세 가지로 분류하고 각 역할을 수행하도록 패턴으로 만든 것. Controller 사용자의 요청을 받아 어떻게 처리할지 결정하는 역할로 요청을 분석하는 역할을 담당한다.데이터를 처리하는데 필요한 HTT..

개념.log/Spring 2023.02.11

Spring Web MVC - Servlet

HTTP 기본0. HTTP 상태 코드 HTTP 상태 코드 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 아래는 HTTP(하이퍼텍스트 전송 프로토콜) 응답 상태 코드의 목록이다. IANA가 현재 공식 HTTP 상ljg960730.tistory.com  자바 플랫폼 엔터프라이즈 에디션 ( Java Platform Enterprise Edition , Java EE 또는 J2EE)- 자바 언어를 사용하여 엔터프라이즈 애플리케이션을 만들 수 있는 플랫폼인 동시에 표준 스펙의 집합.- 웹 애플리케이션 (JSP, Servlet) 부터 데이터베이스 접근 (JDBC)이나 자바 메시징 처리 (JMS) 까지 다룬다.   1. Servlet- J2EE의 스펙 중 서블릿은 HTTP 프로토콜을 사용하여 ..

개념.log/Spring 2023.02.04

0. 스프링 빈 톺아보기

스프링 빈 사용* 클래스를 스프링 빈으로 만드는 스프링 빈 정의를 설정한다.* 설정된 스프링 빈 정의를 스프링 빈 컨테이너가 찾을 수 있도록 설정한다.* 서로 의존성이 있는 스프링 빈들을 조립할 수 있도록 설정한다.    스프링 애플리케이션의 시작과정1. 스프링 빈 컨테이너 구현체에 따라 정해진 포맷의 설정파일 로딩 (XML, 자바 클래스, 그루비 등...)    - 스프링 부트의 기본 스프링 빈 컨테이너 구현체는 ConfigurationApplicationConetext 이며 설정 포맷은 자바클래스이다. 2. 지정된 클래스 패스에 위치한 클래스들을 스캔하고, 스프링 빈 정의가 있으면 로딩.3. 로딩 끝낸 후 스스프링 빈 컨테이너는 정의된 대로 스프링 빈으로 생성하고 컨테이너에서 관리.4. 스프링 빈들 ..

개념.log/Spring 2023.01.26

java 코드를 이용한 Spring-MVC 환경 설정

순수 자바 클래스와 어노테이션을 이용한 시동 0. 개요 Servlet 3.0 이상 버전부터는 web.xml 없이 서블릿 컨텍스트를 초기화할 수 있는 방법이 나왔습니다. 따라서 servlet, filter, listener 컴포넌트의 등록과 설정을 코드로 입력하여 사용 가능하고 web.xml 파일과 같이 사용할 수 도 있습니다. 그래서 ServletContext에 관련 메소드들이 추가되었습니다. 이 메소드들을 사용하기 위해서 ServletContainerInitializer의 onStartup 메소드를 적절하게 호출하면 됩니다. 코드로 설정하는 것의 장점은 최종 사용자나 어플리케이션이 DD(deployment descriptor, 일명 web.xml)를 배포하지 않고도 프레임워크의 web component..

개념.log/Spring 2022.02.15

@Bean VS @Component

@Bean vs @Component @Bean 과 @Component 사용하는 이유? IoC Container는 @Configuration, @Bean, @Component, @Repository, @Service, @Controller가 달린 클래스를 감지하며 빈을 가져오기 위해 빈 스캐닝을 합니다. 대표적으로 빈으로 사용 할 수 있도록 해주는 어노테이션으로 @Bean과 @Component이 있다. (@Configuration은 구성클래스를 만들 때 사용, @Repository, @Service, @Controller는 @Component에 속해있다.) 👉 @Bean @Bean은 개발자가 직접 제어가 불가능한 외부 라이브러리를 사용할 때 사용한다. @Configuration을 선언한 클래스 내부에서 사..

개념.log/Spring 2021.08.15

Springboot exception (@ControllerAdvise, @ExceptionHandler)

Springboot Exception 처리 @ControllerAdvise @ControllerAdvice는 모든 @Controller 즉, 전역에서 발생할 수 있는 예외를 잡아 처리해주는 annotation이다. @RestControllerAdvice public class GlobalControllerAdvice { @ExceptionHandler(value = Exception.class) public ResponseEntity exception(Exception e) { System.out.println(e.getClass().getName()); System.out.println(e.getLocalizedMessage()); return ResponseEntity.status(HttpStatus..

개념.log/Spring 2021.08.15

Filter vs Interceptor vs AOP

👋 들어가기 전 Filter Interceptor AOP 세가지 기능이 모두 비슷한 기능을 하는데, 이들이 필요한 이유는 프로그램을 만들거나 작업을 할 때 공통되는 부분이 굉장히 많다. 예를 들어, 인증 처리라던지, XSS로부터 보안 처리, 로깅 처리, 페이지 인코딩도 포함될 것이다. 이렇게 프로그램 내에서 자주 사용되는 기능을 소스 여러 군데에 사용되고 있으면 소스 양도 늘어날 것이고, 프로젝트 단위가 커질수록 서버에 대한 부하, 유지보수에 어려움을 겪을 수 있다! 쉽게 말해서 공통되는 부분은 빼서 관리하는게 좋다. 위와 같이 공통되는 기능을 처리해주는 기능을 Spring이 제공한다. 위 세가지 기능에 대해 알아보고, 차이점들을 알아보자! Filter, Interceptor, AOP의 흐름 서버를 실행..

개념.log/Spring 2021.08.14

[JPA] JPA Auditing

JPA Auditing이란? Java에서 ORM 기술인 JPA를 사용하여 도메인을 관계형 데이터베이스 테이블에 매핑할 때 공통적으로 도메인들이 가지고 있는 필드나 컬럼들이 존재합니다. 대표적으로 생성일자, 수정일자, 식별자 같은 필드 및 컬럼이 있습니다. 도메인마다 공통으로 존재한다는 의미는 결국 코드가 중복된다는 말과 일맥상통합니다. 데이터베이스에서 누가, 언제하였는지 기록을 잘 남겨놓아야 합니다. 그렇기 때문에 생성일, 수정일 컬럼은 대단히 중요한 데이터 입니다. 그래서 JPA에서는 Audit이라는 기능을 제공하고 있습니다. Audit은 감시하다, 감사하다라는 뜻으로 Spring Data JPA에서 시간에 대해서 자동으로 값을 넣어주는 기능입니다. 도메인을 영속성 컨텍스트에 저장하거나 조회를 수행한 ..

개념.log/Spring 2021.06.02

MyBatis를 이용한 DB연동

오늘 만들 것많은 API는 DB로부터 데이터를 불러오거나 사용자로부터 전달받은 데이터를 DB에 저장하는 작업을 수행합니다. 오늘은 MyBatis를 이용해 DB에 접속하고, DB로부터 간단한 값을 불러오는 기능을 구현합니다.만약 이미 MyBatis를 접해보셨거나 사용법을 알고 계신다면 굳이 이번 글은 자세히 보지 않으셔도 됩니다.   사전 설정practice계정에 members 테이블을 생성해서 데이터 삽입더보기CREATE TABLE "PRACTICE"."MEMBERS"( "SEQ" NUMBER(*,0) NOT NULL ENABLE, "NAME" VARCHAR2(255 BYTE) NOT NULL ENABLE, "COUNTRY" VARCHAR2(255 BYTE) NOT NULL ENABLE,..

개념.log/Spring 2020.12.30
반응형