본문 바로가기

Learning-log126

(스프링MVC1편-백엔드 웹 개발 핵심 기술) 2-(1) 프로젝트 생성 - 프로젝트 생성 스프링 부트 스타터 사이트로 이동해서 스프링 프로젝트 생성 프로젝트 선택 Gradle Java 2.xxx War 선택(보통 Jar선택하는데 War을 선택해야 JSP 를 쓸 수 있음, JSP 돌리려면 WAR선택) Dependency Spring Web Lombok 프로젝트 open. settings에서 Gradle을 IntelliJ 로 바꾸기 Lombok 설정 - Settiongs - annotaion 검색 - annotation processor 에서 맨 위 체크박스 체크 Postman app 다운 및 실행하기 2023. 5. 1.
(스프링MVC1편-백엔드 웹 개발 핵심 기술) 1-(5) 자바 백엔드 웹 기술 역사 자바 백엔드 웹 기술 역사 서블릿 : HTML 생성 어려움 JSP : HTML 생성은 편리, 비즈니스 로직까지 너무 많은 역할 담당 서블릿, JSP 조합 MVC 패턴 사용 : 모델, 뷰, 컨트롤러 역할 나누어 개발 MVC 프레임워크 춘추전국시대(2000초 ~ 2010 초) MVD 패턴 자동화, 복잡한 웹 기술 편리하게 사용할 수 있는 다양한 기능 지원 애노테이션 기반의 스프링 MVC 등장 @Controller MVC 프레임워크의 춘추전국시대 마무리 스프링 부트의 등장 스프링 부트는 서버 내장 과거에 서버에 WAS 직접 설치, 소스는 War 파일을 만들어서 설치한 WAS에 배포 스프링 부트는 빌드 결과에 WAS서버 포함 -> 빌드 배포 단순 스프링 웹 기술의 분화 웹 서블릿 - Spring MVC Web .. 2023. 5. 1.
(스프링MVC1편-백엔드 웹 개발 핵심 기술) 1-(4) HTML, HTTP API, CSR, SSR HTML, HTTP API, CSR, SSR 정적 리소스 고정된 HTML파일, CSS, JS, 이미지, 영상 등 제공 주로 웹 브라우저 이미 생성된 리소스 파일들을 전달해서 제공 HTML 페이지 동적으로 필요한 HTML 파일을 생성해서 전달 웹 브라우저 : HTML 해석 HTTP API HTML이 아니라 데이터를 전달 주로 JSON 형식 사용 다양한 시스템에서 호출 데이터만 주고 받음, UI화면이 필요하면 클라이언트가 별도 처리 앱, 웹 클라이언트, 서버to서버 주문 서버 -> 결제 서버 기업 간 데이터 통신 UI 클라이언트 접점 앱 클라이언트(아이폰, 안드로이드, PC 앱) 웹 브라우저에서 자바스크립트를 통한 HTTP API호출 React, Vue.js 같은 웹 클라이언트 SSR : 서버사이드 렌더링 .. 2023. 4. 30.
(스프링MVC1편-백엔드 웹 개발 핵심 기술) 1-(3) 동시요청 - 멀티 쓰레드 동시요청 - 멀티쓰레드 클라이언트가 요청을하면 WAS가 응답을 하여 TCP/IP 커넥션이 연결되고 Servlet이 호출된다. 그렇다면 이 Servlet은 누가 호출하는 걸까? 바로 쓰레드가 이를 수행한다. 쓰레드 애플리케이션 코드를 하나하나 순차적으로 실행 자바 메인 메서드를 처음 실행하면 main이라는 이름의 쓰레드가 실행 => 쓰레드가 없다면 자바 애플리케이션 실행 불가 쓰레드는 한번에 하나의 코드 라인만 수행 동시 처리가 필요하면 쓰레드를 추가로 생성 단일 요청 - 쓰레드 하나 사용 요청이 오면 쓰레드 하나 할당 쓰레드를 가지고 서블릿 실행 그 쓰레드를 가지고 응답 응답 다 하면 쓰레드 휴식 다중 요청 - 쓰레드 하나 사용 요청 1번 들어옴. 서블릿 내에서 어떤 이유로 요청 처리 지연되는 상황이라 .. 2023. 4. 29.
(스프링MVC1편-백엔드 웹 개발 핵심 기술) 1-(1) 웹 서버, 웹 애플리케이션 서버, (2) 서블릿 본 게시물은 인프런의 '김영한 - 스프링MVC1편-백엔드 웹 개발 핵심 기술' 강의를 수강하며 기록한 강의노트입니다. 웹 서버, 웹 어플리케이션 서버 HTTP 메시지에 모든 것을 전송 HTML, TEXT, IMAGE, 음성, 영상, 파일, JSON, XML(API) 거의 모든 형태의 데이터 전송 웹 서버(Web Server) HTTP를 기반으로 동작하는 서버 정적 리소스 제공, 기타 부가기능 정적(파일)HTML, CSS, JS, 이미지,영상 ex ) NGINX, APACHE 웹 애플리케이션 서버(WAS) HTTP 기반으로 동작 웹 서버 기능 포함 + 정적 리소스 제공 가능 프로그램 코드를 실행해서 애플리케이션 로직 수행 동적 HTML, HTTP API(JSON) 서블릿, JSP, 스프링 MVC ex. 톰.. 2023. 4. 28.
(모든 개발자를 위한 HTTP 웹 기본 지식) 8-(3)~(6) HTTP 헤더2-캐시와 조건부 요청 - 검증 헤더와 조건부 요청2 검증헤더 캐시 데이터와 서버 데이터가 같은지 검증하는 데이터 Last-Modified, ETag 조건부 요청 헤더 검증 헤더로 조건에 따른 분기 If-Modified-Since : Last-Modified 사용 이 이후에 데이터가 수정이 되었는지 물어보는 것! 데이터 미변경 예시 캐시 : 2020.11.10 10:00:00 vs 서버 : 2020.11.10. 10:00:00 304 Not Modified, 헤더 데이터만 전송(Body 미포함) 전송 용량 0.1M (헤더 0.1 M, 바디 1.0 M) 데이터 변경 예시 캐시 : 2020.11.10 10:00:00 vs 서버 : 2020.11.10. 11:00:00 200 OK, 모든 데이터 전송(BODY 포함) 전송 용량 1... 2023. 4. 27.