본문 바로가기

백엔드/스프링

프론트 컨트롤러 패턴 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의 웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., 원 www.inflearn.com 위 강의를 들으며 정리한 글입니다. 프론트 컨트롤러 패턴 모든 요청을 받는 컨트롤러를 하나 둬서 이 컨트롤러가 각 컨트롤러에게 요청을 전달하도록하는 패턴이다. 기존 패턴은 서블릿 매핑으로 각 컨트롤러가 직접 호출됐지만 프론트 컨트롤러를 사용하면 모든 사용자의 요청들은 프론트 컨트롤러를 거쳐가게 된다.. 더보기
Http Request 데이터 형식 정리 웹상에서는 거의 모든 메시지들이 http 프로토콜을 따라 http 메시지로 전달된다. httpServletRequest 객체와 http ServletResponse 객체는 개발자들이 이러한 http 메시지들을 편하게 이용할 수 있도록 도와준다. Http Request http 에서 요청데이터 형식은 3가지중 하나이다. 1. GET - 쿼리 파라미터 Url에 다음과 같이 파라미터가 포함되는 방식이다. 물음표 뒤에 붙는건 전부 파라미터들이고 &로 구분한다. http://www.tistory.com?name=abc&age=100 @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletExcep.. 더보기
스프링 빈 스코프 싱글톤 스코프 : 스프링 컨테이너가 생성되고 내려갈 때까지 같은 객체 프로토타입 스코프 : 매번 요청이 올 때마다 스프링 컨테이너가 새로 생성, 의존관계 주입, 초기화까지 해주고 전달함 프로토타입은 말 그대로 스프링 컨테이너 입장에서는 요청이 오면 만들어서 던져주는 것이기 때문에 관리는 전적으로 클라이언트가 해야한다. 그런데 만약 싱글톤 빈이 프로토타입을 자동주입 받게 되면? 싱글톤 빈은 계속해서 같은 프로토타입의 참조를 들고 있을 것이니 프로토타입이라해도 싱글톤으로 자동주입 들어가는 순간 싱글톤이나 다름 없게 된다. 이를 해결하기 위한 방법은 싱글톤에서 프로토타입 객체를 가져와야할때 매번 스프링 컨테이너에 조회해야 한다. 이를 간단하게 하기 위한 것이 ObjectProvider이다. @Scope("si.. 더보기
스프링 빈 등록 총정리 팩토리 메소드 방식 스프링 빈 등록시의 팩토리 메소드 방식은 아래와 같이 Configuration 클래스를 만들어서 안에 있는 메소드들에 Bean 어노테이션을 달아서 등록하는 방법이다. ( 수동적인 방법 ) @Configuration public class AppConfig { @Bean public MemoryMemeberRepository memberRepository() { return new MemoryMemeberRepository(); } @Bean public MemberService memberService() { return new MemberServiceImple(memberRepository()); } @Bean public OrderService orderService() { ret.. 더보기
스프링 설정 - Xml 형식 항상 자바코드로 작성하고 @Configuration 달면 간단하게 설정이 끝났는데 xml 형식으로 설정하는 법도 알아야 한다고 해서 나름의 삽질 끝에 정리해봤다. @Configuration public class AppConfig { @Bean public MemoryMemeberRepository memberRepository() { return new MemoryMemeberRepository(); } @Bean public MemberService memberService() { return new MemberServiceImple(memberRepository()); } @Bean public OrderService orderService() { return new OrderServiceImpl(.. 더보기
스프링 리액트 연동 Rest API 써보기 데이터베이스 연동 없이 레포지토리 없이 매우 간단하게 방법론만 살펴보겠습니다. 스프링과 리액트를 연동 시킨 후 컨트롤러를 하나 만듭니다. hello()는 스트링 형태의 값을 줄 것이고 helloApi()는 객체를 전달해줍니다. helloApi()는 url로 접근할 시에 파라미터가 필요합니다. 예를 들면 localhost:8080/api/upgrade?name=이름 다음은 리액트 컴포넌트를 수정하겠습니다. 저는 create-react-app으로 만들어서 App.js 파일만 수정하면 됩니다. 더보기