230115.wil

Universe·2023년 1월 15일
0

서론

일주일동안 코드를 별로 건드리지 못했다.
물리적인 요인도 심리적인 요인도 있었지만,
그렇다고 내가 할 일도 제대로 하지 못하는 사람은 되고싶지 않기때문에
누군가에겐 핑계로 들릴 수 있는 것들은 배제하고
내가 해야할 일을 묵묵하게 해야만 하는 것이다.





본론

우리의 프로젝트는 그림일기를 한 페이지를 작성하기 위해서 여러가지의 옵션을 넣었다.
캔버스, textarea, 태그, 제목이나 날짜 같은 것들.
이 정보들을 submit 버튼을 누른 시점에 모든 데이터를 서버에 보내주어야 한다.
그러나, page 컴포넌트는 부모 컴포넌트이고 가져와야 하는 데이터를 생산하는 건
자식 컴포넌트 이다. 리액트는 자식 컴포넌트의 데이터를 부모 컴포넌트로 보내는 일이
생각보다 자유롭지 않다.

지금까지의 포스팅 로직은 컴포넌트가 나뉘어져 있지 않고 하나의 페이지에서 작성된 데이터를
상태로 관리하고, 상태로 관리되는 데이터는 submit 버튼을 누르는 시점이
항상 최신의 데이터이기 때문에 이러한 고민을 할 기회가 없었다.
그런데 이번 프로젝트는 캔버스도, 태그를 생성하는 컴포넌트도 각각의 컴포넌트로 분리했기에
각각의 컴포넌트에서 관리되는 데이터를 최상위 컴포넌트에서 submit 할 수 있도록 해 주어야 했다.

여러가지 방법이 떠올랐다. 하위 컴포넌트에 props로 함수를 넘겨주고 submit 버튼을 눌렀을 때
boolean 값으로 상태를 변경해 그 시점에 상태를 가져오는 방법이라던지,
전역 상태관리 라이브러리를 사용해서 dispatch 해서 데이터를 저장하는 방법.
그밖에도 여러가지 로직을 생각하고 실제로 구현도 했지만 모두 마음에 들지 않았다.
로직이 마음에 들지 않는 것 이외에 내가 원하는 시점에 원하는 데이터를 정상적으로
가져오지도 못했다. 무언가 놓치고 있는 부분이 있다는 생각이 들었다.

결국, 고민하다가 질문방에 글을 올렸다.
질문조차도 정리한다고 정리했지만 지금보니까 두서없이 무슨말을 하려는 건지 모르겠네.
다음날, 그러니까 오늘. 기술매니저님께서 연락을 주셨다.

처음 받은 연락은 "env 파일을 줄 수 알려주실 수 있으세요?" 였다.
매니저님이 env 파일이 필요했던 이유는 다른게 아니고
깃허브에서 클론을 해서 매니저님의 로컬에서 열어보고 싶은데
인증을 하기 위해서는 env 파일이 필요하니까- 라는 단순한 이유였다.
현재는 카카오 인증에 대한 로직이 제대로 구현되지 않아 당장은 없어도 접속을 할 수 있다고
말씀드렸다.

매니저님은 기술적인 문제 이전에 기획과 UX 적인 부분에 대해서 질문하셨다.
그런데, 아직 그 부분조차 제대로 논의되지 않았다는 사실을 깨달았다.
단지 와이어 프레임 대로 만들고 그에 따른 구현을 했을 뿐이었다.
이 부분에 대한 고민을 프론트엔드 측에서 하는게 아닌
그냥 단순하게 디자이너님께 맡겨버린게 아니었을까 하는 자책의 감정이 올라왔다.
이 부분은 확실하게 피드백이 필요한 부분이었다고 생각한다.
아마 매니저님께서 말씀해주시지 않았으면 고민해보지 못했을.
지금 유저가 어떤 단계에 머무르고 있고
서비스를 제공하는 입장에서는 어떤 알림을 주어야 하는지에 대한 고민을
전혀 하지 못했다. 누군가는 그런 부분은 기획이 해야할 일이라고 하지만,
나는 단순하게 시키는 일을 생각없이 하고 싶어서 개발자가 된게 아니다.
더군다나 이번 프로젝트는 우리가 기획하고 우리가 주체가 되는 프로젝트인데
너무 이런 부분에 대한 고민을 하지 않았던게 아니었을까 하고.

그 다음에야 기술적인 부분에 대해서 피드백을 해주셨다.
이벤트와 데이터를 추적하는 '시점' 에 대해서도 한번 고민을 해보고,
그에 따른 '추적'을 UX적인 부분과 결합해보는게 좋을 것 같다고.
이런게 정말 개발자의 역할이라고.

결국 기술적인 문제에 대한 해결도 의외로 간단하게 해결했다.
하위 컴포넌트의 데이터를 원하는 시점에 부모 컴포넌트에서 호출하는 방식이 아니라,
애초에 부모컴포넌트에서 상태를 만들고 그 상태를 하위 컴포넌트에서 props로 내려
가공하는 방식으로.
리액트 1주차, props 를 하위 컴포넌트에 넘겨 가공하는 방식조차
편협한 시야 때문에 놓치고 있었던 것이다.

터널에 들어가면 빛이 나오는 출구만 보고 달린다.
그저 시야에 출구에서 나오는 빛 밖에 들어오지 않는다.
지금 당장 구현해야 한다는 편협한 시야때문에
가장 중요한 것들을 놓치고 있지 않았는지 다시한번 생각하게 됐다.






결론

결국,
그동안 미루어 뒀던 일을 해결하는데 마음을 너무 많이 썼다.
그래도 해야 할 일은 해야만 한다.

profile
Always, we are friend 🧡

0개의 댓글