본문 바로가기
728x90
반응형

Spring16

application.properties VS application.yml 외부에서 특정 값을 주입 받아야 하는 경우(예: 외부 API key 등) 외부 설정 파일 - application.properties OR application.yml 에 설정하여 주입한다. resource 하위에 위치한 이런 설정 파일은 스프링 부트가 자동으로 로딩한다. application.yml 과 application.properties를 동시에 사용하면, .properties가 .yml을 덮어씌울 수 있으므로 한 가지만 사용해야 한다. (.properties가 더 나중에 로드됨.) application.properties application.yml 각 라인은 단 하나의 key-value ${ }를 사용해 다른 환경변수 값 참조 가능 app.description = ${app.name} List.. 2023. 4. 24.
제어의 역전(IoC) from 토비의 스프링 3.0 (일반적인 경우) 프로그램의 흐름은 main() 메소드와 같이 프로그램이 시작되는 지점에서 다음에 사용할 오브젝트를 결정하고, 결정한 오브젝트를 생성하고, 만들어진 오브젝트에 있는 메소드를 호출하고, 그 오브젝트 메소드 안에서 다음에 사용할 것을 결정하여 호출하는.... 식의 작업의 반복이다. 각 오브젝트는 프로그램 흐름을 결정하거나 사용할 오브젝트 구성 작업에 능동적으로 참여한다. (오브젝트를 직접 생성하고, 사용할 구현 클래스를 자신이 결정하고, 필요 시점에 오브젝트를 생성하고...) 즉, 모든 오브젝트가 능동적으로 자신이 사용할 클래스를 결정하고, 언제 어떻게 그 오브젝트를 만들지를 스스로 관장한다. 모든 종류의 작업을 사용자 쪽에서 제어하는 구조다. 제어의 역전이란 이런 제어의 흐름을 거꾸로 뒤집.. 2023. 4. 17.
1장. 오브젝트와 의존관계 (1) 스프링이 가장 관심을 많이 두는 대상은 오브젝트다. 스프링을 이해하려면 먼저 오브젝트에 깊은 관심을 가져야 한다. 애플리케이션에서 오브젝트가 생성되고 다른 오브젝트와 관계를 맺고, 사용되고, 소멸하기까지의 전 과정을 진지하게 생각해볼 필요가 있다. 더 나아가서 오브젝트는 어떻게 설계돼야 하는지, 어던 단위로 만들어지며 어떤 과정을 통해 자신의 존재를 드러내고 등장해야 하는지에 대해서도 살펴봐야 한다. 개발자가 객체를 설계할 때 가장 염두에 둬야 할 사항은 바로 미래의 변화에 어떻게 대비할 것인가이다. 분리와 확장을 고려한 설계 - 변경이 일어날 때 필요한 작업을 최소화하고 그 변경이 다른 곳에 문제를 일으키지 않게 하는 방법 관심사의 분리 - 관심을 한 군데에 집중한다. 관심이 같은 것끼리 모으고, 다른.. 2023. 4. 10.
스프링 AOP AOP Aspect Oriented Programing 핵심 기능들을 수행할 때 필요한 공통적인 부가 기능들(예: 로깅, 트랜잭션, 보안 등)과 같은 '횡단 관심(Crosscutting Concerns)'을 핵심 기능에서 분리하여 따로 모듈화하여 관리하는 것이다. 공통&부가기능을 따로 분리해서 관리하면 중복 코드를 작성하지 않아도 되고 유지보수도 용이하다. (따로 관리하지 않고 흩어져 있으면 변경이 필요할 때 일일이 수정해줘야 함) AOP 관련 용어 Target - 부가 기능을 부여할 대상이 되는 (핵심 기능을 담은) 클래스 Aspect - AOP의 기본 모듈. 부가 기능을 정의한 Advice, 어디에 적용할지를 결정하는 PointCut으로 구성 Advice - 부가 기능을 정의한 구현체 Joint Po.. 2023. 3. 5.
스프링, 스프링 부트의 등장 본 포스팅은 스프링 부트 핵심 원리와 활용 / 김영한 강의를 듣고 정리하는 시리즈 포스팅입니다. EJB EJB 인터페이스에 의존적으로 개발해야함 값 비싼 비용 스프링 프레임워크 DI 컨테이너, MVC, DB 접근 기술 제공 다양한 라이브러리를 통합 (편리함) 개발자의 생산성을 높임 자바 생태계 (사실상) 표준 프레임워크 핵심 기술: 스프링 DI 컨테이너, AOP, 이벤트 웹 기술: 스프링 MVC, 스프링 WebFlux 데이터 접근 기술: 트랜잭션, JDBC, ORM, XML 기술통합: 캐시, 이메일, 원격 접근, 스케줄링 테스트: 스프링 기반 테스트 -> but 기능이 많아지면서 셋팅이 너무 복잡해짐... 초기 셋팅 지옥... 스프링 빈 등록 지옥... 스프링 부트 [핵심 기능] WAS - Tomcat .. 2023. 3. 5.
728x90
반응형