이 책을 읽게 된 이유
솔직히 이야기 하면 나는 기술서적 말고 에세이같은 책은 잘 읽지 않는다. 그래서 이런 종류의 책을 살 생각은 한번도 안했던 것 같다. 이 책을 읽게 된 이유는 인턴을 하던 회사에서 CTO님이 인턴 끝날 때 선물해주셨기 때문이다. 원래는 클린코드를 주려고 하셨던 것 같지만 그 책은 이미 있어서 있다고 말씀드렸더니 고민끝에 주셨던 책이라서 흥미가 생겼다.
인턴이 끝날 때 많은 생각이 들었는데 그 중 가장 많이 든 생각은 프론트엔드 개발자로 일할 수 있을까? 사실은 적성에 안맞는데 오기로 버티는건가 하는 생각이었다. 시장이 안좋고 신입을 안뽑는 상황은 사실 예전부터 계속 있었는데 그 핑계로 내가 내 상태를 객관적으로 못보고 있나 하는 생각이 들었다. 이 책을 주실 때 하셨던 이야기가 지금까지 많은 개발자들을 만나고 같이 일해봤지만 네이버 개발자들이 진짜 일을 잘하고 진짜 코딩을 잘한다. 그런 개발자가 되었으면 좋겠다라는 것이었다.
이런 상황에서 나는 이 책을 받고 나서 바로 읽어야 할 것 같은 묘한 기분이 들어서 결국 마지막 날이라고 같이 인턴한 친구들과 술을 마시고 밤 늦게 집에 가는 버스에서 책을 읽기 시작했다. 신기하게도 술마시고 책을 읽는 경험이 나쁘지 않았다. 그리고 맨날 딥다이브같이 두꺼운 언어 서적만 보다가 얇고 가볍고 읽기 쉬운 책을 봐서 그런지 몰라도 정말 술술 읽혔다.
책을 읽으면서 메모한 부분
이 책에는 8명의 저자가 나오는데 각각의 파트마다 좋았던 부분이 있었다. 막상 메모한 부분을 옮기면 그 느낌이 조금 덜 살긴 하지만 그래도 기록해보려고 한다.
프런트엔드 개발자는 기술과 사람의 경계에서 상상을 현실에 만들어내는 사람들이다. ··· 자신이 만들어낸 결과물을 사용자의 시각에서 사용자의 언어로 풀어서 설명할 수 있어야 한다. 첫 번째 대상이 옆에 있는 당신의 동료들이다.(32p)
- 김지한
인턴하면서 참 쉽지 않다고 느꼈던 부분이었다. 심지어 나는 프론트엔드 개발자가 되겠다고 공부하고 있는데도 회사에 계시는 프론트엔드 개발자분과 소통할 때 처음에는 많은 버벅거림이 있었다. 나중에는 문제 없이 원활하게 소통하게 됐지만 거기까지 가는것도 쉽지만은 않았다. 그리고 나서 나오는 부분도 많은 공감이 되었다. 이 일 재밌으니까 하지 안그러면 나는 어떻게 버티고 있겠나 하는 내용이었다.
시각적인 피드백을 좋아하고, 굉장히 복잡한 소수의 문제를 오랜 시간 고민해 해결하는 것보다는 상대적으로 덜 복잡한 문제 여럿을 빠르게 해결하는 것을 더 선호한다면 프런트엔드가 당신의 길이다. ··· 전문성이 없다면 프런트엔드가 아닌 그 어떤 일을 하더라도, 설령 그것이 개발이 아니더라도 수명은 짧을 수밖에 없는 것이 인생의 진리다.(65p)
- 하성욱
고민한 부분에 대해 시원한 답변을 들은 기분이 들었다. 시각적인 피드백이 좋아서 답이 있는(없는 경우도 있긴 하지만 어쨌든) 문제를 해결하는 과정이 좋아서 온것은 맞았으니까 심지어 재밌어 했으면서 멘탈 좀 나갔다고 징징대는건 좀 못볼꼴이라는 생각도 들었다. 과연 나는 어떤 방식으로 나의 전문성을 채우고 있는가 하는 고민도 같이 하게 되었다.
특정 학습 로드맵이나 최신 기술, 취업 시장에서 많이 우대하는 기술을 꼭 알아야 한다는 접근 방식 보다는 만들고 싶은 무언가에 필요한 기술 요소를 그때그때 찾아 학습하는 것이 올바른 학습 방향성이다.(82p)
- 장기효
책의 구성을 의도하신걸 알지만 그래도 좋았다. 구체적으로 아주 자세하게 취준생들을 위한 가이드를 적어주셨는데 공감되는 것도 있고 찔리는 것도 있는 파트였다. 불안이 눈을 가리면 멍청한 짓을 하게 되는 걸 다시 느끼면서 내가 부족한 부분에 대해 체크할 수 있는 파트였다. 그러고보니 이분이 저자인 타입스크립트 책을 샀었는데 어쩐지 익숙했던 이유가 있었구나 하고 괜시리 반가웠다.
신기술 적용 프로세스(108p)
1. 적용하고자 하는 기술이 서비스 사용자의 환경에 맞는 기술인지 확인한다.
2. 가장 작은 단위의 컴포넌트를 찾아 먼저 신기술을 적용한다.
3. 배포하기 전에 롤백 플랜을 수립하고 배포한 후 문제는 없는지 모니터링한다. 문제가 없다면 그 다음으로 작은 컴포넌트에 적용하는 계획을 수립한다. 문제가 발생하면 빠르게 롤백한다.
4. 점차 큰 단위의 컴포넌트에 적용하면서 3번 과정을 반복한다.
5. 신기술을 적용하기 전후의 개선 내용을 수치화하고 정리해 공유한다. - 윤정현
이 파트는 실제 업무에서 겪었던 경험을 구체적으로 설명해주시고 있는데 테스트같은 경우는 아직 내가 잘 못하는 영역이라서 더 집중해서 읽게 되었던 것 같다. 확실히 실무에서 경험한 일을 적어놓은 부분은 수월하게 읽히지는 않는다. 일단 무슨 상황인지 머리속에 잘 그려지지 않고 이게 무슨 해결방법인지 또한 그려지지 않기 때문에 이래서 경험이 중요하구나를 다시 느꼈다.
프런트엔드의 개발 일정은 프런트엔드 개발자들이 통제하기 어려운 프로세스다. 전체 일정에 차질이 생기지 않게 하려면 최대한 초반 개발 프로세스에서 검토되지 않는 건이 없도록 커뮤니케이션하고 리스크를 관리해야 한다.(137p)
- 손찬욱
개인프로젝트를 하면서, 인턴에서 QA를 하면서 느낀거지만 프론트엔드 개발자는 불려다니는 곳이 많고 변경이 정말정말 많을수밖에 없다. 그러니 작고 사소한 일에 리소스를 낭비하지 않기 위해서는 확실하게 리스크 관리를 해야된다는 것을 절실하게 느꼈다. 사실 이 뒤에 나오는 솔루션과 서비스의 차이도 상당히 흥미롭게 읽었는데 글이 점점 길어지는 것 같아 적지는 않았다. 하지만 솔루션 나쁘지 않을거 같은데 하는 생각도 내심 들었다. 사실 지금은 어디든 뽑아주면 감사합니다 하고 가야하는 상황이지만..ㅎㅎ..
팀은 다양한 문제로 사업을 접고 팀이 공중분해되고 말았다. 한순간에 커리어는 물론 업무 자체가 없어졌다. 이렇게 힘들었을 때가 있나 싶을 정도였다. ··· 기술적 미래와 해당 프로젝트의 가치 그리고 회사의 방향성을 모두 증명했다고 생각했다. 그러나 여전히 프런트엔드 개발자 길을 걷고 있다고는 생각되지 않았다. ··· 일곱 개 팀을 거쳐 다섯 개의 서로 다른 프로젝트를 수행했다. 드디어 프런트엔드 개발자를 명함에 넣을 수 있게 되었지만, 여정의 끝은 아니다.(164p)
- 김다현
프론트엔드 개발자가 되고 싶어서 1년하고도 7개월쯤 여전이 취준생으로 살면서 멘탈이 나가고 이렇게 하는게 맞나 하는 생각을 한두번 한게 아니였다. 그러나 저러나 아직도 프론트엔드 개발자로 취업하려고 준비하고 있지만 가끔 이렇게 어려운 거였나 하는 생각이 들었는데 약간의 반성과 다시 열심히 해야 겠다는 마음을 되찾을 수 있었다. 나도 멘탈이 단단해지는 과정이라고 생각해보는걸로..!
지금까지의 개발자 커리어에서 오픈소스를 통해 많은 것을 받았다면, 나도 돌려줘야 한다. 받았던 혜택만큼 나도 기여를 통해 돌려주는 것이 내가 사용했던 수많은 오픈소스에 대한 비용을 어느 정도나마 지불하는 것이리라 생각한다.(185p)
- 박재성
오픈소스가 매일 커밋하고 매일 이슈를 체크하는 정말 회사 업무와 다르지 않은 엄청난 수고가 필요하다는 생각을 해본적이 없었다. 그냥 누가 하나보다. 시간이 여유롭고 기술을 어필하려는구나 정도의 생각을 했었는데 책을 읽으면서 생각이 많이 바뀌었다. 한번 생각해보기 시작하니 사실 당연할 일이 아니였는데 누군가의 수고를 너무 당연하게 생각했나 하는 반성이 들었다. 과연 내가 오픈소스에 기여할 능력이 있는 개발자가 될 수 있을까 하는 마음도 있지만 노력하다보면 누군가를 도와줄 수 있는 개발자가 될 수 있지 않을까 하는 생각이 들었다.
유지 보수 하기 좋으면서 성능까지 고려하려면 전공 지식은 필수다. ··· 새로 나오는 기술을 살펴보면 기존 문제를 완전히 새로운 방식으로 해결했다기보다는 다른 영역에서 사용했던 방식을 적용시켜 해결한다. ··· 내가 모르는 부분은 모른다고 인정하고 내가 필요할 때 해당 부분을 배우고 익힐 수 있으면 문제 없다는 것이 중요하다.(p208)
- 윤영제
비전공자의 입장이 너무 잘 설명되어 있어서 많은 공감이 되었다. 확실히 나도 공부를 하면서 백그라운드 지식이 없으니 하나하나 이해하는 게 너무 오래 걸리고 버거운 느낌이 많이 들었다. 그래서 선택한게 정보처리기사 자격증 공부였는데 후회는 없지만 여전히 아쉬운 느낌이 든다. 편입도 생각해봤지만 프론트엔드 직군이 과연 편입에 쏟는 리소스 만큼을 얻을 수 있나 했을 때 그건 또 아닌것 같아서 먼저 취업을 하기로 마음먹었었다. 그래도 cs 공부를 꾸준히 지속적으로 할 필요가 있다는 생각을 더 강화하는 계기가 되었다.
책을 읽고 나서 느낀 점
취준생인 나에게 생각보다 도움이 되는 글이 가득했다. 그래서 선물해 주신 이유가 이거였구나 하는 순간이 한두번이 아니였다. 특히 이력서 지원하고 서류에서 광탈할 때 멘탈을 다잡는데 도움이 많이 되었다. 사실 난 돈 때문에 개발자를 선택한 것도 아니였고 취업 하는데 희망 연봉이 사실 없는 편이다. 단지 자취하면서 살 수 있는 최소한은 보장되었으면 좋겠다고 생각하긴 하지만 요새 시장은 그런걸 바라기도 힘들어진것 같다. 생각해보면 나는 지금까지 GPT에 너무 의존하면서 개발하고 공부해왔다. 그러다가 인턴하면서 GPT사용을 안하고 개발해보니 내 실력이 이정도였나 하는 충격을 받았고 각성의 계기가 된 것 같다.
지금까지 내 방향이 잘못되었던건가 하는 생각에 조금 힘들었는데 책을 읽으면서 지금까지 얻은 것들만 생각해보면 엄청 효율적이지는 않아도 꾸준히 성장했다는 생각이 들었다. 점검해보면서 내가 편하게 사용할 수 있는 언어와 라이브러리, 한번 사용해본 것, 사용도 안해본것을 구분지어보니까 어떤 부분을 채워야 하는지 명확하게 알게 되었다. 그리고 당장 취업도 물론 급하고 중요한 거지만 더 먼저 생각해야 하는건 내가 실력있는 개발자가 되기 위해 기초를 단단히 쌓아야 한다는 걸 다시 리마인드 하게 되었다.
지금 하는 개인 프로젝트도, 듣고 있는 강의들도, 풀고 있는 코테 문제들도 시간이 쌓여야 소화할 수 있는 것들이니까 너무 조급하게 생각하지 않기로 했다. 그러고 나서 되돌아보니 매일 열심히는 아니였지만 매주, 매달로 보면 열심히 한것 같다. 앞으로 채워야 하는건 개인 프로젝트와 테스트 도구 다루는것, 파이어베이스나 AWS, 몽고DB등 서버리스로 데이터관리해서 도메인 배포, 운영 해보는것 정도가 아닐까 하는 생각이 들었고 자료구조와 알고리즘은 꾸준히 이해하려고 시도하는 것 밖에 없지 않을까 싶은 생각이 들었다.
'TIL' 카테고리의 다른 글
[AWS TechCamp] AWS 서버리스로 서버 고민 없이 웹 애플리케이션 구축하기 (2) | 2024.09.04 |
---|---|
[CSS] BEM(Block, Element, Modifier) 모델 (0) | 2024.08.29 |
[cs] Observer Pattern 왜 알아야 할까? (1) | 2024.07.11 |
[React] 로컬 스토리지를 사용한 데이터 캐싱 (0) | 2024.07.01 |
[React] 쉽지 않은 유효성 검사(Debouncing, Throttling) (0) | 2024.06.23 |