본문 바로가기

개발서적6

[스프링5 입문] Chap 08. DB 연동 📚 커넥션 풀이란? 여기에 생성된 커넥션은 지속적으로 재사용된다. 한 커넥션이 영원히 유지되는 것은 아니고, DBMS 설정에 따라 일정 시간 내에 쿼리를 실행하지 않으면 연결을 끊기도 한다. 이런 문제로 일어날 문제 상황을 방지하려면 커넥션 풀의 커넥션이 유효한지 주기적으로 검사해야 한다. 이와 관련된 속성 minEvictableIdleTimeMillis timeBetweenEvictionRunsMillis testWhileIdle 커넥션 풀을 사용하는 이유는? 성능 때문이다. 매번 새로운 커넥션을 생성하면 그때마다 연결시간이 소모된다. 커넥션 풀을 사용하면 미리 커넥션을 생성했다가 필요할 때에 커넥션을 꺼내 쓰므로 커넥션을 구하는 시간이 줄어 전체 응답 시간도 짧아진다. -> 커넥션 풀을 초기화할 때 .. 2024. 1. 12.
[스프링5 입문] Chap 07. AOP 프로그래밍 📚 프록시란? 핵심 기능의 실행은 다른 객체에 위임하고 부가적인 기능을 제공하는 객체를 부르는 말 프록시의 특징 핵심 기능은 구현하지 않는 점 아래와 같은 코드의 경우, ImpeCalculator, RecCalculator는 ‘팩토리얼 연산’이라는 핵심 기능을 구현한다. (각 클래스에서) 반면, ExeTimeCalculator 클래스는 팩토리얼 연산 자체를 구현하고 있지 않다. public class MainProxy { public static void main(String[]args) { // 기존 코드의 변경 없이 실행 시간을 출력할 수 있다. // factorial() 기능 자체를 구현하기 보다는 다른 객체에 factorial()의 실행을 위임한다. // 계산 기능 외에 다른 부가적인 기능을 실행.. 2024. 1. 8.
[스프링5 입문] Chap 06. 빈 라이프사이클과 범위 // 1. 컨테이너 초기화 (빈 객체의 생성, 의존 주입, 초기화) AnnotationConfigApplication ctx = new AnnotationConfigApplication(AppContext.class); // 2. 컨테이너에서 빈 객체를 구해서 사용 Greeter g = ctx.getBean("greeter", Greeter.class); String msg = g.greet("스프링"); System.out.println(msg); // 3. 컨테이너 종료 (빈 객체의 소멸) ctx.close(); 📚 빈 객체의 라이프 사이클 객체 생성 → 의존 설정 → 초기화 → 소멸 @Configuration public class AppCtx { @Bean public Client client().. 2024. 1. 7.
[스프링5 입문] Chap 05. 컴포넌트 스캔 📚 @Component 애노테이션 스프링이 검색해서 빈으로 등록이 가능하려면 클래스에 @Component 애노테이션을 붙여야 한다. @Component 애노테이션은 해당 클래스를 스캔 대상으로 표시한다. @Component public class MemberDao { ... } 위 경우에는 Component 애노테이션에 값을 주지 않았다. 이 경우 클래스 이름의 첫 글자를 소문자로 바꾼 이름을 빈 애노테이션으로 사용한다. (memberDao) @Component("infoPrinter") public class MemberInfoPrinter { ... } 위 경우는 Component 애노테이션에 값을 주었다. 클래스 이름은 MemberInfoPrinter이지만 빈 이름으로 “infoPrinter”를 사.. 2024. 1. 6.
[스프링5 입문] Chap 04. 의존 자동 주입 📚 @Autowired 애노테이션 + 이 애노테이션을 필드나 세터 메서드에 붙이면 스프링은 타입이 일치하는 빈 객체를 찾아서 주입한다. public class ChangePasswordService { // @Autowired를 붙이면 설정 클래스에서 의존 주입할 필요 X @Autowired private MemberDao memberDao; ... } // AppCtx.java는 설정 클래스이다. // @Autowired를 붙였으므로 AppCtx 클래스의 @Bean 설정 메서드에서 의존을 주입하는 코드를 삭제하면 된다. // (주석 처리한 부분) publid AppCtx { @Bean public ChangePasswordService changePwdSvc() { ChangePasswordServic.. 2024. 1. 5.
[스프링5 입문] Chap 03. 스프링DI [스프링5 입문] 카테고리는 '초보 웹 개발자를 위한 스프링 5 프로그래밍 입문' 책을 공부하는 글이 업로드될 예정이다. 블로그 글에는 간단한 정리 내용들을 작성하고, 코드들은 마지막에 깃허브 링크를 첨부할 예정이다. https://m.yes24.com/Goods/Detail/62268795 스프링5 프로그래밍 입문 - 예스24 스프링 프레임워크의 버전업으로 개선된 내용을 담았다. 처음 스프링을 배우고자 하는 독자들이 입문할 때 필요한 것은 스프링의 방대한 내용이 아닌 기초와 전반적인 흐름을 잡아주는 것으로 m.yes24.com Chap 01 ~ 02는 기본적인 환경설정들에 대한 내용이라 Chap 03부터 업로드를 시작하려 한다. 의존이란? 한 클래스가 다른 클래스의 메서드를 실행할 때 이를 ‘의존’한다.. 2024. 1. 4.