23.07.29
오늘 한 일
- 프로그라피 동아리 세션 참여
- 카공실록 PR 수정
- Gloddy 개발
🤔오늘의 생각 - 올바른 공부법은 뭘까?
나는 프론트엔드 개발을 하고 있으니까 프론트를 공부하는 법에 대해서 생각해보았다.
공부를 하는 이유는?
어쨌든 우리가 공부를 하는 이유는 좋은 곳에 취직해서, 좋은 사람들과 같이 일하고, 많은 돈을 벌기 위해서다.💰
회사가 원하는 사람은?
채용 공고를 보면 대부분 다음과 같은 요구사항을 보게 된다.
- 자바스크립트에 대한 이해도가 높은 사람
- 프론트엔드 프레임워크에 대한 이해도가 높은 사람
- 웹 표준에 대한 이해도가 높은 사람
당연히 기초가 탄탄한 사람을 뽑길 원할 것이다. 이것 말고도 여러 경험을 했는지, 어떤 사람인지 등등 여러가지를 보고 판단할 것이다.
회사 입장에서 생각해보면 이 면접자가 우리 회사에 와서 잘 녹아들 수 있고 일을 잘하는 사람인지를 판단하고 신중하게 뽑으려고 할 것이다. 단순히 개발만 잘하는 것이 아닌, 소통에 능하고 성실하게 일하는 사람을 원할거라고 생각한다.
그럼 어떻게 공부해야 할까?
1. 기초를 탄탄하게
일단 기초를 탄탄하게 다져야 한다. 뭐 당연하다고 생각할 수 있지만 많은 사람들이 이 부분을 간과한다. 나도 그랬다.
CS 지식들, 언어에 대한 지식 등등 전반적인 지식들을 이해하고 있으면 다른 지식을 습득하기 수월하다.
2. 프로젝트를 해보자
막 거창한 프로젝트가 아니어도 상관없다. 단순히 내가 기술을 배우기 위해 하는 토이 프로젝트가 될 수도 있고, 실제로 서비스 런칭해서 돈을 벌 수 있는 프로젝트가 될 수도 있다.
이런 경험을 하면서 얻어지는 것들이 많다.
- 협업을 해보는 경험
- 프로젝트를 진행하면서 생기는 문제들을 해결해보는 경험
혼자할 때와 같이 할 때는 완전 다르다. 사람마다 코드 짜는 스타일이 다 제각각이고, 서로 다른 생각을 가지고 있기 때문에 의견 조율이 필요하다. 이 과정에서 소통에 대해서 많이 고민하고 배울 수 있다.
또한 프로젝트를 진행하면서 생기는 문제들을 해결해보는 경험도 많이 쌓을 수 있다. 이런 경험들이 쌓이면서 내가 어떤 문제를 만났을 때 어떻게 해결해야 할지에 대한 감을 잡을 수 있다.
3. 블로그를 쓰자
공부하면서, 프로젝트를 진행하면서 경험한 것들을 블로그에 글을 올려보자.
시간이 지나면 내가 그 당시에 어떤 것을 경험했고, 어떤 문제를 겪었고, 어떻게 해결했는지를 잊어버릴 수 있다. 그래서 글로 기록해두는 습관을 들이고 블로그에 올려보자.
블로그에 글을 쓰면 좋은 점이 있다.
- 경험들을 기록해두기 때문에 나중에 다시 찾아볼 수 있다
- 내가 쓴 글을 다른 사람들이 보고 도움을 받을 수 있다
- 취업에 도움이 된다
취직을 위해서는 이력서를 써야한다. 이력서, 포트폴리오를 작성할 때 막상 적으려고 하면 그 때 어떤 걸 했는지 기억이 안나는 경우가 많다. 그래서 기록이 굉장히 중요하다. 그리고 면접관이 서류를 보며 깃허브, 블로그도 추가로 보기 때문에 어필할 수 있는 수단으로 잘 사용해보자.
4. 취업 준비를 하자
나 역시 면접을 많이 보진 않았지만, 해보기 전과 후가 많이 달라지는 것 같다. 면접을 보면서 내가 어떤 부분이 부족한지, 어떤 부분을 더 공부해야 할지 알 수 있다.
공부하다보면 내가 어느정도 공부했는지 감이 오지 않을 때가 있다. 그럴 때 한번 면접을 보면서 정리해보는 것도 좋을 것 같다.
내가 생각하는 좋은 공부법 - 자신한테 의문을 던지자
"왜? 어떻게?" 라는 질문을 자주 던져보자.
예를 들어 리액트를 공부하면서 전역 상태
관리를 위해 Redux나 Recoil 같은 라이브러리의 사용법을 익히고 있다고 해보자.
그럼 일단 전역 상태 뭔지 이해를 해야한다.
Redux를 썼을 때의 장단점은 무엇인지 알아보고, 직접 써보면서 어떤 부분이 불편한지, 어떤 부분이 편한지를 생각해보자.
실제로 팀 프로젝트를 한다면 전역 상태 라이브러리 중 하나를 골라야 하는 상황이 있을텐데, 이 과정에서 왜
이 라이브러리를 선택했고, 어떻게
사용했는지에 대해서 설명할 수 있어야 한다.
왜 선택했냐라고 하면 다들 쓰니까
라고 생각할 수 있다. 하지만 면접 때 이렇게 말하면 좋은 점수를 받진 못할거다. 그냥 공식문서에 있는 여러 장점들을 나열하는거 말고, 실제로 사용해보면서 느낀 장단점을 말해보자.
기술을 고르는 능력도 중요하다
개발은 보통 팀 단위로 작업하게 된다. 회사에 가서도 그럴 것이다. 다양한 사람들이 있고, 수준도 다 다르다. 그런 상황에서 기술을 선택하는 능력도 중요하다고 생각한다.
react-query
라는 라이브러리를 팀에 도입하고 싶다고 해보자.
지금까지는 그냥 Redux
로 서버 상태를 관리하고 있었는데, react-query
를 도입하면 상태 관리가 편해질 것 같다고 생각해서 도입하자고 적극 추천을 했다고 한다.
이때 어떻게 팀원, 사수에게 설득할 수 있을까?
기술을 선택할 때 고려해야 할 점
기술을 도입하면서 얻을 수 있는 이점
- 기술을 도입하면서 얻을 수 있는 이점이 무엇인지 생각해보자. 기술을 도입하면서 얻을 수 있는 이점이 많다면 도입을 추천하는 것도 쉬울 것이다.
기술을 도입하면서 발생할 수 있는 문제점
- 만약 도입하게 된다면 완전히 다 갈아 엎어야 할 수도 있다. 이러면 너무 많은 비용이 발생하게 된다. 또한 러닝커브가 높아서 팀원들이 적응하기 힘들 수도 있다. 이런 문제점들을 생각해보자.
무작정 이게 좋다고 가서 추천을 하게 되면 당연히 도입 시 문제점에 대해서 지적할 것이다. 그래서 미리 문제점을 생각해보고, 그런 문제점들보다 이점이 더 많다는 걸 어필해야 한다.
팀 내부 상황, 회사 상황에 따라서 기술을 잘 선택해야 한다. 그래서 사이드 프로젝트에서도 라이브러리를 사용할 때 최대한 이 기술을 왜
쓰는지, 쓰게 되면 어떤 이득이 있는지를 생각해보자.
말로 설명할 수 있어야 한다
말로 설명하려 했을 때 막히면 그건 내가 제대로 이해하지 못했다는 것이다. 그 부분을 다시 공부해보자.
그 주제에 대해 같이 토론해보는 것도 추천한다. 서로 의문을 던지고, 토론하면서 서로의 지식을 공유하면서 얻어가는 것이 많다.
결론
많은 기술을 사용할 줄 아는 것도 물론 좋지만, 기초가 부족하면 언젠가 한계에 부딪힐 것이다. 하나를 할 줄 알더라도 깊게 고민하고 생각해보자.
내일 할 일
내일은 조금 쉬엄쉬엄 해야겠다. 재정비 시간 💪
- 블로그 글 작성
- 토스뱅크 지원하기