Seonghyeon

지난 6개월을 돌아보며

끄적끄적

지난 6개월은 내 인생에서 가장 열심히 살았고 밀도 높은 시간을 보냈다. 잊혀지기 전에 얼른 기록해봐야겠다.

📖 Web Performance Deep Dive 베타 리더 제안을 받다

취준 당시 웹 포트폴리오를 만들었는데, 성능을 개선하고 싶었다. 토스의 SLASH에서 봤던 텍스트 색상이 점점 채워지는 인터렉션이 너무 예뻐서 기술 유튜브를 참고하면서 라이브러리를 만들어 포트폴리오에 적용했는데 내부적으로 for문을 중첩해서 돌리고 있어 성능에 안 좋다는 생각이 들었기 때문이다.


그런데 성능 탭과 Lighthouse의 경고를 봐도 어떻게 해야 할지 감이 오지 않았다. 이런 저런 방법을 찾아보다가 네이버 파이넨셜 리드 개발자이신 김용찬 님의 블로그에서 '웹 사이트의 성능 분석을 무료로 해드립니다' 라는 제목의 글을 보게 되었고, '과연 이게 될까?' 하는 생각으로 메일을 드렸다. 이후 10번이 넘는 메일을 주고받았고, 용찬님은 거의 한 시간 만에 20페이지가 넘는 성능 분석 보고서를 보내주셨다. 나는 정말 감사한 마음으로 하나씩 공부하면서 포트폴리오의 UX를 개선했다.

이때 느낀 것은 인터렉션보다 중요한 것이 사용자에게 필요한 기본적인 내용이 자바스크립트 없이도 보여야 한다는 것이었다. 또한, 하나의 큰 번들 파일이 아닌 코드 스플리팅이 잘 되어있는지, CSS로 대체할 수 있는 애니메이션인지 등 이런 Progressive Enhancement에 관한 내용들을 설명해주셨고 적용해서 더 직관적인 포트폴리오가 될 수 있었다.

몇 달 후, 용찬님으로부터 메일이 왔다. 당시 성능 개선에 대한 열정을 보여주셔서 이번에 집필하신 책의 베타 리더를 제안드리고 싶다는 내용이었다. 애초에 대상 독자와 베타 리더 자격 요건이 3년차 중고급 개발자였는데 이제 막 1년 차가 된 나는 걱정이 되기도 했지만 너무 좋은 기회라 흔쾌히 감사하다고 말씀드렸다.

느낀 점

두 달 좀 넘게 책을 열심히 읽으며 수정되면 좋을 부분을 정리해 이슈로 올렸고, 감사하게도 모두 반영해주셨다. 또한 챕터 별 Action Item을 정리해서 실무와 포트폴리오에 적용할 수 있는 것들은 함께 개선하며 읽어나갔다.

책 리뷰

이 책은 단순히 성능 개선의 기법만 다루는 책이 아니라 원리부터 자세히 다룬다. 그래서 분량이 천 페이지가 넘는데, 네트워크 최적화로 예를 들면 물리적인 거리를 줄이는 CDN으로부터 시작해 자연스레 캐싱(Cache-Control)으로 이어지고, 성능을 최적화하는 원리에 대해 아주 논리적인 흐름으로 차근차근 설명한다. 한 장씩 읽어나갈 때마다 다음 내용이 너무 기대됐고 일주일에 6일을 스터디 카페에서 자면서 출근하기도 했다. 힘들기도 했지만 덕분에 리액트를 넘어서 웹 개발에 대한 시야가 좀 더 넓어질 수 있었다.

🧚🏻 TeoConf 2025, 조금 더 솔직해지다

예전엔 블로그 글을 쓰면 '이렇게 쓰면 너무 못해보이지 않을까?', '나만 이런 고민을 하는 거 아닐까?' 라는 생각이 들었다. 그래서 뭔가 내 진짜 성격과 다르게 조심스럽고 굳는 느낌이 들었다. 그래도 나는 솔직해지고 싶었다. 스스로 솔직해지고 자기 객관화를 해야 더 성장할 수 있다고 생각하기 때문이다.

TeoConf 2025에 참여하면서 처음으로 여러 프론트엔드 개발자분들과 네트워킹을 할 수 있었는데, 이때 다들 비슷한 고민을 하고 있다는 걸 느꼈다. 대기업에 다니던 작은 기업에 다니던 코드 리뷰의 병목에 대한 각자의 고민이 있고, 인간 관계에 대해서도 똑같이 고민한다. 이때부터 나는 자신감을 가질 수 있었고 부족함을 드러내는 것에 대해 조금 더 용기를 낼 수 있었다.

🏔️ 함수랑 산악회에 합류하다

얼마 뒤 입력된 열정이 영향력으로 출력되는 FE 개발 동아리 함수랑산악회에 합류했다.

함수랑산악회

일단 너무 재밌다..! Compound-Engineering 등 AI를 잘 활용하는 여러 팁들을 실무에 적용하기도 하고, 지식인 채널에 도움을 구해 Figma MCP를 적용해 회사에서 UI 개발을 거의 1달 이상 앞당겼다. 물론 맥스 플랜이라 가능하긴 했다.

함수랑 마라톤에서 4시간 동안 터미널 크레이지 아케이드를 만들기도 하고

Vite 오픈소스 생태계에 기여하는 것을 목표로 하는 Vite Deep Dive 활동을 하면서 매주 오프라인으로 팀원 분들을 만나고 있다. 나는 차세대 테스팅 라이브러리인 Vitest에 기여하고 있는데, 메인테이너의 제안을 통해 todo 테스트에 대한 아이콘을 내 손으로 추가하기도 하고 Fixture에 관한 이슈를 수정해 메인테이너 3분에게 모두 LGTM을 받기도 했다! (뿌듯) 얼마 전 올린 PR에서는 Vitest 코드베이스에 대한 이해가 부족해 어려움을 겪고 있지만,, 더 공부해 볼 생각이다.

이외에도 크리틱을 통해 여러 주제로 함께 토론하기도 하고, 개인적인 고민들에 대해서도 많은 도움을 받고 있어서 너무 감사하다.

🥵 면접 탈락

최근엔 가고 싶었던 회사 중 한 곳인 라포랩스 Frontend Engineer 직군에 서류 합격을 했다. 불과 몇 달 전만 해도 인턴 과제에서 떨어졌었다. 당시에는 폴더를 나누는 기준도 없었고 훅도 잘 구현하지 못했고, 과제를 하면서도 뭔가 떨어질 것 같다는 생각이 들었다.

이번에는 특히 이런 것들을 신경 썼다.

  • 컴포넌트는 자신이 가진 하나의 역할에 충실한다.
  • UI를 기준으로 컴포넌트를 나누는 게 아니라, 데이터의 흐름을 기준으로 컴포넌트를 분리한다.
  • 상태가 있다면 최대한 UI에 가까이 두어 불필요한 리렌더링을 방지한다.
  • 훅이 복잡하거나 불필요하게 결합되면 컴포넌트의 결합도도 같이 증가한다. 훅을 단순하게 나눈다.

어려웠던 점들과 해결 과정은 README에 상세히 작성했다. 과제를 끝내고 '떨어져도 많이 배울 수 있었다!'라는 생각이 들었는데 결국 합격할 수 있었다.

라포랩스

1차 실무 면접 분위기는 정말 좋았는데 1시간이 넘게 과제에 관한 질문을 받았다. 면접을 보면서 라포랩스는 이런 사람과 함께 일하고 싶다는 느낌이 들었다.

  • 내가 짠 코드에 대해 이해하고 있는지?
    • 특정 기능이 추가되었을 때 수정범위를 모른다면 코드를 이해하고 있는 게 아니다.
  • 합리적인 의사 결정을 내렸는지?
    • 비즈니스 vs 성능
  • 확장성을 고려해 설계했는지?
    • 특정 조건이 추가된다면?
  • 타 팀과도 적절한 소통을 할 수 있는지?
    • 기획팀에는 어떻게 설명하실 건가요?

'언제부터 출근 가능하시나요?' 라는 말도 들어서 기대를 많이 하고 있었지만 결과는 아쉽게도 탈락이었다. 대부분의 질문에 나름 잘 대답했지만, 불필요하게 dynamic import를 사용하거나, useSyncExternalStore의 장점을 제대로 모르고 쓰는 등 여전히 놓치는 부분들이 많았다. 또 면접관분이 추가로 던지셨던 상황에 대해 완벽히 이해가 안됐지만 무슨 느낌인지 알 것 같을 때가 있었다. 이때 꼬리 질문이 이어졌는데 차라리 더 명확하게 이해할 때까지 질문할 걸 하는 아쉬움이 남았다. 메일을 받고 나서 며칠 간 허탈했지만 다시 정신을 차리고 공부하고 있다.

멘탈 관리 TIP

채용 프로세스를 진행하고 있다면 너무 큰 기대를 하지 말고 편하게 기다리자,,

🏃‍♂️ 전공자 따라잡기

나는 2023년 삼성 청년 SW 아카데미(SSAFY)에서 개발을 본격적으로 시작했다. 비 전공자로 입과했지만 반배정고사를 통해 전공 Java반에서 전공자 친구들과 공부하면서 프로젝트 1등도 해보고, SW역량테스트 모의 A형도 취득했지만 CS 기본기 차이가 많이 났다.

이 4년의 격차를 좁히고 싶었다. 기본적인 개발 자격증들을 따놔야겠다는 생각에 틈틈히 공부하면서 정보처리기사, SQLD를 취득했다. 올해 3월에는 방통대 3학년에 편입해 강의를 듣고 있다.

📚 앞으로 공부할 것들

JavaScript/TypeScript 기본기가 탄탄한 사람을 원하는 기업들의 JD를 보면서 실무에서 내가 부족하다고 느꼈던 것들, 앞으로 할 것들에 대해 생각해봤다. 결국 설계 역량을 더욱 키워야겠다는 생각이 들었다. 클로드 코드를 쓰면서 갈수록 손 코딩을 안하게 되고, 전부 리뷰하기 힘들 정도로 코드가 점점 늘어나는데 안정적인 서비스를 만들기 위해 테스트하기 좋은 구조를 잡을 수 있어야 한다고 생각한다.

특히 함수형 프로그래밍에 관심이 생겼다. 유인동 님의 강의는 인생 강의라는 생각이 들 정도로 좋았다. 함수를 값처럼 다루며 파이프라인을 만드는데, 처음엔 reduce적 사고를 하는 게 너무 어려워서 당시 강의에 나오는 모든 코드를 안보고 칠 수 있을 정도로 반복해서 연습했던 기억이 있다.

하지만 아무리 고민해봐도 '프론트엔드 실무에 어떻게 적용할 수 있을까?' 에 대한 명쾌한 해답을 찾지 못했다. 마침 함수랑산악회 전 기수분들이 스터디했던 '쏙쏙 들어오는 함수형 코딩'이라는 책을 추천 받아서 읽고 있는데 너무 내가 찾던 내용이다..! (감사합니다 🙇🏻‍♂️)

이 책은 코드를 액션(사이드 이펙트를 내는 로직), 계산(순수 함수), 데이터의 개념으로 나누면서 사이드 이펙트를 퍼뜨리지 않고 잘 다루는 과정을 설명하는데, 함수형 사고를 기르는데 도움이 될 것 같다. 앞으로는 실전 예제들을 풀어보면서 블로그에 정리해봐야겠다.

🙋🏻‍♂️ 마치며

이렇게 긴 회고는 처음 해본다.

처음엔 맥락을 많이 놓치기도 했는데 지인 피드백을 통해 왜 지금 내가 이런 생각을 하게 됐는지 차근차근 되짚어보면서 마치 오답노트를 적듯이 복기하며 회고를 작성해봤다.

지난 6개월을 돌아보면 뿌듯한 순간들이 많았는데, 작은 기회를 소중히 여길 때 더 큰 기회가 찾아온다는 걸 배웠다. 그만큼 부족했던 순간들도 많았다. 하지만 이조차 앞으로 더 나은 사람이 되기 위한 밑거름으로 삼으려 한다.

긴 글 읽어주셔서 감사합니다.