본문 바로가기

BackEnd/Spring

빈 객체 범위(scope) 1. 싱글톤(singleton) 범위 별도 설정을 하지 않을 경우 스프링은 빈 객체를 한 번만 생성한다. getBean 메서드를 두 번 이상 호출해서 빈을 구하면 매번 동일한 빈 객체를 리턴한다. 즉 여러번 빈을 구해와도 같은 객체를 참조하게 되는것이다. 스프링 컨테이너가 초기화되고 종료되기 직전까지 빈 객체는 한 개만 생성되는데,즉 스프링 컨테이너를 기준으로 특정한 빈 객체는 한 개만 존재하므로,싱글톤 (singleton) 범위를 갖는다고 한다. 2. 프로토타입(prototype) 범위 프로토타입(prototype) 범위의 빈은 객체의 원형(즉, 프로토타입)으로 사용되 는 빈으로서, 프로토타입 범위 빈을 getBean() 등을 이용해서 구할 경우 스프링 컨테이 너는 매번 새로운 객체를 생성한다. 즉, ..
스프링과 DI(Dependency Injection)- 의존 주입과의 관계 1. 의존이란? 어떠한 기능(예를 들면 어떠한 클래스의 메소드)을 실행하기 위해 다른 클래스를 필요로 할 때 이를 의존(dependency)한다고 한다. 즉 의존한다는것은 객체를 사용한다는것으로 볼 수 있다. 2. 의존 객체를 직접 생성하는 방식의 단점 요구사항의 변화로 의존 객체가 쓰이는 클래스마다 객체를 모두 수정해 주어야 하는 비효율성. 3. Dependency Injection - 의존 주입 의존 객체를 직접 생성하는 것이 아닌, 외부로부터 전달받는 구현 방식이다. 예를 들면 생성자를 이용해서 의존객체를 전달 받는 방식. 4. DI의 장점 1) 단점과 반대로 , 요구사항이 변화하더라도 의존 객체만 한번 수정해 줄뿐, 주입하는 코드는 그대 로 이기 때문에 효율적이다. 2) 테스트 코드 작성시 가짜 ..
스프링(Spring) 프레임워크 1. 스프링(Spring) 프레임워크란? 자바 개발자에게 사실상의 표준 프레임워크이다.
컨테이너 1. 빈(bean) 스프링이 생성하는 객체를 ’스프링 빈(bean) 객체’ 또는 짧게 ’빈 (bean) 객체라고 부른다 2. 컨테이너 1) 스프링은 XML 설정 정보로부터 생성한 스프링 빈 객체를 생성/조립/관리하는 기능을 제공하는 데,이 기능을 제공하는 객체를 컨테이너라고 부른다. 2) XML 설정 파일로부터 스프링 컨테이너를 생성하고 필요한 객체를 컨테이너로부터 가져와 사용 하는 것이다.
메이븐 1. 메이븐이란? 빌드 도구이다. 빌드 도구들의 주요 특징 중 하나는 의존 모듈 Jar 파일 관리에 있다. 예를 들어,메이븐의 경우 중앙 리파지터리(central repository)라고 불리는 서버로부터 필요한 jar 파일을 다운로드 받아 의존 모듈을 관리한다 스프링 프레임워크에 포함된 jar 파일 및 스프링 프레임워크에서 필요로 하는 jar 파일을 하나의 파일로 묶어서 배포하기 보다는,메이븐 중앙 리파지터리를 통해서 스프링 프레임워크 모듈(jar 파일)을 배포하고 있다.
AOP에 대한 이해 AOP는 흔히 ’관점 지향 프로그래밍’이라는 용어로 번역되는데, 이때 '관점(Aspect)'이라는 용어는 개발자들에게는 '관심사(concern)'라는 말로 통용된다. '관심사'는 개발시 필요한 고민이나 염두에 두어야 하는 일이라고 할 수 있는데, 예를들어 코드를 작성하면서 염두에 두는 일들은 주로 다음과 같다. - 파라미터가 올바르게 들어왔을까? - 이 작업을 하는 사용자가 적절한 권한을 가진 사용자인가?- 이 작업에서 발생할 수 있는 모든 예외는 어떻게 처리해야 하는가? 위와 같은 고민들은 '핵심 로직'은 아니지만, 코드를 온전하게 만들기 위해서 필요한 고민들인데 전통적 인 방식에서는 개발자가 반복적으로 이러한 고민을 코드에 반영하게 된다. 하지만 AOP는 개발자가 염 두에 두어야 하는 일들은 별도의 ..
프레임워크란? 프레임워크는 '뼈대나 근간을 이루는 코드 들의 묶음'이라고 할 수 있습니다. 중요한 점은 이 뼈대가 왜 필요한지 입니다. 개발자는 각 개개인의 능력 차이가 큰 직종이고, 따라서 개발자 구성에 따라 프로젝트의 결과 역시 큰 차이를 낳습니다. 프레임워크는 바로 이런 상황을 극복하기 위한 코드의 결과물입니다. 프레임워 크를 이용한다는 의미는 프로그램의 기본 흐름이나 구조를 정하고, 모든 팀원이 이 구조에 자신의 코 드를 추가하는 방식으로 개발하게 됩니다. 프레임워크 최대의 장점은 개발에 필요한 구조를 이미 코드로 만들어 놓았기 때문에,실력이 부족한 개발자라 하더라도 반쯤 완성한 상태에서 필요한 부분을 조립하는 형태의 개발이 가능하다는 점입니 다. 회사의 입장에서는 프레임워크를 사용하면 일정한 품질이 보장되는 ..
스프링의 주요 모듈 목록