Posis

백엔드 개발자가 알아두면 좋은 지식 본문

Concept

백엔드 개발자가 알아두면 좋은 지식

CooNiHong 2023. 6. 11. 01:02

Client와 Server

웹 서비스에는 Client와 Server가 관계를 맺습니다. Client는 Server에게 다양한 요청하는 것을 말하고 Server는 Client가 요청한 내용을 처리해 주는 것을 말합니다.

Client

Client는 서버로 요청하는 프로그램을 모두 일컬어 말합니다. 대표적으로 사용하는 프로그램인 웹 브라우저가 바로 Client 중 하나입니다. 

네이버에서 검색을 하면 Client는 Serve에게 '티스토리'를 검색하면 관련된 글들을 검색해서 보여달라고 요청합니다. 이러한 것이 Client를 말합니다.

Server

Server는 Client의 요청을 받아서 처리하는 주체입니다. 검색, 주문, 로그인, 회원가입 등등 다양한 서비스를 직접적으로 해결해 주는 것을 Server라고 말합니다. 즉 Client가 원하는 데이터 및 서비스를 처리해 주는 담당입니다.

Client에서 '티스토리'와 관련된 것을 검색하는 것을 요청했고 Server에서 그것을 받아서 처리한 후에 데이터를 Client로 보내서 새로운 화면을 보여준 것이죠.

Database

Database는 간단하게 말해 데이터를 한 군데 모아놓고 여러 사람이 사용할 목적으로 관리하는 데이터 저장소를 말합니다. Database에는 RDB(Relational Database)과 NoSQL(Not Only SQL) 등등 여러 가지가 존재합니다. 지금 쓰고 있는 글을 저장하거나 회원들의 정보를 저장하기 위해서 Database를 사용합니다.

RDB

RDB는 Relational에서 볼 수 있듯이 관계형 데이터베이스를 말합니다. RDB를 이용한 Database System으로는 Oracle, MySql, PostgreSQL 등등 수많은 시스템이 존재합니다. 관계형 데이터베이스는 행과 열로 이루어진 테이블로 관리하며 기본 키(Primary Key)를 사용해 각 행을 식별합니다. 또한 각 테이블 간에 관계를 지을 수 있습니다.

NoSQL

NoSQL은 비 Not Only SQL로서 비관계형 데이터베이스를 말합니다. NoSQL을 이용한 Database System으로는 MongoDB, Redis, Hbase 등등 수많은 시스템이 존재합니다. RDB는 데이터 저장, 질의, 수정, 삭제가 용이하지만 반면에 성능을 올리는 게 쉽지 않습니다. NoSQL은 데이터 일관성이 항상 보장되지 않거나 데이터 업데이트 중 장애가 발생하면 데이터 손실이 발생할 수 있는 특징들이 있습니다.

FrameWork와 Library

FrameWork와 Library는 비슷하지만 다른 개념입니다. FrameWork는 소프트웨어 개발을 수월하게 하기 위한 개발 환경을 말합니다. 개발자에게 프로그래밍을 수월하게 하기 위해 틀을 제공하는 것을 말하고 Library는 애플리케이션 개발에 필요한 기능인 클래스, 함수 등을 모아놓은 코드의 모음을 말합니다.

FrameWork

FrameWork는 일하는 틀을 제공하는 것이므로 정해진 틀에서 개발을 해야 한다는 단점이 존재하지만 그만큼 개발 효율을 괸장히 높힌다는 장점이 있습니다. FrameWork에는 대표적으로 JavaScript에 React, Java에 Spring 등이 존재합니다. 

Library

Library는 개발에 필요한 기능등을 모아놓은 코드의 모음으로 간단하게 도구들을 모아놓은 공구함이라고 생각할 수 있습니다. 개발자가 소프트웨어를 만들 때 필요에 따라 원하는 기능을 구현하기 위해 원하는 기능들을 가져다 사용할 수 있는 장점이 존재합니다. Java에서 수학과 관련된 Math, 날짜와 관련된 Date와 같은 것들을 Library라고 볼 수 있습니다.

728x90

'Concept' 카테고리의 다른 글

웹 개발이란  (0) 2023.01.03
http와 WebSockets의 차이점  (2) 2021.11.03