1. 프레임 워크(Frame + Work) : 복잡한 문제를 해결하거나 서술하는데 사용되는 기본 개념 구조이다.
틀을 제공하여 안정성을 높이고 효율성을 증가
나의 이해 및 정리 : 틀,뼈대 안에서 개발하기 쉽게 만들어진 것이다. 잘하는 사람들은 실수 없이 작성 할 수 있고 못하는 사람들에게는 쉽고 접근하기 쉽게 틀이 짜여져 있다. 따라서 모든 사람들이 프레임워크 안에 있을 경우 이해하기 쉬운 틀 안에서 이용하게된다.
2. 스프링
- Tomcat 에 내장되어 있으며, Front Controller 패턴이 자동으로 적용된다.
- Class 이름은 파스칼 표기법을 이용한다. (첫글자, 단어가 서로 연결 되거나 꺽일 때 대문자 사용)
Ex) FirstController
3. 스프링 프레임워크 규칙
- URL (Uniform Resource Location) : 파일의 이름을 찾아가서 호출
단점 : 공통 로직이 존재하지 않는다.
- URI (Uniform Resource Identifier) : 식별자(Front Controller)를 만들어 호출
Servlet을 타고 이동하며 공통 로직을 만들 수 있다.
하지만 Servlet 은 요청을 받았을 때 응답하기 힘들다. (HTML을 Data로 변환하기 어렵기 때문)
Rest Controller : Data 를 찾아 Return
Controller : file을 Return
Web에서는 Content Type 으로 식별한다.( 확장자명으로 식별 X)
- Socket : 양 끝단에 포트번호를 달아서 통신한다.
URL 사용 시 단점을 해결하기 위해서 JSP를 이용하면 HTML에 JAVA 코드를 섞어서 표현 가능 하지만 JSP는 부하가 발생 하기 때문에 URI 사용 하면서 JSP 파일 방식을 채택하면 두가지 장점을 사용 할 수 있다.
4. HTML(Hyper Text Markup Language)
최초의 HTTP 프로토콜은 GET 방식만 사용가능하며 전송이 불가능하기 때문에 Content Type 필요 하지 않았다.
- Inputstream : 숫자로 받는다.
- Inputstreamreader : 문자로 받을 수 있고 여러 자를 받을 수 있지만, 가변길이의 데이터 받기가 어렵다.
=> 두 가지의 단점을 해결하기 위해서 Buffer 사용하는 방법을 채택한다.(가변성)
5. Apache / Tomcat
6. Stateless Server & Stateful Server
- Client에서 jsp 파일을 요청할때, Apache는 Tomcat에 요청을 위임한다.
- Javascript에는 Java 이식 가능 → 1. Java → 2. Javascript 순
- 하지만, Java 에서는 Javascript 사용불가 → 타이밍 상 해석이 불가능
- Stateless : request(요청) 와 response(응답) 이 한번 이뤄지고 나면 연결이 끊어진다.
→ 즉, 이전 사용자를 알수 없다(html)
- Stateful : request(요청) 와 response(응답) 이 계속해서 가능하다.
→ 하지만, 무거워서 사용이 힘들다.
- http 프로토콜에서는 get 방식만 사용가능, 전송불가( content type 필요 x )
- http 1.0 부터 post 방식 도입
- 그러나 Stateless server는 매 요청마다 상태정보를 전달해야하는 문제점 존재
※ Stateful : server side에 client와 server의 동작, 상태정보를 저장하는 형태
따라서 , Stateless server를 유지하면서 stateful 처럼 사용하는 방법 고안 → 그 방법이 cookie & session
- Get 방식에는 request에 body 존재 x → content type 필요 x
- Post 방식에는 request 와 response 에 모두 header와 body가 존재
Scope 에는 4가지 종류가 있는데, 그 중 session 과 request에 대해 알아보자
예를 들어, 클라이언트가 서버에 ID 와 PASSWD 정보를 전달한다.
서버는 받은 ID 값을 세션에 저장하고 response를 보내며 클라이언트에 쿠키를 저장한다.
7. response.Sendredirect 과 response.Dispatcher
- Redirection 사용 시 기존의 request를 삭제하고 새로운 request를 생성
→ Model 에서 View 로 Data 전달 불가
→ 경로만 이동
- Dispatcher 사용 시 기존의 request를 새로운 request 생성 시 덮어씌움
→ Model 에서 View 로 Data 전달 가능
→ 이동하면서 request를 들고 이동
'Programming > SpringBoot' 카테고리의 다른 글
Spring Boot 6강 - 로그인, 회원가입 (0) | 2021.09.19 |
---|---|
Spring Boot 5강 - Json, Thread, DB연결 (2) | 2021.09.18 |
Spring Boot 4강 - Mustache, JSP 연결 (0) | 2021.09.05 |
Spring Boot 3강 - 어노테이션, IOC, DI (0) | 2021.09.05 |
Spring Boot 1강 - 환경설정 (0) | 2021.08.31 |