본문 바로가기

더 나은 엔지니어가 되기 위해/지금은 안쓰는 자바

(35)
[스프링 부트 개념과 활용] 내장 웹서버 이해와 .JAR 생성 이 글은 인프런에서 백기선님의 스프링부트 개념과 활용 강의를 듣고, 개인적으로 공부하며 핵심만 정리한 글입니다. 내장 웹 서버 이해 스프링 부트는 서버가 아니다. 스프링 부트의 자동 설정에, 톰캣의 설정과 구동이 포함되어 있다. 외부 라이브러리로 포함된 org.springframework.boot.autoconfigure.web.servlet 에서 ServletWebServerFactoryAutoConfiguration.java 를 열어보면, ... @Import({ServletWebServerFactoryAutoConfiguration.BeanPostProcessorsRegistrar.class, EmbeddedTomcat.class, EmbeddedJetty.class, EmbeddedUndertow..
[스프링 부트 개념과 활용] 의존성 관리, 자동 설정 이해 이 글은 인프런에서 백기선님의 스프링부트 개념과 활용 강의를 듣고, 개인적으로 공부하며 핵심만 정리한 글입니다. 의존성 관리 1) pom.xml 에서의 parent pom.xml 내부를 살펴보면, 다음과 같은 부분이 있다. org.springframework.boot spring-boot-starter-parent 2.2.4.RELEASE spring-boot-starter-parent 는 스프링 프레임워크가 제공해주는 것으로, 여기에 활용할 수 있는 많은 라이브러리 정보가 '이미' 담겨져 있다. 정확히는 spring-boot-starter-parent 가 dependency 로 들어오는 외부 라이브러리들의 버전 및 각 라이브러리들의 의존성을 관리한다. 어떻게 관리하냐면, spring-boot-start..
[스프링 부트 개념과 활용] 스프링 부트 프로젝트 만들기 인프런에서 백기선님의 스프링부트 개념과 활용 강의를 듣고, 개인적으로 공부하며 핵심만 정리한 글입니다. 스프링 부트 프로젝트 만들기 1) 프로젝트 생성 Spring Initializr 에서 기본 프로젝트 구성 생성 가능. 이 외에도 IntelliJ 에서 일반 Maven, gradle project 로 생성 가능. 2) pom.xml 기본 템플릿 공식 사이트의 Getting Started 페이지 에서 다음과 같이 기본 maven 템플릿을 제공해줌. (Spring Initializr 으로 만들면 기본적으로 포함되어 있음) 4.0.0 com.example myproject 0.0.1-SNAPSHOT org.springframework.boot spring-boot-starter-parent 2.2.4.RELE..
[부스트코스 웹 프로그래밍] 파일 업로드 / 다운로드 부스트코스 웹 프로그래밍 BE 영상을 보며 공부한 것을 간단히 정리한다. 1. 파일 업로드 Multipart 웹 클라이언트가 요청을 보낼 때 HTTP프로토콜의 바디 부분에 데이터를 여러 부분으로 나눠서 보내는 것. 보통 파일을 보낼 때 사용함. 파일 업로드 라이브러리 기본적으로 요청 정보에 사용하는 HttpServletRequest 는 Multipart 데이터를 쉽게 처리하는 메소드를 제공하지 않음. 따라서 다음과 같은 별도의 라이브러리를 사용한다. commons-fileupload commons-io 구현 1) dependency 추가 pom.xml 에 다음 라이브러리들을 추가한다. commons-fileupload commons-fileupload 1.2.1 commons-io commons-io 1..
[부스트코스 웹 프로그래밍] 로깅 부스트코스 웹 프로그래밍 BE 영상을 보며 공부한 것을 간단히 정리한다. 1. 로깅 로깅 로깅은 로그를 남기는 작업으로, 프로그램 실행 동작을 일련의 기록으로 남겨놓는 일이다. 로그는 재현하기 힘든 버그, 성능에 대한 통계 등에 대한 유용한 정보를 제공할 수 있다. 따라서, 로깅 작업은 실제 서비스 개발에 필수적. 로그 관련 라이브러리 java.util.logging JDK 1.4 부터 표준 로깅 API Apache Commons logging 아파치 재단에 Commons 라이브러리 중에 로그 출력을 제공하는 라이브러리 Spirng 은 기본적으로 이 라이브러리를 사용 Log4j 아파치 제단에서 제공하며 가장 많이 사용되는 로깅 라이브러리 Logback Log4j의 단점 개선 및 기능을 추가하여 개발한 로..
[부스트코스 웹 프로그래밍] 인터셉터와 아규먼트 리졸버 부스트코스 웹 프로그래밍 BE 영상을 보며 공부한 것을 간단히 정리한다. 1. 인터셉터 인터셉터 (Interceptor) 인터셉터는 다음의 상황에서 뭔가를 제어해야할 때 동작하는 객체다. Dispatcher servlet -> Handler(Controller) 요청을 보낼 때 Handler -> Dispathcer servlet 응답을 보낼 때 예를 들어, 요청이 오고 로그를 기록해야 할 때 인터셉터를 활용할 수 있다. 구현 1) 커스텀 HandlerInterceptor 구현 HandlerInterceptorAdapter 를 상속받아 기존의 HandlerInterceptor 의 메쏘드를 오버라이드 하면 된다. public class LogInterceptor extends HandlerIntercept..
[부스트코스 웹 프로그래밍] 쿠키와 세션 부스트코스 웹 프로그래밍 BE 영상을 보며 공부한 것을 간단히 정리한다. 1. 쿠키와 세션 개념 쿠키 사용자 컴퓨터에 저장 저장된 정보를 다른 사람이나 시스템이 볼 수 있음 유효기간이 지나면 사라짐 세션 서버에 저장 서버가 종료되거나 유효기간이 지나면 사라짐 동작 과정 1) 쿠키 2) 세션 구현 1) 쿠키 쿠키는 javax.servlet.http.Cookie 에 (키, 값) 형태로 구현되어 있다. // 서버에서 쿠키 생성 Cookie cookie = new Cookie(키, 값); // 클라이언트가 보낸 쿠키 읽기 (방법 1) Cookie[] cookies = request.getCookies(); if(cookies != null) { for(Cookie cookie : cookies) { if("ke..
[부스트코스 웹 프로그래밍] 스프링 MVC 부스트코스 웹 프로그래밍 BE 영상을 보며 공부한 것을 간단히 정리한다. 1. Spring MVC Spring MVC 란 Spring 프레임워크에서 제공하는 웹 모듈이다. MVC 는 Model-View-Controller 의 약자로, 기본 시스템 모듈을 MVC 로 나누어 구현되어있다. Model 은 '데이터' 디자인을 담당한다. ex. 상품 목록, 주문 내역 등 View 는 '실제로 렌더링되어 보이는 페이지' 를 담당한다. ex. .JSP 파일들이 여기에 해당된다. Controller 는 사용자의 요청을 받고, 응답을 주는 로직을 담당한다. ex. GET 등의 uri 매핑이 여기에 해당된다. Spring MVC 모듈을 사용하여, 백엔드 프로그래밍의 기본 프레임워크를 잡는다. ..