- Docker
- spring cloud contract
- arc browser
- 전략패턴
- 도커
- 라즈베리파이 클러스터
- restcontroller
- java
- springboot
- oraclejdk
- Openjdk
- 디자인패턴
- Spring Cloud
- with jdk
- EntityGraph
- fontawesome
- Spring
- 리믹스아이콘
- OneToMany
- QueryDSL
- restdocs
- 무료 아이콘 폰트
- 옵저버패턴
- 라즈베리파이
- java_to_kotlin
- Observer Pattern
- kotlin
- 폰트어썸
- openapispec
- remix icon
- Today
- Total
목록개발/Back-end (14)
< Dev-Kidult />
목적 @GetMapping 에서의 조건에 따른 조회에서 빠르고, 단순하고, 쉽게 조회 할 수 있도록 하기 위함. 종류 GitHub - turkraft/spring-filter: Painless filtering library for JPA entities and MongoDB collections. Smoothly integrates with Spring APIs. Spring Data JPA - Reference Documentation Home - DGS Framework 1. spring filter LGU+, OASIS 에서 사용한 라이브러리 장점 두개의 프로젝트를 진행하면서 쌓인 경험치로 인해 계속 쓰는데 큰 어려움이 따르지 않는다. 많은 Comparators(eq, not, in, gt, go..
스프링으로 개발을 하다보면 대부분이 CRUD 개발을 하는것일것이다. 그 중 `R` 중에 List를 조회하는쪽을 개발하다보면 기획자의 요구사항에 맞게 많은 필터(검색조건)에 맞춰서 조회를 하는 경우가 생길것이다. 기존의 경우라면 검색 할 내용이나 여러 조건들을 파라미터로 받아서 서비스단에서 처리를 하였을 것이다. 하지만 지금부터 아래내용을 적용한다면 파라미터로 쿼리를 쓰듯이 써서 넘긴다면 아주 쉽게 해당 내용을 조회 할 수 있다. https://github.com/turkraft/spring-filter GitHub - turkraft/spring-filter: Painless filtering library for JPA entities and MongoDB collections. Smoothly int..
예제(코드)는 깃허브에 있습니다. 1. Spring cloud contract 이전은 어떻게 테스트를 했을까 모든 마이크로 서비스를 올리고 엔드 투 엔드 테스트를 한다. 다른 마이크로 서비스 목(mock)을 만들어서 유닛 및 통합 테스트를 한다. 2. 모든 마이크로 서비스를 올리고 엔드 투 엔드 테스트를 했을 때 장점: 서비스를 시뮬레이터 할 수 있음. 서비스 간 실제 통신을 테스트. 단점: 테스트를 하기 위해 모든 마이크로 혹은 연관된 서비스들을 배치해야 함. 테스트를 하는 동안 다른 마이크로 서비스는 잠겨 있음. (그동안 아무도 테스트를 하지 못함) 테스트를 하기위한 시간이 오래 걸림 피드백 과정이 오래 걸림 디버깅을 하기가 매우 어려움 3. 다른 마이크로 서비스 목(mock)을 만들어서 유닛 및 통..
먼저 모든 코드는 Github에 정리되어 있으며, 함께 보시면 이해하기 쉬우실 것 같습니다. 문제 회사에서 이번 프로젝트를 진행하면서 JPA를 좀 더 깊게 사용을 하게 되었는데 그중 하나의 도메인에 OneToMany로 엮어있는 필드가 3개가 있었습니다. 테스트하면서는 양이 적어 문제가 되는지 몰랐지만 현재 스테이지서버에서 데이터가 약 900건 정도 쌓이게 되었고 화면으로 던져주기전에 저 OneToMany로 엮어있는 필드 3개를 활용하여 데이터를 가공하여 넘겨주는 상황이었습니다. 테스트를 진행하시는 분들이 너무 느리다 하여 파악을 진행하던 중에 fetchType을 eager로 해두어도 sql 셀렉이 900 * 3으로 2700건이 나오는 상황이었습니다. 문제 해결 (진행은 코틀린으로 하였습니다) 먼저 예제용..
옵저버패턴은 영문 그대로 관찰자가 존재하는 디자인 패턴입니다. 관찰자(observer)와 관찰당할 대상(observable)이 존재하며 관찰당하는(?) 대상이 무언가의 액션이나 상태변화가 일어나면 관찰자에게 알려주는 방식입니다. 옵저버패턴을 구현함에 있어서 많은 방법이 있지만 해당 글에서는 jdk에 구현되어 있는 observer interface와 observable class를 상속받아 구현하는 방식을 진행하도록 하겠습니다. 진행에 앞서 observable은 날씨 상태를 가지고 있는 객체를 observer는 날씨 상태변화에 따라 작동하는 객체들로 구성을 하였습니다. class WeatherData extends Observable { private double temperature; // 온도 priv..
전략패턴(strategy pattern)은 위키에서 이렇게 설명하고 있습니다. 특정한 계열의 알고리즘들을 정의하고 각 알고리즘을 캡슐화하며 이 알고리즘들을 해당 계열 안에서 상호 교체가 가능하게 만든다. 동물의 다리를 예로 진행을 해보겠습니다 동물이라면 어떤 동물은 다리가 2개, 4개 혹은 다리가 없는 경우도 있습니다. 전략패턴을 모른다면 우리는 이렇게 구현을 할 것입니다. public interface Animal { void reg(); } public class Tiger implements Animal{ @Override public void reg() { System.out.println("난 다리가 4개야"); } } public class Bird implements Animal{ @Over..