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

merge: (#798) 모범학생 후보 리스트 조회 기능 추가 #803

Open
wants to merge 20 commits into
base: develop
Choose a base branch
from

Conversation

pji-min
Copy link

@pji-min pji-min commented Feb 11, 2025

작업 내용 설명

  • 이달의 모범 학생 후보 리스트를 클라이언트에게 반환하는 기능입니다

주요 변경 사항

  • findModelStudents

결과물

image

체크리스트

  • 어플리케이션 구동(혹은 테스트)시 오류는 없나요?
  • 생성된 코드에 Javadoc 주석을 추가 하였나요?
  • 생성된 코드에 대한 테스트 코드가 작성 되었나요?

관련 이슈

@pji-min pji-min added the feat 새로운 기능을 추가 할 경우 label Feb 11, 2025
@pji-min pji-min self-assigned this Feb 11, 2025
@pji-min pji-min changed the title feat: (#798) 모범학생 후보 리스트 조회 기능 추가 merge: (#798) 모범학생 후보 리스트 조회 기능 추가 Feb 11, 2025
Copy link
Member

@tedsoftj1123 tedsoftj1123 left a comment

Choose a reason for hiding this comment

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

모범학생 후보의 기준이 뭔지 알수있을까요?

@pji-min
Copy link
Author

pji-min commented Feb 12, 2025

이달에 벌점을 받지 않은 학생입니다

@ilyoil2
Copy link
Member

ilyoil2 commented Feb 12, 2025

image
브랜치 명 이런식으로 하지 말고

image
이런식으로 해주세요

@tedsoftj1123
Copy link
Member

이달에 벌점을 받지 않은 학생입니다

음 상황을 제가 자세히 알지는 못하지만 코드만 봤을 땐 조회할때마다 말씀하신 조건으로 필터링을 하는거같은데 "이달의" 모범학생이라면 한달에 한번만 계산되도 될거같은데요, 모범학생이라는 정보를 다른 테이블에 분리하거나 student에 model이라는 boolean필드를 만들어서 저장해둔다면 조회할떄 이렇게 무거운 쿼리를 계속 날리지 않아도 될거같습니다...

  • 현제 모범학생조회는 그냥 student필드를 조회하고있는거같은데 나중에 투표? 같은거도 할거같은데 고것은 어떻게 구현하실건지? 가궁금합니다

Copy link
Member

@tedsoftj1123 tedsoftj1123 left a comment

Choose a reason for hiding this comment

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

컨벤션좀 이상한게 보이는데 제 기억상으로 아마 ktlint돌리면 코드 컨벤션은 자동으로 다 고쳐졌던걸로 기억합니다

@pji-min
Copy link
Author

pji-min commented Feb 12, 2025

투표 구현하는 부분은 제가 담당하고 있는 부분이 아니라서 한번 얘기해보고 답변 드리겠습니다
그리고 그 외의 피드백 주신 부분 참고해보겠습니다 감사합니다!

@pji-min
Copy link
Author

pji-min commented Feb 12, 2025

얘기해본 결과 사감선생님께서 모범학생 투표를 실행하시면 클라이언트에서 모범학생 리스트를 요청하게 됩니다 이 요청이 투표를 진행하는 API로 전달되고 해당 API에서는 투표를 처리하여 모범학생을 선정하게 된다고 합니다!

@tedsoftj1123
Copy link
Member

얘기해본 결과 사감선생님께서 모범학생 투표를 실행하시면 클라이언트에서 모범학생 리스트를 요청하게 됩니다 이 요청이 투표를 진행하는 API로 전달되고 해당 API에서는 투표를 처리하여 모범학생을 선정하게 된다고 합니다!

음 그렇군요 저는 그냥 달마다 자동으로 생기는 걸로 생각했는데.. 아니였군요..

일단 저는 이 API가 student도메인에서 제공하는 모범학생 조회 API로 느껴지는데요
pji-min(이름을 몰라서.. ㅈㅅ) 님이 설계하신바로는 /vote/candidate-list/YYYY-MM-DD 로 이 URL만 봤을땐 투표 후보?로 느껴지는데 response로 student모델이 내려오고있으니 path가 그렇게 직관적으로 느껴지지 않네요... 수정한다면 /votes/model-students/YYYY-MM-DD 이런 path면 좀더 직관적이지 않을까 생각됩니다.

근데 앞서 말했듯 모범 학생이라는게 꼭 투표 도메인 안에 있나? 라고 생각해보면.. 지금은 이 모범학생 조회가 투표할때만 사용되는 API라면 어느정도 납득이 되는데 만약 나중에 이 API가 투표페이지 말고 다른곳에서 쓰인다고 했을때를 생각해보면 갑자기 뜬금없이 votes/로 시작하는 API를 찌르게되기때문에... API가 직관적이게되지 않을거같은데요,

/students/models/YYYY-MM-DD 뭐 이런식으로 students안에 두는 방법을 쓴다면 위 케이스에선 딱히 어색한 부분은 없을거같네요. 선택은 한번 다른분들이랑 상의해보고 지금 상황에서 가장 옳다고 생각하시는거 아무거나 하셔도 될거같습니다.

  • 코드에 대한 피드백
    지금 전체적으로 봤을때 ModelStudent라는 도메인을 아예 새로 정의하시고 관련 adapter들을 만드신것 같은데... 사실 모범 학생은 그냥 학생인거잖아요? 필터링 조건이 추가될뿐인.. 그래서 뭐 나중에 이 도메인이 진짜 커지면 분리할 수 도 있겠는데 현제로선.. student 도메인쪽에 함수(조회 메서드 등등)를 추가하는게 좋아보여요
    /students/models/YYYY-MM-DD APi를 이렇게 가기로 했으면 그냥 student에다가 Usecase하나 만들어서 구현하면 되는거고
    /votes/model-students/YYYY-MM-DD 이걸로 가기로했다면 usecase는 vote에 만들되 그 usecase에서 student의 service를 사용하는 느낌으로

@pji-min
Copy link
Author

pji-min commented Feb 13, 2025

한번 상의 해보겠습니다! 피드백 감사합니다~

@pji-min
Copy link
Author

pji-min commented Feb 14, 2025

students 도메인 안에 두는 방법으로 진행하게 될 것 같습니다 감사합니다

@pji-min
Copy link
Author

pji-min commented Feb 15, 2025

넵 알겠습니다 감사합니다~

Copy link
Collaborator

@zios0707 zios0707 left a comment

Choose a reason for hiding this comment

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

살짝 코드 리뷰를 해봤는데 전체적으로 프로젝트에 대한 이해도, 코틀린 언어 이해도 전부 미흡해 보입니다.

DMS 코드랑 DMS 노션에 있는 프로젝트 설계 문서 전부 복습하시는 걸 적극적으로 추천합니다.
아니면 코틀린으로 토이프로젝트를 만들어 DMS 설계를 따라해보며 개발하시는 것도 프로젝트 구조 이해에 매우 도움이 될 것이라 생각합니다.

@pji-min pji-min closed this Feb 24, 2025
@pji-min pji-min deleted the feature/(798)-todo branch February 24, 2025 10:42
@pji-min pji-min linked an issue Feb 24, 2025 that may be closed by this pull request
@pji-min pji-min restored the feature/(798)-todo branch February 24, 2025 10:50
@pji-min pji-min reopened this Feb 24, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feat 새로운 기능을 추가 할 경우
Projects
Status: No status
Development

Successfully merging this pull request may close these issues.

모범 학생 리스트 조회 기능 추가
4 participants