백엔드 개발자가 주로 사용하는 언어는 무엇인가요?
자바 go 이외에는 또 어떤 언어들이 많이 사용되는지 궁금합니다.
그리고 최근에 새롭게 주목받는 언어가 어떤 것이 있는지 궁금해요.
그리고 백엔드 개발자로 성장하기 위해서 필요한 핵심 역량도 하나 부탁드립니다.
백엔드언어로 주로 사용하는 언어로는 파이썬, 자바, C 로 많이 시작합니다. 각 언어에 마다 특징과 용도가 조금씩 차이가 납니다. 각 언어의 특징을 보고 맞는 언어로 공부하시기 바랍니다.
파이썬은 데이터통계 나 AI 등에 많이 사용되고 비교적 쉽게 배울 수 있는 언어이고 자바는 웹이나 안드로이드 등 다양한 분야에 많이 사용 되는 언어입니다. 정부에서 사용하는 전자정부프레임워크에서도 쓰입니다. C는 하드웨어제어나 게임등에 사용되는 언어로 기초를 다지기에 적합한 언어입니다.
백엔드 언어는 서버에서만 실행되며, DB 연동 등의 데이터 처리를 주로 담당해요 !!
백엔드 언어는 php, java(Spring, Servlet, JSP), Node.js, python(Django, Flask) 등 다양하게 존재하지만, 각각의 특징을 아래와 같이 작성해보았습니다.
1. php
php는 빠른 개발속도가 장점이며, 기본적인 개발환경 세팅이 비교적 간단함. MVC 패턴 구조를 취하지 않아도 되기 때문에, 개발 자체는 빠르지만 유지보수를 고려하지 않고 개발하면 유지보수할 수 없는 코드가 되어버림. 다만, 하나의 파일에 HTML/CSS/JS 코드와 php 코드가 섞여 있으므로, 코드가 길어지면 코드 가독성이 떨어짐.
중소규모 프로젝트 혹은 웹개발을 시작하거나 중소규모 웹개발 프로젝트에 추천 !!
2. Java
Java 언어 자체가 Pure OOP 언어이므로, 다른 언어보다는 유지보수가 용이하도록 코드를 작성하게 될 것임.
자바는 대규모 프로젝트에 적합하며, 그만큼 개발환경 세팅이 다른 언어보다 비교적 복잡함. Spring Framework는 MVC 패턴, Dependency Injection 패턴을 사용하는 구조임.
웹개발 경험이 있는 사람에게, 대규모 웹개발 프로젝트에 추천. Spring F/W는 책으로 공부하는 것을 추천함.
3. Node.js
프론트엔드 언어인 자바스크립트 문법을 사용함으로써, 프론트엔드 개발자가 풀스택 개발을 하기에 가장 쉬움. 가장 큰 특징인 Async(비동기) 처리 방식으로, throughput(시간당 처리량)이 가장 높음.
하지만 처리시간에 오래 걸리는 서비스에는 적합하지 않음. 높은 throughput을 요구하는 (=요청이 많은) 웹개발에 추천함.
4. python
python 은 웹 개발 언어가 아닌 범용 언어이므로, python을 사용하던 사람들에게 좋은 접근성을 제공함
python의 장단점들을 모두 가져올 수 있다는 특징이 있다
Flask framework는 중소규모 프로젝트에, Django framework는 대규모 프로젝트에 적합함. python 언어가 자유도가 높다고 생각하나, 그럼에도 불구하고 Django 프레임워크를 처음 사용할 때는 제한이 많다고 느낌
python을 좋아하는 사람들에게 추천. Spring F/W처럼 Django도 책을 가지고 공부하길 추천하고 아주 간단한 웹개발이라면 Flask, 이후에 프로젝트가 커질 것을 생각하면 Django를 추천.
파이썬 도 많이 사용됩니다
핵심역량은 무조건 프로젝트를 진행해보는 것이 좋습니다
물론 기본 적인 자료구조 를 배우시면 제일 좋습니다
언어라는 것이 기본적인 구조 위에서 사용되는 것이기때문에
기초가 튼튼하다면 언어는 도구 일 뿐이라고 생각합니다.
초기에 접근이 쉽고 레퍼런스가 많으며 커뮤니티가 활성화되어있는 언어를 고르시고
접근하시면 좋을듯 합니다
스타트업 및 중소기업 기준에서는 node 로 api 개발을 하는 회사가 많아지고 있습니다.
하지만 회사별 백엔드는 기준이 다 다르기때문에 언어에 맞춰서 입사를 하는게 수월합니다.
자바를 하셨다면 공공기관이랑 업무를 한다거나 금융쪽으로도 생각할수있습니다.
아직 국내에 에이전시 및 솔루션 공급 업체는 대부분 자바를 사용하고있습니다.
추가적인 공부를 하려고하면 서버세팅쪽 dev ops 쪽 공부도 알아보시면 좋습니다.
실무에서는 자바, 자바스크립트, 파이썬 그리고 루비가 제일 많이 사용되는 편입니다. 자바는 대기업, SI쪽에서 자바스크립트, 파이썬, 루비는 아무래도 스타트업쪽에서 많이 쓰이는 편입니다.
새롭게 주목 받는 언어는 질문자님이 말씀하신 것처럼 Go언어, 그리고 Rust 정도가 있겠네요 백엔드 개발자로 성장하기 위해서는 크게 다음이 필요합니다.
- 전공 기초 (자료구조, 알고리즘, 네트워크, 데이터베이스 +@로 시스템 프로그래밍과 운영체제)
- 언어/웹 프레임워크 제대로 파악하기 (자바라면 스프링 프레임워크)
- 클라우드 배포 (AWS, GCP etc...)
- CI/CD
- 컨테이너링 기술 (도커, 쿠버네티스)
솔직히 신입 레벨에선 전공 기초랑 언어/웹 프레임워크만 빠삭하게 알아도 훌륭하다고 생각하는 편입니다. 개인적으로는 취업의 목표가 개발자라면 자바를 추천합니다. 우리 나라는 자바의 직업 풀이 워낙 높아서... 프로그래밍이 재밌어서 하시는거면 어떤 언어든 괜찮다고 생각합니다.
그리고 다음 책 추천드릴게요. 자바/스프링 프레임워크 기반으로 CI/CD, 클라우드 배포까지 백엔드 개발자가 해야 하는 일을 대략적으로 훑을 수 있어요.
감사합니다.
**쿠팡 파트너스 활동의 일환으로 쿠팡에서 일정 수수료를 제공받고 있습니다.**