백엔드 36

[Spring] 서블릿

목차 1.서블릿이란 2. HttpServletRequest 3. Http 요청 데이터 4. HttpServletResponse 5. Http 응답 데이터 1. 서블릿이란 HTTP 통신 request, response를 보면 알겠지만, 정보가 매우 많고 파싱이 어렵다. 이를 하나하나 파싱하여 코드로 구현해도 되지만, 시간도 오래걸리고 비효율적일 것이다. 따라서 이러한 과정을 대체해주고, 개발자가 온전히 비즈니스 로직에만 집중할 수 있도록 해주는 것이 등장했는데 이것이 바로 서블릿이다. 1) 서블릿의 작동 과정 1. 개발자가 서블릿 클래스에 코드를 작성한다. 2. 서블릿 소스는 컴파일되며 서블릿 클래스(.class)가 된다. 3. 이것이 톰캣과 같은 내장서버 컨테이너에 등록된다. 4. 클라이언트가 특정 경로..

백엔드/Spring 2022.06.09

[Spring] 웹 애플리케이션 이해

목차 1. 웹 서버, 웹 애플리케이션 서버 2. 서블릿 3. 동시 요청 - 멀티 쓰레드 4. HTML, HTTP API, CSR, SSR 5. 자바 백엔드 웹 기술 역사 1. 웹 서버, 웹 애플리케이션 서버 웹 서버(Web Server) 특징 웹 클라이언트의 요청을 받아서 처리하고, 그 결과를 웹 클라이언트에게 전달한다. 주로 정적 페이지 HTML, CSS, JS 등을 제공할 때 이용된다. 동적 처리가 필요할 땐 웹 애플리케이션 서버에 처리를 넘긴다. 웹 애플리케이션 서버(WAS) 특징 웹 서버로부터 동적 페이지 요청을 받아 요청을 처리하고, 그 결과를 웹 서버로 반환한다. 주로 동적 페이지 생성을 위해 사용된다. 웹 시스템 구성 모형 웹 서버, 웹 애플리케이션 서버의 차이 웹 서버는 정적 리소스, WA..

백엔드/Spring 2022.06.02

[Spring] @RequestMapping 에 대하여

목차 1. @RequestMapping이란 무엇일까? 2. @RequestMapping의 종류 3. Get방식과 Post방식의 차이 1. @RequestMapping이란 무엇일까? 사용자의 url 요청을 Controller의 메소드에 맵핑해주는 어노테이션 예를 들어 아래의 코드를 보며 이해해보자. 클라이언트가 localhost:8080/ url에 요청을 하면 @RequestMapping이 붙은 @Controller 클래스의 메소드인 home()에 url 요청을 맵핑해주게 된다. 2. @RequestMapping의 종류 url 요청방식에는 get, post, delete, patch 가 있는데 아래와 같다. 이는 아래와 같이 더 편한 어노테이션을 통해 똑같이 구현할 수 있다. 3. GET방식과 POST방식..

백엔드/Spring 2022.05.30

[Spring] 스프링 생명주기와 초기화, 종료 콜백

목차 1.스프링 빈의 이벤트 라이프 사이클 2. Bean 객체 예제 3. 초기화 종료 콜백 1. 스프링 빈의 이벤트 라이프 사이클 1. 스프링 컨테이너 생성 -> 2. 스프링 빈 생성 -> 3. 의존관계 주입 -> 4. 초기화 콜백 -> 5. 소멸전 콜백 -> 6. 스프링 종료 스프링은 빈 객체를 생성하고 의존관계 주입이 다 끝난 뒤에야 필요한 데이터를 사용할 준비가 완료된다. 따라서 개발자는 의존관계 주입이 모두 완료된 시점을 알 수 있어야 한다. 운이 좋게도, 스프링은 초기화, 종료 콜백을 통해 의존관계 주입이완료되었다는 것을 알려준다. 2. Bean 객체 예제 NetworkClient public class NetworkClient { private String url; public NetworkC..

백엔드/Spring 2022.05.18

[Spring] 스프링 의존관계 주입 방식의 종류와 생성자 주입 방식을 사용해야 하는 이유

스프링 의존관계 주입 방식의 종류와 생성자 주입 방식을 사용해야 하는 이유 목차 의존관계 주입이란? 의존관계 주입 방법의 종류 생성자 주입을 사용해야 하는 이유 1. 의존관계 주입이란? 의존관계 주입 DI(Dependency Injection) 의존관계는 정적인 클래스 의존관계, 실행 시점에 결정되는 동적인 객체 의존 관계로 구분 된다. 정적인 클래스 의존관계 구현과 역할 그리고 의존으로 나뉜 정적인 클래스 의존관계를 의미한다. 예를 들어 아래의 코드를 보면 MemberServiceImpl은 MemberRepository에 의존한다는 것을 알 수 있다. 하지만 이런 클래스 의존 관계 만으로는 실제 어떤 객체가 MemberServiceImpl에 주입되는지 알 수 없다. (MemberRepository의 구..

백엔드/Spring 2022.05.03

[Spring] 스프링 빈의 동작원리 와 @Bean, @Configuration 어노테이션

목차 스프링 정의 동작 원리 사용코드 어노테이션 장점 스프링 사용 이유 1. 스프링 정의 스프링은 IoC, DI 등을 통해 객체지향의 SOLID 원칙을 지키게 하고, 다양한 기능들을 할 수 있게 해주는 프레임워크이다. IoC란 제어의 역전이다. 제어의 주체가 개발자가 아닌 프레임 워크라는 뜻으로, 외부에서 제어한다는 의미이다. DI는 의존관계 주입이라는 것이다. 프레임워크가 의존관계를 알아서 주입해준다. 컨테이너란? - 특정 객체의 생성과 관리를 담당하며 객체 운용에 필요한 다양한 기능을 제공하는 것. 애플리케이션 운용에 필요한 객체를 생성하고 의존관계를 관리한다는 점에서 스프링도 일종의 컨테이너라고 볼 수 있다. 2. 동작 원리 스프링 컨테이너는 @Configuration 어노테이션이 붙은 AppCon..

백엔드/Spring 2022.04.30
728x90