[코드스테이츠] S4.Unit12 회고

JinYoung Choi·2023년 6월 5일
0
post-thumbnail

세션 4의 마지막 유닛! 솔로 프로젝트이다.

이 게시글엔 개념적인 요소만 정리하고 직접 만든 Todo CRUD 게시판은 게시글을 따로 남기려고 한다!

배운 것들을 적용해서 만들었는데 시간은 2시간 정도 소요된 것 같다.

어렵지 않았다! 프리 프로젝트 기다려라!

서버와 클라이언트

서버와 클라이언트는 컴퓨터 네트워크에서 중요한 개념.

서버는 네트워크를 통해 서비스를 제공하는 컴퓨터이다.
일반적으로 클라이언트의 요청에 응답하여 데이터나 리소스를 제공하고 처리한다.
서버는 데이터를 저장하고 관리하며, 클라이언트의 요청에 따라 작업을 수행한다.
예를 들어, 웹 서버는 웹 페이지나 파일을 저장하고 클라이언트의 웹 브라우저에서 요청이 오면 해당 데이터를 전송하여 웹 페이지를 제공한다.

클라이언트는 서버에게 서비스를 요청하는 컴퓨터 또는 디바이스.
일반적으로 사용자가 컴퓨터, 스마트폰, 태블릿 등을 통해 서버에 접속하여 웹 페이지를 요청하거나 데이터를 송수신한다.
클라이언트는 요청을 보내고 서버로부터 응답을 받아 화면에 표시하거나 필요한 작업을 수행한다.

서버와 클라이언트는 네트워크 통신을 통해 상호작용하며 정보를 주고받는다.
클라이언트는 서버에 요청을 보내고, 서버는 해당 요청에 대한 응답을 클라이언트에게 전송한다.
이렇게 서버와 클라이언트가 함께 동작하여 웹 사이트, 애플리케이션, 게임 등 다양한 서비스를 제공하고 이용할 수 있다.

서버의 종류

  1. 웹 서버: 웹 페이지, 이미지, 파일 등을 클라이언트에게 제공하는 서버입니다.
    대표적으로 Apache HTTP Server, Nginx, Microsoft IIS 등이 있다.

  2. 데이터베이스 서버: 데이터베이스 관리 시스템(DBMS)을 실행하여 데이터의 저장, 조회, 수정, 삭제 등을 처리하는 서버이다.
    MySQL, PostgreSQL, Oracle Database, Microsoft SQL Server 등이 대표적인 데이터베이스 서버이다.

  3. 파일 서버: 파일을 저장하고 관리하는 서버로, 클라이언트가 파일을 업로드하거나 다운로드할 수 있다.
    FTP 서버, NFS(Network File System) 등이 이에 해당한다.

  4. 메일 서버: 전자 메일을 주고받기 위한 서버입니다. 메일 전송 및 수신, 저장, 필터링 등의 기능을 제공한다.
    Exim, Sendmail, Microsoft Exchange Server 등이 대표적인 메일 서버.

  5. 애플리케이션 서버: 특정 애플리케이션의 실행 환경을 제공하는 서버.
    애플리케이션의 실행, 관리, 확장 등을 담당합니다. 예를 들어, Java 애플리케이션 서버로는 Apache Tomcat, JBoss 등이 있다.

  6. 파일 공유 서버: 파일 공유를 위한 서버로, 클라이언트 간에 파일 및 폴더를 공유하고 접근할 수 있는 환경을 제공한다.
    Windows 파일 공유 서버(SMB/CIFS)나 Linux의 NFS 등이 이에 해당.

서버와 클라이언트의 통신

서버와 클라이언트는 네트워크를 통해 통신하는 두 개체.
클라이언트는 서버에게 요청을 보내고, 서버는 해당 요청에 대한 응답을 제공한다.

통신 과정은 다음과 같다.
클라이언트가 서버에게 요청을 보내기 위해 먼저 서버의 주소를 알아야 한다.
일반적으로 클라이언트는 서버의 IP 주소나 도메인 이름을 사용하여 접속한다.

클라이언트는 요청을 보내기 위해 특정 프로토콜을 사용한다.
예를 들어, 웹 브라우저 클라이언트는 HTTP 프로토콜을 사용하여 웹 서버에게 요청을 보낸다.
요청은 일반적으로 HTTP 메서드(GET, POST, PUT, DELETE 등)와 요청 URI(Uniform Resource Identifier)로 구성된다. 요청에는 필요한 데이터나 헤더 등이 포함될 수 있다.

서버는 클라이언트의 요청을 수신하고, 해당 요청에 대한 처리를 수행한다.
처리 결과로 응답을 생성하여 클라이언트에게 전송합니다. 응답은 상태 코드, 헤더 정보, 본문 데이터 등으로 구성된다.
예를 들어, 웹 서버는 HTTP 상태 코드(200 OK, 404 Not Found 등)와 HTML 문서를 포함한 응답을 생성한다.

클라이언트는 서버로부터 받은 응답을 해석하고, 필요한 경우 화면에 표시하거나 데이터를 처리합니다. 웹 브라우저 클라이언트는 HTML 문서를 해석하여 웹 페이지를 렌더링하고, 사용자에게 보여준다.

이처럼 서버와 클라이언트는 요청과 응답을 주고받으며 상호작용한다.
이를 통해 클라이언트는 서버에서 제공하는 서비스나 리소스에 접근하고, 서버는 클라이언트의 요청을 처리하여 필요한 정보를 전달한다.
이러한 통신 과정을 통해 웹 서비스, 애플리케이션, 데이터베이스 등 다양한 서비스를 제공할 수 있다.

서버 구성과 서버 환경 설정

서비스를 사용자에게 제공하기 위해서는 서버를 구성하고 해당 서버에 목적에 맞는 환경 설정을 마무리해야 한다.
이를 통해 개발자는 구성된 서버에 자신이 개발한 내용을 적용할 수 있게 된다. 개발자의 입장에서 이러한 과정을 '배포'라고 한다.
결국, 개발자가 서비스를 배포하기 위해서는 서버 구성과 서버 환경 설정이 사전에 이루어져야 한다.

서버 구성은 서버 컴퓨터를 구성하는 관점에서 이루어지는 작업.
서버 컴퓨터의 종류, 대수, 네트워크 정책, 서버 수용 인원 등을 고려하여 구성한다.

서버 환경 설정은 구성된 특정 컴퓨터 서버가 서비스를 제공할 수 있도록 환경을 설정하는 과정.
웹 서버나 웹 애플리케이션 서버, 데이터베이스 서버 등의 서버 환경을 구성하고 설정한다.
예를 들어, 웹 서버의 경우 Apache, IIS, NginX와 같은 소프트웨어를 사용하여 웹 서비스를 가능케 하는 환경 설정을 진행한다.

따라서, 서버 구성 작업이 완료되면 해당 서버에 목적에 맞는 서버 환경 설정을 진행해야 한다.
이를 통해 개발자는 자신이 개발한 제품을 개발, 운영 서버에 배포하여 웹 서비스를 준비할 수 있다.
그 후 클라이언트(고객)는 해당 서버를 통해 우리 제품을 이용할 수 있게 된다.

profile
백엔드 취준생

0개의 댓글