Published on

스파르타 자바 심화 부트캠프 두번째 팀 프로젝트 회고

Authors
  • avatar
    Name
    손예지(Liv)

새로운 조와 12월에 진행했던 두 번째 팀 프로젝트가 끝났습니다. 이번 프로젝트는 기존의 모놀리식으로 구성하던 프로젝트를 MSA로 구성해보는 것이었습니다. 프로젝트 진행 전 MSA에 대해서 학습하고, 개인 실습을 진행한 후 프로젝트를 진행했습니다.

Keep

의도적으로 선택하기

이번 프로젝트를 진행하면서 팀장이 아닌 팀원을 맡게 되었습니다. 그 이유는 QA로 일할 때는 팀원이기도 했지만 PMO로도 일을 했었고, 프로젝트를 하면서도 팀장 역할을 여러 번 담당해 리더를 많이 맡았습니다. 그런데 실제 현업에서는 팀원으로 일하게 되기 때문에 팀 단위가 아니라 개인으로 자신을 스스로 관리하고 다른 팀원을 도와주는 일을 충분히 경험해보고 싶다는 생각이 들었습니다. 팀장의 역할을 할 때와 달랐던 점은 똑같이 제안하고, 의견을 내지만 결과까지 주도하지는 않는다는 점이었던 것 같습니다. 결과에 대한 책임감이 적어진 대신 더 많은 제안을 하려고 노력했고 함께 대화할 수 있도록 좋은 질문들을 많이 고민했습니다.

Problem

설득하는 것과 설득당하는 것

이번 프로젝트에서 가장 어려웠던 부분은 상대방을 설득하는 과정이었던 것 같습니다. 모놀리식으로 개발할 때와의 차이점과도 연관 지을 수 있는데, 모놀리식으로 개발 할 때 서비스 간 연관관계가 있을 때 다른 부분에서 쉽게 관계를 맺고 값을 가지고 올 수 있지만, 각각 독립된 서비스로 구성된 MSA 환경에서는 통신을 통해서만 불러올 수 있었습니다. 저희 팀에서는 Feign Client를 사용해서 동기적으로 통신 했는데 이때 호출하기 위해서는 API로 직접적인 연결이 필요했습니다. 이 과정에서 호출되고 호출하는 서비스에서 어떤 값을 넘겨줄 것인지를 아는 것이 중요했습니다. 설계할 때 대화를 많이 하려고 노력했지만 결과적으로는 원하는 결과를 얻지 못했던 부분도 있었습니다.

사용자가 주문 생성을 할 때 사용자에 대한 정보(발송인, 수신인, 수신정보)를 가지고 있기 때문에 데이터베이스에 저장하지 않아도 통신할 때 dto로 넘겨줄 수 있다고 생각했습니다. 그런데 주문 서비스에서는 배송에 관련된 정보를 업체정보, 주문정보를 통해서 직접 조회해서 사용하기를 원했습니다. 이 부분을 조율하는 데 어려움이 있었고, 결과적으로는 배송 서비스에서 테이블 조회를 해서 가져오는 방식으로 개발하게 되었습니다. 사용자 경험 측면에서 생각해보면 저희 서비스를 이용하는 사용자는 주문 할 때 수신업체의 주소가 아닌 업체 ID 값을 통해서만 주문 정보를 입력할 수 있게 된다는 한계점을 가지게 되어 프로젝트를 마치고도 이 부분에 대해서는 아쉬움이 많이 남습니다. 그리고 이런 부분은 프론트 없이 개발하게 될 때 각자 가지고 있는 이해가 달라서 생길 수 있는 문제일 수도 있다는 생각이 들어서 다음 프로젝트에는 간단하게라도 어떤 값들이 프론트에서 넘어오는지 미리 함께 공유해야겠다는 생각이 들었습니다.

Try

두 마디를 7시간 동안 연습하기

피아니스트 임윤찬님이 쇼팽 연주앨범을 준비하며 두 마디를 7시간 동안 연습했다고 인터뷰한 것을 본적이 있습니다. 세계적인 콩쿠르에서 우승 후의 인터뷰에서도 "달라지는 건 없다. 우승했다고 실력이 는 건 아니기 때문에 더 연습하도록 노력하겠다." 라고 말했습니다. 이번 프로젝트를 하면서 MSA라는 개념을 도입해보았고, 새로움을 만났을 때 겪는 막막함을 느꼈습니다. 공부의 난도가 높아질수록, 어느 정도의 깊이와 양에 만족할 수 있는지 고민이 있었습니다. 임윤찬님이 연습한 두 마디를 통해 알게 된 것은 기준이 나에게 있을 수도 있겠다는 것이었습니다. 개발자에게 요구되는 공통적인 기준을 맞춰야겠지만, 일정한 기준 외에는 주체적으로 기준을 안에 두고 만들어 가야겠다는 생각이 들었습니다. 앞으로 누군가를 만족하게 하기 위한 공부보다 스스로 만족할 만큼 공부를 하고 싶습니다.