본문 바로가기

전체 글97

[Spring] 빈 스코프 - 싱글톤 빈, 프로토타입 스코프 빈 스코프란? 스코프는 번역 그대로 빈이 존재할 수 있는 범위를 뜻한다 스프링 빈은 기본적으로 싱글톤 스코프로 생성됨 스프링은 다음과 같은 다양한 스코프를 지원한다 싱글톤: 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프이다. 프로토타입: 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프이다 웹 관련 스코프 request: 웹 요청이 들어오고 나갈때 까지 유지되는 스코프이다. session: 웹 세션이 생성되고 종료될 때 까지 유지되는 스코프이다. application: 웹의 서블릿 컨텍스트와 같은 범위로 유지되는 스코프이다. 빈 스코프는 다음과 같이 지정할 수 있다. 컴포넌트 스캔 자동 등록 @Scope(.. 2022. 10. 25.
객체지향 프로그래밍의 5가지 설계 원칙, SOLID 객체지향 5원칙(SOLID)이란? SOLID란 로버트 마틴이 2000년대 초에 명명한 객체 지향 프로그래밍의 다섯 가지 기본 원칙을 마이클 페더스가 원칙의 앞 글자를 따서 다시 SOLID라는 이름으로 소개한 것입니다. SOLID의 5대 원칙을 나열하면 다음과 같습니다. 단일 책임 원칙(Single responsibility principle) : SRP 개방 폐쇄 원칙(Open/closed principle) : OCP 리스코프 치환 원칙(Liskov substitution principle) : LSP 인터페이스 분리 원칙(Interface segregation principle) : ISP 의존관계 역전 원칙(Dependency inversion principle) : DIP 1. 단일 책임의 원칙 .. 2022. 10. 22.
[Spring] 컴포넌트 스캔 1. @ComponentScan 어떤 Annotation을 스캔할지 또는 하지 않을지 결정하는 Filter 기능을 가지고있다. 컴포넌트 스캔을 사용하려면 먼저 @ComponentScan 을 설정 정보에 붙여주면 된다. 컴포넌트 스캔은 이름 그대로 @Component 애노테이션이 붙은 클래스를 스캔해서 스프링 빈으로 등록한다. @Component 를 붙여준다. 여기서 잠깐 @Component는? 2. @Component 컴포넌트 스캔은 @Component 뿐만 아니라 다음과 내용도 추가로 대상에 포함한다. @Component : 컴포넌트 스캔에서 사용 @Controlller : 스프링 MVC 컨트롤러에서 사용 @Service : 스프링 비즈니스 로직에서 사용 @Repository : 스프링 데이터 접근 계.. 2022. 10. 9.
[Spring] 스프링 AOP 김영한의 스프링 강의 공부후 복습하기 위해서 AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 한다고 합니다. 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화하겠다는 것다. 여기서 모듈화란 어떤 공통된 로직이나 기능을 하나의 단위로 묶는 것을 말한다. 각각의 색들은 Concern이라고 보면된다. 여기서 Concern이란 여러 클래스, 메서드에 걸쳐서 나타나는 비슷한 코드들을 의미한다. 각 클래스에 있는 Crosscutting Concerns, 흩어진 관심사를 Aspect로 모듈화하고 핵심적인 비즈니스 로직에서 분리하여 재사용하겠다는 것이 AOP의 취지이다. @Component @Aspect public cl.. 2022. 9. 30.
[Spring] @ResponseBody 사용시 미사용시 @ResponseBody 미사용시 @ResponseBody 사용시 2022. 9. 27.
[Spring] Spring MVC - 세팅 파일 예시 및 설명 스프링 세팅 파일에는 대표적으로 3개의 xml파일이 있다. 1. web.xml (세팅 파일 지정 및 기초 설정) 2. servlet-context.xml (서블릿 - 화면 이동에 관한 세팅) 3. root-context.xml(DB 정보 세팅) web.xml만 이름이 같고 나머지는 이름이 다를수도 있다. 1.web.xml 코드 contextConfigLocation /WEB-INF/spring/root-context.xml org.springframework.web.context.ContextLoaderListener appServlet org.springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/spring/appSer.. 2022. 9. 25.