| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
- JdbcTemplate
- AWS
- JWT
- Dead Letter Queue
- Routing Key
- 서블릿 컨테이너
- Spring
- docker compose
- @ComponentScan
- Spring Container
- DLQ
- redis
- 페이징
- 컨테이너
- Web
- @Transactional
- JPA
- docker
- CORS
- securitycontextholderfilter
- DI
- Spring Data JPA
- kafka
- JPQL
- dockerhub
- MSA
- mybatis
- 스프링 부트
- 쿠버네티스
- 지연 로딩
- Today
- Total
목록Java (9)
look-forest
Refactoring 책에 나오는 기법 중, 평소 잘 사용하지 않던 refactoring 기법만 정리캡슐화Encapsulate Collection 패턴컬렉션을 일급클래스로 감싸서 필요한 기능만 제공해서 외부에서 함부로 조작하지 못한다. 장점1. 외부에서 조작 못하게 필요한 기능만 오픈할 수 있다. - add, set, remove, sort 등 2. 도메인 규칙을 모을 수 있다. - course에 대한 규칙이 추가될 경우 (ex. 수강과목은 7개를 넘지않는다) 3. 메서드 이름으로 의도를 명확히 드러낼 수 있다. 4. 변경에는 닫혀있고, 확장에는 열려있다. (OCP)List를 Set이나 Map으로 바꿔도, 사용하는 클라이언트 코드는 변경할 필요가 없게된다. 조건부 로직 간소화Decompose Condi..
요약1. 체크 예외 단점 : (복구할 수 없음에도 강제하므로) 번거로움, 의존 관계 이슈 2. 기본적으로 언체크 예외 사용할 것. 3. 체크 예외는 비즈니스 로직상 의도적으로 던지는 예외에만 사용 (=> Exception으로 퉁쳐서 사용하면 의미가 사라지니 사용X)예외 기본예외에 대해서는 2가지 기본 규칙을 기억하자.예외는 잡아서 처리하거나 던져야 한다.예외를 잡거나 던질 때 지정한 예외뿐만 아니라 그 예외의 자식들도 함께 처리된다.참고: 예외를 처리하지 못하고 계속 던지면 어떻게 될까?자바 main() 쓰레드의 경우 예외 로그를 출력하면서 시스템이 종료된다.웹 애플리케이션의 경우 여러 사용자의 요청을 처리하기 때문에 하나의 예외 때문에 시스템이 종료되면 안된다.WAS가 해당 예외를 받아서 처리하는데, ..
참고 자료 & 이미지 출처더 자바, Java 8 (백기선 님)
참고 자료 & 이미지 출처더 자바, Java 8 (백기선 님)
참고 자료 & 이미지 출처더 자바, Java 8 (백기선 님)
Optional 소개Optional : 오직 값 한 개가 들어있을 수도 없을 수도 있는 컨네이너.객체 Null 체크를 잊을 수 있기도 하고, 번거롭기도 해서 편의상 등장했다.Optional은 클라이언트에 코드에게 명시적으로 빈 값일 수도 있다는 걸 알려주고, 빈 값인 경우에 대한 처리를 강제한다. 메소드에서 작업 중 특별한 상황에서 값을 제대로 리턴할 수 없는 경우 선택할 수 있는 방법예외를 던진다. (비싸다, 스택트레이스를 찍어두니까.)null을 리턴한다. (비용 문제가 없지만 그 코드를 사용하는 클라이언트 코드가 주의해야 한다.)Optional을 리턴한다. 주의할 것리턴값으로만 쓰자. 메소드 매개변수 타입, 맵의 키 타입, 인스턴스 필드 타입으로 쓰지 말자.(매개변수, 필드 등에 null이 들어갈 수..
Stream 소개Streamsequence of elements supporting sequential and parallel aggregate operations순차적 및 병렬 집계 연산을 지원하는 요소들의 시퀀스(데이터 요소들이 특정 순서로 배열된 컬렉션)데이터를 담고 있는 저장소 (컬렉션)이 아니다.Funtional in nature, 스트림이 처리하는 데이터 소스를 변경하지 않는다.스트림으로 처리하는 데이터는 - 오직 한번만 처리한다.- 무제한일 수도 있다. (Short Circuit 메소드를 사용해서 제한할 수 있다.) 스트림 파이프라인컨베이어 벨트처럼, 스트림 시퀀스를 처리하는 operation의 모음.0 또는 다수의 중개 오퍼레이션과 한개의 종료 오퍼레이션으로 구성스트림의 데이터 소스는 오직..
인터페이스 기본 메소드와 스태틱 메소드기본 메소드 (Default Methods)인터페이스에 메소드 선언이 아니라 구현체를 제공하는 방법해당 인터페이스를 구현한 클래스를 깨트리지 않고 새 기능을 추가할 수 있다.기본 메소드는 구현체가 모르게 추가된 기능으로 그만큼 리스크가 있다.Object가 제공하는 기능 (equals, hasCode)는 기본 메소드로 제공할 수 없다.본인이 수정할 수 있는 인터페이스에만 기본 메소드를 제공할 수 있다.인터페이스를 상속받는 인터페이스에서 다시 추상 메소드로 변경할 수 있다.인터페이스 구현체가 재정의 할 수도 있다.-> javav8 이전에는 인터페이스의 기본 구현체를 만들기 위해 abstract 클래스를 정의해서 하위 클래스들이 상속받아 썼다.default method 덕..