점핏 캐발자 취업 콘서트 - 프론트엔드 개발자 이야기가 열렸다!
당일날 해야할 일이 있어서 오프라인 참여는 못하고 온라인 참여를 진행하였다.
이 행사를 꼭 참여하려 했던 이유가 네 분 다 프론트쪽에서 너무 유명한 분들이라 꼭 대화를 듣고 싶었다.
특히, 여러 웨비나나 강연을 들으러가지만 항상 내가 시간 되는 강연들은 프론트가 아니였는데 온라인으로 지원해줘서 너무 감사해하며 들었다!!
여기서 나는 김태곤님이 해주신 첫 번째 강의가 너무 인상 깊었어서 이 강의를 정리하는 글을 쓰려한다.
강연의 주제는 FE 소프트 스킬과 하드 스킬이지만, 신입 개발자에게 해주는 조언들이 더 맞는 거 같았다.
하나하나 너무 소중한 조언이었고, 코드 또는 경험과 연관시켜서 설명해주셔서 더 귀에 쏙쏙 들어왔던 거 같다.
유지보수가 쉬운 코드를 짜는 방법
코드는 시간이 지나면 늙는다. 요구 조건과 기술이 계속 진화하기 때문이다. 그래서 시간에 흐름에 따라서 유지보수가 필수적이다. 이 때, 가독성이 나쁜 코드는 유지보수를 하기 힘들다. (심지어, 이걸 다른 사람이 할 가능성이 크다.) 최대한 가독성이 좋은 코드를 만들어야한다.
- 테스트 코드가 가능하도록 짤 것: 테스트 코드를 잘 짠다는 것은 한가지 기능만을 담당할 확률이 높다. 이는 문제의 원인을 확인하기 좋다. a 기능이 다양한 기능을 담당하면 오류가 발생 시, a외에 b,c,d 등 다른 기능까지 전부 살펴봐야할 확률이 높다. 또한, b가 잘못되도 a를 보고 사이드이펙트도 고려해야한다. 하지만, 한 가지 기능만을 담당하게 짜면 a가 오류나면 a만 고치면 된다.
현실적으로 협업에서 좀 어려울 수도 있지만, 테스트 코드는 반드시 짜보자. 로버트 C 마틴은 "테스트 코드가 없다면 낙하산 없이 떨어지는 것과 동일하다." 표현하였다. 테스트코드는 문제의 발생을 사전에 막아준다. 문제가 발생해서 에러 코드를 짜고 분석한 후 고치는 것보다 처음부터 테스트코드를 제대로 짜는 것이 더 효율적이다.
- 가독성이 좋은 코드를 짤 것: 협업을 하면서 누군가 내 코드를 보는 것은 필수적인 일이다. 변수명과 가독성을 신경써서 작성하자.
- 커밋에는 한 가지 문제만: 오류 발생 시, 커밋단위로 추적하게 된다. 커밋에는 반드시 한 가지 문제만 작성하는 것이 좋다.
회사 생활과 관련된 조언
- 대체로 옳은 기술은 없다. 상황에 따른 선택이 있을 뿐이다: 모든 것의 이유는 있지만, 의외로 명확한 원칙은 없다. (익숙하다, 당시에는 유저가 적었다 등등)
- 거절을 잘하자: 어쩔 수 없이 거절을 할 일이 생긴다. 이 때, 단순히 안된다로 끝나면 안된다. 사회생활상 고민하고 대안을 제시하고 이득이 되는 현실적인 방향(기능 축소, 기간 연장 등)으로 거절하자
- 호구가 되지 말자: 선 넘는 사람들한테 억지로 잘해주려 하지 마라
- 질문을 잘하자 : 정말 잘 생각해보고 질문하자. (구글의 15분 규칙 : 15분 진지하게 고민해보고 그래도 아예 감이 안잡히면 그 때, 질문해보자)
- 시스템을 잘 사용하자 : 실수는 정말 자주 일어난다. 이를 막아주는 다양한 시스템을 잘 구축해서 대비하자. TypeScript나 그런 시스템들 말이다.
개인의 성장과 이직과 관련하여서
- 이직은 늘 준비하는 것: 이력서는 일정 기간으로 항상 업데이트하면서 현재 내가 하는 일, 방향성을 검토하면 좋다. 또한, 면접을 보면 관련된 지식 및 면접 준비를 쉽게 할 수 있으며 운 좋게 잘 될 경우 훨씬 좋은 조건으로 일할 수 있게 된다.
이직 시에는 커리어, 연봉, 워라밸 세 가지를 고려해야한다. 하지만, 쥬니어개발자는 워라밸보다 다른 두 가지를 조금 더 비중을 두기 바란다.
- 커리어는 단순 일이 아니라 스토리 + 시간이다. 스토리와 성장과정도 잘 준비해보자.
- 성과/복지보다는 연봉이 더 좋다. 이유는 이직 시 기준은 보통 연봉이 가장 큰 기준이기 때문이다.
- 가능하면, 자신의 기술이 메인이 될 수 있는 회사로 가는 게 좋다.
- 뱀의 머리보다는 용의 꼬리가 낫다: 나보다 뛰어난 사람들과 교류하면서 배우는 것이 정말 많다.
- 실험은 한 번에 하나씩만: 새로운 기술 등을 너무 많이 적용하면 감당하기 힘들다. 한 번에 하나씩만 적용한다. 익숙한 기술에서 생기는 문제 + 다양한 기술의 문제 x N이 많이 생기면 감당이 안된다. 가능한 작게 시작하자.
- 나만의 학습 루틴을 만들자: 어처피 평생 공부해야합니다. 3년이상 쓰는 기술이 별로 없습니다. 교육은 많은 도움이 됩니다. 러버덕도 좋고, 동료학습도 좋은 방법이다.
- 프론트엔드 개발자는 반쯤 UX 전문가가 되어야한다: 어처피 코드는 당신이 만든다. 잘못된 UX에 대해서 의견을 내고 수정할 수 있어야한다.
- 풀스택 엔지니어를 지향하면 안된다: 풀스택 지식은 반드시 필요하다. 하지만, 하나도 제대로 못하는 풀스택은 너무 무가치하다.
- 실무능력 : 프로그래밍 스킬(구현) + 도메인 지식(문제 정의) + 커뮤니케이션(협업) 이다. 많은 지식과 많은 코드를 익힐수록 더 많이 기억하고 더 잘 할 수 있다.
마지막으로..
- 너무 열심히 살지 않아도 된다 : 너무 힘겹게 살지 않아도 된다. 꾸준히만 가자
- 전문가 이야기를 너무 많이 듣지 말자: 상식적으로 안된다는 말이 너무 많이 나온다. 거기에 잡혀서 도전을 포기하려하지 마라
내가 요즘 느낀 부분을 시니어 개발자가 그대로 말해주는 게 너무나 감동적인 강의였다 뒤의 강의들도 좋았지만 특히 인상깊었던 이번 강의를 적는다.
'책과 강연 > 오프라인 행사' 카테고리의 다른 글
[구름 강연] 프론트엔드 테스팅과 설계 (0) | 2024.05.07 |
---|---|
[구름 강연] 당근 해외 진출 고군분투기 (2) | 2024.05.07 |