1. 인수테스트의 의미명세나 계약의 요구사항이 충족되는지를 확인하는 테스트작업을 종료시켜도 되는지 검증하는 테스트 2. 인수테스트 주도 개발의 의미와 목적인수테스트 주도 개발은 기획, 개발, 테스트 등 다양한 관점을 가진 팀원들과 협업을 위한 애자일 방법론 중 하나이다다양한 관점(기획, 개발, 테스트 등)을 지닌 팀원이 함께 사전 기획 단계에서 유저스토리와 인수 기준을 도출하면, 개발단계에서 자동화된 인수테스트를 먼저 작성하고 소프트웨어 개발을 이어나간다프로젝트에 참여하는 인원들이 다양한 관점(기획, 개발, 테스트 등)을 지닌 만큼, 커뮤니케이션이 부족하다면 서로 다른 결과물을 상상하면서 작업을 진행할 수 있다이 경우 결과물이 나오는 시점에야 서로의 생각이 다름을 인지하게 된다인수테스트 주도 개발은 이..
Mockk 등의 라이브러리 대신 직접 Stub 객체를 만들어서 테스트 코드를 개선한 경험을 공유하고자 한다. 참고로 지정한 응답을 주는 객체를 의미한다. 기존 레거시 코드를 리팩토링 하기 전에 앞서 단위 테스트를 먼저 작성하고 있었고, 이때 의존성을 테스트 대역으로 대체했다. 테스트 코드를 작성하다 보니 애매한 부분이 생겼다. 테스트하려는 코드는 대략 이런 느낌이었고, 다양한 상황을 세팅하고 getUsableCoupons를 호출했을 때 적절한 쿠폰이 반환되는지를 확인하려고 했다. @Service class CouponService( // ... private val couponRepository: CouponRepository ) { fun getUsableCoupons(): List { // ... v..
1. 개요 IntelliJ에서 gradle build를 수행했는데, 다음과 같이 background task가 멈추는 상황이 발생했다. 2. 해결 다음과 같은 방법을 시도했으나 모두 실패했다. 계속 기다려보기 브랜치 바꿔서 빌드해보기 IntelliJ Repair IDE 실행 PC 재부팅 IntelliJ 최신 버전으로 업그레이드 최후의 수단으로 로컬 터미널에서 직접 빌드해보니 "IDLE"이라는 메시지를 확인할 수 있었다. 뭔가 gradle 프로세스가 유휴상태에 빠진 것으로 보여서 공식 문서에 "gradle IDLE"이라고 검색해본 결과, gradle 대몬 프로세스가 문제인 것을 파악할 수 있었다. jps 명령어를 통해 대몬 프로세스의 PID를 찾아내고, kill -9 PID 명령어를 통해 프로세스를 제거했..
작년 이맘때쯤 2022년 회고를 올렸었는데 벌써 2023년 회고를 올릴 때가 되었다. 처음에 회고는 2023년 마지막 주에 올릴 예정이었지만 올해 진행했던 프로젝트를 완전히 마무리하고 올리고 싶어서 부득이하게 며칠 미뤘다. 1. 회사1) 프로젝트가장 먼저 회사에 관한 이야기를 먼저 하려고 한다. 올 한 해 동안은 '쿠폰적용가' 프로젝트를 계속해서 성장시키고 확장해가는 데 많은 시간을 할애했다. 기존 지마켓 사이트에선 상품 상세 페이지 진입 시 고객이 실제로 할인받을 수 있는 금액에 대한 정보를 확인할 수 없었다. 그와 더불어 쿠폰 다운로드 시 실제로 할인받을 수 있는 금액이 노출되지 않는 것과 쿠폰함에서 최적쿠폰이 자동적으로 선택되지 않는 것 또한 큰 불편요소였다. 쿠폰적용가 프로젝트는 이러한 불편함을 ..
개발자라는 직업을 선택하기 전 하고 싶은 직업이 여럿 있었는데 그 중 하나가 선생님이었다. 어렸을 적부터 친구들과 공부하다가 모르는 부분을 서로 알려주는 걸 좋아했었는데 그 영향이 아닐까 싶다. 개발자로 진로를 완전히 정한 후에도 현재 회사에 입사하기 전 면접을 봤던 회사에서 한 임원분이 커리어를 어떻게 이어가고 싶냐고 질문했을 때 사내에서 신입 개발자 교육을 전문으로 하는 사람이 되고 싶다고 막연하게 얘기했었다. 지금 생각하면 부끄럽기도 하지만, 교육이라는 큰 틀 안에서 책을 쓰거나 강의를 만들어보겠다는 꿈은 항상 가지고 있다. 여하튼 회사에 들어오고 나서는 나의 부족함을 매순간 절실히 깨달았고, 지식을 나누긴 커녕 지식의 구멍들을 채우기 위해 노력해왔다. 그렇게 일종의 갈급함을 채워가던 와중, HR쪽..