[워밍업 클럽 4기 백엔드] 3주 차 발자국 👣

[워밍업 클럽 4기 백엔드] 3주 차 발자국 👣

학습 내용 요약

 

Spring & JPA 기반 테스트 (Presentation Layer 테스트 (1) 까지)

레이어드 아키텍처에서 각 레이어가 분리된 이유를 테스트 관점에서 이해할 수 있었습니다.

cafeKiosk 프로젝트에 요구사항을 하나씩 추가해가며,

Persistence → Business → Presentation Layer

순서로 TDD 방식을 적용해 기능을 구현해보는 실습을 진행했습니다.

 


 

학습 내용 회고

 

🌱성취

  1. 미션을 통해 총 15개의 단위 테스트를 작성하며, 테스트 작성에 익숙해질 수 있었습니다.

  2. boolean 변수명을 지을 때 자동사/타동사 구분을 고려하며, 더 명확한 이름을 짓게 되었습니다.

  3. 레이어드 아키텍처의 레이어 분리 이유를 인식하고, 이를 기반으로 테스트를 구성할 수 있게 됐습니다.

  4. 기능 전체를 TDD 방식으로 구현해보며 테스트 주도 개발에 대한 감을 익혔습니다.

  5. 트랜잭션 전파 개념을 떠올리며 수동 클렌징과 자동 클렌징의 차이를 이해하게 되었습니다.

  6. @DataJpaTest와 @SpringBootTest의 차이점을 학습했고, profile을 통한 테스트 환경 분리에 대해서도 이해하게 되었습니다.

     

     

 

발견한 약점 및 보완이 필요한 부분

  1. TDD로 기능을 구현하는 과정에서, 중간 단계 테스트 작성을 종종 놓친 실수가 있었습니다.

  2. 트랜잭션 전파, Spring AOP 개념 중 기억이 흐릿한 부분을 발견했습니다.

  3. @DisplayName의 명확하게 표현하는 데 어려움을 느꼈습니다.

  4. Day11 미션에서 Minesweeper 프로젝트의 단위 테스트 작성을 추가로 진행하지 못했습니다.

     

 

📄보완 계획

  1. TDD에 더욱 익숙해지기 위해 예제 프로젝트를 통한 실습을 추가로 진행할 예정입니다.

     

  2. Spring과 JPA의 작동 원리를 복습하며, 다음 항목들을 중점적으로 학습할 계획입니다.

    1. 트랜잭션 전파

    2. Spring AOP 

    3. JPA의 영속성 컨텍스트

  3. 아직 작성하지 못한 Minesweeper 프로젝트의 단위 테스트를 작성합니다.

    1. 예제를 통해 @DisplayName 작성에 더 익숙해지도록 합니다.

 


 

미션 내용 회고

 

Day11 미션 🌱

 

🏃첫 번째 미션

[Readable Code] 강의의 두 프로젝트(지뢰찾기, 스터디카페) 중 하나를 골라, 단위 테스트를 작성해 봅시다.

조건은 아래와 같습니다.

각 프로젝트 모두 강의 중에 작성한 tobe 패키지 코드를 기준으로 함 (lesson 6-4 가 가장 마지막 버전)

3개 이상의 서로 다른 클래스 & 총 7개 이상의 테스트 작성 (시간이 된다면 더 많이 작성해보면 좋겠죠? 😉)

단, 같은 인터페이스를 구현하고 있는 구현체들은 1개 클래스로 간주한다.

(ex. LandMineCell, NumberCell, EmptyCell에 각자 테스트를 작성했어도, 1개 클래스로 간주.)

무엇을 테스트하고자 했는지를 잘 나타낸 @DisplayName 작성하기

BDD(given/when/then) 스타일 따르기 (주석으로 표기)

 

🔗작업 브랜치 링크

https://github.com/sonic8-8/readable-code/tree/day11-mission

 

미션 과정

Day7 미션과 동일하게 사고 과정을 모두 Notion에 기록했습니다.

다만 이번 미션에서는 문서 구조 자체의 가독성에 더욱 신경을 썼습니다.

구체적으로는 다음 원칙을 적용했습니다.

  1. 사고 과정은 하나의 흐름으로 기록하기 위해 Notion 문서에 작성한다.

  2. 테스트 코드에는 주석을 통해 질문과 근거를 남긴다.

     

 

단위 테스트 작성 사고 과정

🔗https://able-brick-82b.notion.site/Day-11-studycafe-20d2947a96118098986ad7e54c362460?source=copy_link

 

느낀점

테스트 코드 역시 결국 읽기 좋은 코드여야 한다는 관점으로 미션을 수행했습니다.

코드뿐만 아니라 문서 작성에서도 가독성을 어떻게 높일 수 있을지에 집중하다 보니,

Notion이나 블로그 같은 일반적인 글쓰기에서도

가독성을 높일 수 있는 방법에 대해 자연스럽게 고민하게 되었습니다.

 

주말 동안엔 이런 가독성 있는 코드 작성 방법에 대한 힌트를 얻고자 서점에 들렀고,

클린 코드, 테스트 주도 개발, 파이브 라인스 오브 코드 등 책을 조금씩 읽어보며

여러가지 인사이트를 얻을 수 있었습니다.

특히 추상과 구체를 어떻게 분리해내는지에 초점을 두고 책을 읽으려했는데

이 과정에서 코드의 구조를 바라보는 시야가 조금씩 확장되고 있다는 느낌을 받을 수 있었습니다.

 

다만, 책 분량이 많다 보니 단기간에 읽어내긴 쉽지 않다는 아쉬움도 있었습니다.

그래서 워밍업 클럽이 끝난 이후에는 우빈님께 추천받은 위 서적들을 차근차근 학습하며,

추상과 구체에 대해 더 고민하고 코드 작성 기본기를 탄탄히 다져나갈 계획입니다.

 

그리고 학습한 내용은 블로그에 저만의 방식으로 정리하고 포스팅 해서

다른 사람에게도 도움이 될 수 있는 콘텐츠로 발전시켜 보고자 합니다. 🫡

 


강의

🔗Practical Testing: 실용적인 테스트 가이드

댓글을 작성해보세요.

채널톡 아이콘