일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- JPA
- 트랜잭션
- ci/cd
- method area
- springboot
- Redis
- 상태패턴
- 카카오 화재
- 공변
- lazyloading
- B+TREE
- JDK14
- backend
- 지연로딩
- 재고 시스템
- 웹캐시
- 동시성
- Spring Data Redis
- Metaspace
- nonclustered index
- CaffeineCache
- 리팩터링
- java
- Jenkins
- 주문
- 제네릭
- GithubActions
- JAVA8
- 부하테스트
- Ehcache
- Today
- Total
목록java (8)
NDM
https://ndm-tech.tistory.com/90 에서 상태 패턴(State Pattern)으로 SortType을 제어문 없이, 변경 지점을 줄이며 구현하였습니다. 하지만 저는 다음과 같은 문제가 있다고 생각했습니다. 갈수록 늘어나는 구현체 Class 결국 그 하위 구현체는 Dto를 알고있을 수 밖에 없는데, 그렇게 되면 결국 수정 시 관리포인트만 늘어나는 것 아닌가? 때문에 저는 Enum에서 DTO를 아는 것은 결국 막을 수 없는 것이고, 막을 수 없다면 변경 지점을 하나로 모아야 한다고 생각하였으며 정렬방법이 늘어날 때 유사한 코드가 늘어나는 것을 대비하여 switch나 if문을 최대한 제거하였고, 단순 문자열인 정렬방법 과 코드상의 반환값인 Comparator가 연관이 있다는 것을 알려주고자..
상태패턴을 알아보고, 어떤 경우에 사용했는지 간략하게 소개하려 한다. 실제로 나는 상태패턴을 꽤 사용하고 있으며, Enum, Collection과 함께 사용하는 것을 좋아한다. 왜 Enum / Collection과 함께 사용하는지는 이후 예시에서 소개하겠다. ## 논의의 시작 @Transactional(readOnly = true) public List getExampleList( // 각종 파라미터, TestSortType sortBy) { Comparator comparing; if(sortBy.equals(TestSortType.DISTANCE)) comparing = Comparator.comparing(ExampleDto::getDistance); else if(sortBy.equals(Test..
코드 리뷰 도중 record 클래스에 대해 알게되었습니다 항상 Java 11버전만 사용해서 몰랐던 내용이므로, 한번 정리하고 넘어가려 합니다 코드리뷰는 역시 몰랐던 것을 알게되고, 간과했던 부분을 잡는다는 점에서 매우 효율적인것 같습니다 ## 개념설명 JDK 14에서 preview로 등장했고, JDK16부터 정식 스펙으로 결정되었습니다. 불변 클래스를 쉽게 생성할 수 있도록 도와주는 클래스입니다. public class Person { private final String name; private final int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { re..
Java를 사용한 프로젝트를 하고있는데, Stream API와 람다식을 사용하는 경우가 많습니다(Java11 사용중입니다) 떄문에 더 잘 알아보고 사용하는 것이 좋다는 취지에서 Stream과 람다식에 대해 조금 더 알아보려고 이번 포스팅을 작성합니다. 목차는 다음과 같습니다 Final과 Effective Final Lambda에서 Final만 참조가 가능한 이유 동작원리의 관점에서 바라본 Lambda에서 Final만 참조가 가능한 이유 지역변수를 참조하는 lambda와 클래스, 인스턴스 변수를 참조하는 lambda의 차이 Final과 Effective Final Java의 Final 키워드는 모두가 알고 있듯이 변수 앞에 붙이면 상수가 됩니다. 그리고 상수는 반드시 초기화를 해줘야하며, 이후 변경이 불가..