본문 바로가기

전체 글

(96)
김영한 - 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 5일차 로깅 간단히 알아보기 운영 시스템에서 System.out.println() 같은 시스템 콘솔을 사용해서 필요한 정보를 출력하지 않고, 별도의 로깅 라이브러리를 사용해서 로그를 출력한다. 로깅 라이브러리 스프링 부트 라이브러리를 사용하면 스프링 부트 로깅 라이브러리(spring-boot-starter-logging)가 함께 포함된다. 스프링 부트 라이브러리는 기본으로 다음 로깅 라이브러리를 사용한다. SLF4J LogBack 로그라이브러리는 LogBack , Log4J , Log4J2 등등 수 많은 라이브러리가 있는데 그것을 통해서 인터페이스로 제공하는 것이 SLF4J 라이브러리다. 로그선언 1. 2. @Slf4j : 롬복 사용 가능 @RestController @Controller 는 반환 값이 Stri..
김영한 - 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 4일차 스프링 MVC 전체 구조 직접 만든 프레임 워크 -> 스프링 MVC 비교 FrontController -> DispatcherServlet handlerMappingMap -> HandlerMapping MyHandlerAdapter -> HandlerAdapter ModelView -> ModelAndView viewResolver -> viewResolver MyView -> View DispatcherServlet 구조 DispatcherServlet도 부모 클래스에서 HttpServlet을 상속 받아서 사용하고, 서블릿으로 동작한다. Dispatcher -> FrameworkServlet -> HttpServletBean -> HttpServlet 스프링 부트는 DispatcherServlet을 ..
김영한 - 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 3일차 MVC 프레임워크 만들기 프론트 컨트롤러 패턴 프론트 컨트롤러 서블릿 하나로 클라이언트 요청을 받음 프론트 컨트롤러 요청에 맞는 컨트롤러를 찾아서 호출 공통 처리 가능 프론트 컨트롤러를 제외한 나머지 컨트롤러는 서블릿을 사용하지 않아도 됨 package hello.servlet.web.frontcontroller.v1; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; public interface ControllerV1 { void process(HttpServletRe..
김영한 - 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 2일차 서블릿으로 간단한 회원관리 웹 애플리케이션 만들기 package hello.servlet.domain.member; import lombok.Getter; import lombok.Setter; @Getter @Setter public class Member { private Long id; private String username; private int age; public Member(){ } public Member(String username, int age) { this.username = username; this.age = age; } } package hello.servlet.domain.member; import java.util.ArrayList; import java.util.Has..
김영한 - 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 1일차 웹 서버(Web Server) HTTP 기반으로 동작 정적 리소스 제공 EX) 정적 HTML, CSS, JS, 이미지, 영상 EX) APACHE 웹 애플리케이션 서버(WAS - Web Application Server) HTTP 기반으로 동작 웹 서버 기능 포함 + (정적 리소스 제공 가능) 프로그램 코드를 실행해서 애플리케이션 로직 수행 EX) 동적 HTML , HTTP API(JSON) EX) 서블릿, JSP, 스프링 MVC EX) 톰캣 서블릿 HTTP 요청 정보를 편리하게 사용 할 수 있는 HttpServletRequest HTTP 응답 정보를 편리하게 제공 할 수 있는 HttpServletResponse HTTP 요청,응답 흐름 WAS는 Request , Response 객체를 새로 만들어서 서블..
김영한 HTTP 웹 기본 지식 3일차 HTTP 헤더 HTTP 헤더 용도 HTTP 전송에 필요한 모든 부가정보 EX) 메시지 바디의 내용, 메시지 바디의 크기, 압축 , 인증, 요청 클라이언트 , 서버 정보 헤더 분류 General 헤더: 메시지 전체에 적용되는 정보 예) Connection: close Request 헤더: 요청 정보 예) User-Agent: Mozilla/5.0 Response 헤더: 응답 정보 예) Server: Apache Entity 헤더: 엔티티 바디 정보 예) Content-Type: text/html HTTP BODY HTTP/1.1 200 OK Content-Type: text/html;charset=UTF-8 Content-Length: 3423 ... 메시지 본문은 엔티티본문을 전달하는데 사용 엔티티본문은..
김영한 HTTP 웹 기본 지식 2일차 HTTP 메소드 활용 클라이언트에서 서버로 데이터 전송 2가지 방식 1. 쿼리 파라미터를 통한 데이터 전송 GET 주로 정렬 필터(검색어) 2. 메시지 바디를 통한 데이터 전송 POST, PUT, PATCH 회원 가입, 상품 주문, 리소스 등록, 리소스 변경 클라이언트에서 서버로 데이터 전송 4가지 상황 1. 정적 데이터 조회 - 이미지, 정적 테스트 문서 2. 동적 데이터 조회 - 주로 검색,게시판 목록에서 정렬 필터(검색어) 3. HTML Form을 통한 데이터 전송 - 회원 가입, 상품 주문, 데이터 변경 4. HTTP API를 통한 데이터 전송 - 회원 가입, 상품 주문, 데이터 변경 , 서버 to 서버 , 앱 클라이언트,웹 클라이언트(Ajax) 3. HTML Form을 통한 데이터 전송 HTML..
김영한 HTTP 웹 기본 지식 1일차 인터넷 네트워크 IP(인터넷 프로토콜) 지정한 IP 주소(IP Address)에 데이터 전달 패킷이라는 통신 단위로 데이터 전달 IP 프로토콜의 한계 비연결성 : 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 비신뢰성 : 패킷이 중간에 사라지거나 , 패킷이 순서대로 도착하지 않을 수도 있음. 인터넷 프로토콜 스택의 4계층 애플리케이션 계층 - HTTP , FTP 전송 계층- TCP , UDP 인터넷 계층-IP 네트워크 인터페이스 계층 TCP(전송 제어 프로토콜) 연결지향 - TCP 3 way handshake 데이터 전달 보증 순서 보장 신뢰할 수 있는 프로토콜 연결지향 - TCP 3 way handshake 클라이언트 - 서버 사이에서 3단계로 1.SYN , 2.SYN+ACK 3.ACK 로..