서비스 논리 흐름 타 서비스에서 최저가 서비스 호출 (input: keyword) keyword: {prodGrpId,,, }를 조회 Redis에 없다면 Elasticsearch에서 조회하여 prodGrpId 조회 (상위10건) 후 Redis에 저장 prodGrpId: [{prodId, price}, {} ---] 데이터 조회 없다면 Elasticsearch에서 ProdId별 가격조회 후 반환 반환 후 Redis에 ProdId: Price 정보저장 Redis 설치 인스턴스는 AWS EC2 프리티어로 생성할 수 있는 인스턴스를 생성했다. ubuntu이미지이기 때문에 apt-get install redis-server를 통해 레디스를 설치할 수 있다. 기본적으로 6379포트로 설정되어 있다. /etc/red..
분류 전체보기
품질요건 어떤 서비스가 갖추어야 하는 기능적, 기술적 요건 가용성: RTO, RPO, 장애, uptime / (uptime+downtime) * 100 -> 5 nine (99.999%) 성능: Ops/sec, TPS, DataIn/s, DataOut/s 비용: 얼마만큼의 자원을 사용하여 해당 기능을 구축할 것인가? 보안: 정보의 탈취가능 여부, 노출 방지, 숨김, 다른 보안적 위협으로부터 자유로운지? 효율성: 해당 서비스를 사용, 유지/보수, 수정, 배포, 폐기, 복사 등의 작업을 하는 데에 대한 업무 효율성.
여기가 매우 잘 정리되어 있어서 주소를 첨부함. https://devel-repository.tistory.com/50 spring boot 로그백 (logback) 설정 방법 logback은 log4j 프로젝트의 후속 버전으로 log4j 1.x가 중단된 이후 버전을 이어받아 발전시켜 왔다. spring boot는 기본적으로 logback 로깅 시스템을 채택하여 제공한다. logback-spring.xml 작성을 통해서 logb devel-repository.tistory.com 에러 로그만 분리하는 방법에 대한 더 쉬운 설명 https://cl8d.tistory.com/96 [Spring] 에러 로깅하기 - Logback을 사용해서 ERROR 레벨만 파일로 로그를 남겨보자! 🌱 들어가기 전 이번 장바구..
OpenFeign이란? https://spring.io/projects/spring-cloud-openfeign 선언형 REST 클라이언트라고 한다. 보통 스프링에서 다른 서버와 REST 통신을 하고 싶을 땐 RestTemplate이나 WebClient 같은 걸 많이 쓴다. OpenFeign을 사용하면 인터페이스 형태로 RestController 작성하듯이 편하게 REST 통신을 위한 코드를 작성할 수 있다. 그리고 MSA 환경에서 각 FeignClient의 이름을 지정해 사용함으로써 각 서비스 간의 통신을 편하게 할 수 있다는 장점도 있다. 예제 레포 주소 https://github.com/purewater02/Feign 의존성 추가 Spring Initializer를 사용해서 spring-cloud-..
@Async가 동작하기 위해서는 먼저 AsyncConfig를 만들어주어야 한다. @Configuration @EnableAsync public class AsyncConfig { } 비동기로 동작하게 하기 위해 커스텀 쓰레드풀을 만들어 주어야 한다. 기본 쓰레드와, 메세징을 위한 쓰레드를 빈으로 등록하고 각각 이름을 붙여준다. @Configuration public class AppConfig { @Bean(name = "defaultTaskExecutor") public ThreadPoolTaskExecutor defaultTaskExecutor() { ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); executor.setCorePool..
https://www.toptal.com/developers/gitignore/ gitignore.io Create useful .gitignore files for your project www.toptal.com 이 사이트에 가서 ignore하고 싶은 관련된 것들을 입력하고 생성하면 gitignore를 자동으로 생성해준다. 나 같은 경우는 intellij, JAVA를 넣고 만드는 편이다. 자신의 IDE, 언어 정도 넣고 만들면 될 듯 하다.
https://medium.com/@kwoncharles/git-gitignore-%EB%B3%80%EA%B2%BD-%EB%B0%98%EC%98%81%ED%95%98%EA%B8%B0-3f0559947c2b [git] .gitignore 변경 반영하기 왜 지워지지 않는거야! medium.com 위 글에 나온대로 해주면 정상적으로 적용 된다~ 캐시를 한 번 비우고 다시 커밋을 하면 된다~
배치란? 큰 단위의 작업을 일괄 처리 대부분 처리량이 많고 비 실시간성 처리에 사용 대용량 데이터 계산, 정산, 통계, 데이터베이스 변환 등 컴퓨터 자원을 최대로 활용 자원 사용이 낮은 시간대에 배치를 돌리기 배치만 처리하기 위해 사용자가 사용하지 않는 또다른 컴퓨터 자원을 사용 사용자 상호작으로 실행되기 보다는 스케쥴러와 같은 시스템에 의해 실행되는 편. 오전 00시마다 특정 배치 실행, 특정 요일마다 실행 등