참고
백엔드 개발자(Backend Developer)가 되기 위해 필요한 지식들 - 초급(Basic)
백엔드 개발자(Backend Dveloper)가 되기위해 필요한 지식들
데이터는 네트워크를 통해서 교환된다
1. API 개발 (REST API)Permalink
백엔드 개발자의 시작은 바로 프론트엔드와 연동하기 위한 API 개발이다. 그래서 백엔드 개발자가 되기로 마음을 먹었다면 ‘원하는 기능의 API를 만들어야지’ 라고 생각 하면된다. 그중에서도 REST API를 시작하면 좋은 이유는 오랫동안 API개발의 표준 처럼 사용 되어 왔고 서버개발의 전반적인 흐름을 이해 하는데 도움이 되기 때문이다. 최근에는 GraphQL을 도입하는 회사들도 많아지고 개발 생산성도 좋은 편이지만 아직 까지는 좋은 백엔드 개발자가 되기 위해서는 REST API를 먼저 익히고 학습 하는게 좋다고 생각한다.
2서버 기본 지식 (Server)Permalink
앞서 선정한 개발 언어와 웹 프레임워크를 통해 API 개발에 성공 했다면 다음에 필요한 내용이 개발한 API를 어떻게 서버에 올려서 API 서비스를 할까 일것이다. 요즘은 기존의 서버의 개념과 다른 Serverless 가 유행하고 실제 코드만 있으면 바로 서비스 할수 있을 정도로 만들어주는 서비스 들이 많이 있지만 백엔드 개발자가 되기로 마음을 먹었다면 일단 AWS의 EC2 Instance 와 친해져야 한다. 그리고 EC2 Instance에 올라가는 이미지들이 주로 Linux 기반의 OS라서 Linux 주요 커맨드 들도 잘 알고 있으면 좋다. AWS말고 GCP (Google Cloud Platform) 도 있지만 개인적으로 AWS에 익숙하다보니 앞으로 이야기들은 대부분 AWS 관리형 서비스 (AWS Managed Service) 중심으로 진행 할 예정이다. AWS EC2 Instance를 이해 했다면 지금은 조금 이해하기 어려운 개념 일 수도 있지만 AWS는 AWS Elastic Beanstalk과 같은 관리형 플랫폼 서비스를 이해 하면 좋다. PaaS 라고도 볼 수 있는데 원하는 개발 결과물 코드만 있으면 기본 인프라 구성, 배포, 애플리케이션 버전 제어, 자동 확장 기능까지 전체 시스템을 구축 해준다. 간단하더라도 웹 프레임워크를 통해 API 개발을 성공 했다면 AWS Elastic Beanstalk 환경을 구성해서 배포 까지 해볼 것을 추천한다. Load Balancer, Auto Scaling, SSL 적용, 네트워크 구성 등 AWS Elastic Beanstalk
3**. 네트워크 기본 지식 (Network)Permalink**
웹 프레임워크를 통해 API 개발을 서버 또는 위에서 언급한 AWS Elastic Beanstalk 위애 올렸다면 그 뒤로 필요한 지식은 네트워크에 대한 기본 지식이다. 일단 REST API의 기반이 되는 HTTP 부터 원하는 Domain 에 연결하여 서비스 하기 위한 DNS, EC2 에 접속하기 위한 SSH 연결 그리고 지금 자세히 다루지는 않겠지만 서버가 올라가기 위한 기본 네트워크 구성 (VPC, Routing Table, Subnet)등 서버 동작 전체를 잘 이해 하기 위해서는 네트워크에 대한 기본 지식이 필요하다.
4**. 데이터베이스 (Database)Permalink**
개인적으로 백엔드 개발자로서 가장 중요한 분야는 바로 데이터베이스라고 생각한다. API 개발이 백엔드 개발 중에서 프론트엔드와 연동하는 가장 앞단에 있다면 데이터베이스의 경우 가장 뒷단에서 개발하고자 하는 서비스를 위해 필요한 데이터를 체계적으로 저장하는 데이터 저장소의 역할을 한다. 데이터베이스의 종류는 MySQL와 같은 관계형 데이터베이스 (Relational Database : RDB) 에서 부터 MongoDB, Redis, ElasticSearch 등 NoSQL 까지 다양한 종류가 있는데 백엔드 개발자를 시작 한다면 개인적으로 MySQL와 같은 관계형 데이터베이스 부터 시작 하는 것을 추천한다.
RDB 장점
- 데이터를 정형화하고 모델링하는 연습을 할수 있고
- 다양한 데이터 베이스가 쓰이는 있지만 여전히 현업에서 가장 우선적으로 고려되는 저장소 있고
- 데이터를 다룰수 있는 SQL 쿼리의 개념을 잘 이해 할수 있음
5.분산 스토리지 (Distributed Storage)
바로 분산 스토리지 (Distributed Storage)이다. 분산 스토리지라는 단어가 생소 할수 있는데 클라우드 기반의 파일 저장소 라고 생각하면 된다. 이미 친숙한 AWS S3 (Simple Storage Service) 가 바로 분산 스토리지 중의 하나이다.
6****. 기본적인 프론트엔드 기술 (Basic Frontend Skill)****
백엔드 개발자도 프론트엔드 개발을 할줄 알아야 할까? 정답은 ‘백엔드 개발자도 기본적인 프론트엔드 기술을 알아야 한다’이다. 예전에만 해도 백엔드 개발자, 프론트엔드 개발자가 명확히 나뉘어 있지 않고 웹 프로젝트 자체가 뷰를 포함한 MVC 형태로 구현되는 경우가 많았다. 그리고 최근에는 프론트엔드 개발과 백엔드 API 개발이 명확하게 나뉘는 형태의 아키텍처가 주류를 이루고 있긴 하지만 내부 백오피스, 관리페이지 (Admin) 등을 개발 할 때는 여전히 MVC 형태로 개발 되는 경우도 볼수 있다. 그러다 보니 HTML/CSS, JavaScript 등 기본적인 프론트엔드 기술은 알아두는 것이 필요하다.
'취준 note 2023 > 네트워크,전산학' 카테고리의 다른 글
네트워크 (1) | 2023.09.21 |
---|---|
네트워크 -통신프로토콜 (0) | 2023.08.20 |
자바의신vol2 - 이제저는 더 뭘 공부해야하는거죠? (0) | 2022.12.26 |