Cover Image

Untitled

PDF File

try-to-build-a-better-software-than-before.pdf


Abstract

당면했던 문제

2021년 4월 말에 차봇에 입사하고 나서, 요구사항에 맞추어 사용자를 관리하는 플랫폼의 microservice 를 개발하기 시작했습니다. 그러나 요구사항은 자꾸 바뀌었고, 그 요구사항 변경을 위해서는 코드 전체를 갈아엎어야되는 상황 또한 종종 발생하였습니다. 또한, 그렇게 코드가 변경되면 내가 변경한 코드가 다른 코드에 영향을 주는지 주지 않는지 또한 확인을 해 봐야 했습니다.

시도했던 방법

그래서 이를 어떻게 하면 좀 더 나은 방법으로 해결할 수 있을지 고민했습니다. TypeScript 가 OOP-like 한 코드를 작성하게 해 줄수 있어서 OOP 와 관련된 정보들, 좋은 아키텍처와 관련된 정보들, 좋은 테스트와 관련된 정보들을 찾아 정리하였고 그 결과로 좀 더 유연한 소프트웨어 설계가 가능해졌기에 요구사항 변경에도 이전보다 더 낫게 대응할 수 있게 되었습니다.


Introduction

아키텍처에 대해서

가장 먼저 해 보았던 고민은 아키텍처(Architecture)입니다. 유연한 코드 이전에, 좋은 뼈대가 구성이 되어야 다양한 요구사항을 받아들일 수 있다는 사실을 느꼈습니다. 가장 도움을 많이 받았던 건 Robert martin 이 저술한 클린 아키텍처라는 책입니다.

SOLID

여기서 배운 개념들 중 가장 인상깊었던 건 SOLID 입니다. SOLID 는 single responsibility, open-closed, liscov subsitution, interface segregation, dependency inversion 의 acronym 으로 궁극적으로 의존관계를 최대한 줄여내 소프트웨어의 유연성을 최대한 확보하자는 이야기였습니다.