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

    2021. 2. 20.

    by. 공상개발

    * 주관적인 글입니다. *

     

    안녕하세요.

    공상 개발입니다.

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

     

     

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

     

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

     

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

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

     

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

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

     

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

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

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

     

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

     

     

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

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

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

     

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

     

     

     

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

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

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

     

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

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

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

     

    프로그래밍 언어 (programming Language)

     

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

     

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

    1. JSP와 JavaScript

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

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

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

     

    네트워킹(Network)

     

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

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

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

     

    데이터 저장소(Data Storage)

     

     

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

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

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

     

    캐싱(Caching)

     

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

     

     

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

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

     

    인증(Authentication)

     

     

    그다음에 authentication (인증)

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

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

     

    분산 시스템(Distributed Systems)

     

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

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

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

     

    댓글