첫 프로젝트
진로를 웹 개발자로 정하고 나서 처음으로 진행한 프로젝트이자 첫 협업 프로젝트이다.
생각한 것을 구체화 하는게 참 쉽지 않았고 무엇보다 협업을 한다는게 정말 어려웠다.
중간고사를 앞두고 프로젝트를 잠시 쉬어가기로 했는데 그동안 프로젝트를 진행하면서 어떤 어려운 점이 있었는지에 대해 작성하겠다.
개발에서 어려운 점
1. 네이밍 문제
- 프로젝트가 커면서 비슷한 기능들이 많아졌다. 처음에는 Project 엔티티와 Member 엔티티가 테이블 매핑 문제 때문에 ProjectMember를 만들게 되고 ProjectMember에 각종 기능들이 추가되다 보니 ProjectMemberService라는 Service 클래스도 만들게 되고 이러다 보니 이름의 길이가 신경쓰이기 시작하더니 점차 각종 메소드들의 이름과 실제 기능이 정확히 매핑이 되는지에 대한 의심이 들기 시작했다. 또한 협업이다 보니 협업자도 알아보기 쉽게 네이밍을 하는건 여간 쉬운 일이 아니다.
2. 서버 문제
- 이미지를 내 로컬 디렉토리에 저장하다 보니 막상 다른 유저가 사이트에 접속하면 과연 이미지를 볼 수 있을가? 이미지를 url로 변환해서 어떻게 저장을 하는걸까? 하는 생각이 들었다. 그래서 서버를 도입하려고 보니 무료 서버는 github를 연동해야 한다거나 이미지를 url로 저장할 방법이 없는 등의 어려움에 봉착했다. 많은 개발자들이 aws의 1년 무료 프리티어를 사용하길래 나도 aws를 사용해봤는데 bucket의 개념, 서버에 jar파일을 업로드 하고 접속하는 과정이 어려웠다. 솔직히 블로그나 유튜브를 참고한 방법을 지금도 그대로 쓰고 있지 제대로된 개념은 이해하지 못했다.
3. css, html 파일 분리, 태그 카테고리화
- 처음에는 html폼 태그에 style을 적었다. 그렇게 점차 파일이 쌓이다 보니 점점 템플릿이 더러워졌고 지금이라도 다 분리해볼까 했지만 코드도 생각 보다 길어서 포기했다. 지금 만드는 템플릿이라도 분리 하고자 했는데 분리를 하다 보니 class, id를 쓸 일이 굉장히 많았고 어디까지 div로 감싸줄지, 네이밍은 어떻게 할 지 같은 새로운 고민거리가 생겼다.
협업에서 어려운 점
1. 명세서
- Member 객체가 있다고 하면 처음에는 이름, 나이, 전화번호로 하기로 했다면 협업자가 까먹는건지 자꾸 하나씩 추가되거나 바뀌어서 많이 짜증났다. 물론 Member에 대한 명세서(?)를 작성하지 않은 내 잘못이다. 또 이 페이지에는 a,b,c... 등으로 구성하자고 약속을 해도 막상 결과물에는 제대로 반영되지 않는 경우가 많았다. 이 부분에서 구두로 약속만 하는게 아니라 확실한 명세서를 작성해야 뒷말이 나오지 않겠다고 생각했다.(제일 중요하다고 생각함)
2. 프론트와 백엔드의 경계
- 말 그대로 프론트는 어디까지 작업해야 하는가에 대한 의문점이 들었다. 프론트가 api 테스트를 해야 하는데 처음에 서버가 없는 상태로 시작하기도 했고 서버를 계속 열어두는게 아니라서 프론트가 작업을 할 때 api 테스트가 제대로 되지 않아 계속 백엔드인 내가 하게 되었다. 또 프론트는 디자인까지 해야하는건지 부터 시작해서 이제는 프론트가 디자인만 하게 되고 테스트와 백을 내가 맡게 되었다.(풀스택은 싫어요...)
3. 소통 문제
- 우리는 비교적 소통을 원활히 했지만 난 좀 자주 소통 했으면 좋겠다. 구체적으로 현재 개발 상황, 개발을 하면서 약간의 문제점이라도 소통이 오가길 바랐지만 혹시나 귀찮아 하지는 않을까, 내가 너무 프로젝트에 집착하는건가 하는 생각에 더 적극적으로 소통하지 못했다. 협업간에 소통을 어느 선까지 할 지 정하는 것도 중요하다고 느꼈다.
마치며
개발을 하면서 내 네이밍 방식, 내 디렉토리 구조가 과연 맞는걸까, 너무 지저분한거 아닐까, 좀 더 java을 활용하면 더 완벽하게 짤 수 있지 않을까 하는 생각도 들면서 내 실력에 대해 깨닫게 되었다. 개발 실력만이 전부가 아니다.
유튜브에서 개발자 관련 영상을 보다 보면 소통을 중요시 한다는 말이 많이 나오는데 이번에 협업을 하면서 왜 소통이 80%이고 개발이 20%라고 하는지 공감하게 되었다. 아직 주니어 개발자라 난 개발이 한 70% 소통 30%인 것 같지만 저정도의 수준이 될 때 까지 노력할 것이다.