본문 바로가기

Back-end

AOP 프로그래밍 (학습필요) 본문 내용은 초보 웹 개발자를 위한 스프링5 프로그래밍 입문(최범균)을 참고하고 있습니다. 학습 부족으로 후에 업로드 예정.. 더보기
빈 라이프 사이클과 범위 본문 내용은 초보 웹 개발자를 위한 스프링5 프로그래밍 입문(최범균)을 참고하고 있습니다. 스프링 컨테이너는 초기화와 종료라는 라이프 사이클을 갖는다. ex) // 1. 컨테이너 초기화 AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(AppContext.class); // 2. 컨테이너에서 빈 객체를 구해서 사용 Greeter g = ctx.getBean("greeter", Greeter.class); String msg = g.greet("스프링"); System.out.println(msg); // 3. 컨테이너 종료 ctx.close(); 1. 컨테이너 초기화 위 코드에서 AnnotationConfigAp.. 더보기
컴포넌트 스캔(@Component, @ComponentScan) - 학습필요 본문 내용은 초보 웹 개발자를 위한 스프링5 프로그래밍 입문(최범균)을 참고하고 있습니다. 컴포넌트 스캔 스프링이 직접 클래스를 검색해서 빈으로 등록해주는 기능이다. @Component를 가진 모든 대상을 가져와서 빈에 등록하기 위해 찾는 과정이다. @Component 해당 클래스를 스캔 대상으로 표시한다. 애노테이션 값을 주지 않을 경우 클래스 이름의 첫 글자를 소문자로 바꾼 이름을 빈 이름으로 사용한다. 애노테이션에 값을 주면 그 값을 빈 이름으로 사용한다. @ComponentScan @Component 애노테이션을 붙인 클래스를 스캔하여 스프링 빈으로 등록한다. basePackages 속성값으로 스캔 대상 패키지 목록을 지정하여 지정 패키지와 하위 패키지에 속한 클래스를 스캔 대상으로 설정한다. 추.. 더보기
의존 자동 주입 본문 내용은 초보 웹 개발자를 위한 스프링5 프로그래밍 입문(최범균)을 참고하고 있습니다. 앞의 DI 내용에서 DI 방식을 잠깐 다뤘었다. 생성자나 메소드를 이용한 주입 방법이였는데 의존 대상을 설정 코드에서 직접 주입하는 코드를 보겠다. @Configureation public class AppCtx { @Bean public MemberDao memberDao() { return new MemberDao(); } @Bean public ChangePasswordService changePwdSvc() { ChangePasswordService pwdSvc = new ChangePasswordService(); pwdSvc.setMemberDao(memberDao()); // 의존 주입(직접 주입) r.. 더보기
스프링 DI 본문 내용은 초보 웹 개발자를 위한 스프링5 프로그래밍 입문(최범균)을 참고하고 있습니다. DI DI는 'Dependency Injection'의 약자로 우리말로는 '의존 주입'이라고 한다. 의존이란 변경에 의해 영향을 받는 관계를 의미하며, 한 클래스가 다른 클래스의 메소드를 실행할 때 이를 '의존'한다고 표현할 수 있다. DI를 통한 의존 처리 DI는 의존하는 객체를 직접 생성하는 대신 의존 객체를 전달 받는 방식을 사용한다. ex) public class MemberService { // 의존 객체를 직접 생성하는 방법 private MemberDao memberDao = new MemberDao() ... } public class MemberService { private MemberDao me.. 더보기
싱글톤(Singleton) 객체 본문 내용은 초보 웹 개발자를 위한 스프링5 프로그래밍 입문(최범균)을 참고하고 있습니다. Singleton pattern이란? 클래스는 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고, 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다. 자바에서의 단점 유연하지 않다. 스프링 해결방법 스프링 컨테이너를 이용해 Singleton pattern을 적용하지 않아도 객체 인스턴스를 Singleton으로 관리하여 해결하였다. 스프링의 경우 별도 설정을 하지 않을 경우 한 개의 빈 객체만을 생성하며, 이때 빈 객체는 '싱글톤(Singleton) 범위를 갖는다'고 표현한다. Spring에서 Singleton을 사용하는 이유 스프링은 주로 서버환경에 적용되는데 클라이언트에서 매.. 더보기
스프링 컨테이너 본문 내용은 초보 웹 개발자를 위한 스프링5 프로그래밍 입문(최범균)을 참고하고 있습니다. 스프링 컨테이너는 자바 객체의 생명 주기를 관리하며, 생성된 자바 객체들에게 추가적인 기능을 제공하는 역할을 한다. 여기서 말하는 자바 객체를 스프링에서는 빈(Bean)이라고 부르며 IoC와 DI의 원리가 이 스프링 컨테이너에 적용된다. AnnotationConfigApplicationContext 클래스의 계층도 일부이다. 가장 상위에 BeanFactory 인터페이스가 위치하고 있다. BeanFactory 인터페이스 객체 생성과 검색에 대한 기능을 정의한다. 예를 들어 생성된 객체를 검색하는데 필요한 getBean() 메소드가 BeanFactory에 정의되어 있다. 객체를 검색하는 것 이외에 싱글톤/프로토타입 빈.. 더보기