로고 이미지
입학상담

백엔드 개발

백엔드 개발자 포트폴리오

백엔드 공부 순서

백엔드 개발자의 필수 무기와
운용법(ft. 언어, 기술 스택)

#백엔드 개 #백엔드 개발자 포트폴리오 #백엔드 부트캠프


글 미리보기

1. 영어? 불어? 아냐, 백엔드 개발자는 개발 언어로 소통한다
2. 백엔드 개발용 언어의 필수 요소
3. 프로젝트용으로 어떤 언어를 고를까?
4. 백엔드 개발에서 많이 쓰이는 언어


뒤에서 묵묵히 웹 애플리케이션의 핵심을 받쳐주며 사용자가 웹페이지에서 노니는 것을 든든히 지원하는 백엔드 개발자. 그러나 많은 사람들이 ‘백엔드 개발자는 공부할 게 많대’, ‘백엔드 개발은 다른 개발에 비해 어렵대’, ‘백엔드 개발… 몰라, 뭐야, 어려워…’ 등 갑갑하고 막연하게 생각하시는 분들이 많아요. 하지만 꼭 그런 것만은 아닙니다. 지금부터 백엔드 언어를 비롯해 백엔드 공부 순서, 기술 스택, 그리고 포트폴리오까지 백엔드 개발자로 취업하기 위한 필수 요소를 하나하나 알려 드릴게요.

1. 영어? 불어? 아냐, 백엔드 개발자는 개발 언어로 소통한다

업무적인 면에서 볼 때, 우리는 대부분의 명령을 말로 합니다. 구두로 하든, 이메일이나 명령서, 작업지시서 등 작성해 건네주든 결국 근간은 ‘언어’라는 소통 수단이죠. 프로그래밍 언어 역시 마찬가지입니다. 인간이 컴퓨터에게 어떤 일을 시키기 위해, 또는 컴퓨터가 인간에게 자신의 상황과 작업 진도 등을 알려주기 위해 사용하는 일종의 소통 수단이라고 볼 수 있습니다.

하지만 한국어나 일어 등 각국 언어와 ‘하나, 둘, 삼, 넷, 오, 여섯, 칠’ 처럼 극한 상황에서 혼동하지 않기 위한 포병 숫자, 청각 장애인이 쓰는 수어처럼 목적에 맞게 언어를 골라 쓰면 보다 많은 사람들과 정확한 소통을 할 수 있습니다.

개발자의 무기는 프로그래밍 언어, 출처: AI 생성 사진

2. 백엔드 개발용 언어의 필수 요소

개발자 역시 마찬가지입니다. 개발 언어는 대략 700종이 넘는 만큼 다양한데요. 프론트엔드와 백엔드 개발자 모두 자신의 업무에 맞는 다양한 언어들을 사용하게 됩니다. 그중 자신에게 가장 적합한 언어를 고르는 것 역시 개발자의 실력이라고 할 수 있습니다.

시스템에서 눈에 띄지 않는 서버를 주로 다루는 만큼, 백엔드는 주로 프론트엔드 영역에서 들어온 요청을 수행하도록 해주는 역할을 합니다. 따라서 백엔드 개발에서 가장 중요한 것을 꼽으라면 단연 ‘안정성’을 들 수 있습니다.

백엔드 개발자가 주로 다루는 서버는 특수한 일이 아니라면 1년 365일을 내내 꺼지지 않고 작동되어야 합니다. 이를 위해서는 언어로 유지보수를 하는 등 다양한 상황에서 시스템의 리소스를 소비하지 않아야 하는데요. 따라서 컴퓨팅 파워를 소비하는 GUI가 아닌 명령줄 인터페이스(Command Line Interface)를 주로 활용하게 됩니다. 그렇기 때문에 백엔드 개발용 언어는 명령줄 인터페이스 내에서도 편리하게 사용할 수 있어야 합니다.

3. 프로젝트용으로 어떤 언어를 고를까?

프로젝트에서 백엔드 작업용 언어를 고를 때는 몇 가지 주의 사항이 있습니다. 첫째, 개발자가 가장 잘하는 백엔드 언어를 우선적으로 골라서는 안 됩니다. 개발자가 가장 잘하는 언어를 고르면 결과물의 품질 역시 올라갈 수밖에 없는데, 왜 백엔드 개발자의 주 언어를 1순위로 고르지 말라는 걸까요?

답은 결과물의 품질 때문입니다. 백엔드에서 개발 언어를 고를 때는 프로젝트의 개발 목적과 클라이언트의 요구사항을 최대한 수용하면서도 백엔드 개발자가 편히 사용할 수 있는 언어를 우선적으로 선택해야 합니다. 바로 이 점이 백엔드 개발자를 꿈꾸는 분들에게는 고민이 될 수밖에 없는 부분입니다. 아직 백엔드 서버 개발 시 보편적으로 필요한 요소나 기업의 보편적 요구사항 등이 한눈에 들어오지 않는 단계이기 때문입니다. 그렇다면 수많은 언어 중 백엔드 언어로 어떤 것을 공부해야 할까요? 업계에서 가장 많이

4. 백엔드 개발에서 많이 쓰이는 언어

개발자들이 보통 가장 많이 사용하는 언어는 Java와 C, Ruby와 PHP, Kotlin과 Python 등입니다. 그 중에서도 Java와 Python 두 가지 언어가 대표적인데요. Java는 먼저 그 안정성과 보안이 인정받고 있으며 플랫폼을 가리지 않는데다 처리 속도도 빠르고 성능도 뛰어나 많은 개발자의 사랑을 받고 있습니다.

Python은 처리 속도가 다른 언어에 비해서는 조금 느리다는 단점은 있지만, 문법이 비교적 쉬운 데다 라이브러리가 풍부해 개발 속도를 올려줍니다. 그렇다면 백엔드 개발자가 공부해야 할 벡엔드 언어에 대해 더 알아보도록 하겠습니다.

백엔드 언어: JavaScript는 웹을 구성하는 주요 요소로, 모든 웹 브라우저에 내장된 인터프리터를 사용합니다.

JavaScript

JavaScript는 스크립트 언어 타입의 프로그래밍 언어로 오늘날 HTML과 CSS와 함께 웹을 구성하는 주요한 요소입니다. 이름은 이렇지만 Java와는 별 관련이 없는데요, 모든 웹 브라우저에 Java Script의 인터프리터가 내장되어 있으며, 특별한 에디터 보다 메모장 기반 텍스트 에디터를 주로 사용하는 경우가 많습니다. 초기에는 진입장벽이 낮아 배우기 쉬운 편이지만, 초반에 단단히 학습해두지 않으면 깊이 들어갈수록 혼란을 겪을 수 있습니다.

백엔드 언어: Python은 구글의 메인 개발 언어 중 하나로, 단순한 문법 덕분에 초보자도 쉽게 배울 수 있습니다.

Python

C++, Java와 함께 구글의 메인 개발 언어로 알려진 Python은 영국의 전설적인 코미디 그룹 ‘몬티파이썬’의 이름에서 가져온 프로그래밍 언어입니다. 1989년 크리스마스, 네덜란드의 개발자 ‘귀도 반 로섬’이 취미로 시작한 Python은 거의 수도 코드(Pseudo Code)처럼 단순한 문법에 모든 기능이 실행될 정도라 초보자들도 쉽게 배울 수 있는데요.

실무에 쓰기엔 부족한 교육용 언어 BASIC과는 달리 실무에서 사용도 전혀 문제가 없습니다. Python 역시 순수 객체 지향 언어이자 멀티 패러다임 언어기 때문에 객체 지향 프로그래밍 말고도 함수형, 절차적 프로그래밍 등 다양한 패러다임을 모두 지원합니다. 다소 속도가 느리기는 해도 프로그래머 입장에서는 더욱 편리하게 프로그래밍할 수도 있다고 합니다.

백엔드 언어: Ruby는 1995년 일본에서 개발된 동적 오픈소스 언어로, 문법이 쉽고 확장하기 편합니다.

Ruby

스크립트 언어의 일종으로 1995년 일본의 엔지니어 ‘마츠모토 유키히로’가 개발한 동적 오픈소스 프로그래밍 언어입니다. Python과 경쟁 관계이며 문법의 쉽고 확장하기 편해 처음 시작한 사람들도 복잡한 프로젝트를 상대적으로 잘 설계해 낼 수 있다고 합니다.

Class를 사용자 마음대로 수정할 수 있는 OpenClass를 지원하며 여러 객체 지향 언어와 마찬가지로, 의 특징과 함께, 흔히 ‘메소드’라 부르는 코드의 집합 자체를 전달할 수 있습니다. C++이나 Java, Python이 그런 것처럼 메소드 안에서도 메소드를 생성할 수도 있으며 언어 자체를 확장할 수 있는 ‘메타 프로그래밍’의 특징도 가지고 있습니다. 하지만 약간 실행속도가 느리다는 단점도 존재하죠.

백엔드 언어: Kotlin은 간결한 문법과 Java와의 상호운용성으로 구글 안드로이드 개발의 공식 언어입니다.

Kotlin

Kotlin은 통합 개발 환경 IntelliJ IDEA를 개발한 JetBrains에서 2011년 공개한 오픈소스 프로그래밍 언어입니다. 언어의 구조가 Java와 유사하지만, 훨씬 더 간결한 문법이며 보다 다양한 기능을 추가할 수 있는 언어로 Java와 100% 상호운용할 수 있습니다. JVM의 바이트코드가 기본이지만 자체 컴파일러를 사용해 기계어로 컴파일할 수 있는 기능도 있어요.

2017년 구글은 안드로이드 개발의 공식 언어로 Kotlin을 추가했으며, 2019년 구글의 내부 안드로이드 프로젝트에서도 사용하기 시작했다고 합니다. 또한, 카카오 서버개발팀 백엔드 개발자의 경우에도 2023년부터는 Java 11 버전 이상이나 Kotlin에 익숙해야 한다고 합니다.

이러한 언어 중 몇 가지를 능숙하게 활용할 수 있고, 여기에 다른 언어들을 쉽게 습득할 수 있는 기본적 지식만 익혀놓는다면 백엔드 개발자로서 사용할 수 있는 무기를 고르는 데 큰 도움이 될 것입니다. 그럼 이제 백엔드 개발자로서 무기를 준비했으니, 어떻게 활용할 수 있는지 알아봅시다.

SQL과 No SQL

첫 번째는 데이터베이스 관리에 관한 것입니다. 백엔드 시스템의 핵심 중 하나가 데이터를 저장 및 조회하고, 이를 수정하거나 삭제하는 ‘데이터베이스 관리’이기 때문입니다. 데이터베이스는 SQL(Structured Query Language)로 대표되는 RDBMS 데이터를 조회하고 그것을 조작합니다. 그러나 SQL을 사용하지 않는 MongoDB와 Redios 등 DBMS도 있기 때문에, SQL과 SQL을 사용하지 않는 No SQL 등 데이터베이스 시스템에 대한 종합적인 지식을 가지고 있어야 합니다.

백엔드 언어: 백엔드 시스템은 SQL과 No SQL 데이터베이스를 관리하고 조작하는 기술을 필요로 합니다.

출처: Unsplash

백엔드 개발자에게 있어 코드의 버전 관리와 협업에 중요한 역할을 하는 Git 역시 굉장히 중요합니다. 백엔드 개발자라면 ‘commint’와 ‘branch’, ‘merge’와 같은 개념을 중요하게 생각하는 Git의 기본 개념을 이해한 상태에서 코드의 변경 사항을 체계적으로 관리할 수 있어야 합니다. 또한 Git으로 협업하기 위해서는 ‘merge’ 기능을 활용해 코드를 병합할 때 ‘Git Flow’를 통해 프로젝트의 라이프사이클을 체계적으로 관리하는 것은 특히 중요한 일입니다.

꼭 잡아야 하는 뜬구름! - Cloud System

AWS나 Azure, Google Cloud 등은 백엔드 개발자에게 필수적인 요소가 되었습니다. 따라서 클라우드 컴퓨팅 서버를 구축/관리하고 서버리스 컴퓨팅과 컨테이너 기술인 도커나 쿠버네티스의 개념을 잘 알고 활용할 수도 있어야 합니다. 요청/응답을 이름으로 구분하여 통신하도록 정해진 규칙을 의미하는 REST(Representational State Transfer) API 등 보편적으로 사용하는 백엔드 API 서버를 설계하고 로컬 백엔드 서버에서 배포 테스트를 수행한 후 공식적으로 배포하는 과정 등 백엔드 작업에서 이루어지는 필수적인 스킬 역시 꿰차고 있어야 합니다.

백엔드 언어: 백엔드 개발자는 AWS, Azure, Google Cloud 등 클라우드 시스템과 REST API를 활용할 줄 알아야 합니다.

출처: Unsplash

이 과정은 백엔드 개발에서 자신과 프로젝트에 적합한 개발 언어를 고르고, 작업에 맞는 방법론을 골라 테스트하고 배포하는 과정의 설계와 수행을 위해 필요합니다. 전공자라면 이 모든 과정을 학교에서 경험해 볼 수도 있겠지만, 비전공자라면 막막하게 느껴질 수 있습니다.

하지만 비전공자라고 해서 걱정할 필요는 없습니다. 커널 아카데미 부트캠프와 같은 교육 프로그램을 통해 실무진 강사의 체계적인 커리큘럼을 바탕으로, 백엔드 공부 순서에 맞춰 기술 스텍을 마련할 수 있기 때문입니다. 특히 커널 아카데미의 백엔드 개발 부트캠프인 남궁성의 데브캠프는 실무와 개발자 교육 30년 차인 Java 교육계 1타 남궁성 강사가 강의는 물론 단계별 코칭, 개인 맞춤형 멘토링까지 관리합니다. 백엔드 개발자로서 기초를 다지는 것은 물론, 취업까지 이어지는 협업 프로젝트와 멘토링, 생성형 AI 커리큘럼까지 직접 경험해볼 수 있습니다.

*패스트캠퍼스 부트캠프가 '커널 아카데미'로 명칭이 변경되었습니다.