# 이 게시글은 "토비의 스프링" 책을 보고 정리를 위해 기록해둔 게시글입니다. [이전글] 더보기 볶음밥 1장 - 1,2,3: 자바빈, 디자인 패턴(템플릿 메소드, 팩토리 메소드, 전략 패턴), 관심사의 분리, SOLID 및 객체지향 약간 볶음밥 1장 - 4,5,6: 제어의 역전, 프레임워크 vs 라이브러리, 스프링 IoC 및 용어 정리, 싱글톤, 동일성 vs 동등성, 빈의 스코프 볶음밥 1장 - 7: 의존관계 주입(DI), DL, IoC 볶음밥 2장: 테스트, TDD, jUnit [3장] 템플릿 객체지향의 핵심 개념인 OCP => 코드 중 어떤 부분은 변경을 통해 기능을 확장하려는 성질이 있고, 또 어떤 부분은 고정되어있고 변하지 않으려는 성질이 있다. 이에 변화의 특성이 다른 부분을 구분하고 각기 다..
# 이 게시글은 "토비의 스프링" 책을 보고 정리를 위해 기록해둔 게시글입니다. [이전글] 더보기 볶음밥 1장 - 1,2,3: 자바빈, 디자인 패턴(템플릿 메소드, 팩토리 메소드, 전략 패턴), 관심사의 분리, SOLID 및 객체지향 약간 볶음밥 1장 - 4,5,6: 제어의 역전, 프레임워크 vs 라이브러리, 스프링 IoC 및 용어 정리, 싱글톤, 동일성 vs 동등성, 빈의 스코프 볶음밥 1장 - 7: 의존관계 주입(DI), DL, IoC [2장] 테스트 변화하는 애플리케이션에 효과적으로 대응할 수 있는 전략 1. IoC/DI 컨테이너를 이용해 확장과 변화를 고려한 객체지향적 설계 2. 만들어진 코드를 확신할 수 있게 해주고 변화에 유연하게 대처할 수 있도록 자신감을 주는 "테스트" [2-1] UserD..
# 이 게시글은 "토비의 스프링" 책을 보고 정리를 위해 기록해둔 게시글입니다. + 김영한의 스프링 핵심 기본원리 강의도 참고했습니다. [이전글] 더보기 볶음밥 1장 - 1,2,3: 자바빈, 디자인 패턴(템플릿 메소드, 팩토리 메소드, 전략 패턴), 관심사의 분리, SOLID 및 객체지향 약간 볶음밥 1장 - 4,5,6: 제어의 역전, 프레임워크 vs 라이브러리, 스프링 IoC 및 용어 정리, 싱글톤, 동일성 vs 동등성, 빈의 스코프 ★★ [1-7] 의존관계 주입(DI) IoC(제어의 역전)는 프로그램의 제어 흐름 구조가 뒤바뀌는 것이며, 객체를 생성하고 관계를 맺어주는 등의 제어 권한을 제 3자에게 위임하는데 이 제 3자 역할을 수행하는게 IoC 컨테이너라고 했었다. 여기서 IoC 대신에 의존관계를 ..
# 이 게시글은 "토비의 스프링" 책을 보고 정리를 위해 기록해둔 게시글입니다. + 김영한의 스프링 핵심 기본원리 강의도 참고했습니다. [이전글] 더보기 볶음밥 1장 - 1,2,3: 자바빈, 디자인 패턴(템플릿 메소드, 팩토리 메소드, 전략 패턴), 관심사의 분리, SOLID 및 객체지향 약간 [1-4] 제어의 역전(IoC) 팩토리: 객체의 생성 방법을 결정하고 그렇게 만들어진 오브젝트를 반환하는 역할을 수행하는 오브젝트. ( != 추상 팩토리 패턴, 팩토리 메소드 패턴) - 오브젝트를 생성하는 쪽과 생성된 오브젝트를 사용하는 쪽의 역할 및 책임을 분리하려는 목적으로 사용한다. - 애플리케이션 내 오브젝트를 구성하고, 관계를 정의하는 책임을 담당한다. 구조 및 관계를 정의하는 설계도 역할. -애플리케이션..
# 이 게시글은 "토비의 스프링" 책을 보고 정리를 위해 기록해둔 게시글입니다. 그 유명한 토비의 스프링 책을 도서관에서 빌려왔다.. 두께부터 엄청나게 두꺼운게 압도당하는 기분이다. 과연 이걸 다 읽을 수 있을지 걱정되긴 하지만 되는데까지 한번 읽어보고 기록해두고자 한다. 화이팅! # 스프링이란 무엇인가? 자바 애플리케이션 개발에 사용되는 애플리케이션 프레임워크로 개발을 빠르고 효율적으로 할 수 있도록 틀과 API를 제공한다. * 스프링 컨테이너(=애플리케이션 컨텍스트) - 스프링 런타임 엔진 - 설정 정보를 참고로 애플리케이션을 구성하는 오브젝트를 생성 및 관리한다 - 웹 모듈에서 동작하는 서비스나 서블릿으로 등록해서 사용한다. * IoC/DI: 오브젝트의 생명주기와 의존관계에 대한 프로그래밍 모델 *..
보호되어 있는 글입니다.
@Slf4j public class AdminAuthenticationSuccessHandler implements AuthenticationSuccessHandler { private final RequestCache requestCache = new HttpSessionRequestCache(); @Override public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication auth) throws IOException { log.info("== 관리자 로그인 성공! =="); log.info("로그인 ID: {}", auth.getName()); log.info("로그..
도메인에는 속성과 행동(메소드)가 포함된다. 클래스 다이어그램 만드는거 생각해보면 된다. 그런데,, 개발을 하다보면 엔티티 내부에 넣어놓기에는 어색한 메소드들이 생각보다 많다. (예를 들어 회원가입 시 중복 검증, 회원 조회 등...) 이를 해결해주기 위해 나온 것이 "도메인 서비스" 계층이다 도메인 (User) 도메인 서비스 (UserSerivce) 위와 같은 도메인 안에 정의하기는 어색한 메소드들을 도메인 서비스 계층에 정의하여 자연스럽게 처리할 수 있도록 한다. 도메인 서비스는 자신의 행동을 바꿀 수 있는 인스턴스만의 값을 갖지 않는다는 것에서 도메인 객체와는 차이가 있다. 여기서 가장 중요한 것은.. 생각해보면 도메인 서비스 계층에 모든 메소드들을 다 때려박아도 코드는 문제없이 돌아간다는 것이다...