Title

개발  |

원래 이렇게 하는게 당연한거 아닌가

몇해 전 나는 A 스타트업으로 이직했다. 새 프로젝트를 시작하게 돼서, 다른 리포지토리 코드를 훑어봤다. 같은 프로젝트, 같은 폴더 안에서도 파일 이름의 첫 글자가 대문자였다가 소문자였다가, 카멜 표기법과 스네이크 표기법이 혼용되는 등 여러가지 규칙이 혼합된 걸로 보아 정해진 컨벤션이 없어 보였다. B 시니어에게 문의했을때도, 규칙은 없으니 원래 개발 하던 스타일대로 개발한다고 하면 된다는 대답을 듣고 폴더 구조나 db 연결 부분등을 간단하게 바꿨다. 문제는 코드리뷰를 할때 생겼다.

B 시니어는 해당 프로젝트의 폴더 구조가 별로라고 애기했다. 그러면서 기존의 다른 프로젝트의 폴더구조를 그대로 따르라고 얘기했다. 기존 폴더구조는 API 한개당 폴더를 한개 만들어야 했다. 예를 들어 ping 을 보내는 API 를 만들고 싶다면 ping 폴더를 생성하고, 그 폴더 안에 __init__.py, ping.py 를 생성한다. ping API 는 ping.py 에 개발한다. 내가 이러한 폴더 구조 방식을 취한 이유를 설명해달라고 요청하자 B 시니어는 파이선 개발을 할때는 이 방식을 따르는게 ‘당연하다’고 했다. 이 답변은 많은 의문을 남겼지만 더 이상 질문 할 수 없었다. B가 화났기 때문이다.

며칠 뒤 조직이 개편되면서 원래 시니어 역할을 하던 B 시니어가 다른 조직으로 갔고 C시니어가 이 조직에 추가되면서 유일한 시니어가 됐다. C 시니어는 아카데믹한 환경에서 자바 개발을 주로 했던 사람이여서 자바 언어에 대한 지식은 풍부했지만 파이선에 대해서는 잘 몰랐다. 나는 C 시니어에게 구조에 대한 자문을 구했고, C 시니어는 폴더 구조를 view, service, repository, domain 등등으로 변경하자고 제안했다. 그러면서 자바에서는 많이 사용하는 방식이지만 파이선에서도 이런 방식을 취하는지는 모르겠다고 덧붙였다. 자바에서는 왜 service, repository, domain 으로 사용하냐고 물어보자 C 시니어는 자바 커뮤니티에서는 이 방식을 사용하는게 ‘당연하다’고 했다. 결국 service, repository domain를 사용해서 폴더를 나누고 영역을 구분하는지에 대한 이유는 못들었다.

A 스타트업에서는 이렇게 모든 게 ‘당연한’ 방식으로 작동했다. 나중에는 개발자들이 서로를 공격할때도 ‘당연히 원래 그런데’라는 말을 쓴다는 걸 알았다. 이걸 모르다니, 당연히 알아야 하는데 원래 이렇게 많이 쓰니깐 말이야. 당연히 알아야 하는 것들은 많은데 모르는게 태반이라 더이상 개발을 업으로 하기에는 너무 부족하다고 생각했고 A 스타트업을 퇴사했다.

나중에 에릭 에반스의 도메인 주도 설계 책을 접하면서 궁금증이 해소됐다. service, repository, domain model 등등의 단어들은 DDD 에서 등장했고, 스프링 프레임워크는 DDD를 적극 반영 했기 때문에 자바에 스프링 프레임워크를 사용한다면 폴더 구조를 service, repository 등등의 단어를 사용하게 된다. 자바로 개발한다면 주로 스프링 프레임워크를 사용하게 되니까, DDD를 모르는 상태에서 스프링 개발을 한다면 웹 서버 백엔드 폴더 이름은 어떤 상황에서든 무조건 service, repository, domain 가 되야 한다고 생각하게 된다. 주변의 자바 개발자들과 대화했을때는 스프링을 사용하지만 DDD를 아예 들어본 적 없는 개발자도 있었다. DDD는 아는데 스프링 프레임워크가 DDD를 구현했다는 사실은 모르거나, DDD는 모르고 스프링 개발을 해야만 스프링 같은 구조를 접할 수 있다고 생각하는 개발자 등등 각양각색이였다. 기술을 개발하고, 기술을 선택하는 게 업인 직군인데 직군의 특성에 비해 ‘왜’에 대한 질문을 하는 사람은 적다.

만약 내가 남들처럼 그냥 ‘원래 그렇게 쓰나보다’ 라고 받아들였다면 어떻게 됐을까? 실력이 지금과 똑같았을 거지만, 방향은 달랐을 것이다. 질문에는 ‘원래 그렇게 많이 하는데’ 라고 답하고, 선택할때는 트렌드에 의존하는 개발자가 됐을 거라고 생각한다. 당연하게 여겨지는 것들을 한번쯤은 고민해보는게 좋은 개발자가 되는 길이 아닐까 하는 생각이 든다.