본문 바로가기

분류 전체보기362

[테스트 및 리팩토링 8편] fixture-monkey 정리 source 는 Github 에 있습니다. 목차는 테스트 & 리팩토링 목차 에 있습니다. [테스트 및 리팩토링 8편] fixture-monkey 정리 fixture-monkey 테스트 데이터를 만들어주는 오픈소스입니다. 나중에 찾아볼 용도로 정리했습니다. source 자바, gradle 환경 에서 실행했습니다. (Java17) gradle 설정하는데 시간이 오래걸렸는데 처음에는 fixture-monkey-starter 만 설치하면 관련 plugin 은 전부 import 되는줄 알았는데, 그게 아니였습니다. 그래서 그냥 서드 파티 관련 gradle 설정을 전부 넣어버렸습니다. 아래 중에 필요한 서드 파티 설정만 추가하시면 될 것 같습니다. 주의사항으로는 FixtureMonkey 를 통해 데이터를 만들 때,.. 2023. 5. 5.
[ETC 4편] git stash, cherry-pick 정리 목차는 ETC 목차 에 있습니다. [ETC 4편] git stash, cherry-pick 정리 나중에 볼려고 정리했습니다. git stash 현재 stash_test 라는 branch 에서 작업하고 있습니다. 작업을 하다가 develop branch 에서 작업을 해야 합니다. 이럴 때, stash 를 사용하면 좋습니다. stash 를 사용하면 현재 작업중인 것을 스택에 저장해놨다가 나중에 꺼내쓸 수 있습니다. git stash example git check stash_test // do something git stash // 명령어 수행 git stash list // stash 한 스택 목록 가져오기. git checkout develop // do something git checkout sta.. 2023. 4. 26.
[테스트 및 리팩토링 7편] TestContainer Example source 는 Github 에 있습니다. 목차는 테스트 & 리팩토링 목차 에 있습니다. [테스트&리팩토링 7편] TestContainer Example TestContainer 란? DB, 큐, 메시지 브로커 등을 제공해주는 가상 컨테이너입니다. Java, Kotlin 과 같은 JVM 기반에서 동작하며, Docker 를 필요로 합니다. docker-compose 는 언어와 관계 없이 사용할 수 있으며, TestContainer 는 코드 레벨에서 제어할 수 있습니다. 코드에서 제어할 수 있기에 docker 만 떠있다면 테스트 코드에 container 기동, 중단 로직을 넣어서 테스트를 수행할 때, 한 번에 수행할 수 있는 특징이 있습니다. 소스 설명 Spring boot, spring data jpa, .. 2023. 4. 22.
[상품 주문 1편] 개요 (Webflux, 코틀린, Redis, 분산락) source 는 Github 에 있습니다. 목차는 상품 주문 에 있습니다. [상품 주문 1편] 개요 (Webflux, 코틀린, Redis, 분산락) Webflux, 코틀린, Redis, 분산락 공부를 위해 작성했습니다. 상품 주문 기능 상품 주문 시, 동시성을 보장해줘야 합니다. (DB 데이터가 꼬이지 않아야 합니다) 상품 주문 시, 재고 관리가 되야 합니다. (동시 요청에 재고 데이터가 꼬이면 안됩니다) 상품 주문 시나리오 클라이언트에서 상품 주문 API 를 호출합니다. (동시성을 보장해줘야 합니다.) 간단하게 입력 파라미터는 상품 ID, User Id, 구매수량을 입력받도록 진행했습니다. 상품 주문 API 가 들어오면 Redis 를 통해 분산락을 잡고 내부에서 DB 처리를 합니다. 분산락을 잡을 때는.. 2023. 4. 5.