본문 바로가기

About my life/Development Studies

[Backend] 백엔드 개발자 직무 이해

728x90
반응형

백엔드 개발자가 하는 일

  • 웹 어플리케이션 개발
  • 데이터 분석을 위한 엔지니어링
  • 분산파일시스템, DBMS 개발
  • Docker Container 기반의 플랫폼 서비스 구현
  • 클라우드 콘솔 및 AWS 연동 시스템 개발
  • 대용량 Data 관리 및 다양한 서비스 API 개발
  • 서비스 관리 및 판매, 빌링 시스템 개발
  • 마이크로 서비스 아키텍처 기반의 솔루션 및 연동 API 개발

백엔드 개발자의  업무

대용량 데이터, 트래픽을 고려한 서버 설계 및 구현

  • 아키텍처 , 서버최적화 , API , DB 등등

빌드/배포 파이프라인 자동화 (CI/CD)

  • AWS 및 kubernetes 기반의 CI/CD 작업

웹 프레임 워크 및 내부 관리 툴 개발

  • 인프라 자동화 및 퍼포먼스 개선
  • 사내 업무 자동화

백엔드 서버 개발 및 유지 보수

  • Kotlin Spring 기반 Restful API 백엔드 서버 개발 및 유지 보수
  • 클라우드 환경(GCP, AWS, Azure)에서의 서비스 설계 및 개발
  • Microservice 개발 및 운영과 모니터링
  • 최적화 및 모니터링, 트러블슈팅 등 개선 업무
  • LMS 서비스, 크롤링 중심의 웹 서비스 설계 및 개발
  • NewRelic, CloudWatch 등을 통해 시스템에서 발생하는 모든 이슈 사항에 대해서 추적하고 해결
  • Django Admin 개선 및 신규 기능 개발
  • NodeJS 기반으로 백엔드 비지니스 로직 개발/배포
  • 데이터 성격에 맞게 PostgreSQL과 Redis에 데이터를 적재하고 이용하는 코드 작성

서버 개발, 서버 인프라 관리

  • 유저 오피스, 백 오피스 서버 개발
  • 데이터베이스 서버 개발 및 운영 (MongoDB, MySQL)
  • 모바일 서비스를 위한 웹 서버 개발 및 운영 (CRUD)
  • 웹/앱 서비스 서버 개발 (AWS / Node.js)
  • 클라우드 인프라 및 서버 구성
  • 대규모 서비스의 서버 운영 및 개발
  • 푸시 ,WEB HOOK, 공지 팝업등의 액션을 위한 서버 및 워커 개발

데이터 베이스 설계 및 관리

  • DB 고도화를 위한 시스템 구축 및 운영
  • 서비스 DB 설계 및 개발
  • MySQL을 활용한 DB 설계
  • 데이터 마이그레이션
  • 빠르고 안정적인 서비스 제공을 위한 효율적인 DB modeling 수행 , Slow query 모니터링 및 개선

신규 서비스 개발 기획

  • SaaS 기반 신규 서비스 설계 및 개발

인프라, 아키텍처 설계

  • AWS 아키텍처 설계
  • AWS 인프라 기획 및 운영
  • 플랫폼 서비스 인프라 아키텍처 고도화
  • 서비스 및 인프라의 안정성, 확장성 효율성을 개선
  • 위 작업들은 항상 특정 상황에 맞는 것이 전제조건

효율적인 API 설계

  • Spring boot , Python-Django를 사용한 API 개발
  • REST API 개발 및 유지 보수
  • API 서버 성능 개선 (로그 기반 쿼리 최적화, 코드 리펙토링, 아키텍처 개선 등)
  • 다양한 플랫폼과의 연동 시스템 개발 및 운영
  • NoCode툴을 이용한 어드민 구성과 API 연동
  • Server Rendering , Client Rendering을 위한 API 설계 및 개발
  • 다양한 Cloud Service API 활용 서비스 개발
  • MSA 기반의 Back-end RESTful API 개발

기술공유

  • 매일 스크럼 회의를 통해 개발 이슈사항이나 진행사항 공유
  • 회의를 거쳐 스케줄 관리와 기술 부분을 공유
  • 매주 스프린트 단위로 task management

협업

  • 기술 연구소, 서비스 기획, 개발팀, 유관부서와 협업하여 비지니스 문제 해결
  • GITHUB를 통해 동료들과 수평적으로 Pul Request 에 대해 적극적인 피드백 및 개선
  • 지속적인 리팩토링

백엔드 개발 지원 도구

  • JIRA , Redmine , Gitlab Issue _ 이슈 관리 도구
  • Confluence , NAS _ 문서 관리 도구
  • Git , SVN _ 협상 관리 도구
  • Slack , Mattermost _ 소통 채널

백엔드 주 프로그래밍 언어

PHP

  • 서버 측 스크립트 언어이자 시스템의 기반이 되는 언어
  • 브라우저가 서버에 웹 페이지를 요청하면 서버에서 수신한 HTML 문서를 해석하고, 화면에 띄울 때 필요한 게 JavaScript 였다면 PHP는 서버에 있는 데이터가 사용자와 상호작용하는 웹 어플리케이션으로 진화하여 브라우저로 넘어가도록 처리하는 데 필요함
  • PHP로 작성된 코드를 HTML 코드 안에 추가하면 웹 서버는 해당 코드를 해석하여 자동으로 HTML 문서를 생성하기에 동적으로 빠르게 HTML 문서를 만들 수 있음
  • HTML을 프로그래밍적으로 생성해 주고 ,데이터베이스와 상호작용 하면서 데이터를 저장하고, 표현하는 서버와 브라우저 간의 다리 역할을 한다고 볼 수도 있음

Node.js

  • 크로스 플랫폼의 오픈소스 런타임 환경으로써 , 브라우저의 외부에서 자바스크립트 코드를 실행할 수 있게 해줌
  • 노드는 내장 HTTP 서버 라이브러리를 포함하고 있어 웹 서버에서 별도의 소프트웨어 없이 동작하는 것이 가능 
  • 반응속도 ↑ , 확장성 ↑ 많은 양의 요청도 처리 가능해서 웹서버의 동작을 더욱 효과적으로 통제할 수 있음
  • 언어가 아니라 소프트웨어 플랫폼이므로 그 자체로는 아무것도 하지 못하고 서버를 직접 구현해야 함

JavaScript

  • 웹, 모바일 앱, Node.js , desktop ,machine learning 등 다양하게 활용되며 크로스 플랫폼에서 중요한 역할을 함

C++

  • C언의 문법과 기능을 모두 사용할 수 있는 C언어 기반 프로그래밍 언어
  • 객체지향은 물론 절차지향도 가능한 멀티 패러다임 언어
  • 백엔드 언어로도 많은 인기를 얻고 있다고 함

Java

  • 객체지향 프로그래밍 언어인 자바의 가장 큰 특징은 플랫폼 종속성이 낮다는 것
  • 운영체제에 Java Virtual Machine을 설치하면 Java 기반 프로그램은 어떤 환경에서도 똑같이 동작함
  • 특정 플랫폼에 의존하지 않는 독립성을 갖추고 있어 , 생산성과 기기 호환성이 높고 소스코드 가독성이 좋음

Python

  • 딥러닝, 데이터 사이언스 , 인공지능 분야에 많이 사용됨
  • 언어 자체가 64bit를 넘어가고 허수를 기본 지원하며 소수점과 유리수를 정밀하게 다룰 수 있는 등 과학과 공학 분야에서 필요한 여러 기능을 기본적으로 제공함

백엔드 개발자 신입, 경력 채용 비중

 

① 5년차 이상

② 4년차

③ 3년차

④ 2년차

⑤ 1년차, 신입


백엔드 개발자 기본

  • API 개발
  • 개발 언어와 웹 프레임워크
  • 서버 기본 지식
  • 네트워크 기본 지식
  • 데이터베이스
  • 분산 스토리지

백엔드 신입 채용공고에서 요구하는 역량

서버 개발 능력

  • Spring , Rails, Node.js, Django , Flask 중 하나 이상을 활용한 서버 개발 경험
  • linux 서버 개발 및 운영 경험
  • 하나 이상의 웹 서버 구축 프로젝트를 개발한 경험
  • 백엔드 서버 운영 관심이나 흥미
  • Restful / GraphQL API 서버 설계 및 개발 경험

개발 능력

  • Django/Express 등의 웹 프레임워크 활용 경험
  • JPA 및 Mybatis 개발 경험
  • Git/Github Flow에 대한 이해 및 적용 경험
  • Mysql 또는 Postgresql 사용 경험
  • AWS 환경에서의 개발 및 운영 경험
  • Java, Spring Boot 사용경험 및 이해

DB 설계 능력, SQL 사용 능력

  • MySQL, MariaDB, Oracle 등 관계형 DBMS를 사용해본 경험
  • RDBMS로 시스템 설계하고 서비스를 운영해본 경험
  • Database 성능 튜닝 및 Query 튜닝 능력
  • 이 기종 Database 마이그레이션 경험
  • RDBMS/NoSQL 기본을 이해하고, 데이터를 모델링하고 애플리케이션과 연동해서 개발할 수 있는 능력

프론트엔드 개발 경험

  • 웹 프론트엔드 개발 경험 (Vue.js, php - Laravel 등)

API 개발 능력

  • REST API에 대한 설계 및 개발 경험
  • RESTful API 설계 및 구현 능력
  • API / DB 설계 능력
  • 사용자 , 사업자 , 관리자를 위한 플랫폼의 API 개발 및 운영할 수 있는 능력
  • 외부 Library , API 사용 능력

Git hub 사용 능력

  • Github 사용 경험
  • Git을 활용한 버전관리 능력
  • GIt을 이용한 협업 경험
  • Git을 통한 프로젝트 관리경험
  • GitLab, GitHub 등의 이슈 트래커 기반 프로젝트 개발 경험

개발에 대한 이해

  • 프론트엔드 개발에 대한 이해
  • 웹 서비스 아키텍처에 대한 전반적인 이해
  • 데이터베이스 설계에 대한 이해
  • 데이터 모델링 지식
  • AWS 등 클라우드 서비스에 대한 이해
  • API의 동작 방식에 대한 이해
  • MSA에 대한 이해
  • .Net Framwork에 대한 이해
  • 기본적인 프론트엔드 기술
  • 프로그램이 언어에 대한 이해
  • 기본 CS 지식 ( OS / Network / DB / Data Structue / Algorithm / Operating System)
  • Unix / Linux 시스템의 이해
  • Docker에 대한 관심
  • 성능 최적화와 운영 자동화에 대한 이해
  • 개발 문서 영어 독해 능력

 


Reference

백엔드 개발자를 꿈꾸는 학생개발자에게 _ NAVER D2

백엔드개발 직무소개 _ Gabia.Careeres

[IT 취업 가이드] 프론트엔드와 백엔드 차이점 _ JOBKOERA

[채용공고 톺아보기] #7 백엔드 개발에 필요한 역량은 _ brunchstory

728x90
반응형

'About my life > Development Studies' 카테고리의 다른 글

[Error] Python  (0) 2023.06.14
[Backend] 기업 분석 연습  (0) 2023.06.08
[Backend] 백엔드 개발자 전망  (5) 2023.06.07
[SW] 소프트웨어 산업  (0) 2023.06.07
What is git  (0) 2023.02.18