구조에 대한 고찰 - 1

코몽·2023년 11월 23일
1

구조에 대한 고찰

목록 보기
1/1

원티드 12월 챌린지에서 로직에 관련하여 글을 쓰는 사전 과제를 받았다.
어떠한 로직이 구현하기 어려웠는지 등에 관하여 작성하라는 것이다.
근데 나는 로직보다는 구조에 관해 이야기를 하고 싶다.
로직이야 뭐 GPT 쓰면 다 해주는데 뭐

사실 일반 로직들도 신입 입장에서는 경험이 적어 구현하기 매우 어렵다.
(중고 신입 및 경력 같은 신입 제외)

단순히 수도 코드나 바닐라로 어떻게 구현할 수 있을 지 몰라도 모던 리액트 방식으로 혹은 라이브러리를 사용하여 구현하려면 일단 관련 툴들에 대한 지식이 있어야 한다.

뿐만 아니라 클린 코드 형식 및 적합한 구조와 패턴까지 고려하여 작성하려다 보면 생각보다 힘들다.

특히 어떠한 로직의 구현은 어느정도 정답이 정해져 있고 거기에 도달하기 위한 방법이 다양하게 있는 반면 구조와 패턴등은 정답이 없고 주관적이라 어려운 것 같다.

원티드 프리 온보딩이 6월에 끝나고 8월에 취업하여, 취업한지 3개월 정도 되었다.
안타깝게 중소 SI에 들어갔지만 SI 답지 않게 야근, 주말 근무, 파견 등이 일절 없어서 다행히 수월하게 다니고 있다. 이곳에서 배운점이라 하면 당연히 구조적인 부분이라 할 수 있겠다.

내부 툴 제작을 전문으로 하다 보니 한 페이지에 여러 기능이 우겨 넣어져 있고 그에 따른 성능 문제가 심각하여, 최대한 폴더 구조를 성능을 고려하여 설계하고 있다. 개발자 입장에서 코드를 작성하기 간편하기 보다 리렌더링 여부를 고려하여 성능적으로 최적으로 만드는 것이다.

물론 이런 부분들에 정답이 없고 이 구조면 완벽해 보여도 나중에 항상 문제를 발견하여 다시 새로운 구조를 짜고 난리도 아니다.

그 와중에 깨달은 것은 이런 구조적인 고민을 하기 위해서는 기본기가 탄탄해야 한다는 것이다. JS 기본기, React 기본기 및 여러 상태 관리 및 기타 라이브러리들에 대한 이해도가 높고 문법 및 사용법을 제대로 숙지 하고 있어야 해당 기술들을 이용하여 수월하게 구조 설계에 집중할 수 있다. 잘못 알거나 제대로 모르고 있을 경우 성능을 해치는 코드를 짜기 십상이다.

예를들어 Zustand의 경우에도 뽑아 쓸때

state => state

해서 그대로 불러 올지 아니면

state => state.id

이런식으로 선택적으로 불러오는지에 따라 리렌더링 여부가 갈리고 또 shallow 등의 문법을 적절히 잘 사용해 줘야 성능적으로 문제가 없다.

그래서 결론은 클린 코드, 구조, 아키텍처 및 패턴등을 신경쓰려면 로직 구현, 라이브러리 사용법 및 문법등과 관련된 하드 스킬을 완벽할 정도로 숙지를 하고 넘어가는게 좋지 않나 하는거다.
즉, 할게 겁나 많은데 미리 해놓은건 없고 시간은 부족하고 지능은 낮다는 것이다.
이러다 평생 Mr.SI가 될 것 같다.

profile
프론트엔드 웹 개발자(React) https://code-d-monkey.tistory.com/

0개의 댓글