본문 바로가기
lean/주간 회고

24.01.07~24.01.14

by mattew4483 2024. 1. 14.
728x90
반응형

업무

POC 기업 추가 기능 개발

POC 기업의 요구 사항을 처리하다 보니, 현재 개발된 기능으로는 구현할 수 없는 사항이 있었다.

input이나 textarea 등 사용자와 상요작용이 필요한 가이드가 있는데...

지금까지 구현된 온보딩 요소들은 타겟과의 상호작용이 일어나는 순간 → 다음 요소로 넘어갔기 때문!

 

이를 구현하기 위해 template의 sub category를 추가,

해당 요소는 페이지와 상호작용이 가능하고 + 다음 버튼을 눌러 온보딩을 진행할 수 있게 구현했다.

 

MVC로 구성된 kit에서는 애플리케이션 공통 interface를 추가하고

View단 로직만 수정하면 이를 구현할 수 있었기 때문에, 큰 공수가 들지는 않았다.

(객체지향 만세!)

 

extension에서 해당 요소를 toggle 할 수도 있어야 했는데...

서버 데이터 상태관리를 위해 react-query를 사용하고 있었음에도 불구,

useEffect문에서 fetch를 통해 데이터를 받아오고 이를 state로 관리하는 레거시 코드가 있어 이를 수정했다.

→ react-query의 invalidateQueries 메서드를 통해, 값을 수정한 후 새로운 데이터를 요청해 화면을 그려줄 수 있도록 했다.

 

아키텍처 리팩토링

처음 현 서비스를 구현했을 때의 요구 사항과 지금의 요구사항은... 그야말로 하늘과 땅 차이.

그럼에도 불구하고, extension 코드는 한 번의 리팩토링 없이 추가 기능 개발만 진행되고 말았다.

이로 인해

1) 불필요한 모듈 증가

2) 복잡도 증대

3) 코드 흐름 파악 어려움 등의 문제가 점점 커져왔고...

 

지난주, 더 이상 이 상태의 코드 위에 무언가를 쌓는 건 무의미하단 생각이 들었다.

→ 곧 무너질 위태위태한 탑처럼 느껴졌기 때문!

 

수요일에 추가기능 개발을 마무리 짓고,

팀원들과의 상의 후 아키텍처를 다시 설계한 뒤 적용했다.

 

대표적인 작업으로는...

1) 컨벤션 정립 

2) 폴더 구조 정리 및 모듈 간 추상화 레벨 통일

3) 애플리케이션 내 전역 상태 관리(react-context를 사용했다)

4) 불필요 로직 제거

5) global style 적용

팀원들도 우리가 처한 문제에 공감하고 있었고

서비스 크기도 그렇지 크지 않았기 때문에 나름 빠르게 전체적인 구조를 재정립할 수 있었다.

→ 물론 모든 코드들이 정리된 것은 아니지만, 나머지는 앞으로의 개발과 함께 리팩토링 해나가면 되겠지!

 

회고

우망성

우리들은 망할까 성공할까?

 

맨 처음 팀에 합류했을 때, 다들 장난 반 진담 반으로 이런 얘기를 했었다.

우리 이야기의 끝은 어떻게 될까? 망할까 성공할까?

 

이번 주. 대표님의 서울 출장이 있었다.

Seed단계 스타트업부터, Series D단계 큰 규모의 기업과도 미팅이 있었는데...

지금까지의 그 어떤 아이템보다 좋은 반응을 확인할 수 있었다.

 

그래서 더더욱 이런 생각이 든다.

이번이 정말 마지막이겠구나.

이런 반응, 이런 기회, 이런 타이밍이 왔는데 잡지 못한다면.

그때는 정말 우리가 망할 때겠구나.

 

그리고 이를 반대로 얘기하자면...

이번 기회를 잡는다면.

빠르게 피드백을 반영하고, 안정적인 제품을 만들어, 다다음 스텝(글로벌)까지 나간다면.

이 이야기는 해피엔딩으로 향할 수 있겠구나.

 

이번 연도. 우리들은 망할까 성공할까?

 

소프트웨어는 생물과도 같다

생물은 끊임없이 변화한다.

외부 자극에 의해서일 수도, 내부적인 요인 때문일 수도 있겠지만.

생물은 살아남기 위해, 스스로를 끊임없이 변화시킨다.

 

소프트웨어도 마찬가지란 생각이 든다.

그때 맞았다고 해서 지금 맞았다는 보장은 없다.

매 순간 끊임없이 의심하고 검증하여 나은 방향을 찾아 적용해야만 한다.

소프트웨어는 생물과도 같다. 그러지 못하면 쓰러져 죽고 만다.

728x90
반응형

'lean > 주간 회고' 카테고리의 다른 글

24.01.21~24.01.28  (0) 2024.01.28
24.01.14~24.01.21  (1) 2024.01.21
24.01.01~24.01.07  (0) 2024.01.07
23.12.11~23.12.17  (1) 2023.12.17
23.12.03~23.12.10  (1) 2023.12.11