본문 바로가기
TIL

[231026] 팀 과제 역할 코드 수정, 개인과제 리뷰

by 진진리 2023. 10. 26.
728x90
  • 팀 과제 

어제까지 내가 맡은 역할인 basket과 관련된 domain, database, service, output 부분에 대한 코드를 설계해서 대부분의 기능을 구현했다.

 

오늘은 대체로 코드 리펙토링을 수행했다.

팀원분께서 제안하신 대로 database에 접근하는 것은 service 뿐이고 service에서 정제한 데이터를 output에서 매개변수로 전달받아 output은 다른 객체에 대한 접근없이 출력만 수행하도록 만들었다.

그리고 이렇게 만들어진 service와 output 코드를 이용하여 모든 로직이 돌아가는 HotelLounge 클래스에서 그 흐름을 구현하였다.

크게 정리하면 이렇게 된다.

Database -> Service -> HotelLounge -> Output

일단 테스트를 해보고 오류가 없다는 것을 확인한 후 PR을 올렸다.

 

오늘 추가한 코드:

장바구니가 비었을 때에는 메인 화면으로 돌아가도록 장바구니가 비었음을 알리는 화면

메인화면으로 돌아가기 전에 알리는 화면과 3초 기다리는 메소드

장바구니에 있는 방들의 예약 확정을 할 때 호텔의 돈에 추가하는 메소드

 

오늘 소감:

처음에는 database에서는 database 내에서 해결할 수 있는 메소드를 구현하고 service에서는 다른 database를 필요로 하는 메소드를 구현한다고 생각하고 코드를 작성했다.

그런데 output에서는 직접적으로 database에 접근하면 안된다는 팀원분의 조언을 받고 나서 많이 헷갈렸고 어떻게 수정하면 좋을지 고민도 많이 되었다.

여러번 물어보고 수정하는 과정에서 database의 메소드를  service 메소드로 감싸서(값을 변환하는 과정이 없었기 때문에) output에서 매개변수로 전달받고자 하는 값을 return해주는 방식으로 service 코드를 추가하였다. 

이런 방식이 좋은 건지는 잘 모르겠지만 그래도 PR까지 올리는 단계에 올 수 있어서 뿌듯했다. 항상 팀 과제를 하면서 팀원분들을 괴롭히게 되는 것 같아 죄송하면서 그만큼 열심히 해야겠다는 생각이 들었다.


  • 개인 과제 리뷰 : 더 신경써야 할 목록들

- 클래스의 단일 책임 원칙

- 향상된 for문과 람다 스트림 사용 지향

- 코드 컨벤션: 클래스 및 메소드 명

- 커밋 기록

- 다형성과 추상화를 적극적으로 활용

- readme 작성


  • Nexters: 수도권 중심의 IT 동아리 - 팀원분이 활동 중이신 동아리. 나중에 기회가 된다면 지원해서 활동해보고 싶다.