두 번째 스프린트가 시작됐다. 첫번째 스프린트와 마찬가지로 이번 스트린트에 들어가야할 기능이 무엇인지 이야기하고 같이 디자인을 하는 것으로 시작했다.
백엔드는 회원가입/로그인 기능이 익명 커뮤니티라는 프로젝트 특성상 중요하고 모두 하고 싶어해서 다같이 몹프로그래밍으로 진행했다. 몹 프로그래밍 특성상 속도가 조금 느린면이 있었지만 나 혼자서는 생각못할 관점들을 많이 볼 수 있어서 좋았다. 예를들어 처음에 사용자에게 임의의 닉네님을 정해주는 것이 사용자 관점에서는 어떤 편의성을 줄지, 개발할 때 서버측에서는 어떤 문제가 있을지 등에 대해 이야기해볼 수 있었다.
사용자에게 인증코드를 발송하기 위해 SMTP를 사용하게 됐다. SMTP 기능을 사용하기 위해 java mailsender도 있고 spring mailsender도 있는데 처음에는 무작정 스프링 것이 조금이라도 편한 기능을 제공해줄 것이라 막연하게 생각하고 사용하려 했다. 하지만 최소한의 차이는 알고 써야 한다 생각해서 찾아보며 정리를 했다.
학습목적으로 외부서비스를 사용한 것은 아니지만 이 외부 서비스 하나로 배울 것이 정말 많이 생겼다. 단위테스트 책을 읽을 때 외부서비스에 대한 테스트가 와닿지 않았는데 이제 실질적으로 고민을 하게된다. 또 외부서비스가 있을 때 트랜잭션을 어떻게 관리할지, 현재 테스트가 느린데 비동기로 처리해야하지 않은지 등 고민을 하고 있다.
이번주 프로젝트를 진행하면서 느낀 것이 있다. 대부분의 경우 어떤 방안이 절대적으로 다른 방안보다 낫다고 할 수도 없다. 또 설령 그렇다고 하더라도 같이 일하는 팀원을 설득하지 못하면 그 방안은 좋은 방안이 될 수 없다.
또 이번 특강 때 권남님이 말하셨던 것처럼 결국 일은 관계 속에서 하는 것이고 평소의 신뢰 관계가 생각보다 일할 때 알게 모르게 많이 영향을 미치는 것 같다.
이번 주에 전체적으로 조금 조급한 마음이 들었다. 이번 주에 팀에서 하기로 한 일들이 있는데 일정을 제대로 맞추지 못했다. 하지만 혼자서 생각을 정리하다가 프로젝트에 대해 조금 여유로운 관점으로 보게 됐다. 레벨3에 들어오면서 얻고자 했던 본질은 코드 몇줄이라도 더 적고 기능을 조금이라도 더 넣는 것이 아니다. 동료들과 제대로 된 협업 경험과 그 과정에서 고민 포인트들에 대해 학습하는 것이었다. 프로젝트 자체를 조금 더 즐기는 마음으로 하면 좋겠다.
토르 멋집니다 👍🔨
진한 협업 경험
에 대한 각자의 정의가 만들어져가는 과정을 엿보는 게 아주 재밌네요~ ㅎㅎ