[회고] First Team Project

Wonbin Lee·2022년 4월 10일
1

Story

목록 보기
1/1

첫번째 프로젝트

개발자들에게 있어서 첫번째 프로젝트란 어떤 의미일까?
아니 어떠한 모든 일에 있어서 첫번째 경험이란 어떤 의미일까?

대부분의 사람들은 무엇인가를 처음할 도전할 때, 큰 설렘과 두려움 두가지 감정을 같이 느낄 것 이다.
나 또한 내가 살면서 처음으로 맡은 팀프로젝트 였기에, 떨리는 마음을 안고 프로젝트를 시작하게 되었다.



프로젝트 진행

팀원들과의 첫 회의과정에서, 내가 PM을 할 수 있는 기회를 얻게 되었다.
평소 내가 리더쉽이 뛰어난 사람은 아니라고 생각해서 팀장과 같은자리에 앉는것을 피했지만, 내가 맡은 첫프로젝트에서 많을 것을 얻어갈 수 있는 좋은 기회라고 생각이 들어서 마다하지 않았다.

우리가 맡은 첫 프로젝트는 'Diseny Shop' 을 모티브로 한 아동상품을 판매하는 E-커머스 웹사이트인 'Kidney shop' 을 만드는 것이였다.
하지만 Disney 는 저작권에 굉장히 엄격하고, 자비없는 회사로 유명하단 것을 알고 있었기에 우리만의 간단한 캐릭터를 만들고, 그 캐릭터들을 제품에 입혀서 판매하는 웹사이트를 만들기로 결정했다.

프로젝트를 위해 만든 캐릭터 제품들



코드

이제 저작권문제도 걱정 없겠다. 팀원들과 미리 상의해둔 각 End Point의 API 들의 코드를 써내려가기 시작했다. 생각했던 것보다 수월하게 진행되었지만, 역시나 Blocker 는 존재했다.

우리는 클라이언트가 선택한 카테고리에 해당하는 상품을 모두 클라이언트에게 보여주는 다중 필터링 기능을 넣고 싶었다.
하지만 다중 필터링에 관련된 API를 개발해본 경험이 부족했고, 새로운 기술 없이 내가 가진 지식들 만으로 개발하는 것은 생각보다 힘들었다.

위 코드는 내가 발표했던 PPT안에 들어있던 코드이다.
위에서 말한 다중 필터링기능 구현을 위해 내가 가진 기술과 지식을 모두 써서 결국 기능 구현에는 성공하였지만, 누가봐도 가독성이 매우 떨어지면서 비효율적인 코드란 것을 알 수 있었다.

결국 우리 백앤드 팀은 새로운 방법을 찾아 갈아 엎기로 결심한다.


결국 팀원과 열심히 구글링하고 상의한 결과 만족스러운 코드를 얻게 되었고, 이전과 기능은 같았지만 훨씬 효율적이고 가독성이 좋은 코드를 얻을 수 있었다.

조금 더 자세한 코드를 보고싶다면 이전에 정리한 (장고 Q 객체를 활용한 다중 필터링: https://velog.io/@lob3767/Django-Q%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%9C-%EB%8B%A4%EC%A4%91-%ED%95%84%ED%84%B0%EB%A7%81) 을 참고하면 좋을것 이다.



팀원들과의 소통

프로젝트를 진행하기 전, 나는 내가 개발한 API를 실행하고 내가 원하는 정보를 내눈에 확인만 하면 되었기 때문에 별로 문제 될게 없었다. 하지만 팀프로젝트는 많이 달랐다.

프론트엔드와의 통신과정에서 나는 내가 그동안 해왔던 방식으로 프론트엔드에게 원하는 정보를 전달해 주었다. 하지만 프론트엔드는 나에게 "이런식으로 정보를 받으면 우리들이 할 수 있는게 없다." 라고 말하였다.

조금 충격을 먹었던 나는 프론트엔드와 여러번의 상의를 거쳐서 나의 코드를 수정하고, 결국 그들이 원하는 방식으로 정보를 전달해 줄 수 있게 되었다.

이러한 과정에서 서로간의 소통이 얼마나 중요한 지 알게되었다.
프론트엔드는 백엔드가 주는 정보를 재료로 그림을 그리는 사람이라고 생각한다. 백앤드가 필요없는 색상의 물감을 주거나, 파레트에 제대로 물감을 나누지 않아서 물감의 색들이 섞여버리고 어지럽혀 진다면 프론트엔드 또한 제대로 된 그림을 완성 할 수 없을 것이다.

우리는 그 점을 빠르게 인지 할 수 있었기에, 프로젝트를 진행하는 과정에서 끊임없이 소통하였다. 그 결과 우리가 원하던 그림을 다함께 완성 할 수 있었다.




부족했던 점

1. 계획

프로젝트를 진행하던 중 가장 부족했던 부분은 계획을 세우는 것이였다. 이번주는 어떤 사항을 끝낼지, 또 오늘 내일은 어떠한 것을 각자 맞춰볼 지 계획을 제대로 관리하지 못했다.
물론 서로 계속 같이 있었기에 필요성을 못 느낀점도 있지만, 나중을 위해서 또 내가 속할 새로운 팀들을 위해 계획하고 그에 맞게 실행하는 능력을 성장시켜야 한다.

2. 기본적인 것들

내가 어떠한 기능이나 툴을 사용할 때, 그게 무엇인지 제대로 알지 못하면서 사용하는 경우도 있었다. 그것은 개발자로서 절대로 해서는 안되는 행동이란 것을 인지하고 있다.

좀 더 내가 가진 기본 지식들을 다듬고, 내가 다루고자 하는 기술과 도구들에 대하여 이론적으로 깊이 공부해야 함을 느꼈다.



프로젝트를 마치며...

이렇게 길다면 길었고, 짧다면 짧았던 첫 프로젝트를 성공적으로 끝냈다.

각각 다른 사람들이 모여서, 하나의 목표를 이루기 위해 끊임없이 달려가는 경험이 나에게는 처음이기에 신선한 경험을 안겨주었다. 그 과정에서 부족한 점도 많았고, 힘든 점도 많아서 우울했던 날도 있었다.

하지만 함께해주는 팀원들 덕분에 힘들 때도 웃을 수 있었고, 힘내서 즐겁게 프로젝트를 진행 할 수 있었다.

팀원들에게 많이 부족했던 팀장이었지만, 함께 해줘서 너무 감사하다는 말을 전하고싶다.

profile
Developer who level up every day ✌️

0개의 댓글