본문 바로가기

백엔드 개발/SpringMVC

HTTP 요청과 이론 HTTP란 무엇인가? 요청메세지와 응답메세지의 구조, 내용이 어떻게 되는가? 1. HTTP란 무엇인가? HTTP (Hyper Text Transfer Protocol) : 텍스트 기반 전송 프로토콜이다. (1) Protocol (프로토콜)이란? Protocol은 데이터를 주고 받는 형식에 대한 약속이다. 코치와 투수가 사인을 약속했다고 치자. 모자는 번트 대기, 코는 희생 플라이를 쳐라, 귀 만지면 히트 앤 런 해라 이다. 두 사람이 서로 맞춘 사인이 프로토콜의 일종이다. 만약 투수가 사인들을 안 외웠다면 코치가 아무리 사인을 보내도 못 알아 먹을 것이다. 이와 마찬가지로, 클라이언트와 서버간에 프로토콜이 안 맞춰져 있으면, 클라이언트에서 아무리 요청을 보내도, 서버는 그 내용을 읽을 수 없다. (2) .. 더보기
설정 파일 - server.xml 과 web.xml 원격 프로그램을 서버에 설치 하려면 1. 서블릿에 프로그램 등록 2. URL과 등록된 프로그램 연결 이 필요했다. 스프링이 없던 옛날 옛날에는 이 모든 작업을 xml에서 했다. 이 복잡한 작업이 Spring의 Annotation으로 대체 된 것이다. 1. xml 설정 파일의 종류 이름 역할 특징 톰캣설치경로/conf/server.xml Tomcat 서버 설정 파일 스프링 프로젝트에 보이는 server.xml은 톰캣의 conf 폴더에 있는 server.xml의 복사본이다. 따라서 스프링 프로젝트에서 커스터 마이징 해도 본체에는 영향이 가지 않는다. 이를 이용해 하나의 프로젝트에 대해 여러가지 다른 서버 설정을 하고 돌릴 수 있다. (테스트 서버 설정, 베타 서버 설정 등 ) 톰캣설치경로/conf/web.x.. 더보기
클라이언트와 서버 1. 클라이언트에서 요청을 보내고 서버에서 해당 요청에 맞는 서비스를 어떻게 제공하는지 그 과정에 대해 자세히 다룸 2. 요청문 쿼리를 자세히 살펴보고, 요청에서 같이 보내온 값을 사용하는 자바 명령어에 대해 배움 1. 클라이언트와 서버 상호작용 과정 (1) 서버 요청이 포트에 들어오기 까지 Binding : 하나의 포트가 하나의 서버와 연결되어 있는 상태를 말한다. (서버와 포트는 1 대 1 연결만 가능하다.) listening : 하나의 서버가 포트에서 요청을 기다리고 있는 상태를 말한다. 파일 서버는 파일 서비스 제공, 이메일 서버는 이메일 서비스 제공, 웹 서버는 브라우저를 통해서 받을 수 있는 모든 서비스를 제공 ** WAS (Web Application Service)란? 웹 어플리케이션을 서.. 더보기
HTTP 요청과 응답 (예제) 1. 브라우저 새로 고침 할 때마다 랜덤 주사위가 나오는 예제 package com.fastcampus.ch2; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; // 해당 자바 클래스를 컨트롤러로 등록 // 컨트롤러로 등록하면, 브라우저(view)에서 어떤 요청이 왔을 때, // 이 클래스의 내용(model)과 일치하면 이 클래스를 쓰겠다고 선언하는 것임. // Contr.. 더보기
HTTP 요청에 대한 응답을 브라우저에 띄우기 (예제) 1. 원리 (1) [Local Console에서 실행] main method에 값을 받아 처리하는 경우 ㄱ. 소스코드 import java.util.Calendar; public class main { public static void main(string[] args) { // 1. 입력 String year = args[0]; String month = args[1]; String day = args[2]; // 2. 처리 //(1) String 값을 Int로 바꿈. int yyyy = Integer.parseInt(year); int mm = Integer.parseInt(month); int dd = Integer.parseInt(day); //(2) 날짜 객체 생성 및 객체에 값 넣어주기. Ca.. 더보기
AWS에 배포하기 1. 만든 파일 Export -> 확장자 .war 파일로 2. AWS 열고 인스턴스 실행, RDS로 열기 원격 데스크톱 다운로드(인스턴스 중지했다 실행하면 항상 퍼블릭 주소가 변경 되기 때문에 원격 데스크톱 다시 다운 받아야함.) 3. 로컬 컴퓨터 내에 있는 비밀번호 이용하여 key 찾고 암호 적기 4. 원격 컴퓨터 접속 -> Apache 파일 내 Webapps 폴더에 아까 Export한 파일을 붙여넣기 5. 톰캣 실행 6. 로컬 컴퓨터에서 접속하면 원격 컴퓨터의 톰캣이 일을 실행 아주 기초적인 뼈대이지만, a 컴퓨터에서 서버를 열고 b 컴퓨터에서 접속하는 것을 해봤다. 나는 할 수 있다 시발 더보기
원격 프로그램 실행하기 0. 로컬 프로그램 실행 vs 원격 프로그램 실행 로컬 프로그램은 인터프리터나 컴파일러만 있으면 가능하다. 반면 원격 프로그램은 브라우저와 tomcat 같은 WAS가 있어야 실행할 수 있다. ** 인터프리터와 컴파일러의 차이 둘 다 번역기 이다. 컴파일러는 소스 코드를 한번에 기계어로 바꾸어 메모리에 적재 (번역 속도가 빠름) 인터프리터는 코드 한 행씩 중간 코드로 번역하여 실행 python이 인터프리터 쓰는 언어, C나 C++이 컴파일러 언어 자바는 두 개 다 있음. 1. 원형의 형태 package com.fastcampus.ch2; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotatio.. 더보기
개발 도구 소개 JDK는 자바 개발 도구의 줄임말 Oracle JDK와 Open JDK로 나눠져 있었는데, 오라클도 무료로 풀면서 합쳐짐. Java의 Spec에는 SE, EE, ME가 있다. SE - standard edition으로 일반적인 우리가 사용하는 것이다. EE - enterprise edition으로 서버용이다. ME - micro edition으로 소형 기기용이다. 우리가 쓸 Tomcat은 EE의 부분 집합이다. EE 스펙의 일부만 구현했다는 소리이다. servlet, jsp, eL, websocket등을 구현했다. vcs는 버전 컨트롤 시스템이다. 다 같이 작업할 때 서로 파일 버젼이 틀린 것을 관리 해주는 시스템이다. git이 vcs 중 하나 인데, 무료이지만 복잡하다. 하지만 강력하다. git-hub.. 더보기