Notice
Recent Posts
Recent Comments
Link
«   2026/04   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

hyo_jung

[Work Book] UMC 서버 1주차 본문

개발/Backend

[Work Book] UMC 서버 1주차

hyo_jung 2021. 10. 2. 23:53

학습 목표

  1. 서버의 정의와 역할을 이해한다.
  2. 서버의 구성요소과 각 요소와의 관계를 이해한다.
  3. 서버가 어떻게 구축되는지 이해한다.
  4. 서버와 관련된 개념들을 이해한다.

 

 

핵심 개념 키워드

서버와 서비스

  • 서버는 클라이언트에게 서비스를 제공하는 존재, 클라이언트의 요청에 의하여 서비스를 한다.

 

클라이언트 - 서버 관계

  • 요청과 응답
  • 클라이언트가 서버에게 요청을 하면 서버는 클라이언트의 요청에 맞는 서비스를 제공한다.

 

서버의 동작 방식과 순서(요청이 들어왔을 때 서비스가 어떻게 처리되는가?)

  1. client의 요청을 server program이 받는다.
  2. server program이 backend language에게 요청을 전달하면 backend language가 요청에 맞는 작업을 수행한다.
  3. backend language가 작업을 수행할 때 필요한 데이터를 DB에서 가져오기 위해 DB로 query를 보낸다.
  4. DB로부터 query에 대한 결과를 받으면 backend language가 server program에게 요청에 대한 결과를 알려준다.
  5. server program이 client에게 요청 결과를 보여준다.

 

서버의 구조

  1. Server Program
    • 웹서버
      • 웹 브라우저와 같은 클라이언트로부터 HTTP 요청을 받아들이고, HTML 문서와 같은 웹 페이지를 반환하는 컴퓨터 프로그램이다. 주로 그림, CSS, 자바스크립트를 포함한 HTML 문서가 클라이언트로 전달된다.
      • 웹 서버 - 위키백과, 우리 모두의 백과사전
    • nginx
    • apache
      • 오픈소스, 크로스 플랫폼 HTTP 웹 서버 프로그램이다.
      • 스레드/프로세스 기반 구조를 가진다.
      • 현재 가장 인기 있는 웹 서버이다.
  2. Back-end Language
    • java - spring, spring boot
      •  Spring
        • 자바 기반의 웹 어플리케이션을 만들 수 있는 프레임워크이다.
        • 자바 객체와 라이브러리들을 관리해주며, 톰캣과 같은 WAS가 내장되어 있어 자바 웹 어플리케이션을 구동할 수 있다.
      • Spring Boot
        • 매우 간단하게 프로젝트를 설정할 수 있게 하여, Spring 개발을 조금 더 쉽게 만들어주는 도구이다.
        • Spring의 많은 부분을 자동화하여 다양한 설정을 직접 할 필요가 없다.
      • 스프링(Spring), 스프링 부트(Spring Boot)란? 개념 정리
      • Spring vs Spring Boot
    • javascript - node.js, express
      •  Node.js
        • 서버 사이드 어플리케이션 개발에 사용되는 소프트웨어 플랫폼이다.
        • 자바스크립트를 활용하며 non-blocking I/O와 단일 스레드 이벤트 루트를 통한 높은 처리 성능을 가지고 있다.
        • 내장 HTTP 서버 라이브러리를 포함하고 있어 웹 서버에서 아파치 등의 별도의 소프트웨어 없이 동작하는 것이 가능하다. 
      • express
        • node.js의 핵심 모듈인 http와 Connect 컴포넌트를 기반으로 하는 웹 프레임워크이다.
        • 개발자들이 특정 프로젝트에 필요한 라이브러리를 자유롭게 선택할 수 있다.
      • 자바스크립트 - 위키백과, 우리 모두의 백과사전
      • Node.js - 위키백과, 우리 모두의 백과사전
      • Node.js, Express 개념정리하기
    • python - django, flask
      • django
        • 파이썬으로 만들어진 무료 오픈소스 웹 어플리케이션 프레임워크이다.
        • MVC 패턴을 따르고 있다.
      • flask
        • django보다 가벼운 파이썬 웹 프레임워크이다.
        • 특별한 도구나 라이브러리가 필요없다.
      • Django 소개 - Web 개발 학습하기 | MDN
  3. DB, DBMS
    • SQL은 정해진 데이터 스키마에 따라 테이블에 저장되므로 스키마를 따르지 않으면 데이터 추가가 불가능하다.
    • NoSQL에서는 스키마와 관계가 없기 때문에 다른 구조의 데이터를 같은 컬렉션에 추가하는 것이 가능하다.

 

APM

  • 웹 서버를 구성하는 주요 도구인 Apache, PHP, MySQL을 묶어서 이르는 말이다.

 

비트나미

  • 가상 어플라이언스 및 웹 애플리케이션, 개발 스택용 소프트웨어 패키지 및 설치 라이브러리이다.
  • 어플리케이션 솔루션들을 패키지로 만들어 사용자가 어플리케이션을 쉽게 설치하도록 도와준다.

 

로컬호스트(localhost)

  • 컴퓨터 네트워크에서 사용하는 루프백 호스트명으로, 자신의 컴퓨터를 의미한다.
  • 로컬 컴퓨터를 원격 컴퓨터인 것처럼 통신할 수 있다.

 

가상머신(Virtual Machine)

  • Virtual Box
    • 컴퓨터 가상화 프로그램이다.
    • 1개 이상의 운영체제를 동시에 실행시킬 수 있다.
    • 대부분의 운영체제를 구동시킬 수 있다.
  • VMware
    • 컴퓨터 가상화 프로그램이다.

 

Linux, Ubuntu

  • Linux
    • 무료이며 오픈소스이다.
    • UNIX기반 OS이다.
  • Ubuntu
    • Linux 배포판 중 하나로 다른 배포판에 비해 편리한 설치, 유지보수 절차, 사용자 친화적인 사용법과 인터페이스가 특징이다.

 

리눅스 명령어

 

리눅스 디렉토리 구조

 

vi(vim) 편집기 사용법

 

 

추가 개념 키워드

Web Server(WS)와 Web Application Server(WAS)

 

운영체제(OS)

  • 운영체제
  • Window
    • 컴퓨터 역사상 가장 대중적으로 널리 알려지고, 가장 많이 사용되고 있는 운영체제이다.
    • Microsoft에서 개발한 컴퓨터 운영체제이다.
  • MacOS
    • 애플이 개발한 유닉스 운영체제로 현존하는 유일한 PC용 유닉스 운영체제이다.

 

CLI와 GUI

 

HTTP

 

패키지 설치와 컴파일 설치

  • 패키지 매니저
  • 컴파일 설치
    • 소스를 다운로드받고 컴파일하여 설치하는 방법으로 버전, 빌드 옵션 등을 직접 설정할 수 있다.

 

'개발 > Backend' 카테고리의 다른 글

[Work Book] UMC 서버 5주차  (0) 2021.11.07
[Work Book] UMC 서버 4주차  (0) 2021.11.04
[Work Book] UMC 서버 3주차  (0) 2021.10.18
[Work Book] UMC 서버 2주차  (0) 2021.10.15
Quick DBD 사용 후기  (0) 2021.10.10