백엔드 큰그림 뿌셔먹기 정리

Jiyul Lee·2021년 4월 23일
1

글의 목적


부족한 전공 지식 간단하게 정리하기 위해 쓰는 저만의 메모입니다.


백엔드란?

백엔드는 서비스에 필요한 모든 데이터를 저장하고 다루는 공간.
즉 IT서비스에 필요한 데이터들을 저장하고 이를 목적에 맞게 가공하는 공간

백엔드 구성에 대해

캐시서버 -> API서버 <-> 데이터베이스 ... 스토리지 서버
백엔드는 여러가지 서버 프로그램이 유기적으로 연결되어 있음.

데이터 베이스
백엔드의 핵심은 데이터이다. 서비스에 필요한 데이터를 저장하는 역할하는 것이 데이터 베이스

데이터베이스도 데이터를 제공하는 서버이다. 즉 하나의 서버 프로그램으로 OS위에서 동작함.

API 서버
기본적으로 데이터베이스는 클라이언트의 접근을 맞음. 대신에 클라이언트에게 대신 데이터를 전달해주는 API 서버에게는 연결해줌.

보통 데이터베이스는 방화벽을 통해 외부 클라이언트의 네트워크 연결을 막음
보안을 위해 데이터 베이스에 접근할 수 있는 것은 API서버 (AWS서버) 서비스 관리자로 한정됨..
이때 보통 IP주소를 허용하는 방식으로 데이터베이스 연결을 관리함.

API서버는 데이터 베이스의 데이터를 가공해 클라이언트에게 전달하는 역활을 함.
API서버는 많은 API요청을 처리할 수 있다.즉 개발자가 다양한 요청을 처리 할 수 있도록 API서버를 개발한다.

파일 스토리지
이미지 등의 파일들을 전문적으로 저장하는 스토리지 서버
스토리지 서버에 파일 저장한 후 URL주소를 통해 다운받는 방식

실제로 데이터 베이스에도 파일을 저장 할 수 있다. 하지만 데이터 베이스는 서비스 필요한 핵심 데이터들 즉 텍스트 위주로 이루어진 내용을 다루는데 최적화되어 있음.

캐시 서버
캐시 서버는 자주 쓰이는 정보를 저장하는 곳.
캐시 서버를 이용하면 API서버와 데이터 베이스가 동작하지 않고 바로 저장된 데이터를 제공 할 수 있다.


클라우드

클라우드란

백엔드 구성인 API서버, 데이터베이스 서버, 스토리지 서버 이들은 전부 서버이고 하나의 프로그램.
즉 컴퓨터 안에서 동작함.
구시절엔 컴퓨터를 별도 준비해야했다. 하지만 이제는 클라우드의 등장으로 클라우드 회사에 직접 관리함.

가상화 기술을 통해 네트워크 접속을 통해 클라우드의 컴퓨터를 사용가능함.

클라우드의 특징

  1. 사용자에겐 간단하게 서버 컴퓨터를 제공해준다.

    온라인으로 컴퓨터를 쉽게 빌리는 것을 서버 호스팅 이라고 함.
    또한 데이터 베이스 같은 특정 프로그램이 미리 설치되어 있는 컴퓨터도 제공함.
    개발자의 프로그램 설치 설정 시간을 단축 제공

  2. 컴퓨터 간의 네트워크 설정을 간단하게 가능
    원래라면 직접 컴퓨터의 네트워크 설정 방화벽 설정등을 해야했다(네트워크 관리자)

  3. 컴퓨터의 성능을 자유롭게 설정 가능
    클라우드에서 자신이 원하는 옵션에 맞게 컴퓨터를 빌릴 수 있다.
    서버는 클라이언트의 요청에 응답해준다. 네트워크 관점에서 클라이언트의 요청량을 트래픽이라고 함.
    트래픽이 많아지면 서버 컴퓨터의 성능이 저하됨. 즉 더많은 컴퓨터 자원(CPU,메모리)가 필요한데
    클라우드는 스케일링 작업을 통해 컴퓨터의 성능을 클라이언트 요청에 따라 업그레이드 디그레이드 해준다.

백엔드 클라우드

최근 IT기업은 클라우드 환경에서 서버를 관리한다.
웹서버, API서버, 스토리지 서버, 로그 서버, 빅데이트 저장소.
IT 기업들이 가장 많이 사용하는 클라우드는 AWS입니다.


백엔드 개발을 위한 보충 지식

서버 스케일링

트래픽이 증가로 인해 응답을 바로 못 해주는 병목 현상일 발생함.
이 문제를 해결하기 위해 스케일업, 스케일 아웃을 통해 컴퓨터 성능을 조절함.
스케일 업 은 해당 컴퓨터의 성능을 증가 시킴 CPU 메모리 성능 개선
스케일 아웃 서버를 여러대로 늘리는 것. 트래픽 분산을 통해 트래픽 정리

클라우드 자동으로 서버를 스케일링 해주는 것을 오토 스케일링 이라고 함.
덕분에 서버를 모니터링 할 수고가 적어졌다.

서버 입장에서 해야할 일을 로드(Load) 라고 함. 스케일 아웃을 통해 분산시키는 과정을 로드밸런싱 이라고 함.

서버 스케일링 작업이외에서 캐쉬서버를 사용해서 서버의 계산작업을 줄여 줄 수도 있다. 서버 부하를 줄이기위한 여러가지 방법이 있으니 나중에 찾아볼 것.

모니터링

컴퓨터 성능을 관찰 하는 것을 의미함.
서버 컴퓨터의 상태를 지속적으로 점검할 수 있는 장치로 모니터링이 필요함
AWS서버, 데이터 베이스 등에 모니터링 도구를 붙여서 사용하.ㅁ

profile
일본에서 성장 중인 자바 엔지니어

0개의 댓글