[인프런 워밍업 클럽 2기 - BE] 2주차 발자국
강의--회고
이전에는 프로젝트를 하면서 테스트 코드를 작성해 본 경험이 많지 않은데, 생각보다 중요한 작업이라는 것을 알게 되었다. 테스트 코드는 독립적으로 항상 동일한 결과를 내야하며, 로직의 수정에 있어서 어떤 오류가 있었는지 없었는지 확인을 할 수 있게 해준다.
IntelliJ는 특정 클래스의 테스트 클래스를 쉽게 만들어주는 기능을 제공한다.
→ 자신이 테스트 코드를 생성하려고 하는 해당 클래스에 가서 '마우스 오른쪽' → 'Generate'
또한 부모-자식의 관계인 엔티티가 존재하는 경우, 부모와 자식 엔티티를 한꺼번에 처리하려고 하면 CascadeType을 설정해야 한다는 것을 깨달았다. 이전에 CascadeType에 대해서 배운 적은 있지만 어떻게 사용해야 하는 지 와닿지 않았는데 오류를 직접 접해보면서 이해하게 되었다.
CascadeType.PERSIST: 부모 엔티티가 영속화될 때 자식 엔티티도 함께 영속화됨
CascadeType.REMOVE: 부모 엔티티가 삭제될 때 자식 엔티티도 함께 삭제됨
CascadeType.MERGE: 부모 엔티티가 병합될 때 자식 엔티티도 함께 병합됨
CascadeType.ALL: 모든 영속성 전이를 포함하는 설정(PERSIST, REMOVE, MERGE 등을 모두 포함)
출력을 하기위해서는 println을 사용하는 것보다 logger을 사용하는 것이 좋다고 한다. JAVA 출력하면 무조건 println을 사용해야하는 줄 알았는데 println은 '동시성과 스레드 안전성'에 있어서 더 좋다고 한다.
미니 프로젝트--회고
이번주차에는 저번 주에 만든 database ERD를 바탕으로 API 설계를 해보았다. 이전에도 API를 설계해본 적은 있지만 직접적으로 API 명세를 내가 만들어본 적은 없었다. 강사님께서 말씀하신 툴인 swagger을 사용해보고 싶었지만 찾아보니 그것은 api 구현이 되어야 사용할 수 있다고 해서 구현 없이 사용할 수 있는 명세 툴을 찾아보다 'gitBook'을 발견하게 되었고 API 명세를 위한 템플릿이 존재하여 쉽게 만들 수 있었다. ERD를 만들면서 놓쳤던 부분들이나 미처 신경 쓰지 못했던 부분들을 API 명세를 작성하면서 좀 더 구체화하고 수정할 수 있는 기회가 되었다. 다음 주에는 설계한 API를 구현하게 되는데 이를 통해서 다시 한 번 더 수정해야겠다.
foreignKey에 대한 설정? 관계?이 아직 완전히 머릿속에 들어오지 않아서 이는 구현을 하면서 다시 한 번 봐야 할 것 같다.
reviews를 디자이너와 연결 시켜야 할 지 리뷰어(예약자)랑 연결 시켜야 할 지 아니면 둘 다에 연결 시켜야 좋을 지 아직 정하지 못하였다. 이 역시도 한 번 더 고민해보아야 할 것 같다.
이제 시험 기간인데 시험 공부랑 이 스터디의 밸런스를 잘 잡아서 두 마리 토끼를 다 잡아야 겠다. 화이팅!
댓글을 작성해보세요.