[우아한테크코스 #5] 오해해버린 설계

NinjaJuunzzi·2022년 3월 13일
0

우아한테크코스

목록 보기
7/21
post-thumbnail

이번 미션에서 가져가고자 한 개발 프로세스

우선 저번 미션에선 설계를 해두고 큰 모듈에서 작은 모듈로 개발해나갔습니다.

그러다보니 다음과 같은 문제점들이 있더군요 !!

😳 작은 모듈들이 각자의 일을 잘 하지 못했다! (각자의 일을 잘하도록 리팩토링 하는 과정이 매우 길어졌습니다)

😳 작은 모듈들이 추가되어야 하는 경우 확장이 힘들었다!

위 같은 문제점들이 발생하여 가져가게된 이번 미션에선 작은 모듈들을 먼저 개발하여, 큰 모듈들은 이를 조립하여 만들거나 이용하며 만들어나가도록 하였습니다. (Bottom Up하게 개발하고자 하였습니다.)

  1. 작은 모듈들이 앱에서 어떤 기능을 해야하는지 정의한다.

  2. 작은 모듈들이 각자 일을 잘하도록 개발한다.

  3. 큰 모듈들을 작은 모듈들을 이용하여 개발한다.

이번 방식의 오해와 문제점

Bottom Up 방식을 오해하여 어플리케이션의 큰 흐름을 설계하지 않았습니다. 또 어떤 모듈에서 사용되는 모듈인지 제대로 정의하지 않았습니다.

이번 프로젝트 개발 흐름에 있어 가장 중요한 아이디어는 작은 모듈들은 각자의 일만 잘하면된다 였습니다.

각자의 일을 잘한다면, 어떤 사용처에서도 활약할 것이라 믿어 어플리케이션의 전체 플로우(구조 설계)를 정의하지 않고 프로젝트를 시작하였습니다.

하지만 다음과 같은 문제점들이 있었습니다.

  • 불필요한 분리가 발생하였습니다.
    해당 모듈을 개발할 때는 몰랐으나, 상위 모듈을 개발할 때 분리된 모듈이 아닌그냥 상위 모듈의 일원으로 갖게하면 되지 않나 싶은 모듈들이 존재하였습니다.

  • 사용되지 않는 모듈이 존재하였습니다.

    어디서 사용될지 설계하지 않았다보니 굳이 모듈로 만들어 사용해야하나 의문점이 드는 모듈들이 존재하였습니다.

  • 상위 모듈을 개발할 때 하위 모듈에 변경사항이 많아지게 되었습니다.

    이 또한 어디서 사용될지 정확히 정의하고 개발한 것이 아니기 때문에 막상 상위 모듈에서 사용할 때 이런 저런 변경사항이 발생하게 되었습니다.

앞으로라면 ?

위와 같은 문제점을 토대로 아래에서 위로 나아가는 개발방식을 다음 미션에서도 수행하게 된다면 저는 다음 조건을 만족한 이후에 개발을 시작할 것 같습니다.

1. 기능 요구 사항을 토대로 어떤 모듈들이 존재할 지 정의합니다.


2. 각 모듈은 어떤 일을 담당하게 되는지 정의합니다.


3. 어떤 사용처에서 어떤 모듈들이 사용되는지 간략하게라도 정의합니다. (❌ 이번에 하지 않았던 부분)


4. 간략한 설계를 수행합니다. (❌ 이번에 하지 않았던 부분)

profile
Frontend Ninja

0개의 댓글