23년 6월에 첫 웹 프론트엔드 커리어를 시작했다. 그 후, 9개월 뒤
24년 2월에 내 첫 개발 커리어를 시작한 회사를 나오게 되었다. (경영악화)
이후, 4개월 간 취준을 하고 다행히 현재 회사에 취업 성공이되어 다니고 있다.
지금 다니고 있는 회사에서는 개발자가 읽어보면 좋은 책들을 많이 구비해놓고 있는데,
그 중에 하나인 나는 네이버 프런트엔드 개발자입니다.
를 첫 필독서로 읽어보았다.
해당 책에서는 입사 후, 별도의 지도 없이 스스로 일을 도맡아 해낼 수 있는 역량
을 말하고있다.
이런 말을 선택하신 이유를 다음과 같이 표현하셨다.
오늘날 우리는 개발하기 좋은 시대에 살고있고, 개발하고 있음을 이유를 들었다.
인프런, 유튜브, 유데미 등 양질의 컨텐츠가 넘쳐나는 시대이고, 내가 배우고자 하는 것을 선택해서 듣고 학습하면 되기 때문이다.
스스로 일을 도맡아 해낼 수 있는 역량은 다음의 멘트로 이어질 수 있다.
팀 성과에 도움을 줄 수 있는 역량
지식 습득 ➡️ 직접 코딩 ➡️ TIL
본인이 아무리 동영상 강의를 보고, 책을 읽어도 직접 하지 않으면 소용 없다는 이야기다.
아무것도 하지 않는 것 보다 눈으로 동영상 강의를 보는것, 책을 읽는 것이 좋다.
하지만 더 좋은 것은 내가 학습한 지식 및 기술을 직접 사용해보는 것이다.
온전히 나의 것으로 만들기 위해서는 내가 사용해보고 경험해봐야 한다는 것이다.
그러나 시간은 한정되어 있고, 특히 직장인이라면 더더욱 시간은 한정되있다.
학습 방향성은 내가 무언가 필요하다고 느껴질 때다.
필요한 것이 생기면, 그때 그때 찾아서 학습하는 것이 현실적으로 가장 빠르게 기술을 체득하는 방법임을 책에서 말해주고 있다.
Q. 동일한 오류가 반복적으로 발생하지 않으려면 어떻게 해야할까?
A.
1. 오류 발생을 감지한 시점에 최대한 빠르게 동료와 공유하기
2. 오류가 더 이상 발생하지 않는 방향으로 최대한 빠르게 수정하기
3. 오류 원인 파악 및 수정하기
4. 오류 내용 공유 및 재발 방지 대책 수립 또는 논의하기
위 프로세스에 따라 최대한 빠르게 수정을 진행한다.
부서별, 팀별 상황에 따라 다르겠지만 보통 정상적으로 동작하던 버전으로 롤백 후, 10분내로 에러 수정이 된다면 Hotifx
배포를 진행한다.
해결이 간단하지 않은 경우라면, 롤백한 정상버전에서 해당 오류를 재현해보고, 왜 오류가 발생했는지 추적해보는 과정을 거치는 것이 좋다.
위 과정을 거치고, 에러가 해결되었다면 배포를 진행한다. 이후 배포 환경에서 다른 오류는 발생하지 않는지 모니터링을 진행하고, 문제가 없다고 판단되면 최종적으로
에러는 해결되었다고 할 수 있다.
네이버에서는 에러를 다음의 시선으로 바라본다고 한다.
사람의 실수를 그 사람 문제가 아닌, 시스템 문제로 인식한다.
사람은 누구나, 언제나 실수할 수 있다고 생각하기에 위와 같은 시선으로 접근한다고 한다.
그렇기 때문에 시스템적으로 어떻게 해결해야할 지, 같은 에러를 다다음에도 마주하지 않으려면 어떻게 해야할지 고민한다고 한다.
프론트단에서도 테스트 코드
를 작성하는 것이 에러 재발 방지 대책에 큰 도움이 된다고 한다.
유닛 테스트, 통합 테스트
네이버는 Github Action PR
발생 시점에 자동으로 위 테스트들을 동작하게 자동화했다고 한다.
오류 로그는 Sentry
도구를 활용하여 에러 로그를 수집했다고 한다.
https://docs.sentry.io/platforms/javascript/guides/nextjs/
수많은 에러 로그를 수집했다면, 개선해야 할 에러 로그 필터링을 다시 거쳐야 할 것이다.
예를 들어 네트워크 오류와 관련된 에러 로그는 pre-load 등의 상황에서 네트워크 환경에 따라 에러가 발생해서 에러 로그가 적재될 수 있다.
이런 오류는 다수 사용자에게 발생하는 것이 아니라면, 치명적인 에러는 아니기 때문에 작업 순위가 다른 에러로그에 비해 낮다.
이런 노력들이 프론트엔드 개발자가 서비스 성공에 기여할 수 있는 방법중에 하나다.
이 글에서는 프론트엔드 개발자는 반드시 눈에 보이는 것을 잘 만드는 것이 서비스 성공에 기여한다는 것이 아니라, 다양한 방법으로 성공에 기여할 수 있음을 설명한다.
자동차는 왜 매해 새로운 모델이 나올까? 패션 트렌드는 왜 시즌마다 등장하고, 사람들은 유행을 따를까? 사람들은 왜 새로운 것을 원하고, 궁금해하는가?
위 질문을 보면 사람들은 시각적 자극
에 민감하다고 생각하기 때문이다. 라고 나는 답할 것이다.
누구나 새로운 것을 원한다. 당장에 휴대폰만 하더라도 매번 어딘가 변화해서 나온다.
만약, 2024년 최신 휴대폰인 아이폰15
의 디자인을 2025년 아이폰16에 그대로 적용
한다면?
드라마틱한 성능, 기능 업그레이드가 없는 한 기존 아이폰15의 사용자들은 아이폰16으로 기기변경을 할만한 구매 매력포인트가 없다.
프론트엔드는 유저와 서비스가 만나는 최접점에 있다.
따라서 디자인이 중요하기 때문에
프론트엔드도 트렌드를 반영하고, 사람들은 새로운 것을 원한다는 것을 기반으로 변화하는 것이 당연하다 생각한다.
UIUX가 뛰어나고, 디자인 또한 뛰어나다면 어느 누가 싫어하겠는가?
저자는 데이터베이스, 네트워크, 컴퓨터 구조, 알고리즘
등의 전공 수업을 듣지 않고 네이버 개발자가 되었다.
일을 하면서 본인 스스로 이런 부분들이 걸림돌이 되었다고 한다.
프런트엔드는 전공 지식이 많이 필요하지 않다고 이야기하는 사람이 있다.
그러나 유지보수
와 성능
측면을 고려한다면 전공 지식은 필수라고 저자는 이야기한다.
그 이유는 다음과 같다.
- 프론트엔드 개발자가 작성한 코드는
브라우저
에서 실행된다.브라우저
는제2의 운영체제
로 불리우며, 그만큼운영체제
를 잘 이해한다면브라우저
를 잘 이해할 수 있다.
더 나아가 성능 병목 현상을 만났을 때도 더욱 효율적인 해결책을 내놓을 수 있다.네트워크
를 잘 이해하면 백엔드 개발자와 협업할 때도 능동적인 자세로 제안할 수 있으며, 소통할 수 있다.- 기술변화와 트렌드가 빠르게 변하는 프론트엔드 시장에서 여러 문제들과 마주할 수 있다. 이런 문제들을 마주하며 살아남기 위해서는
라이브러리
를 찾는 것이 아니라 해결할 수 있는 실마리를 직접 구현할 수 있는 기초 체력을 길러준다.
약점은 보완하는 것이 맞다.
하지만, 집중해야 하는 부분은 나의 강점이다.
내가 필요성을 느끼지 못한 기술들을 학습하는 것은 무척 힘든 일이다.
동기부여
가 약하기 때문이다.
반면, 필요성을 느껴 동기부여
가 클 때, 학습효과가 가장 크다. 그때 그때 나의 동기부여가 큰 부분부터 학습하며 약점을 보완하고, 강점을 더 살릴 수 있는 방향으로 성장하는 것이 중요하다.
이것은 T자형 인재
로 나아갈 수 있는 자세이다.
T자형 인재
: 두루두루 넓게 알면서, 한 영역 혹은 두 가지 영역에서 전문성을 가진 유형의 인재를 의미한다.
- UXUI를 고려하는 웹 개발자
- 인터렉티브 웹 개발자
- 디자인 트렌드에 민감한 프론트엔드 개발자
위 강점을 가진 웹 프론트엔드 개발자가 되고싶다.
솔직히 나는 데이터베이스, 네트워크, 서버에서 일어나는 일들 보다는 당장 눈 앞에 보이는 요소들에 흥미가 많다.
이 말을 반대로 해보면 현재 나의 약점은 데이터베이스, 네트워크, 서버
이다.
강점은 마크업 디자인, 애니메이션 효과
인 것 같다.
약점은 꾸준한 학습으로 불편하지 않을 만큼 보완하고, 내가 가진 강점을 살려 유저 이탈률을 줄일 수 있는 디자인과 UXUI 경험을 제공할 수 있는지 고민하는 개발자가 되고싶다.
아니, 더 나아가서 다른 진로로도 빠질 수 있지 않을까?!