ABOUT IT & ESSAY

백엔드 개발자 커리어맵 - 어떤 백엔드 개발자가 되고 싶은가?

우진하다 2023. 5. 25. 17:14

백엔드 개발자 로드맵.

이미지 출처 : https://roadmap.sh/backend

 

프로그래밍과 관련된 직무를 희망하는 사람이라면
위 사진을 어떤 경로를 통해서든 마주하게 된다.
위 사항을 모두 만족하려면 얼마나 많은 시간과 노력이 필요할지는
누구나 알 수 있을 것이다.

백엔드 개발자 로드맵을 참고해 정리하면

  • 기본 프로그래밍 지식: 어떤 분야에서든 기본적인 프로그래밍 지식은 필수
     프로그래밍 언어(예: Python, Java, C# 등)를 선택하고, 문법, 데이터 구조, 알고리즘 등을 학습이 필요

  • 웹 개발 기초: 웹 개발에 대한 기본적인 이해가 필요
     HTML, CSS, JavaScript 등의 웹 표준 기술을 익히고, 웹 애플리케이션의 작동 방식에 대한 이해를 필요

  • 서버 사이드 기술: 백엔드 개발자로서 가장 중요한 부분으로
    서버 사이드 기술을 학습하여 웹 애플리케이션을 구축하고 관리할 수 있어야 함
    일반적으로 백엔드 개발 언어 (예: Python, Java, Ruby, Node.js)와 프레임워크
     (예: Django, Spring, Ruby on Rails,  Express) 등 학습이 필요

  • 데이터베이스: 대부분의 웹 애플리케이션은 데이터를 저장하고 관리해야 합니다. SQL(Structured Query Language)을 이용한 관계형 데이터베이스(예: MySQL, PostgreSQL) 또는 NoSQL 데이터베이스(예: MongoDB, Redis)를 배우고  데이터베이스 설계, 쿼리 작성, 성능 최적화 등에 대한 이해도를 키워야함

  •  API 개발: 백엔드 개발자는 클라이언트 애플리케이션과 상호 작용하기 위한 API(Application Programming Interface)를 개발해야 함. REST(Representational State Transfer) 아키텍처와 API 설계 원칙을 이해하고, API 프레임워크(예:
      Flask, Spring Boot)를 사용하여 API를 개발

  • 보안: 백엔드 개발자는 사용자 데이터와 애플리케이션의 보안을 유지
    웹 보안에 대한 기본적인 이해와 보안 취약점에 대한 인식을 갖추고,
    암호화, 인증, 권한 관리 등의 보안 기술을 학습

  • 성능 최적화: 백엔드 시스템의 성능은 중요한 요소
    서버 리소스 관리, 캐싱, 로드 밸런싱, 데이터베이스 인덱싱 등 성능 최적화 기술 필요

  • 버전 관리: 효율적인 협업과 코드 관리를 위해 버전 관리 시스템(Git 등)을 사용.
    코드 변경 추적, 협업 기능, 브랜치 전략 등을 활용하여 개발 프로세스를 향상시킬 수 있음

  • 클라우드 기술: 클라우드 플랫폼(예: AWS, Azure, Google Cloud)은 현대적인 백엔드 개발에 필수
      클라우드 기술과 서비스를 학습하여 애플리케이션 배포, 관리, 확장 등을 수행해야 함

  • 추가적인 도구와 기술: 이외에도 백엔드 개발을 보완하기 위해 다양한 도구와 기술을 학습할 수 있음
     예를 들어, 로그 분석 도구, 모니터링 도구, 테스트 자동화, 마이크로서비스 아키텍처 등이 있다.

 

주니어 백엔드 개발자가 되기위한 로드맵.

API 개발(REST API), 개발 언어와 웹 프레임워크, 서버 기본 지식, 네트워크 기본 지식,
데이터베이스, 분산스토리지, 기본적인 프론트엔드 기술 등을 큰 가지로 잡고 학습하는게 좋음

나아가 자료구조 및 알고리즘 학습과 코딩테스트를 준비하고
네트워크, 운영체제, 데이터베잇, 다지안패턴, 알고리즘, 포트폴리오 관련 기술 및 지식 등
기술과 관련된 면접 준비, 인턴십 등 본인만의 무기를 갖추게 된다면
주니어 백엔드 개발자로서 역량을 갖췄다고 불 있다.

 

나는 어떤 백엔드 개발자가 되고 싶은가?

백엔드 개발자 직무가 과거보다 더욱 세분화 되었다고 해
사실 학습 초기단계인 현재는 어떤 분야에서 이런 일을 하고 싶다는 뚜렷하지 않다.

앞으로 프로젝트를 접하면서 나아갈 방향성을 정하고
내가 만들어보고 싶었던 서비스나 서버를 만들고
이를 바탕으로 작고 간단한 기능으로 이루어진 MVP(inimally Viable Product) 모델을
제작하고 배포하는게 현재 단계에서 구상하는 작은 목표다.

위에서 언급했던 많은 측면들이 현재는 부족하지만
나는 앞으로 아래 내용의 노력과 이해를 바탕으로 주니어 백엔드 개발자가 되고자 한다.

- 코드 컨벤션을 준수하고 클린 코드 작성을 위해 노력 할 것
- 백엔드 개발에 필요한 기술과 도구에 대한 깊은 이해를 갖추려 할 것 
- 단위/통합/성능 테스트 등을 수행하여 버그를 찾고 수정할 수 있는 능력을 갖출 것
- 타 직무 및 다른 개발자들과 원할게 소통할 수 있는 커뮤니케이션 능력과 협업 스킬을 갖출 것
- 새로운 기술을 당장 적용하진 못하겠지만 앞으로를 위해
   꾸준히 학습하고 적용할 수 있는 토이프로젝트를 만들 것


지금 나의 기록이 현실화 될 수 있도록 오늘도 런런!

 


이미지 밎 원문 출처
: https://www.developerfastlane.com/blog/things-to-know-for-backend-developer-basic

: https://d2.naver.com/news/3435170

: https://brunch.co.kr/@13335218e68a4e8/99