지난번 개발자를 위한 진로와 커리어 패스 유형정리에 이어 이번에는 백엔드 개발자를 위한 공부 순서 및 커리큘럼에 대해 이야기 해보겠습니다. 먼저 전반적인 공부 순서와 커리큘럼을 정리하고, 주니어 백엔드 개발자와 시니어 백엔드 개발자로 나누어 각각 대한 공부 순서의 자세한 내용을 정리하겠습니다.
1. 프로그래밍 언어 학습
Python, Node.js, Java, Ruby, Golang 등의 언어 중 하나를 선택하여 학습합니다. 해당 언어의 기본 문법 및 데이터 타입, 변수, 조건문, 반복문, 함수 등을 학습 합니다. 개발 지식이나 컴퓨터 공학 지식이 부족한 경우 개념이 어려울수도 있지만 어렵다고 포기 하지 마시고 간단한 응용 프로그램이라도 돌려 보시길 권장 합니다.
- 'ChatGPT와 함께 5분 만에 Python FastAPI로 TodoApp API 만들기' 를 참고 하시면 Python 언어를 이용하여 개발 지식 없이도 ChatGPT의 도움을 받아 간단한 TodoApp API를 만들어 볼 수 있습니다.
- 예제 코드를 직접 작성해 보고 실행 해보고 동작하는 코드를 보며 언어의 기본 문법을 하나씩 학습 할수 있습니다.
2. Spring, Django, Ruby on Rails, Express.js 등의 프레임워크를 학습합니다.
잘 사용하는 프로그래밍 언어의 프레임워크를 사용하여 웹 어플리케이션을 구현하고, 데이터베이스와의 연동 방법 등을 습득합니다. 프레임워크를 사용하지 않고 웹 어플리케이션을 구현하는 방법도 학습합니다.
각 언어별 프레임워크도 아래와 같이 정리 해보았습니다.
- Python: Django, Flask
- Node.js: Express.js, Nest.js
- Java: Spring, Spring Boot
- Ruby: Ruby on Rail
- Golang: Gin
3. 데이터베이스 학습
백엔드 개발자라면 프로그래밍과 웹 프레임워크 뿐만 아니라 관계형 데이터베이스 (RDBMS)와 NoSQL 데이터베이스 등을 학습 할 필요가 있습니다. 기본적인 SQL 문법 및 데이터 모델링에 대한 이해를 바탕으로 데이터베이스를 다루는 기술을 습득합니다.
데이터베이스 기본 개념과 SQL 문법은 아래 링크를 참고 하시면 됩니다.
4. 웹 개발 기술 학습
백엔드 개발자라고 하더라도 기본적인 웹 개발 기술은 필요 합니다. HTML, CSS, JavaScript 등을 학습하여 웹 개발에 필요한 기술을 습득합니다. RESTful API, 웹 프레임워크 (Django, Flask, Ruby on Rails, Express.js 등) 등을 학습하여 웹 어플리케이션 개발에 필요한 기술을 습득합니다.
그리고 간단한 Web TodoApp을 만들어 보면서 웹 개발을 경혐 해보는 것도 좋은 방법 입니다.
- 'ChatGPT와 함께 5분 만에 Next.js로 TodoApp 만들기' 를 참고 하시면 NextJS를 이용하여 간단한 TodoApp을 만들어 볼 수 있습니다.
- 조금더 간단한 웹프로젝트 부터 경험해보기 원하신다면 ChatGPT로 랜딩 페이지 만들기(Next.js + Tailwind CSS) 를 참고 하시면서 쉽고 간단한 랜딩 페이지를 만들어 보실수 있습니다.
5. 클라우드 서비스 학습
AWS, Google Cloud, Microsoft Azure 등의 클라우드 서비스를 학습하여 서버 구축, 배포, 관리 등의 기술을 습득합니다. Docker, Kubernetes 등의 컨테이너 기술도 함께 학습하여 어플리케이션을 배포하고 관리하는 방법을 습득합니다.
6. 보안 기술 학습
HTTPS, SSL/TLS, OAuth 등의 보안 프로토콜 및 보안 취약점에 대한 이해를 합니다. 또한 일반적인 보안 취약점들을 학습하여 웹 어플리케이션의 보안을 강화하는 방법을 습득합니다.
7. 성능 최적화 기술 학습
웹 어플리케이션의 성능을 최적화하기 위한 기술을 학습합니다. 캐시, 로드 밸런싱, CDN 등의 기술을 학습하여 어플리케이션의 성능을 향상시키는 방법을 습득합니다.
8. 빅데이터 기술 학습
대용량 데이터를 다루기 위한 기술을 학습합니다. 대용량 로그 수집, 데이터웨어하우스(DW) 구축 등의 기술을 학습합니다.
대용량 로그 수집을 위한 기술은 아래와 같습니다.
- ELK (Elasticsearch, Logstash, Kibana)
- Fluentd, Fluent Bit
- Apache Kafka
데이터웨어하우스(DW) 구축을 위한 기술은 아래와 같습니다.
- AWS Redshift
- Google BigQuery
- Apache Spark, Hive 등
9. 머신러닝 기술 학습
머신러닝 기술을 학습합니다. 머신러닝 기술을 활용하여 서비스 경험과 사용자 만족도를 향상시키는 방법을 학습합니다.
10. 프로젝트 경험 쌓기
개인 프로젝트 또는 협업 프로젝트를 진행하여 실제 개발 경험을 쌓습니다. 프로젝트를 통해 다양한 기술을 활용하고, 문제 해결 능력과 협업 능력을 향상시킵니다. 개인적으로는 코딩추월차선으로 오신걸 환영 합니다에서 이야기 했듯이 개발자의 성장과 학습을 위해 가장 중요한 방법이라고 생각 합니다. 직접 만들어보고 출시 해보면서 개발자로서 많은 지식과 경험을 쌓을수 있습니다.
지금까지 백엔드 개발자의 공부 순서와 커리큘럼에 대해 알아보았는데요 해야할 것이 정말 많이 있지만 하나씩 차근차근 해나가면서 개발자로서 성장해 나가시기를 응원 합니다. 무엇보다 직접 만들어보고 출시 해보면서 자신만의 경험과 지식을 쌓아 나가시기를 바랍니다.
본 포스팅은 ChatGPT의 도움을 받아 작성 되었으며 개인적인 경험 경험을 바탕으로 작성되었습니다.