je개발 일지

[ je 개발 일지 ] 73일차(교훈 있음), "위기 혹은 기회 - 설계 단계의 애송이"

Je-chan 2022. 3. 24. 00:26

[ 오늘의 TODO & DONE ]

  1. 개인 공부) 자바 / 스프링 학습 (월, 화, 수) 
    - 추상 클래스
    - 템플릿 메소드 패턴
    https://github.com/Je-chan/java-study/tree/main/java-oop-core/src/templateMethod
  2. 독서) 리팩터링 읽기
    - 2.4 언제 리팩터링 해야할까?
    - 2.5 리팩터링 시 고려할 문제
  3. 생활) 물 1L 이상 마시기
    - 성공! 
  4. 생활) 최소 30분은 운동하기
    - 1만보 걸은 건 30분 운동한 거라고 하자.
 

GitHub - Je-chan/java-study

Contribute to Je-chan/java-study development by creating an account on GitHub.

github.com


[ 오늘의 회고 ]

1. 아직 설계하기에는 애송이

  이번에 회사에서 맡은 업무 중의 하나가 프론트엔드는 나 혼자 작은 도메인을 한 번 만들어보는 거다. 페이지의 개수는 5 페이지 정도 되지만, 이 도메인의 가장 큰 문제는 받아들이는 데이터가 많다는 것이다. 많은 양의 데이터를 가져오고, 그 데이터를 시각화해야 한다. 그렇기 때문에, 필터링 거쳐야할 것도 많고, 한 번도 사용해본 적 없는 차트와, 아직 익숙하지 않는 그리드를 만들어야 한다. 

 

  데이터가 많아서 그런 건지, 아직 데이터를 시각화해 본 경험이 없어서 그런 건지 모르겠지만 머릿속에서 그리는 설계가 많이 꼬인다. 이게 맞는 건지, 저게 맞는 건지 모르겠다. 때문에 나랑 같이 작업하는 백엔드 팀원에게 지나칠 정도로 많은 질문을 해버렸다... 심지어 그 말들도 제대로 정립되지 않았다 보니 횡설수설하며 시간을 잡아먹은 것 같다.... 

 

  이렇게 작은 도메인인데, 이 정도로 꼬일 일인가 싶다. 변명을 조금 하자면 우리 회사는 디자이너가 없다 보니 UI / UX 에 대한 설계도 필요했다. 거기에 데이터가 어떻게 들어오는지 API 문서도 없었고 갑자기 내일 UI 모의 발표를 한 번 해야했기 때문에 시간에 쫒기다 보니 이렇게 된 거기도 하다.

 

  하지만 그렇다고 해서 내가 능력이 있는 건 아니다. 이번 기회를 통해서 내가 얼마나 애송이인가를 뼈저리게 느꼈다. 이렇게 시야가 좁고, 여유롭게 흐름을 파악하지 못하다니. 지금도 아직은 설계를 하는 단계에 있지만, 이번 기회를 통해서 설계하는 능력이나, 백엔드와 효율적으로 소통하는 방법을 터득하고 싶다. 


[ 오늘의 교훈 ]

1. 일단 그림을 그려보고 필요한 데이터를 정리할 것

  설계를 하다가 갑자기 번뜩이게 된 건 PPT 발표 자료로 UI Wireframe 을 만들고 있었을 때다. UI 를 직접 PPT 로 그려보면서 이 페이지 혹은 컴포넌트에 어떤 데이터가 필요한지, 어떻게 데이터가 와주면 좋을지, 어떻게 상태를 정의하고 어떻게 관리를 해줄지 아이디어가 생겼다. 그 이전에 백엔드 분과 얘기를 할 때는 엄청 횡설수설하면서 내가 무슨 데이터를 필요로 하는지 조차 제대로 설명할 수 없었는데 (그래서 그분께 매우 죄송하다 ㅠㅠ) 직접 와이어 프레임을 짜다 보니까 비로소 내가 무슨 데이터가 필요하고 어떻게 구성해야할지를 깨닫게 됐다. 그리고, 각각의 컴포넌트에 어떤 기능들이 추가되면 좋을 거 같은지 아이디어도 함께 떠오르게 됐다. 

 

  코드 스테이츠에서도 프로젝트 시작할 때 가장 먼저 했던 일은 아이디어 회의 후 목업-와이어 프레임을 짜는 일이었고, 코드를 작성하다 막히면 손코딩을 하면서 문제를 해결하곤 했다. 미리 사전에 뭔가를 계획하고, 그걸 직접 내 손으로 만들어 보면서 눈으로 가시화하는 건 굉장히 좋은 방법이다. 그걸 알고 있었다. 그런데 이번 업무에서는 그걸 까먹고는 횡설수설하고 우왕좌왕했다. 다음부터는 뭐가 막힌다 싶으면 일단 멈추고, 내가 무엇을 생각하고 있는지 그 생각을 머리에서 꺼내 그림으로 그리든 글로 쓰든 내 눈으로 볼 수 있도록 하자.  

  

  물론, 이렇게 작성한다고 해서 내 설계 능력이나 프로젝트를 전체적으로 바라보는 시야가 생기는 건 아니겠지만, 그럼에도 백엔드와 대화를 할 때 더 효율적으로 대화를 할 수 있지 않을까, 그리고 막막해서 끙끙 대는 시간을 더 줄일 수 있지 않을까 생각해본다.