본문 바로가기
Log/private

2022년에는 무엇을 해야할까

by HenryNoh 2022. 1. 11.

프론트엔드 개발자라는 직업을 가지고 앞으로 10년 20년을 계속해서 살아가려면 무엇을 해야 할지 정말 많은 고민을 한 2021년이었다. 정규직으로 전환이 되고부터는 하루하루 프로젝트를 진행하고 개발하고 퇴근해서는 내가 하고 싶은 것도 해야 하고 공부도 해야 하고 정말 많이 바쁜 세월을 보내고 있다. 어쩌면 여태 살아오면서 이렇게 열심히 살려고 노력한 적이 있을까 싶기도 하다.

3가지 정도의 분야에서 많은 의문과 궁금증 그리고 무엇을 해야할까에 대한 고민을 많이 해보았다. 고민을 하며 동시에 공부도 해보았고 함께 진행하며 하고 있고 그렇게 못하는 정리도 서서히 해보고 있다..! 이 글에서는 한 가지만 얘기해보려고 한다.


그것은 바로 개발자의 진로에 관한 이야기이다.

약 반년 정도를 생각없이 개발을 하다 보니 아니 사실상 코드를 찍어내다 보니 내가 개발자인가? 싶은 생각이 많이 들었다. 외부적으로 보이는 시스템은 제대로 돌아가고 있지만 나의 발전은 하나도 없는 시간을 보내고 있는 것이었다. 물론 돈을 번다는 말로 위안을 삼으면서 이렇게 계속 지낼 수도 있겠지만... 그래도 우리는 개발자 아닌가! 더군다나 트렌드에 민감하고 빠르게 변해가야 할 프론트를 하고 있다면! 더욱 열심히 노력해야 한다.!

내가 다니고 있는 곳은 아직 프로젝트의 규모가 엄청 방대해지지 않았기 때문에 내가 원하는 것을 또는 팀원들과의 회의를 통해 필요한 것을 자유롭게 넣을 수가 있는데


기술도입의 첫 번째로 선정된 것이 당연하게도! TDD를 위한 JEST였다.

사실상 TDD를 제대로 해본 경험이 있는 팀원이 한 명도 없었기에 ㅜㅜ 함께 공부하며 3가지의 프로젝트의 개발과 동시에 도입을 준비하고 있다. 앞으로.. 1~2달 정도는 더 있어야 제대로 구축이 되지 않을까 싶지만 그 이후의 우리의 워라밸을 생각한다면 필수적인 요소로 힘들겠지만 더 열심히 해야 할 것이라고 생각이 된다.
TDD를 위해서 다양한 자료를 찾아보며 공부를 하고 있는데 그중에서 정말 실질적으로 제일 도움이 됐던 것은

1. 리팩터링 2판
http://www.yes24.com/Product/Goods/89649360

 

리팩터링 2판 - YES24

개발자가 선택한 프로그램 가치를 높이는 최고의 코드 관리 기술마틴 파울러의 『리팩터링』이 새롭게 돌아왔다.지난 20년간 전 세계 프로그래머에게 리팩터링의 교본이었던 『리팩토링』은,

www.yes24.com

내가 진짜 책을 안 읽으면서 공부하는 대표주자인 거 같은데 정말 거의 약 3년 만에 공부를 위해서 책을 사보았다. 그것도 책의 초반부를 살짝 보자마자 바로 질러버렸다. 지금 읽고 있는 도중이기도 하고 초반부만 봤음에도 불구하고 이 책은 내가 필요한 모든 상황을 알려주고 있지 않나 싶다. 역시 베스트셀러는 그리고 명작은 오랫동안 사랑받는 이유가 있는 법이다.

(진짜 저는 책을 정말 안 읽는 사람이지만 이 책은 완벽합니다.)

2. RIDI BOOKS 기술 블로그
https://ridicorp.com/story/how-to-use-redux-in-ridi/

 

리덕스 잘 쓰고 계시나요? - 리디주식회사 RIDI Corporation

리덕스에는 정해진 규칙이 없습니다. 개발자들 모두 자신만의 방식으로 사용 하고 있어요. 하지만 제대로 사용하지 않으면 굉장히 불편할 수 있고, 유지 보수에 있어서 오히려 독이 될 수도 있

ridicorp.com

그 유명한 VELOPERT님의 리덕스 관련 리디 기술 블로그의 글인데 정말 이 글 하나가 어떻게 보면 글로벌 상태 관리의 모든 것을 함축하고 알려주고 있지 않나 싶을 정도이다. 더군다나 NEXT를 사용하고 있는 현재 회사의 프로젝트와도 기술 스택이 딱 맞아떨어져서 더욱 도움이 되었다. 


TDD가 도입이 되고 난다면 두 번째로 도입될 기술은 CYPRESS이다.

현재 회사의 QA시스템은 모든 게 순수하게 수동으로 돌아가는 QA시스템이다.. ㅜㅜ (눈물이 난다..)
몇 백개의 시나리오가 주어지면 모두가 함께 QA시간에 맞춰 테스트를 해보며 확인해나가는 과정을 거치고 문제가 생기면 수정하는 시스템을 가지고 있는데 이렇게 QA를 진행하게 되면 정말 지옥 같은 미래가 펼쳐지게 될 것이다.

만약 해당 로직과 시스템이 서비스가 종료될 때까지 변하지 않는다면 정말 행복하고 좋겠지만.. 우리는 그럴 수가 없다. 짧게는 하루 이틀부터 길게는 일주일 한 달 사이에 요구사항은 적게는 몇 개에서부터 많게는 수십 개까지 들어올 것이고 우리는 항상 그럴 때마다 수정을 하게 되는데 이때 테스트를 하지 못하면..! 이미 있던 시나리오를 다시 다 돌려보지 못하면! 배포를 한 후에 터질까 봐 항상 걱정하게 된다. 이 모든 것을 해결해주는 단 한 가지의 방법이 (현실적으로 모두 다 완벽하게 해결하지는 못하지만) TDD와 QA자동화이다.

코드를 바꾸고 새로 짜면서 테스트를 한 번만 돌려주면 이전의 기능이 모두 잘 돌아가는지를 알 수 있는 것이다! QA도 마찬가지로 수백 개의 시나리오를 직접 해볼 필요가 없이 한 번의 프로그램 실행만으로 다 해결할 수 있게 되는 것이다.
결국 현재 가장 많이 쓰이고 있는 REACT + α 의 조합이 결국에는 비즈니스 로직에 대한 이해 없이 구현이 되고 있다면 혹은 이미 되었다면 아니면 앞으로 할 생각이라면 결국 지옥을 경험하게 될 것이다.

이 모든 것은 하나의 일맥상통되는 개념으로 통하게 되는데 그것을 아주 정말 완벽하게 잘 정리해놓은 글이 있다.

1. FINDA 기술 블로그

https://brunch.co.kr/@finda/556

 

단단한 컴포넌트 부수기(feat. 조합, IoC)

핀다 개발자들은 이렇게 일하곤 하지 Vol.02 | 안녕하세요. 핀다에서 열심히 프론트엔드 개발을 하고 있는 신권철입니다. 핀다는 웹서비스를 개발할 때 리액트를 적극적으로 활용하고 있습니다. 

brunch.co.kr

구글에서 리팩터링과 코드 구현에 관련된 정말 많은 글들을 찾아보고 해외 문서들이나 stackoverflow까지 뒤져봤음에도 불구하고 역시 가장 좋고 완벽한 방법은 이미 잘 나가고 있는 회사들의 코드를 보는 것이었다.

위 게시글의 '상속보다는 조합'이라는 단 하나의 개념만으로 지금 우리 회사의 Header 컴포넌트는 api data를 제외한 props를 상속받지 않으며 글로벌 상태도 필요 없이 20개 이상의 페이지에서 각기 다른 모습으로 모두 완벽하게 동작하고 있다.

cypress와 관련 없는 이 게시글이 왜 여기에 포함이 되느냐! 하면 이 개념을 이해해야 자동화가 왜 필요한지를 이해할 수 있기 때문이다. 


당장의 두 가지 목표만으로도 그리고 회사의 프로젝트 진행만으로도 이미.. 2022년 상반기가 다 갔을 것이 눈에 훤히 보인다. 무엇보다도 꾸준함이 항상 중요한 것 같은데 그것을 지키고자 노력하는 것이 나의 평생 숙제가 아닐까 싶다. 당장.. 블로그만 해도 제대로 안 하고 있으니 말이다.

아무튼 2022년은 정말 바쁜 한 해가 될 것이다. 2023년이 되었을 때 보람차고 행복했던 일 년이 되기를 기도하며. 1월의 목표를 모두 달성하기를 응원한다!

댓글