백엔드 개발자가 되기 위한 진로 이야기, 필요한 지식, 그리고 네이버에서 백엔드 개발자로서의 경험 등 학생 개발자에게 도움이 될 다양한 내용으로 구성되어 있다.
*본문 중 기억하고 싶은 내용
백엔드 개발자에게 필요한 지식
웹 생태계의 스펙
HTML, HTTP(1.1 , HTTP/2)
기본 SDK, 라이브러리/프레임워크 이해와 활용
클라이언트를 위한 API 설계
서버/컴퍼넌트/객체 간의 역할 분담/의존성/통신 방법 설계
저장소 활용
DBMS 설계
Cache 적용
Global/Local cache 적용범위, 라이프 싸이클, 솔루션 선택
파일 저장 정책/솔루션 선택 활용
검색엔진 연동 방식 결정
빌드 도구
Maven/Gradle
배포 전략
성능 테스트/프로파일링/튜닝
JVM 레벨의 튜닝 (GC 옵션 등)
웹 서버(Nginx,Tomcat)등의 설정/튜닝
OS 설정의 주요 값 확인
인접 기술에 대한 이해
DBMS, Front End 등
서버 개발자에만 해당하지는 않는 항목
테스트 코드 작성/리팩토링 기법
버전 관리 전략
branch 정책 등
개인적으로는 아래와 같이 개발자의 수준을 분류하고 싶습니다.
레벨0: 이미 쓰고 있는 개발도구의 사용법을 알려주거나 가이드 문서를 줘도 잘 못 씀 레벨1: 알려주거나 같은 팀에서 만든 가이드 문서에 있는 만큼만 쓸 수 있음 레벨2개발도구의 공식 레퍼런스를 보고 사용법을 스스로 익힐 수 있음자신이 경험한 사용법을 문서화해서 팀 내에 전파할 수 있음 레벨3여러 개발도구를 비교 분석해서 상황에 적합한 도구를 선택할 수 있음공식 레퍼런스 문서에서 부족한 부분을 수정해서 기여할 수 있음 레벨4개발도구의 문제를 소스 코드를 수정해서 Fork/패치해서 사용할 수 있음