Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[2단계 - 출석 다시 구현하기] 미소(이소은) 미션 제출합니다. #127

Open
wants to merge 127 commits into
base: soeun2537
Choose a base branch
from

Conversation

soeun2537
Copy link

@soeun2537 soeun2537 commented Mar 1, 2025

체크 리스트

  • 미션의 필수 요구사항을 모두 구현했나요?
  • Gradle test를 실행했을 때, 모든 테스트가 정상적으로 통과했나요?
  • 애플리케이션이 정상적으로 실행되나요?
  • 프롤로그에 셀프 체크를 작성했나요?

객체지향 생활체조 요구사항을 얼마나 잘 충족했다고 생각하시나요?

1~5점 중에서 선택해주세요.

  • 1 (전혀 충족하지 못함)
  • 2
  • 3 (보통)
  • 4
  • 5 (완벽하게 충족)

선택한 점수의 이유를 적어주세요.

Getter를 사용한 부분이 있어 아쉬웠기 때문입니다.

어떤 부분에 집중하여 리뷰해야 할까요?

  1. TDD를 진행하면서 전반적인 설계를 자연스럽게 구상할 수 있고, 기능을 구현하는 데도 도움이 된다고 느꼈습니다. 하지만, 아직 TDD의 장점이 완전히 체감되지는 않는 것 같은데, 지노는 TDD의 장점이 무엇이라고 생각하는지 궁금합니다!
  2. DTO를 적극적으로 도입하여 View-Controller-Domain 간 필요한 데이터만 이동하도록 설계했습니다. 이 과정에서 Attendances 객체에 입력받은 데이터를 넘겨주고, 해당 객체 내부에서 실제 객체(Attendance, Crew)를 생성하는 방식으로 구현했는데, 이 방법이 적절한지 궁금합니다.
    1. Controller에서 AttendanceCrew 객체를 직접 생성한 후 Attendances에 전달하는 방식
    2. 현재처럼 Attendances 내부에서 객체를 생성하는 방식
  3. Step1에서는 출석을 하지 않은 경우 빈 객체를 출력 시점에만 생성했지만, Step2에서는 처음 데이터를 로드할 때부터 출석하지 않은 경우에도 일부 필드(checkInTime)가 비어 있는 객체를 생성하도록 했습니다. 데이터베이스 관점에서 조회를 고려하면 Step2의 방식이 더 적절하다고 생각하는데, 이에 대해 어떻게 생각하시나요?
  4. 현재 Attendances에서 Map<Crew, List<Attendance>> 형태로 데이터를 관리하고 있는데, 이 데이터 구조가 적절한지 고민하고 있습니다. 혹시 더 나은 구조나 개선할 점이 있을까요?
  5. 실제로 주말에 테스트를 진행할 경우 등 테스트 시 문제가 발생할 수 있어, 이를 해결하기 위해 전략 패턴을 도입했습니다. DateTimeGenerator를 활용하여 여러 곳에서 LocalDateTime.now()를 직접 호출하는 대신 중앙에서 관리하도록 설정했는데, 이 방식에서 발생할 수 있는 또 다른 문제나 개선할 점이 있을까요?

Copy link

@hyunssooo hyunssooo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

안녕하세요. 미소!
몇 가지 코멘트 남겼습니다!
함께 고민해 보면 좋을 것 같아요!

@hyunssooo
Copy link

TDD의 장점이 무엇이라고 생각하는지 궁금합니다!

테스트 없이는 코드를 작성하지 않기 때문에 코드의 동작이 항상 검증되고 테스트 자체가 문서가 될 수 있다고 생각해요. :) 또한, 테스트가 존재하기 때문에 리팩터링이 무섭지 않습니다!

Copy link

@hyunssooo hyunssooo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

안녕하세요! 미소!
가벼운 코멘트 남겼습니다!
확인 부탁드려요!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants