본문 바로가기

4기5

테스트를 통해 JPA Entity 영속성에 대해 알아보자 (2) 예시로 사용된 코드는 깃허브를 통해 확인할 수 있습니다. 1편에 이어서 작성하는 글입니다. 이 글에서는 EntityManager의 merge 메서드에 대해 다룹니다. 학습을 진행하면서 이미 id 필드가 존재하는 Entity를 save 하면 어떻게 될까? 에 대한 의문이 생겼습니다. 이에 대해서 테스트를 진행하고, 헷갈리는 부분에 대해 정리해볼 수 있었습니다. 테스트는 아래의 Member Entity를 이용하여 진행하였습니다. 1. 이미 저장된 id를 가지는 Entity를 또 save 하면 어떻게 될까? 이에 대해 다음과 같은 테스트를 작성해보았습니다. 멤버1을 저장하고 멤버 1의 id를 이용해 멤버 2를 저장하였습니다. 이때 멤버 2를 저장하였지만, 저장된 결과로 반환된 저장된_멤버 2와는 다른 객체로 .. 2022. 8. 29.
JPA entity에 validation annotation을 붙인 이유 예시로 사용된 코드는 깃허브를 통해 확인할 수 있습니다. validation annotation을 붙인 이유와 생성자 검증의 맹점에 대해 작성한 글입니다. DB에 있는 데이터들을 100% 신뢰할 수 있다!라고 생각한다면 이 글은 읽지 않으셔도 좋습니다. 모락 프로젝트를 진행하면서, Entity 필드의 검증 로직이 존재해야 하는 곳에 대한 토론을 많이 진행했습니다. 우리는 토론의 결과로 검증을 위해 Entity 필드에 validation annotation을 붙이는 것을 택했습니다. 모락에서 사용되는 Entity에 대한 예시로는 다음과 같습니다. Entity 필드에 대해 올바른 값인지 확인하는 방법은 2가지가 있습니다. 1. 위와 같이 각 필드에 validation annotation을 붙이기 2. Ent.. 2022. 8. 28.
모락의 Git branch 전략 Git branch 전략을 도입한 이유? 프로젝트 이전까지는 혼자서 개발을 진행했기 때문에 하나의 branch에서 편하게 작업할 수 있었다. 모락 프로젝트에서 6명의 개발자가 함께 코드를 공유한다. 6명이 하나의 branch에서 작업을 진행한다면 매우 많은 conflict들이 발생했을 것이다. 따라서 우리는 6명이 동시에 여러 작업을 수월하게 수행하기 위해 Git branch 전략을 도입했다. Git branch 전략 버전 1 다음 그림은 제일 처음으로 생각했던 branch 전략이다. 가장 간단하고 도입하기 쉬운 전략이다. 이 전략은 main branch와 feature branch 2개로 이루어진다. main : 실제 서버에 배포되는 production 코드가 존재하는 branch feature : 기.. 2022. 8. 27.
레벨3 팀 프로젝트 7주차 회고 테스트 추가 이번 스프린트에서는 기능을 추가적으로 구현하기 어렵다고 판단되어 7주차에는 테스트 추가 및 리팩토링만 진행했다. 우리 서비스는 기능이 많을 수록 좋은 서비스이기때문에, 기능이 많아야한다. 그렇지만 이번 스프린트에서는 팀 회의를 통해 양보다 질을 택했다. 하나의 기능이라도 제대로 동작하게 만들자! 라는 취지였다. 테스트를 추가하는 것은 지난 6주간의 내가 원하던 것이었지만 막상 그 많은 테스트에 손을 대려니 오랜 시간이 걸리고 힘든 작업이었다. 그래도 추가적인 테스트를 만들어서 오류를 찾아내었을 때 되게 흐뭇했다. 역시 테스트 코드는 중요하다라고 생각이 들었다. 토미(코치)와의 수다 타임 금요일에 토미와 점심식사를 함께하였다. 토미와의 식사 후 둘만의 대화시간이 잠깐동안 있었다. 그 시간 동안.. 2022. 8. 13.
레벨3 팀 프로젝트 6주차 회고 데모데이 이번 스프린트의 데모데이 발표를 맡아서 진행했다. 5분 정도밖에 안 되는 발표였지만, 엄청 떨렸다. 하루정도 준비를 하는 시간을 가졌지만, 막상 발표를 시작하니 다 까먹었다. 그래서 프리스타일로 발표를 진행해버렸고, 뭐라고 발표를 했는 지도 기억이 안 난다. 이렇게 부족한 말하기 능력은 앞으로 내가 극복해야 할 문제인 것 같다. 프로젝트 진행.. 이게 맞나? 데모데이에서 우리 팀이 발표한 것과 다른 팀들이 발표한 것들을 보면 다른 팀들은 이제 거의 마지막을 향해 가고 있는 데, 우리 팀은 이제 시작한 것 같은 느낌이 들었다. 분명 같은 시간 동안 프로젝트를 진행했는데, 왜 차이가 많이 나는 걸까? 이에 대해서 데모데이가 끝난 후 회고를 진행하였다. 우리가 생각한 원인 중 제일 큰 문제는 프로젝트.. 2022. 8. 6.