본문 바로가기

전체 글176

(스프링MVC1편-백엔드 웹 개발 핵심 기술) 2-(4)HttpServletRequest 기본 사용법, (5) HTTP요청 데이터 - 개요 - HttpServletRequest 기본 사용법 헤더 정보 출력 해보기 package hello.servlet.basic.request; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Enumeration; @WebServlet(name = "requestHeaderServlet", urlP.. 2023. 5. 2.
(스프링MVC1편-백엔드 웹 개발 핵심 기술) 2-(2) Hello서블릿, (3) HttpServletRequest-개요 - Hello 서블릿 스프링 부트 환경에서 서블릿 등록하고 사용해보기 서블릿은 톰캣 같은 웹 애플리케이션 서버 직접 설치하고 그 위에 서블릿 코드를 클래스 파일로 빌드해서 올린 다음, 톰캣 섭버를 실행하면 되지만 이 과정이 번거롭기 때문에 스프링 부트 환경에 내장돼 있는 톰캣 서버를 활용해서 서블릿 코드를 실행해볼 예정 package hello.servlet.basic; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpS.. 2023. 5. 2.
spring 평가 대비 1. Spring DI Spring Framework의 특징 POJO(Plain Old Java Object) 방식의 프레임워크 POJO란? 오래된 방식의 간단한 자바 오브젝트 JavaEE 등의 중량 프레임워크들을 사용하며 해당 프레임워크에 종속된 무거운 객체를 만들게 된 것에 반발해 사용하게 된 용어 특정 기술에 종속되어 동작하는 것이 아닌 순수한 자바 객체를 의미함 왜 POJO를 지향해야 하는가? 가독성 떨어지고 유지보수의 어려움 특정 기술의 클래스를 상속받거나, 직접 의존하게 되어 확장성이 매우 떨어지는 단점 ⇒ Java의 장점인 객체지향 설계의 장점을 잃어버리게 된 것 특정 기술을 사용하고 싶다면? (스프링이 POJO를 유지하면서 Hibernate를 사용할 수 있는 이유) ⇒ PSA 의존성 주입(.. 2023. 5. 1.
(스프링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.
운영체제 (3)-Process 보호되어 있는 글 입니다. 2023. 4. 30.
(스프링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.