-
Notifications
You must be signed in to change notification settings - Fork 8
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
박세찬(B) Spring JPA and H2 Datebase #7
base: main
Are you sure you want to change the base?
Conversation
Why JSON can't be returned?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
고생하셨습니다!! 👍
@SpringBootTest | ||
class BackendBeginner2ApplicationTests { | ||
|
||
@Test |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
작성한 코드가 의도치않게 동작한다면, 사전에 테스트 코드를 작성하여 동작상태에서 차츰 리펙토링을 하는 방식으로 구현할 수 있습니다 ! TDD에 대해 학습해서 테스트코드에 대한 필요성과 이득을 얻었으면 좋겠네용
Course course = courseRepository.findById(courseId).orElseThrow(); | ||
|
||
Enrollment enrollment = new Enrollment(); | ||
enrollment.setStudent(student); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
SET 함수는 조오오금 위험합니다 ㅎ
해당 객체가 갖고있는 내부 변수들에 대해 알고, 더불어 하나씩 주입해주고 있는 것은 객체지향적이지 않죠!
차라리, 생성시에 필요한 데이터를 가진 DTO를 전달해줌으로 SET을 줄일 수 있지 않을까요 ?
|
||
public Enrollment enrollStudent(int studentId, int courseId) { | ||
Student student = studentRepository.findById(studentId).orElseThrow(); | ||
Course course = courseRepository.findById(courseId).orElseThrow(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
예외에 대해 그냥 Throw해버리는 것뿐만아니라 AOP를 활용해서 예외에 대한 응답을 커스텀해서 클라이언트에게 줄 수 있으면 좋을 것 같아요!
|
||
Enrollment savedEnrollment = enrollmentRepository.save(enrollment); | ||
logger.info("Created enrollment: {}", savedEnrollment); | ||
return savedEnrollment; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
만약 저장된 객체가 반환되지 않았다면... 해당 enrollmentRepository.save(enrollment);을 갖고 있는 enrollStudent 메서드가 정상 동작했는지에 대한 테스트 코드가 있으면 좋지 않을까요?!
H2 데이터베이스 연결 확인
resource의 data.sql과 schema.sql를 통해 미리 student와 course 테이블을 생성하고 데이터를 넣었습니다.
왜 JSON이 반환이 안될까요???? 뭘 놓치고 있는 걸까요???
특정 학생의 수강과목 추가
_왜 Postman으로 반환되는 결과가 안보일까요? _
수강 과목 삭제
특정 학생의 수강 과목 조회
로그를 통해서 확인했을 때 Enrollment 객체 정보가 제대로 안나오는 것 같은데 뭔가 놓치고 있는 기초 개념이 있는 것 같아요....