본문 바로가기

Spring27

[MVC 패턴] JSP / MVC 패턴 JSP - 자바의 import 문과 같다 - 이 부분에는 자바 코드를 입력할 수 있다. - 이 부분에는 자바 코드를 출력할 수 있다. [MVC 패턴] 서블릿 (Servlet) @ServletComponentScan @SpringBootApplication public class ServletApplication{ public static void main(String[] args){ SpringApplication.run(ServletApplication.class, args); } } 스프링 부트는 서블릿을 직접 등록해서 사용할 수 있도록 @S wodlszz.tistory.com 이 전에 정리한 서블릿 (Servlet)과 JSP는 몇가지 한계점을 가지고 있다. 서블릿으로 개발할 때는 뷰(view)화면을.. 2023. 8. 9.
[MVC 패턴] 서블릿 (Servlet) @ServletComponentScan @SpringBootApplication public class ServletApplication{ public static void main(String[] args){ SpringApplication.run(ServletApplication.class, args); } } 스프링 부트는 서블릿을 직접 등록해서 사용할 수 있도록 @ServletComponentScan을 지원한다. package hello.servlet.basic; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import jav.. 2023. 8. 8.
[Spring 기본] 의존관계 자동 주입 의존관계 주입 방법 1. 생성자 주입 2. 수정자 주입 (setter 주입) 3. 필드 주입 4. 일반 메서드 주입 생성자 주입 - 이름 그대로 생성자를 통해 의존 관계를 주입 받는 방법 - 생성자 호출 시점에 딱 1번만 호출되는 것이 보장 - 불변, 필수 의존관계에 사용 @Component public class OrderServiceImpl implements OrderService{ private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; @Autowired public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy .. 2023. 8. 7.
[Spring 기본] 컴포넌트 스캔 (Component Scan) 컴포넌트 스캔 (Component Scan) - 스프링에서는 설정 정보(AppConfig.class) 없이 자동으로 스프링 빈을 등록하는 컴포넌트 스캔 기능 제공 - 스프링 빈을 등록할 때는 의존관계를 자바 코드로 직접 등록하는 방법 / 컴포넌트 스캔과 자동 의존관계 설정하는 @Autowired를 사용하는 방법이 있음 - @ComponentScan은 탐색 위치에 @Component가 붙은 모든 클래스를 스프링 빈으로 등록 - @Configuration, @Service, @Repository, @Controller, 등의 어노테이션에도 전부 @Component이 포함되어 있어 자동으로 컴포넌트 스캔의 대상 - @Autowired: 의존관계 자동 주입 ■ 컴포넌트 스캔과 자동 의존관계 주입 동작 - @Co.. 2023. 8. 4.
[Spring 기본] 싱글톤 컨테이너 (Singleton Container) ■ 웹 애플리케이션과 싱글톤 - 스프링은 기업용 온라인 서비스 기술을 지원하기 위해 탄생 - 대부분이 웹 애플리케이션 / 웹이 아닌 개발도 얼마든지 개발 가능 - 웹 애플리케이션은 보통 여러 고객이 동시 요청 - 기존에 만들었던 스프링 없는 순수한 DI 컨테이너인 AppConfig는 요청 할 때마다 객체 새로 생성 - 메모리 낭비 → 해결방안: 싱글톤 패턴!! ■ 싱글톤 패턴 - 클래스의 인스턴스(객체)가 딱 1개만 생성되는 것을 보장하는 디자인 패턴 - 객체 인스턴스를 2개 이상 생성하지 못하도록 방지 → private 생성자를 사용해 외부에서 임의로 new 키워드를 사용하지 못하도록 함 ■ 싱글톤 패턴 구현 방법 - static 영역에 객체 instance를 미리 하나 생성 - 오직 getInstan.. 2023. 8. 3.
[Spring 기본] SOLID원칙과 IoC, DI ■ 좋은 객체 지향 설계 5가지 원칙 (SOLID) SRP(Single Responsibility Principle): 단일 책임 원칙 OCP(Open Closed Priciple): 개방 폐쇄 원칙 LSP(Listov Substitution Priciple): 리스코프 치환 원칙 ISP(Interface Segregation Principle): 인터페이스 분리 원칙 DIP(Dependency Inversion Principle): 의존 역전 원칙 코드 작성시 발생하는 DIP 문제 예시 클라이언트 코드 OrderServiceImpl 은 DiscountPolicy의 인터페이스 뿐만 아니라 구체 클래스도 함께 의존 → 이를 해결하기 위함이 관심사 분리 → 애플리케이션의 전체 동작 방식을 구성(config).. 2023. 7. 31.
[HTTP] HTTP Method ■ HTTP 주요 메서드 GET: 리소스 조회 POST: 요청 데이터 처리, 주로 등록에 사용 PUT: 리소스 대체, 해당 리소스가 없으면 생성 PATCH: 리소스 부분 변경 DELETE: 리소스 삭제 ● GET 리소스 조회 서버에 전달하고 싶은 query(쿼리 파라미터, 쿼리 스트링)를 통해서 전달 ● POST 요청 데이터 처리 메시지 바디를 통해 서버로 요청 데이터 전달 서버는 요청 데이터 처리 (메시지 바디를 통해 들어온 데이터를 처리하는 모든 기능 수행 주로 전달된 데이터로 신규 리소스 등록, 프로세스 처리에 사용 ● PUT 리소스를 대체 (리소스가 있으면 대체, 리소스가 없으면 생성) → 덮어씌움 클라이언트가 리소스를 식별 (클라이언트가 리소스 위치를 알고 URI 지정 → POST와 차이점) ●.. 2023. 6. 25.