Spring 152

HTTP 요청 데이터 GET / POST

HTTP 요청 메시지를 통해 클라이언트에서 서버로 데이터를 전달하는 방법 GET - 쿼리 파라미터 /request-header?username=son 메시지 바디없이, URL의 쿼리 파라미터에 데이터를 포함하여 전달 검색, 필터, 페이징등에서 많이 사용 POST - HTML form content-type:application/x-www-form-urlencoded 메시지 바디에 쿼리 파리미터 형식으로 전달 username=son 회원가입, 상품 주문, HTML form 사용 HTTP message body에 데이터를 직접 담아 요청 HTTP API에서 주로 사용(JSON, XML, TEXT) 데이터 형식은 주로 JSON POST,PUT,PATCH GET 쿼리 파라미터 쿼리 파라미터는 URL에 다음과 같..

Spring/Spring MVC 2021.04.04

HTTPServletRequest

서블릿은 개발자가 HTTP 요청 메시지를 편리하게 사용할 수 있도록 HTTP 요청 메시지를 파싱한다. 그 결과를 HTTPServletRequest 객체에 담아서 제공한다. Post / save HTTP/1.1 ==> START LINE HTTP 메소드 URL 쿼리 스트링 스키마, 프로토콜 Host: localhost:8080 Content-Type: application/x-www-form-urlencoded ==> 헤더 헤더 조회 username=kim&age=20 ==> 바디 form 파라미터 형식 조회 message body 데이터 직접 조회 HTTPServletRequest 객체는 추가로 여러가지 부가기능도 함께 제공 임시 저장소 기능 해당 HTTP요청이 시작부터 끝날 때 까지 유지되는 임시 저장..

Spring/Spring MVC 2021.04.04

Hello!! Servlet

start.spring.io/ 먼저 프로젝트부터 생성하자. 서블릿을 사용할 것이지만 스프링을 사용하는 이유는 스프링 부트내부에 톰캣 서버도 내장하고있고 설정이 편리한 부분도 있기 때문에 스프링 프로젝트를 만들고 그 안에서 서블릿을 사용 Packaging은 War로 설정해야 JSP를 사용할 수 있음. 라이브러리 설정과 환경 설정부분은 생략하겠음. www.postman.com/downloads/ Download Postman | Try Postman for Free Try Postman for free! Join 13 million developers who rely on Postman, the collaboration platform for API development. Create better APIs—..

Spring/Spring MVC 2021.04.03

동시 요청 - Multi Thread

Thread가 호출해준다. 요청 1번이 먼저 처리되는데 처리가 지연이 된다면?? 요청 시 마다 쓰레드를 생성하게되면 다른 쓰레드에서 처리가 지연되는 문제가 발생하더라도 새로 생성한 쓰레드를 통해 다른 요청을 처리할 수 있게 된다. 쓰레드를 생성할 때 CPU도 많이 사용하기 때문에 응답 속도가 늦어짐 이러한 단점들을 해결하기 위해 대부분의 WAS들은 쓰레드 풀을 이용한다. 요청이 들어오면 쓰레드 풀에게 대기 중인 쓰레드를 요청한다.(풀 안에 미리 쓰레드를 생성해둠) 쓰레드 사용이 끝나면 다시 쓰레드 풀에게 반납한다. 쓰레드 풀에 있는 모든 쓰레드가 사용 중이면 요청을 대기시키거나, 거절한다. nGrinder ==> 네이버에서 성능측정을 목적으로 오픈소스로 만든 툴 서버 튜닝에 대한 부분은 백엔드 개발자에게..

Spring/Spring MVC 2021.04.02

Servlet

서블릿(servlet)은 서버에서 웹페이지 등을 동적으로 생성하거나 데이터 처리를 수행하기 위해 자바로 작성된 프로그램이다. servlet은 Java코드 안에 HTML태그가 삽입되며 자바언어로 되어있다. 더보기 GET HTTP/1.1 스펙인 RFC2616의 Section9.3에 따르면 GET은 서버로부터 정보를 조회하기 위해 설계된 메소드입니다. GET은 요청을 전송할 때 필요한 데이터를 Body에 담지 않고, 쿼리스트링을 통해 전송합니다. URL의 끝에 ?와 함께 이름과 값으로 쌍을 이루는 요청 파라미터를 쿼리스트링이라고 부릅니다. 만약, 요청 파라미터가 여러 개이면 &로 연결합니다. 쿼리스트링을 사용하게 되면 URL에 조회 조건을 표시하기 때문에 특정 페이지를 링크하거나 북마크할 수 있습니다. 쿼리스..

Spring/Spring MVC 2021.04.01

Web Server / Web Application Server

웹 브라우져에서 URL을 입력하면 인터넷을 통해 서버에 접근하고 서버 보낸 응답을 웹 브라우져가 화면을 띄워준다. 정적 리소스는 그냥 정적 파일과 같은 의미로 이해하면 된다. 요청이 들어왔을 때 이미 만들어져있는 리소스를 그대로 응답해주는 것. 프로그래밍을 할 수 있기 때문에 사용자에 따라서 다른 화면을 보여준다던가하는 동적인 기능을 수행할 수 있다. 단순히 이미지, HTML, CSS, JS파일을 가져오기만 하면 되는 정적 리소스때문에 애플리케이션 로직이 영향을 받아선 안된다. 앞선 WAS에 많은 부하가 걸리는 문제점으로 인해 위와 같은 대체로 위와 같이 웹을 구성한다. Web Server를 앞에두어 정적리소스에 관련된 처리를 하고, 동적이 로직이 필요하다면 WAS가 처리 어떤 것이 많이 사용되는지에 따..

Spring/Spring MVC 2021.04.01

웹 스코프

웹 스코프는 웹 환경에서만 동작하고, 스프링이 해당 스코프의 종료시점까지 관리하므로 종료 메서드가 호출된다. 웹 스코프 종류 request : HTTP요청 하나가 들어오고 나갈 때까지 유지되는 스코프, 각각의 HTTP 요청마다 별도의 빈 인스턴스가 생성되고 관리된다. session : HTTP Session과 동일한 생명주기를 가지는 스코프 application : 서블릿 컨텍스트(ServletContext)와 동일한 생명주기를 가지는 스코프 websocket : 웹 소켓과 동일한 생명주기를 가지는 스코프웹 환경에서만 동작하고, 스프링이 해당 스코프의 종료시점까지 관리하므로 종료 메서드가 호출된다. 클라이언트 A와 B는 서로 다른 빈 인스턴스를 가지게된다. request 스코프 만들기 웹 환경 추가 웹 ..

Spring/Spring Core 2021.03.29

프로토타입 스코프 - 싱글톤 빈과 함께 사용시 문제점 / 해결법

스프링 컨테이너에 프로토타입 스코프의 빈을 요청하면 항상 새로운 객체 인스턴스를 생성해서 반환한다. 하지만 싱글톤 빈과 함께 사용할 때는 의도한 대로 잘 동작하지 않으므로 주의해야 한다. 프로토타입 빈 직접 요청 클라이언트 A는 스프링 컨테이너에 프로토타입 빈을 요청 스프링 컨테이너는 프로토타입 빈을 새로 생성해서 반환(x01)한다. 해당 빈의 count 필드 값은 0이다. 클라이언트는 조회한 프로토타입 빈에 addCount()를 호출하여 count필드를 +1한다. 결과적으로 프로토타입 빈(x01)의 count 필드의 값은 1이다. 클라이언트 B는 스프링 컨테이너에 프로토타입 빈을 요청한다. 스프링 컨테이너는 프로토타입 빈을 새로 생성하여 반환(x02)한다. 해당 빈의 count 필드 값은 0이다. 클라..

Spring/Spring Core 2021.03.27
반응형