본문 바로가기

분류 전체보기59

[Effective Java] 시작. 이전에도 한번 읽었던 책이지만, 이때보다 조금이라도 더 성장한 지금. 내가 느끼는 이팩티브 자바에 대한 개인적인 감상에 대해서 적고자 한다. 단순히 책의 내용을 정리하는게 아닌, 내용에 대한 나의 생각, 공감, 반론을 적는것을 목표로 하고싶다. 2021. 12. 16.
Spring Slack Alarm Logger 만들기 우아한테크코스에서 진행하고 있는 프로젝트에서는, 프로젝트의 에러에 빠르게 대처하기 위해 Error가 발생할 경우 슬랙으로 에러 메세지를 전송합니다. 이 방식은 logback에 의존하며, slack appender라는 오픈소스를 이용하여 구현하고 있습니다. 하지만 이 방식에는 몇가지 문제가 있었는데요, 슬랙에 에러메세지가 날아오기는 하지만 어떤 상황에서 발생하는 에러인지 전혀 파악이 안된다는 점이었습니다. 이러한 문제상황에 우리의 영원한 리더 브라운이 위와같은 요구사항을 주셨고 제가 덥썩 물어서 해결해보도록 하였습니다. SlackAppender 분석 가장 먼저 제가 한 일은 기존의 SlackAppender를 분석하는 일이었습니다. 어떤 방식으로 로그를 전송하는지는 알아봐야 하니까요..? 그래서 소스를 까본.. 2021. 10. 30.
테스트 코드 최적화 여행기 (5) 안녕하세요 깃들다팀의 손너잘입니다. 드디어 마지막 글이네요! 저번 글에서는 인수테스트의 조회용 테스트와 그외 테스트를 분리하여 테스트 속도의 최적화가 가능함을 확인해 봤습니다. 이번글에서는 실제로 테스트에 이를 적용해 보도록 하겠습니다. 다중 데이터 소스와 DB 선택 전략 다중 데이터소스를 사용하는 자세한 방법에 대해서는 [링크]를 참고하여 주세요! 이전 글에서 저는 위와같은 테스트 환경을 구상했습니다. 이를 구현하기 위해서 2개의 h2를 띄우도록 하였습니다. 위와 같은 방식으로 read, wirte DataSouce bean을 생성하였습니다(이제보니 write db라는 말이 이상하네요.. 위 그림의 CUD DB가 write db라고 생각해 주시면 감사하겠습니다 🙂) 그리고 상황에 따라 특정 DataSo.. 2021. 10. 7.
테스트 코드 최적화 여행기 (4) 안녕하세요 깃들다의 손너잘 입니다. 이 글을 시작하기 전에 저희 프로젝트의 도메인에 대한 설명이 필요할 것 같은데요... 그냥 인스타그램이라고 생각하시면 편합니다! 그러면 글 시작하겠습니다! 드디어 제가 적용한 마지막 테스트 최적화 방법에 대한 글을 작성하게 되었네요..! 마지막으로 제가 적용시킨 방법은 인수테스트의 조회용 테스트와 그 외 테스트를 분리하여 진행하는것입니다. 이게 무슨소리인가..? 하지요..? 일단, 이에 대한 자세한 설명을 하기 전에 인수테스트의 어느 부분이 문제였는지를 설명해 보겠습니다. 전체 테스트 시간을 봤을 때 가장 오랜 시간을 차지하는 테스트는 인수테스트 입니다. 실제로 HTTP 요청을 전송하여 테스트를 진행하기 때문에 그만큼의 딜레이가 발생하기 때문입니다. 따라서 인수테스트의.. 2021. 10. 7.