본문 바로가기

부스트코스

(8)
[부스트코스 웹 프로그래밍] 파일 업로드 / 다운로드 부스트코스 웹 프로그래밍 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 모듈을 사용하여, 백엔드 프로그래밍의 기본 프레임워크를 잡는다. ..
[부스트코스 웹 프로그래밍] 스프링 JDBC 부스트코스 웹 프로그래밍 BE 영상을 보며 공부한 것을 간단히 정리한다. 1. Spring JDBC 이전에 쓰던 JDBC 를 그대로 갖다쓰면, 반복적인 코드가 많아서 전체적으로 코드가 매우 지저분해짐. Spring JDBC는 이러한 반복작업을 대신해주어, 사용자가 처리해야할 부분을 간소화 시킴. 1) 개발자가 해야할 일은? 원래 JDBC 설정 프로세스 중, 볼드친 부분만 개발자가 작성하고 나머지는 스프링 프레임워크가 알아서 해줌. 연결 파라미터 정의 연결 오픈 SQL 문 지정 파라미터 선언과 파라미터 값 제공 Statement 준비와 실행 결과를 반복하는 루프 설정 각 이터레이션에대한 작업 수행 모든 예외 처리 트랜잭션 제어 연결, Statement, resultset 닫기 2) DTO, DAO, Con..
[부스트코스 웹 프로그래밍] 스프링과 DI 컨테이너 부스트코스 웹 프로그래밍 BE 영상을 보며 공부한 것을 간단히 정리한다. 1. Spring IoC / DI 컨테이너 컨테이너 컨테이너는 인스턴스의 생명주기를 관리한다. 또, 생성된 인스턴스에게 추가적인 기능을 제공한다. 예를 들어, 톰캣(WAS)는 Servlet 컨테이너를 통해 Servlet 요청을 해결한다. IoC (Inversion of Contorl) 오브젝트의 제어권을 개발자의 코드가 아니라, 컨테이너가 가져가는 것을 의미한다. 즉, 개발자는 오브젝트를 직접 실행하는 것이 아니라, 컨테이너에게 요청하여 받아온다. DI (Dependency Injection) 클래스 간의 의존 관계를 코드가 아닌, 컨테이너가 직접 주입해주는 것을 의미한다. 클래스 간의 의존 관계는 Bean 설정을 바탕으로 작성한다..
[부스트코스 웹 프로그래밍] 자바 웹 개발 기초 부스트코스 웹 프로그래밍 BE 영상을 보며 공부한 것을 간단히 정리한다. 1. 자바를 이용한 웹 개발 기초 웹 서버와 WAS란? 웹 서버 클라이언트에에게 HTML 문서나 각종 리소스를 응답을 전달해주는 역할. 서버 범위 중 클라이언트와 가장 맞닿아 있음. ex. Nginx, Apache WAS (Web application server) 웹 어플리케이션이 동작하도록 지원하는 목적을 가짐. 즉, 서비스 및 비즈니스 로직을 담고있는 서버. ex. Tomcat 보통 WAS 도 웹 서버 기능을 내장하지만, 규모가 커지면 이 둘을 분리. 웹 서버는 주로 정적 컨텐츠를, WAS 는 동적 컨텐츠를 지원. Servlet 과 JSP Servlet 웹에서 동작해야하는 로직을 담고있는 클래스(코드) uri 매핑, 다른 로직..