개발자가 되고자 마음을 먹으면 뭐부터 할까? 정해진 커리큘럼 없나? 고민이 되기 마련이다. 그래서 백엔드 개발자의 로드맵을 알아보기로 했다.
깃허브에 백엔드를 비롯해, 여러 개발자의 로드맵을 정리해둔 곳이 있었다.
https://github.com/kamranahmedse/developer-roadmap
GitHub - kamranahmedse/developer-roadmap: Interactive roadmaps, guides and other educational content to help developers grow in
Interactive roadmaps, guides and other educational content to help developers grow in their careers. - kamranahmedse/developer-roadmap
github.com
그리고 백엔드는 여기 -> https://roadmap.sh/backend

정말 많은데 크게 아래와 같이 있는 것 같다.
1. 인터넷 기본 지식 - HTTP, 인터넷/브라우저 작동원리, DNS, 도메인, 호스팅
2. OS 지식 - 메모리, 프로세스, 입출력, 리눅스, 네트워크
3. Git - 버전 관리, github
4. DB - 관계형, NoSQL, 튜닝
5. API - 인증, JSON, gRPC
6. 캐시 및 웹 보안 지식 - CDN, Redis, 해시 알고리즘, Https, SCP, SSL, CORS..
7. 테스트 - 통합, 단위, 기능 테스트
8. CI/CD
9. 개발/설계 원칙 - 아키텍처 패턴, SOLID(객체지향설계원칙)
10. 메시지 브로커 - RabbitMQ
10. 검색엔진 - Elasticsearch
10. 컨테이너 - 도커
10. GraphQL - Apollo
11. 웹 서버 - Nginx, Apache
12. 확장성 있는 구축 - 마이그레이션/확장/Mitigation 전략
보고나서 생각보다 백엔드 개발이란 부분을 얕게 보고 있었단 생각이 들었다.
인터넷 및 os 지식도 필수였고 모르는 것도 많았다. 하지만 정리되는 느낌이고 어디서부터 더 공부해봐야할지 감이 잡히는 느낌이었다. 특히 업무를 해봤을 때 기본적인 인터넷 프로토콜 지식이 약하다보니 500, 404 에러 원인을 찾아다니고 cors 에러나 https, http api호출 문제 등 다양하게 겪었는데 어영부영 해결하게 됐던 것 같다.
그래서 먼저 인터넷 지식부터 차근차근 시작해봐야겠다 생각했다.
나는 어떤 개발자로 성장하고 싶은가?
1. 기초가 탄탄한 개발자
: 로드맵을 보면서도 느꼈지만 제대로된 백엔드 개발자가 되려면 알고 있어야 하는게 많고 기초가 튼튼해야한다. 그래서 난 위 로드맵에 대해서는 모두 알고 있을 정도로 탄탄한 개발자가 되고 싶다.
2. 계속 공부하는 개발자 / 신기술에 관심갖는 개발자
: 구직을 하고나면 심적으로나 시간적 여유로나 공부할 시간을 내기 어려울 수 있지만 꾸준히 새로나오는 기술과 변화에 뒤처지는 사람이 아니라 같이 성장하고 싶다. 알아보면 온라인으로도 참여 및 볼 수 있는 세미나 등이 있는데, 그런걸 보는 것도 큰 시간을 들이지 않고 흐름을 파악할 수 있는 좋은 방법 같다.
'공부 > 백엔드' 카테고리의 다른 글
| [스프링 부트 핵심 가이드] 4-5 : 스프링부트 APP 개발, API 개발 (0) | 2024.04.29 |
|---|---|
| [스프링 부트 핵심 가이드] 1~3 : 스프링부트, MVC, 디자인패턴 (0) | 2024.04.25 |
| [ObjectMapper] json String -> List<Map> 변환 (0) | 2023.11.07 |
| Controller에서 값을 받는 방법들 - RequestParam, RequestBody, ModelAttribute, PathVariable, HttpServletRequest, MultipartHttpServletRequest (0) | 2023.10.14 |
| Ajax의 기본 정리! view-controller 통신 (비동기) (2) | 2023.10.13 |