계약 정의를 위한 인터페이스 사용자바에서 인터페이스는 특정 책임을 선언하는 데 사용하는 추상 구조이다. 인터페이스를 구현하는 객체는 이 책임을 정의해야 한다. 동일한 인터페이스를 구현하는 여러 객체는 해당 인터페이스가 선언한 책임을 다른 방식으로 정의할 수 있다. 인터페이스는 '무엇이 발생해야 하는지(필요 대상)'를 지정하는 반면, 인터페이스를 구현하는 모든 객체는 '어떻게 그것이 발생해야 하는지(발생 방법)'를 지정한다고 볼 수 있다. 구현 분리를 위해 인터페이스 사용우리는 목적지로 이동하려고 우버 같은 차량 공유 앱을 사용한다. 일반적으로 차량 공유 서비스를 사용할 때는 차량 외관이나 운전자가 누구인지 신경 쓰지 않으며 그저 목적지에 가기만 하면 된다. 차량 공유 앱은 인터페이스이다. 고객은 자동..
스프링 컨텍스트: 프레임워크가 관리하는 객체를 유지하는 데 사용하는 앱 메모리 공간이다. 프레임워크가 제공하는 기능으로 스프링 컨텍스트에서 보강해야 하는 모든 객체를 추가해야 한다. 2장에서는 컨텍스트 인스턴스의 getBean() 메서드를 사용하여 빈에 직접적으로 액세스했다. 하지만 앱에서는 필요한 곳에 스프링 컨텍스트의 인스턴스 참조를 제공하도록 스프링에 지시함으로써 하나의 빈에서 다른 빈으로 직관적으로 참조할 수 있게 해야 한다. 이 방법으로 빈들 사이의 관계를 설정한다(하나의 빈을 필요할 때 호출을 위임하고자 다른 빈에 대한 참조를 갖게 된다). 구성 파일에서 정의된 빈 간 관계 구현이번에는 @Bean 애너테이션으로 메서드를 지정하는 구성 클래스에서 정의된 두 빈 간 관계를 구현하는 방법을 배운다...
메이븐 프로젝트 생성메이븐 [Spring] Maven과 Gradle빌드 관리 도구빌드소스 코드 파일을 컴파일에서 실행할 수 있는 가공물로 변환하는 과정 또는 결과물우리가 작성한 소스코드(java), 프로젝트에서 쓰인 각각의 파일 및 자원 등(.xml, jpa, jpg, properbest11gh.tistory.com사용하는 프레임워크에 관계없이 앱의 빌드 프로세스를 쉽게 관리하는 데 사용하는 도구실제 시나리오에서 스프링 프로젝트에 가장 많이 사용되는 빌드 도구 중 하나이다.GroupId : 관련된 여러 프로젝트를 그룹화하는 데 사용ArtifactId : 현재 애플리케이션 이름Version : 현재 구현 상태의 식별자, 프로젝트를 설정할 때 버전 설정이 나오지 않는다면 생성 후 pox.xml 파일에서 설정..
마이크로서비스 아키텍처로 진화애플리케이션 프레임워크우리가 애플리케이션을 구축하는 기능의 집합으로, 앱을 구축하는데 사용할 수 있는 광범위한 도구와 기능을 제공한다. 프레임워크가 제공하는 모든 기능을 사용할 필요는 없으며, 만들려는 앱이 요구하는 사항에 따라 사용할 프레임워크 부분을 적절히 선택하면 된다(올바른 결과를 얻기 위해 어떤 기능을 선택하고 어떻게 조립해야 할지 알아야 한다). 유사한 요구사항로깅 오류, 경고(warning), 정보(info) 메시지는 모든 앱에서 발생한다.대부분의 애플리케이션은 트랜잭션을 사용하여 데이터 변경을 처리한다. 트랜잭션은 데이터 일관성을 관리하는 중요한 메커니즘을 나타낸다.(13장)애플리케이션 대부분은 공통으로 발생하는 동일한 취약점에 보호 메커니즘을 사용한다.애플리케..