스마일게이트 데브캠프 리팩토링 데이
스마일게이트 데브캠프 1차 합격한 후 최종면접을 보고 왔으나, 아쉽게도 합격하진 못했다. 하지만 스마일게이트 측에서 지원자들을 위해 특별히 마련한 리팩토링 데이에 참석하며 뜻깊은 시간을 보낼 수 있었다. 이 날은 스마일게이트 현직자이신 30년 이상의 경력을 지닌 시니어의 강연이 이루어졌다.
강연의 핵심은 "신입 개발자가 반드시 알아야 할 것"들이라고 볼 수 있겠다. 인상 깊었던 핵심 내용들을 간략히 정리해보았다.
1. 기본, 응용
개발자의 실력 향상을 위해서는 기본과 응용이 계속 반복되어야 하는데, 정리하면 다음과 같다.
기본 - 한계를 넘기 위한 내공 쌓기
-
프로그래밍 언어 한 권 완전히 내 것으로 만들기
- 언어 책 한 권을 처음부터 끝까지 깊이 있게 학습하고, 쓸모없는 것을 공부하기보다는 실질적인 방법론과 유용한 지식을 습득하는 데 집중해야 한다.
-
언어 및 프레임워크 도장깨기
- 언어 -> 라이브러리 -> 프레임워크 순으로 깊이를 쌓는 것이 중요하다.
- 언어 학습은 꾸준히 해야 하는 어려운 과정이지만, 내공을 쌓아가며 깨달음을 얻는 과정에서 재미를 느낄 수 있다.
응용 - 프로젝트
-
⭐️ 설계의 중요성 : 아키텍처 설계는 프로그래밍 전에 반드시 해야 하며, 구체적인 목표 설정과 요구사항 정의가 우선이다.
-
1인 프로젝트의 함정 : 프로젝트 규모가 지나치게 작아지지 않도록 주의해야 한다.
-
스택에 얽매이지 않기 : 프론트엔드, 백엔드로 기술을 나누기보다 전체적인 기술 스택을 이해하려는 자세가 필요하다.
-
테스트 우선: 개발 초기부터 테스트를 빠르게 진행해야 한다.
-
주제 선정과 목표 설정
- 프로젝트 주제를 클론하는 것에 그치지 말고, 설계와 개발은 온전히 스스로 해보며 통찰력을 키운다.
- 구체적인 요구사항과 명확한 목표를 세워야 한다.
2. 채용 TIP
이력서/포트폴리오 및 면접에 대한 팁을 알 수 있었다.
3. 신입 개발자가 앞으로 꼭 알아야 할 키워드들
-
프로그래밍 언어 : 자신의 주 스택 언어(나같은 경우 JavaScript 등)를 깊이 있게 파악하고 활용하는 능력이 필요하다. 최소 하나의 언어는 깊게 파야한다.
-
프레임워크와 라이브러리 : 다양한 공식 오픈소스 코드를 읽고 배우기. 이슈, PR 문서부터 코드까지 정말 잘 써놓은 것이 많으니 보고 배우면 많은 도움이 될 것이다.
-
MSA, 스케일 업 및 성능 최적화 : 성능 개선 및 확장성을 위해 활용하는 것이 중요하겠다.
-
네트워크 : 네트워크는 분야 상관없이 중요한 만큼, 네트워크 성경책
TCP/IP Illustrated, Volume 1
는 꼭 완독하기.- 데이터베이스 : SQL과 NoSQL로 분류할 수 있다. 중요한 것은 각 기술이 어떤 상황에서 유용한지 이해하는 것이다.
-
도커와 코드 리뷰 툴 : Docker 및 SonarQube와 같은 도구를 활용해 효율적인 코드 리뷰와 테스트를 수행하는 방법을 익혀야 한다.
마무리
💶 소즁한 면접비 3만원
비록 2달간의 프로젝트에 참여하지는 못했지만, 면접에서의 시니어 피드백과 리팩토링 강연을 들을 수 있었던 것은 큰 행운이었다.
이번 경험은 개발자로서의 방향성을 다시 한번 점검하고 동력을 얻는 계기가 되어, 두고두고 이 글을 회고하고자 남겨둔다 :)