인프런 강의 中 김영한 강사님의 '스프링 핵심 원리' 내용을 정리했습니다. 지난 시간에 하나의 인스턴스로 운영되는 싱글턴 빈과 호출을 할 때마다 새로 생성되는 프로토타입 빈에 대해서 학습해 보았다. 이번 시간에는 웹 환경에서 동작하는 웹 스코프에 대해서 김영한 강사님의 강의를 들으며 학습해보자! 목차 빈 스코프란? 프로토타입 스코프 프로토타입 스코프 - 싱글톤 빈과 함께 사용 시 문제점 프로토타입 스코프 - 싱글톤 빈과 함께 사용 시 Provider로 문제 해결 웹 스코프 request 스코프 예제 만들기 스코프와 Provider 스코프와 프록시 1. 웹 스코프 웹 스코프는 웹 환경에서만 동작하며 프로토타입 스코프와 다르게 스프링이 해당 스코프의 종료시점까지 관리한다. 따라서 종료 메서드가 호출된다. 웹..
인프런 강의 中 김영한 강사님의 '스프링 핵심 원리' 내용을 정리했습니다. Section8에서 우리는 빈의 생명주기 동안 초기화와 종료 시점을 콜백하는 방법에 대해서 알아보았다. 이 때, 우리는 자연스럽게 빈이 스프링 컨테이너의 시작과 함께 생성되고 스프링 컨테이너가 종료될 때까지 유지되었다가 함께 소멸된다고 이해하고 콜백 함수를 사용했다. 그런데 말입니다.. 과연 모든 빈들이 스프링 컨테이너와 생명주기를 함께 할까요? 이에 대해서 샅샅이 파헤쳐보겠습니다.. 바로 김영한 강사님의 명강을 들으면서 말입니다!! 목차 빈 스코프란? 프로토타입 스코프 프로토타입 스코프 - 싱글톤 빈과 함께 사용 시 문제점 프로토타입 스코프 - 싱글톤 빈과 함께 사용 시 Provider로 문제 해결 웹 스코프 request 스코..
인프런 강의 中 김영한 강사님의 '스프링 핵심 원리' 내용을 정리했습니다. Section7에서 무려 3편에 걸쳐서 의존관계 자동 주입의 종류와 사용법에 대해서 학습하는 시간을 가졌다. 이번 Section8부터는 빈이 태어나고 운명을 다하는 동안 내가 태어났다! 내가 운명을 다했다!라는 신호를 주는 생명주기 콜백에 대해서 김영한 강사님의 명강의를 들으며 학습해보자. 목차 빈 생명주기 콜백 시작 인터페이스 InitializingBean, DisposableBean 빈 등록 초기화, 소멸 메서드 지정 어노테이션 @PostContruct, @PreDestroy 1. 빈 생명주기 콜백 시작 데이터베이스 커넥션 풀이나, 네트워크 소켓처럼 애플리케이션 시작 시점에 필요한 연결을 미리 해두고, 애플리케이션 종료 시점에..
지난 시간에 이어 개발환경 세팅을 진행하고, 데이터 조회까지 해보는 시간을 가져보자. 목차 프로젝트 생성 및 아파치 설정 Nexacro 셋팅 Nexacro 연동 (1) Nexacro 연동 (2) 및 DB 설정 테스트 1. Nexacro 연동(2) 및 DB 설정 다들 알다시피 넥사크로는 데이터셋을 이용해 DB와 연동을 하는데, 이 과정이 이루어질 수 있도록 설정을 할 것이다. 그리고 참고로 우리는 mybatis를 사용할 것이다. context-nexacro.xml 설정 넥사크로와 mybatis 연동 관련 정보를 설정하기 위해 아래와 같은 경로로 파일 생성 설정 내용 작성 필자는 oracle을 사용할 것이기 때문에 위와 같이 설정했다. sql-mapper-config.xml 설정 mybatis에서 Map을 ..
전자정부 표준프레임워크 4.1Nexacro NOracle 19c를 사용해 개발 환경을 세팅해보자! 시작에 앞서 필자는 아래 링크에서 정리해주신 내용을 바탕으로 프로젝트를 만들었다는 것을 참고바란다. 내용은 거의 같으나 설정하는 부분이 ..
인프런 강의 中 김영한 강사님의 '스프링 핵심 원리' 내용을 정리했습니다. 지난 시간에 lombok을 사용해 의존관계 자동 주입을 더 간단하게 해보았다. 이번 시간에는 의존관계 자동 주입 시 발생할 수 있는 에러사항 및 대처 방안에 대해서 김영한 강사님의 강의를 토대로 학습해보겠다!! let's get it!!!! 목차 조회 빈이 2개 이상 - 문제 문제 해결 방법 @Autowired 필드 명, @Qualifier, @Primary 어노테이션 직접 만들기 1. 조회 빈이 2개 이상 - 문제 해당 내용을 들어가기 전에 잠깐 시간 여행을 해서 과거로 돌아가보자. 우리는 좋은 객체지향 설계를 하기 위해 역할과 구현으로 나눠서 개발을 진행했고, 할인 정책(DiscountPolicy)라는 역할과 정액 할인(Fix..
인프런 강의 中 김영한 강사님의 '스프링 핵심 원리' 내용을 정리했습니다. 이전 시간에 의존관계 자동 주입 종류와 생성자 주입을 사용해야하는 이유에 대해서 학습했다. 이번 시간에는 자동 주입 대상을 옵션으로 처리하는 방법과 lombok을 활용하는 방법에 대해서 알아보겠다. 김영한 강사님의 강의를 들으면서! 목차 옵션 처리 Lombok 1. 옵션 처리 주입할 스프링 빈이 없어도 동작해야 할 때가 있다. 그런데 @Autowired만 사용하면 required 옵션의 기본값이 true로 되어 있어서 자동 주입 대상이 없으면 오류가 발생한다. 자동 주입 대상을 옵션으로 처리하는 방법은 다음과 같다. @Autowired(required=false) : 자동 주입할 대상이 없으면 수정자 메서드 자체가 호출 안됨 or..
인프런 강의 中 김영한 강사님의 '스프링 핵심 원리' 내용을 정리했습니다. 이전 시간에는 '스프링이 제공해주는 Component Scan이라는 기능 덕분에 개발자들이 코드 작성을 한 결 편하게 할 수 있게 됐다' 라는 내용의 공부를 했다. 이번 시간에는 우리가 DIP, OCP를 준수하기 위해 사용했던 의존성 주입의 종류에 대해서 김영한 강사님의 강의를 통해 학습해보겠다! 참고로 우리는 지금까지 생성자 주입만을 사용했다는 점 참고바란다. 목차 다양한 의존관계 주입 방법 생성자 주입을 선택해야하는 이유 1. 다양한 의존관계 주입 방법 의존관계 주입은 크게 3가지 방법이 있다. 생성자 주입 수정자 주입(setter 주입) 필드 주입 생성자 주입 위에서 언급한대로 우리가 지금까지 사용했던 방법이다. 이름 그대로..