백엔드가 하는 일 - baeg-endeuga haneun il

백엔드 개발자와 프런트엔드 개발자는 모두 웹 프로그래머라라서 직종이 같다고 볼 수 있지만 하는 일은 완전 반대다. 프런트엔드 개발자는 사용자들에게 눈에 보이는 부분을 작업하는 반면 백엔드 개발자의 경우에는 사용자들에게 보이지 않는 부분을 주로 담당한다. 그럼 백엔드 개발자의 하는 일, 연봉, 전망, 공부 순서에 대해 알아보도록 하겠다.

웹 프로그래머와 프런트엔드 개발자에 대해 작성해놓은 글을 첨부하겠다.

[프론트엔드 개발자] - 현실, 전망, 처우, 연봉, 하는 일 | IT's

웹 개발자/웹 프로그래머에 대해서 알아봤는데 이번에는 프론트엔드 개발자에 대해서 알아보겠다. 프론트엔드와 백엔드라는 용어가 있는데 이 둘은 서로 반대되는 직업이다. 쉽게 말해 프론트

wkdus0608.tistory.com

백엔드가 하는 일 - baeg-endeuga haneun il

[웹 개발자/웹 프로그래머] - 현실, 전망, 처우, 연봉, 하는 일 | IT's

한국은 IT 강국으로 스마트폰, 컴퓨터 보급률이 매우 높은 편이다. 스마트워치나 다른 기기들까지 포함하면 사람마다 여러 대의 컴퓨터를 들고 다니는 수준으로 생각하면 된다. 그래서 웹 사이

wkdus0608.tistory.com

백엔드가 하는 일 - baeg-endeuga haneun il

백엔드 개발자란? (하는 일 + 수행직무)

백엔드의 업무는 데이터베이스와 API 서버 개발을 맡는다. 쉽게 말해 회원가입과 로그인 같은 기능들을 만드는 것이다. 

전반적인 모든 서비스를 구현하고 기존에 있던 서비스를 분석하고 좋지 않은 부분을 개선시켜 나간다. 그리고 사업 확장을 위해 새로운 개발, 시스템 연구를 꾸준하게 해야 한다. 그래서 백엔드 개발자로 활동하다 보면 웹 서비스에 대한 전반적인 경험을 할 수 있다. 데이버베이스에 관심이 있다면 데이터베이스에 대한 경험과 플랫폼, 인프라, 네트워크에 대해서 심도 깊게 다뤄볼 수 있다. 다만 사용자 환경에 문제가 발생하게 된다면 프런트엔드 개발자와 백엔드 개발자는 빨리 문제를 수정해야 한다. 이 부분이 어려운 점이라고 볼 수 있다. 

백엔드 개발직의 주요 업무는 아래와 같다.

  • 플랫폼 서비스 구현
  • 클라우드 콘솔 및 AWS 연동 시스템 개발
  • 데이터 관리 및 다양한 서비스 API 개발
  • 서비스 관리 및 판매 시스템 개발
  • 설루션 및 연동 API 개발

-> 기존 서비스의 유지보수 및 새로운 기능 개발

백엔드 개발자가 되려면

백엔드 개발자가 되기 위해서는 프로그래밍, 데이터베이스, 웹 서버, 네트워크와 인프라에 대한 이해도가 필요하다. 그중에서도 프로그래밍이 제일 중요한데 과거에 백엔드 쪽에서는 PHP만 널리 사용되었지만 요즘은 JAVA, PHP, JAVAScript, Node.js가 널리 사용된다. 하지만 이것들은 진입장벽이 높은 편이라 처음 학습을 목표로 한다면 파이썬부터 공부하는 것이 좋다.

파이썬은 만능 언어라고도 불리는데 java와 같은 언어에 비해 코드도 간결해서 난이도도 쉽고 개발할 수 있는 영역도 넓어서 프로그래밍 언어의 기초를 익힌 후 웹 프레임워크에 대해 공부하는 것이 좋다.

백엔드 개발자에게 필요한 기술

  • 자바스크립트, HTML, CSS, NodeJS, Es2015+, jQuery에 대한 이해
  • 데이터와 데이터베이스를 다루는 능력
  • 유지관리가 용이하고 간결한 코드를 작성하는 능력
  • 호환성 좋은 프로그램을 만들 수 있는 능력

백엔드 개발자에게 가장 적합한 프로그래밍 언어는?

1. PHP - PHP는 웹 개발에 있어서 반드시 필요한 언어들 중 하나이다. 일반적으로 데이터를 데이터베이스에 안전하게 저장하는 데 사용된다.

2. 파이썬 - 파이썬은 머신러닝, 사물인터넷과 같은 신기술에 자주 사용되는 언어이다. 세계에서 가장 인기 있는 언어이기도 하고 라이브러리와 짧은 코드로 구현이 가능하다는 장점이 있다.

3. 자바 - 자바는 백엔드 개발을 위해서 반드시 알아야 할 필수 프로그래밍 언어이다. 데이터베이스, 이미지 처리, 네트워크 등 다양한 분야에 활용될 수 있다.

4. 루비 (R) - 루비는 생산성과 단순성에 초점을 맞춘 언어이기 때문에 코드를 많이 작성하지 않아도 웹 애플리케이션을 만들 수 있다는 장점이 있다.

5. C# - C#은 윈도 프로그램 개발, 게임 개발 등 폭넓은 분야에서 활용되고 있다. 특히 C#은 꽤나 오래되었기 때문에 더 상대적으로 자료가 더 많다.

  • JavaScript – Netflix에서 사용
  • Python – 인스타그램에서 사용됨
  • 루비 – Github에서 사용
  • C# – Microsoft Visual Studio에서 사용
  • PHP – WordPress에서 사용
  • Java – Twitter에서 사용
  • 펄 – BBC에서 사용
  • C++ – Adobe Photoshop에서 사용

백엔드 개발자 공부 순서

백엔드가 하는 일 - baeg-endeuga haneun il
출처 : 드림코딩

공부 순서는 왼쪽에 있는 개념부터 배우고 나중 갈수록 오른쪽에 있는 것들을 공부해야 한다.

프로그래밍 언어, API 디자인, 데이터베이스, 기본 보안과 같은 개념들을 먼저 공부하고 본인이 설정한 커리어에 따라 위아래로 뻗어나가면 된다.

백엔드 개발자는 얼마나 받을까? (연봉 + 페이)

고졸 ~ 초대졸 신입 기준 : 2900~3100

대졸 신입 기준 : 3000~3400

[매년 300~400의 연봉 인상]

백엔드 개발자는 프론트엔드 개발자보다 IT 관련 지식을 더 크게 요구하기 때문에 연봉이 상대적으로 더 높은 경향이 있다. 

백엔드가 하는 일 - baeg-endeuga haneun il
회사별 개발직 연봉

백엔드 개발자의 전망

백엔드 개발자의 전망은 좋은 편이다. 백엔드 개발자뿐만 아니라 모든 개발 직종은 전망이 좋다고 볼 수 있다. 로봇이 인간의 모든 업무를 대체하는 시대가 온다고 하더라도 수요는 계속해서 증가할 것이다. 사업은 계속 생겨나고 4차 산업혁명으로 인해 사업을 인터넷에 접목시켜야 하기 때문에 개발자는 항상 필요하다. 

안녕하세요.

공상 개발입니다.

오늘은 백엔드 개발자에 대해서 알아보는 시간을 갖도록 하겠습니다.

백엔드가 하는 일 - baeg-endeuga haneun il

백엔드(Back-End) 개발자(Engineer)란?

백엔드가 하는 일 - baeg-endeuga haneun il
백엔드가 하는 일 - baeg-endeuga haneun il
백엔드가 하는 일 - baeg-endeuga haneun il

프론트엔드와 백엔드의 상호작용

프런트엔드와 백엔드 개발자를 구글로 비교해보자면,

구글 메인을 만드는 사람들을 프런트 엔드 개발자라고 부릅니다.

구글 메인을 통해 들어가 볼 수 있는 각종 기사나, 웹툰, 이메일 등이 저장된 서버에서 

정보를 저장하고 꺼내오는 논리를 만드는 개발자를 '백엔드 개발자'라고 부릅니다. 

구글이라는 웹 사이트에서 여러분이 보시는 화면을 사이트의 앞쪽 끝(Front-end)으로 보고,

화면에서 볼 수 있는 자료들을 저장해 놓은 서버를  사이트의 뒤쪽 끝(Back-end)으로 구분해서

프런트엔드 or 백엔드 개발자로 부르는 것이지요. 

즉, 백엔드 개발자는 주로 서버 사이드에서 동작하는 서비스를 만듭니다.

백엔드가 하는 일 - baeg-endeuga haneun il

유튜브를 예시로 들자면, 서비스는 사용자의 계정 정보를 제공하고,

여러 사용자에게 비디오를 받아서 지원 가능한 모든 버전의 퀄리티 버전으로 변형하며,

사용자가 동시에 영상을 시청할 수 있도록 합니다.

백엔드 개발자 로드맵(Back-EndEngineer road map) 

백엔드가 하는 일 - baeg-endeuga haneun il

백엔드 개발자는 서비스의 인터페이스 API를 구현하고 데이터 저장소를 설계하고, 

데이터 베이스나 Blob Storge, 제삼자의 서비스를 통합시키고, 로그를 합계하고 데이터 분석, 

사이트 모니터링을 하는 아마 인프라 관련된 일 등 이와 같이 다양한 업무를 맡고 있습니다.

백엔드 개발자가 다루는 자세한 업무내용은 회사마다 다르겠지만,

개발자의 소양을 기르기 위해 계획을 세우고 실행하는 것은 바람직하다고 생각합니다.

그럼 백엔드 개발자가 필수적으로 가져야 되는 개념들에 대해 간단하게알아보겠습니다.

프로그래밍 언어 (programming Language)

첫 번째로 프로그래밍 언어입니다.

백엔드가 하는 일 - baeg-endeuga haneun il

서버용 언어들이 몇 가지 있습니다.

1. JSP와 JavaScript

2. java , 오래되었지만 아직도 많이 쓰인다고 합니다.

3. 고 언어, 파이썬, 루비

이 중에 하나를 우선적으로 골라 깊게 파보는 걸 추천합니다. 

백엔드가 하는 일 - baeg-endeuga haneun il

네트워킹에 대해 공부해야 합니다.

(HTTP, TCP/IP, DNS) 얘네들이 어떻게 동작하는지,

소켓 통신과 관련된 개념들을 숙지해야 합니다.

백엔드가 하는 일 - baeg-endeuga haneun il

데이터 저장소는 관계형 데이터베이스랑 NOSQL을 둘 다 알아야 합니다.

관계형 데이터베이스부터 학습하고, ACID 원칙이랑 키, 인덱스, SQL 문법들 등 그다음에 NoSQL에 투자합니다.

어떻게 스케일링이 가능하고, sharding이 무슨 의미인가, 어떻게 동작하는지.

몇몇의 시니어 개발자들은 다음 레벨로 가기 위해서 캐싱에 대해 배우는 걸 추천합니다.

백엔드가 하는 일 - baeg-endeuga haneun il

제품 몇 개를 골라서(Redis, MemCached)

게네들이 어떤 문제들을 해결하고자 하는지 이해하는 걸 초점에 맞춥니다.

백엔드가 하는 일 - baeg-endeuga haneun il

그다음에 authentication (인증)

어떤 authentication (인증)이 이용 가능한지, 발생한 상황에서 어떤 인증을 선택해서 사용할지

이러한 과정들의 동작을 이해해야 합니다.

분산 시스템(Distributed Systems)

백엔드가 하는 일 - baeg-endeuga haneun il

그다음엔 분산 시스템을 공부합니다.

어떻게 동작하는지 이해해야 합니다. 

CAP theorem, BASE 원칙 등 결국 나중에 분산형 시스템을 직접 만들 확률이 높습니다.