23.05 / 멀티모듈 찰나 사용기

다른 의도

아는 형님이 좋아하던 문구가 있다. '입술에 30초, 가슴에 30년' 이라는 말이다. 의도가 어쨌든 간에 잘못 뱉은 말은 돌이킬 수 없으니, 신중하게 생각하고 행동하라는 의미였다. 우리는 '한글'이라는 언어로 대화하고, 컴퓨터와는 '코드'라는 언어로 대화한다. 공통점이 있다면 흔적이 남는다는 것이고, 차이점이 있다면 만회가 가능하다는 점 아닐까.

잠시나마 서버 구조를 모듈 형식으로 가져갔었다. 각각의 기능 별로 서버를 띄우고, 서로 독립된 환경에서 영향을 받지 않게 하겠다는 의도였지만, 메모리 사용량의 한계에 부딪혀 그 꿈을 잠시 접어 놓았다. 문제는 이미 모듈 환경으로 구성이 끝난 상태라서, 어차피 만든 김에 한번 돌려나 보자는 생각으로 코드를 업로드 했고, 이는 모듈 환경의 장점을 전혀 살리지 못하게 되었다.

일단 가장 큰 문제는 코드만 나뉜 상태지, 환경이 전혀 독립된 상황이 아니었다는 것이다. executor라는 별도의 모듈에서 각각의 코드들을 컴포넌트 스캔 한 후 실행하는 방식이었는데, 내 코드에 비즈니스 로직이 복잡하게 만땅으로 들어간 상태라면 코드를 나누는 것이 의미가 있을지도 모르겠으나, 입출력만 하는 상황이 대부분이라 사실 별 의미가 없었다. 오히려 각종 config 파일, filter 파일들이 흩어져있으니 코드를 찾아보기 더 힘들었다.

두 번째 문제는 의미 없는 중복 코드만 늘어갔다는 점이다 restdoc 설정, 계속 겹치는 의존성들 등등 관리 포인트만 점점 늘어가고 있었다. 오히려 모듈로 나누지 않았다면 한 번 작성하고, 한 곳에서 관리하면 되는 코드 였을텐데 뭐 이놈 저놈에서 다 가지치기 하고 앉았으니 영 좋지 못했다.

사실 요즘 계속 코드를 작성하며 '필요한 곳에는 필요한 만큼 작성하자' 라는 생각이 계속 든다. 뭔가 나 혼자서 '이렇게 짜면 나중에 훨씬 좋겠지?' 라는 휘향찬란한 상상의 나래를 펼치며 코드를 작성했던 적이 있는데, 어차피 그렇게 작성한 인터페이스, 추상 클래스 사용 하지도 않고 엎는 경우가 대다수더라. 올지 안 올지도 모르는 미래를 넘겨짚지 말고, 현재에 충실하자.

Last updated