미니멀 개발일기 12

찍먹일기 (Kafka, TDD, Event Sourcing Pattern)

1.인프런 TDD 무료강의 강의 커리큘럼 1/4정도 찍먹이전 TDD 개인 탐방글:https://sh3542.tistory.com/10  강의:https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8-%EC%8B%A4%EC%A0%84-%EC%83%81%ED%92%88%EC%A3%BC%EB%AC%B8-tdd#reviews [지금 무료]실전! 스프링부트 상품-주문 API 개발로 알아보는 TDD 강의 | 이중석 - 인프런이중석 | 스프링부트를 이용해 TDD로 웹 애플리케이션을 만드는 방법을 배웁니다. TDD를 통해 개발 생산성을 유지하고 신뢰가능한 웹 애플리케이션을 만드는 방법을 얻으실 수 있을 겁니다., 실무www.inflear..

헥사고날 아키텍처 탐방 일시정지

한달간 짬날 때마다 탐방했고 사이드 프젝하고싶은게(유투브 유틸라이저) 생겨서 중지 repo:https://github.com/dltkdgkr123/hexagonal-architecture based on:https://github.com/thombergs/buckpal  배운 것 :- 테스트 코드1. mockito기반 모킹 찍먹 (공부할 가치가 충분한 좋은 기능이었음)2. JPA 테스트, Spring Boot 통합 테스트 일부3. Parameterized 테스트 경험4. 테스트 네이밍 컨벤션 (카멜 + 스네이크 케이스 혼합해서 기대동작 자세히/가독성있게 적기)5. sql 파일 import해서 사용하기 (@Sql은 intellij 커뮤니티 버전에서 지원 안해줘서 일단 테스트용 .properties 파일에 ..

IntelliJ IDEA에서 TODO 관리하기

쓰는 방법은 그냥 주석에 예약어를 쓰면 된다. (e.g. TODO) 첫번째 이점은,  키워드를 사용한 블록이 하이라이트 처리되어 식별이 쉽다. (settings에서 녹색 이외 색상 설정도 가능)  멀티 라인도 가능하다.다만 그루비처럼? 공백으로 구분하는건지 들여쓰기가 같아지면 하이라이트가 해제된다.(확실하진 않지만 사실상 저 양식을 굳이 무시하고 쓸 일 이유도 없기에 넘겼다.)  또한, 해당 탭에서 TODO를 한눈에 모아 볼 수 있으므로 편리하다. (FIXME도 같이 트래킹해줌)  개인 프로젝트에서 누릴수 있는 호사로, 노션에 기록하던 우선순위 그냥 텍스트파일로 프로젝트에 옮겨적었다.(물론 이거도 트래킹해줌)

주석중독

요즘 style로 이거 쓰는 중https://github.com/google/styleguide/blob/gh-pages/intellij-java-google-style.xml styleguide/intellij-java-google-style.xml at gh-pages · google/styleguideStyle guides for Google-originated open-source projects - google/styleguidegithub.com  근데 약간의 고증이 있다. tabsize=2라서 불편한건https://github.com/loom/loom-java/blob/main/.editorconfig이거랑 동시 적용해서 해결했는데 각 메소드/클래스 레벨로 javaDoc 주석을 안달면 무차별..

Intelij IDEA 백그라운드 화면 바꿈

ChatGPT한테 "재미있고 쓸모없는 인텔리제이 플러그인 추천해줘" 라고 해서 찾아냄플러그인 이름은 Background image Plus지정한 폴더에 있는 이미지를 n분마다 IDE 백그라운드 화면으로 설정해줌원래 One Dark theme 쓰고 있었는데, 요루시카에 한창 빠져서 바꿈 적용 방법은1. file -> settings -> plugins -> background image plus 다운2. 폴더 생성 및 원하는 이미지 파일 넣기3. file -> settings -> appearance & behavior -> background image plus에 폴더 경로 지정

local port와 rest-assured port 동기화

이슈rest-assured, junit5를 이용한 rest api test 도중,server.port를 8080 외의 값 으로 변경하면 테스트 실패  원인@SpringBootTest(webEnvironment = WebEnvironment.DEFINED_PORT) - 해당 설정(DEFINED_PORT)은, 서버를 mocking 하지 않고 지정된 port로 실제 구동- port 번호는 server.port 환경 변수 값 사용 (defalut 8080)  - server.port를 수정하면, server가 켜지는 port는 바뀌지만, api 테스트간 rest-assured 라이브러리가 사용하는 port는 바뀌지 않음- rest-assured는 여전히 localhost:8080/.. 으로 요청을 보내게 되므로..

Junit5 디펜던시 추가에 4시간을 쓴 경험

실행 환경- Spring Boot 3.4.0- Gradle 8.11.1 이슈Junit5 의존성 주입간에 빌드 실패  해결 과정 실패 1 Baeldung이라는 Spring에 관한 많은 튜토리얼이 있는 사이트를 참고해서 빌드하려 했습니다. 오류의 내용은 대충 Gradle 9.0.X 버전부터 Spring Boot의 dependency automatic loading 기능이 폐기된다는 내용이었습니다. 하지만, 사진처럼 버전을 명시한채로 사용했기에 근본 원인은 아니었습니다. 스택오버플로우를 뒤져봐도 버전을 바꿔야한다는 약간 찜찜한 답변이 주였고, 결과적으로 버전을 바꿔도 오류가 뜨긴 마찬가지였습니다.   실패  2 Spring 공식 문서에서, 권장하는 Spring & Java 버전 조합을 제공하는 것이 떠올랐습니..