책 요약 (도서) 6

3-3. 리스너(Listener)

리스너 객체 : 이벤트(Event)라는 특정한 데이터가 발생하면 자동으로 실행됨 장점 : 리스너를 이용하면 어떤 정보가 발생(이벤트(event))했을 때 미리 약속해둔 동작을 수행할 수 있으므로 기존의 코드를 변경하지 않고도 추가적인 기능을 수행할 수 있음 ! (스프링 MVC가 리스너를 통해서 동작함) 옵저버(observer) 패턴 : 특정한 변화를 구독(subscribe)하는 객체들을 보관하고 있다가 변화가 발생(발행(publish))하면 구독 객체들을 실행하는 방식 ex. 재난 감시 시스템 1. 이벤트(Event) : (지진이 발생하여) 지진 감지 센서가 데이터를 발생 -> 데이터가 발생되면 해당 이벤트 관제 센터에 통보 -> 관제 센터에서는 산하 기관들에 '지진이 발생했음'을 알려줌 2. 마지막 산..

2-3. 웹 MVC와 JDBC의 결합

@Data : getter / setter / toString / equals / hashCode 등을 모두 컴파일할 때 생성 (cf. VO : getter만을 이용해서 읽기 전용으로 구성 @Getter / DTO : @Data) ModelMapper 라이브러리 : DTO->VO / VO->DTO 변환 : getter / setter 등을 이용해서 객체의 정보를 다른 객체로 복사하는 기능을 제공 - ModelMapper를 이용할 때는 대상 클래스의 생성자를 이용할 수 있도록 VO에 생성자 관련 어노테이션들을 추가해야 함. ㄴ @AllArgsConstructor , @NoArgsConstructor : 파라미터가 없는 생성자와 모든 필드값이 필요한 생성자를 만들어줌 - 라이브러리 추가(디펜던시 추가) 필수..

2-2. 프로젝트 내 JDBC 구현

try-with-resources 사용 : try() 내에 선언된 변수들이 자동으로 close()됨 이때 try() 내에 선언된 변수들은 모두 Auto-Closeable 이라는 인터페이스를 구현한 타입들이어야만 함 ! Lombok의 @Cleanup : 해당 메소드가 끝날 때 close()가 호출되는 것을 보장함 @Builder 빌더 패턴 : 생성자와 달리 필요한 만큼만 데이터를 세팅할 수 있다는 장점이 있음

1-5. 모델(Model)

DTO : 대부분 Java Beans 형태로 구성 Java Beans 1. 생성자가 없거나 반드시 파라미터가 없는 생성자 함수를 가지는 형태 2. 속성(멤버 변수)은 private으로 작성 3. getter / setter 를 제공할 것 + Serializable 인터페이스를 구현 p.78 enum 타입으로 TodoService(클래스) 작성 package org.zerock.w1.todo.service; public enum TodoService { INSTANCE; } => 장점 : 정해진 수만큼만 객체를 생성할 수 있다 JSP 에서 자바 코드를 직접 JSP 내부에서 사용했을 때의 단점 : 내부에서 자바 코드가 같이 섞이면 import 부터 시작해 모든 자바 문법이 사용되어야 하기 때문에 자바를 모르..