때는 5년 전, SK커뮤니케이션즈에 입사하고자 면접을 볼 때 면접관은 나에게 그렇게 말했다.
“죽을 때까지 공부해야 하는데 괜찮아요?”
면접자리였으니 당연히 괜찮다고 했고 나는 그렇게 개발자 커리어를 처음으로 시작하였다.
핑계대지말고 공부를 해라
“대부분의 개발자는 새로운 기술에 예민하며 빠르게 습득하려고 노력한다.”
이 명제를 얼마나 많은 사람이 납득할 지 잘 모르겠다. 사실 대부분은 어떤 라이브러리를 사용해서 빨리 운영에 반영할 수 있을까에 대한 생각, 그 이상으로 우선 구현하는 데에 초점을 둔다. 그 결과 Active X를 사용하지 않으면 PDF 문서도 읽지 못하는 웹사이트가 만들어지는 것이다. 참고로 웬만한 브라우저에는 PDF 뷰어가 기본으로 내장되어있다.
공부하지 않는 사람들의 가장 큰 특징은 일단 구현하고 나면 그걸로 끝이라고 생각한다는 점이다. 사실 구현에 이르기까지 고민을 해온 과정들이 다 공부라 할 수 있지만, 구현에 이르기까지 자기가 사용한 코드가 어떤 코드인지 이해를 하지 못한 채 구글링으로만 개발하니 당연히 레거시 코드를 남발하게 되고 이는 곧 코드 품질에 영향을 주게 된다.
대표적으로 내가 며칠 전 모 사이트에 접속했을 때, JavaScript라이브러리를 몇 개를 쓴 건지 정확히 파악은 안 되지만 그로 인한 로딩 버퍼로 1.7초가량 소요하였다. 실제 페이지가 뜨는 시간은 약 2초, 버그라고 생각하기에 충분한 시간이다.
나는 어떻게 공부했을까
이 글을 쓰는 본인은 약 4년째 공부 중이며, 예전에는 조금 더 열심히 공부했지만 지금은 적당히 하고 있다. 미래에도 공부할 예정이다. 신년이고 하니 node.js를 더 공부해볼까 생각 중이다.
1. 내가 알아야 하는 지식을 정리한다
Front-End 개발자가 알아야 하는 기초 지식은 아래 것들이 있다.
- 브라우저의 동작 방식
- 디바이스에 대한 이해
- 웹 접근성
- HTML 표준
- CSS 표준 및 테크닉들
- DOM
- JavaScript
- ECMAScript (JavaScript의 표준이다)
- 자료구조와 메모리
- 디자이너의 언어
- 기본적인 디자인 관련 요소들 (폰트, 행간, 자간 등)
- 보안 관련 여러 지식들
- Ajax를 위한 서버 관련 기초 지식
- 브라우저 내장 API의 활용법
- 레거시 브라우저를 대응하는 방법
- 홈페이지 성능 최적화
위 목록 외에도 공부해야 하는 건 정말 많지만, 우선 기본지식은 이 정도다.
2. 공부할 수 있는 방법에 대해 갈구한다
대표적으로 나는 스터디를 많이 했다. 위 기술 중 하나라도 궁금한 점이 있을 때마다 스터디를 진행했고, 3년가량 해온 결과는 썩 나쁘지 않았다. 일주일에 한 번 모여서 이야기하는 시간을 가지면 말 안 하기 민망해서 공부하게 된다.
스터디 외에도 다양한 공부법이 있다. 제일 안 좋은 방법은 누군가가 정리한 자료를 공유하기를 그저 기다리는 거다. 누군가 미리 정리한 자료를 보는 건 좋지만, 한없이 누군가가 정리해주기만 기다리면 언젠가 그 한계가 드러날 것이다. 직접 해라.
결론
당신이 앞으로 개발을 계속하고 싶다면 공부를 해라. 그리고 정리해서 공유하라. 블로그던 github든 페이스북이든 어디던 좋으니 계속 정리하고 계속 공유해보는 게 좋다. 그렇게만 한다면 적어도 그 지식을 나 스스로 인식하는 데 큰 도움이 된다. (물론 취직에도 도움이 된다)
원문 : 조은의 브런치