- fontawesome
- 전략패턴
- 폰트어썸
- Observer Pattern
- EntityGraph
- java_to_kotlin
- 라즈베리파이 클러스터
- springboot
- java
- oraclejdk
- restdocs
- 디자인패턴
- restcontroller
- remix icon
- QueryDSL
- 옵저버패턴
- 리믹스아이콘
- Spring
- Spring Cloud
- 무료 아이콘 폰트
- 도커
- Openjdk
- kotlin
- arc browser
- with jdk
- openapispec
- spring cloud contract
- Docker
- OneToMany
- 라즈베리파이
- Today
- Total
목록분류 전체보기 (25)
< Dev-Kidult />
문제 팀장님으로부터 스테이지 서버 비용을 조금이라도 줄여보자라며, 비사용 시간에 오토 스케일링 인스턴스 숫자를 0으로 만들자는 요구가 왔다. 하면서 알려주신 옵션이 아래 옵션을 건드려서 조정해보시자고 한 것. 추가로 SDK를 사용하면 빈스톡 옵션을 조정할 수 있다는 방법과 함께 떠나셨다. 하여 백엔드단에 스케쥴러를 작성 할 생각으로 작업방향을 진행하려 했지만, 저 예약된 작업을 추가하는 것에 제약이 꽤나 있었고 원하는바로 진행이 되지 않았다. 좀 더 찾아보고 짱구를 돌려본 후 내린 결정은 aws cli + 젠킨스로 해결하기로 하였다. 해결 aws.amazon.com/ko/cli/ AWS 명령줄 인터페이스 aws-shell은 명령줄 셸 프로그램으로서, AWS 명령줄 인터페이스를 사용하는 새로운 사용자와 고..
예제(코드)는 깃허브에 있습니다. 1. Spring cloud contract 이전은 어떻게 테스트를 했을까 모든 마이크로 서비스를 올리고 엔드 투 엔드 테스트를 한다. 다른 마이크로 서비스 목(mock)을 만들어서 유닛 및 통합 테스트를 한다. 2. 모든 마이크로 서비스를 올리고 엔드 투 엔드 테스트를 했을 때 장점: 서비스를 시뮬레이터 할 수 있음. 서비스 간 실제 통신을 테스트. 단점: 테스트를 하기 위해 모든 마이크로 혹은 연관된 서비스들을 배치해야 함. 테스트를 하는 동안 다른 마이크로 서비스는 잠겨 있음. (그동안 아무도 테스트를 하지 못함) 테스트를 하기위한 시간이 오래 걸림 피드백 과정이 오래 걸림 디버깅을 하기가 매우 어려움 3. 다른 마이크로 서비스 목(mock)을 만들어서 유닛 및 통..

먼저 모든 코드는 Github에 정리되어 있으며, 함께 보시면 이해하기 쉬우실 것 같습니다. 문제 회사에서 이번 프로젝트를 진행하면서 JPA를 좀 더 깊게 사용을 하게 되었는데 그중 하나의 도메인에 OneToMany로 엮어있는 필드가 3개가 있었습니다. 테스트하면서는 양이 적어 문제가 되는지 몰랐지만 현재 스테이지서버에서 데이터가 약 900건 정도 쌓이게 되었고 화면으로 던져주기전에 저 OneToMany로 엮어있는 필드 3개를 활용하여 데이터를 가공하여 넘겨주는 상황이었습니다. 테스트를 진행하시는 분들이 너무 느리다 하여 파악을 진행하던 중에 fetchType을 eager로 해두어도 sql 셀렉이 900 * 3으로 2700건이 나오는 상황이었습니다. 문제 해결 (진행은 코틀린으로 하였습니다) 먼저 예제용..
전부터 웹 개발을 할 때면 무료 아이콘 폰트로 font awesome을 주로 이용을 했습니다. 근데 과거 cdn으로 추가만 하면 될 때와는 다르게 이메일을 적으면 킷을 주는 방법으로 바뀌었습니다. 이것도 최초 1회만 주는데 나는 받아놓고 다시 받아보려 하니깐 역시 되지가 않습니다. 또한 약 7000개의 아이콘이 있지만 무료로 사용할 수 있는 아이콘의 숫자는 약 1500개가량.. 그래서 새로이 선택한 것이 Remix icon 입니다. 1700개가량의 무료 아이콘과 svg와 npm, cdn 그리고 다운로드까지 지원을 합니다. remix icon 공식 홈페이지에 가면 원하는 해당 아이콘 이미지를 누르면 svg형태로 다운로드할 수 있습니다. 이용은 아래와 같이 하면 됩니다. 그리고 npm, cdn, 다운로드는 ..
지금까지의 글에서는 push방식의 옵저버패턴을 구현하였습니다. 이번 글에서는 push방식이 아닌 pull방식의 옵저버패턴을 알아보겠습니다. 지금까지는 observable객체가 일방적으로 데이터가 변경되면 noti를 보내 observer객체들의 메소드가 실행되었다면, pull방식의 옵저버패턴은 observer객체들이 자신이 원하는 때에만 observable객체로부터 정보를 받아 실행을 하게 됩니다. public interface Observable { void addObserver(Observer o); void deleteObserver(Observer o); void notifyObserver(Observer o); } @Override public void notifyObserver(Observer ..
전 글에서 jdk에 구현되어 있는 observer interface와 observable class를 상속받아 옵저버패턴을 구현 한 예시를 보여드렸습니다. jdk에 있는 observable이 class라서 상속 때문에 확장성의 제한 등 제약사항이 있어 직접 인터페이스로 구현하는 방법을 보여드리겠습니다. 먼저 observer와 observable을 interface로 만들어 줍니다. public interface Observer { void update(Observable o); } public interface Observable { void addObserver(Observer o); void deleteObserver(Observer o); void notifyObservers(); } 그리고 obs..