SpringBoot (32) 썸네일형 리스트형 ch2 07. MVC로 관심사를 분리하기(2) - 이론 package com.fastcampus.ch2; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; import java.util.Calendar; // 년월일을 입력하면 요일을 알려주는 원격 프로그램 @RestController public class YoilTelle.. ch2 06. MVC로 관심사를 분리하기 (1) - 실습 1. 관심사의 분리 Separation of Concerns - 이 메소드 하나는 3개의 관심사를 가지고 있다. -> 하나의 메소드 내에 너무 많은 관심사가 있는 것! ->'분리'가 필요하다. " 하나의 메소드는 하나의 관심사만" * 코드의 분리 1) 관심사 2) 변하는 것과 변하지 않는 것 3) 중복 코드 - 별도의 메소드를 만들어서 중복 코드를 제거해야 한다. OOP를 사용하는 주요 목적은 '변경에 대비하는 코드'를 작성하는 것. 예제의 작업 날짜를 계산하는 부분은 '잘 변하지 않는 부분' html이 들어있는 부분은 '자주 변경될 수 있는 부분' -> 이 두 코드는 별도의 메소드로 구분되어야 한다. 2. 단일 책임 원칙 SRP, Single Responsibility Principle - 객체지향 설.. ch2 05. 원격 프로그램으로 응답하기 1. HTTP 요청과 응답 1) 브라우저에 URL 주소를 통해 요청 -> HTTP 요청 메시지를 생성 2) HTTP 요청 메시지가 서버에게 전달 (TCP/IP 연결) - HTTP로 통신하려면 TCP/IP로 연결해야하고, 연결을 하면 두 개의 스트림(I/O스트림)이 생성된다. 하나는 요청, 하나는 응답할 때 쓰인다. 3) 서버가 요청을 받으면 요청한 hello.html파일의 내용을 읽어서 '바디'에 넣는다.(헤더는 톰캣이 자동 완성) 4) 출력 스트림을 통해 응답이 브라우저에게 전달된다. 2. HttpServletResponse로 응답하기 (1) - 앞서 확인한 hello.html과 같은 파일을 '정적 리소스'라고 한다. 요청할 때마다 파일의 내용이 바뀌지 않기 때문이다. - 요청하는 클라이언트마다 다른 .. ch2 04. HTTP 요청과 응답 1. 프로토콜(protocol)이란? - 서로 간의 통신을 위한 약속, 규칙 - 주고 받을 데이터에 대한 형식을 정의한 것 - http도 프로토콜 중 하나이다. 2. HTTP(Hyper Text Transfer Protocol)란? (1) - 단순하고 읽기 쉽다. -> 텍스트 기반의 프로토콜 - Hyper Text -> HTML - 파일에 데이터를 기록하는 방식 1) 텍스트 : Human Readable 2) 바이너리 : 읽기 어렵다. 클라이언트 & 서버 간 텍스트 메시지를 주고 받아서 읽기가 쉽다. 서버가 보내주는 HTML 응답을 보내주면, 브라우저가 받아서 보여준다. 브라우저는 HTTP 프로토콜에 맞게 요청 메시지를 만들어준다. 해당 메시지를 서버에게 보내면, 응답메시지를 보내준다. 2. HTTP(H.. ch2 03. 원격 프로그램에 데이터 전달하기 1. HttpServletRequest - HTTP 요청 정보를 제공 - 브라우저 URL를 통해 요청을하면 톰캣이 요청 정보를 받아서 HttpServletRequest객체를 만든다. 이 객체에 요청 정보를 담아서 전달해주게 된다. /requestInfo라는 프로그램을 요청하면, 해당 URL에 해당하는 프로그램한테 해당 요청 정보가 전달된다. 우리가 원격 프로그램 메소드를 작성할때는 우리가 필요한 것을 매개변수 목록에 적어주면, 그걸 Spring이 제공해준다. 그러면 그 객체에 있는 메소드들을 사용할 수 있게 된다. (우리가 원하는 걸 적으면 Spring이 알아서 제공 -> 편리하다!) 2. HttpServletRequest의 메소드(1) - getScheme() : 프로토콜이 무엇인지 반환 - getSe.. ch2 02. 클라이언트와 서버 1. 클라이언트와 서버 - 클라이언트(client) : 서비스를 요청하는 애플리케이션(or 컴퓨터) - 서버(server) : 서비스(service)를 제공하는 애플리케이션(or 컴퓨터) 2. 서버의 종류 -> 어떤 서비스를 제공하냐에 따라서 나누어진다. - Email server : 이메일 서비스 - File server : 파일 서비스 - Web server : 웹을 서비스 => 우리가 브라우저를 통해서 사용하는 서비스가 모두 'Web'이다. text, image, video 등 웹 서버를 통해 서비스 받는 것. 3. 서버의 포트 만약 111.22.33.44의 ip를 가진 한 대의 컴퓨터에 여러 개의 서버 프로그램이 설치되어 있다고 가정하면, 클라이언트에서는 ip주소만으로는 구분할 수 없다. (같은 .. ch2 01. 원격 프로그램의 작성과 실행 1. 프로그램 등록(보안상 등록된 프로그램만 다른 컴퓨터에서 호출 가능) 2. URL과 프로그램을 연결 @Controller : 외부에서 호출할 수 있는 원격 프로그램이라는 것을 등록 URL과 실행 될 메소드를 연결 @Controller // 1. 프로그램 등록 public class Hello { @RequestMapping("/hello") // 2. URL과 main()을 연결 public void main() { System.out.println("Hello"); } } main()에 static이 없는 것을 확인할 수 있다. static이 없다는 것은 '객체 생성'이 필요하다는 뜻. 이렇게 @Controller로 등록된 프로그램은 Spring이 자동으로 객체를 생성해주기 때문에 이처럼 인스턴스 .. ch1. 환경설정 보호되어 있는 글입니다. 이전 1 2 3 4 다음