백엔드 기본소양

Dec 13, 2024 · 1일 전

서버와 클라이언트

인터넷 서비스는 클라이언트와 서버의 상호작용으로 이루어진다. 클라이언트는 서버의 특정 정보를 요청하고 서버가 그 정보를 찾아 클라이언트에게 전해주면 클라이언트는 받은 정보를 화면에 출력해주는 방식이다.

클라이언트 ?

클라이언트란 서버로 요청하는 프로그램을 모두 일컬어 말한다. 우리가 사용하는 웹 브라우저가 대표적인 클라이언트 중 하나다.

서버란 ?

서버란 클라이언트의 요청을 받아 처리하는 주체이다. 클라이언트가 데이터를 요청했다면 데이터를 주고 서버 내에서 처리만 해달라고 하면 해당 요청만 처리해주는 식이다.

데이터베이스란 ?

데이터베이스란 여러 사람이 데이터를 한 군데에 모아놓고 여러 사람이 사용할 목적으로 관리하는 데이터 저장소이다. 흔히 데이터베이스를 말할 때 MySQL, Oracle, PostgreSQL 등을 이야기 하는데, 사실 엄밀히 말해 이것들은 데이터베이스가 아니다. 데이터베이스를 관리하기 위한 시스템의 이름이다. 다만 데이터베이스와 데이터베이스 관리 시스템은 한 쌍으로 움직이므로 둘을 하나처럼 언급할 뿐이다.

RDB란 ?

RDB는 Relational Database의 약자로 관계형 데이터베이스라는 뜻이다. RDB가 아닌 데이터베이스를 NoSQL, 또는 NewSQL로 구분한다. 관계형 데이터베이스는 데이터를 행row과 열column로 이루어진 테이블로 관리하며 기본키primary key를 사용해 각 행을 식별한다. 또한 각 테이블 간에 관계를 지을 수 있다.

SQL이란 ?

SQL은 Structured Query Language의 약자로 말 그대로 쿼리, 즉, 데이터 검색을 하는 언어이다.

NoSQL이란 ?

SQL을 안 쓴다는 의미로 사용되기도 하며 최근에는 Not Only SQL의 의미로 많이 사용한다. RDB는 저장, 질의, 수정, 삭제가 용이하나 성능을 올리는게 쉽지 않다는 단점이 있다. RDB의 이러한 문제들을 해결하기 위해 NoSQL이 등장했다.

아이피와 포트란 ?

아이피는 인터넷에서 컴퓨터 또는 기기들이 서로를 식별하고 통신하기 위한 주소로 쓰인다. 하여 아이피를 알면 서버를 찾을 수 있다. 하지만 서버를 이용하려면 아이피만 알아선 안된다. 포트까지 알아야 한다. 아이피가 서버를 찾기 위한 번호라면 포트는 그 서버에서 운용되고 있는 서비스를 구분하기 위한 번호이다.

배포

배포 방법은 여러 가지이다. 특정 개수의 서버들을 돌아가며 배포하는 롤링 배포, 똑같은 서버 인스턴스를 띄우고 로드밸런서 설정을 바꿔버리는 블루 그린 배포, 전체 서버의 특정 비율만큼 배포해보고 문제없는 경우 점점 배포를 늘려가는 카나리 배포 등이 있다. 개발자는 코드의 개발부터 테스트, 배포, 모니터링의 무한 반복을 한다. 여기서 빌드부터 배포까지의 과정을 자동화할 수 있다. 이것을 두ㅜ고 흔히 CIcontinuous integration/CDcontinuous delivery & continuous deployment 라고 한다. CI는 지속적인 통합이라는 뜻으로 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 저장소에 통합되는 것을 의미한다. CD는 지속적인 배포를 말한다 CI는 저장소에 코드가 반영되는 것을 말하고 CD는 실제 프로덕션 환경까지 변경된 코드가 반영되는 것을 의미한다.