UMC Server - 1주차 워크북

써니·2021년 10월 1일
0

UMC-Server

목록 보기
1/6
post-thumbnail

1. 자기소개(Ice Breaking)

닉네임: 써니

2. 학습 목표

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

3. 실습 (비공개)

4. 개념 키워드

- 핵심 개념 키워드

  • 서버와 서비스
    - 서버 : 서비스를 주는 객체 (provider)
    - 서비스 : 서버가 클라이언트에게 제공하는 정보/기능

  • 클라이언트 - 서버 관계
    - 서버: 요청을 받으면 처리하여 응답을 제공

    • 클라이언트: 서버에 요청을 보내서 서비스를 응답으로 받음
  • 서버의 동작 방식과 순서(요청이 들어왔을 때 서비스가 어떻게 처리되는가?)

    1. Client : login.java 파일로 요청
    2. Server Program에서 java를 해석하지 못하는 문제 발생시 Backend Language로 넘김
    3. Back Language: 받은 java 프로그램을 해석, 해석한 회원 정보가 있는 지 파악위해 DB에 query던짐
    4. DB에서 query에 대한 답을 Backend Language로 전달하면 Server Program에 또 보내서 Client에게 전달
  • 서버의 구조

    • Server Program --> '파이썬 웹 배포로 보는 서버 구조'
      • 웹서버 :
        • 하드웨어 측면: web server의 소프트웨어와 website의 컴포넌트(HTML, CSS stylesheets, JavaScript files)를 저장하는 컴퓨터
        • 소프트웨어 측면 : 웹 사용자가 호스트 파일들에 접근하는 방식 관리 (HTTP 서버 국한)

          참고링크
      • nginx : 프로그램의 흐름이 이벤트에 의해 결정되는 event driven 방식의 서버 (비동기 이벤트 기반)
      • apache :요청 하나 당 프로세스/스레드가 처리하는 구조의 서버
    • Back-end Language
      • java - spring, spring boot
      • javascript - node.js, express
      • python - django, flask
    • DB, DBMS --> Mysql vs MongoDB 정리 Velog
      • SQL
        • Mysql
        • mssql
        • ORACLE
      • NoSQL
        • MongoDB
        • redis
        • Cassandra
  • APM
    : Apache 웹서버 + PHP 언어 + MySQL 데이터 베이스

  • 비트나미
    : 어플리케이션 솔루션들을 패키지로 만들어 이용자가 어플리케이션을 쉽게 설치하게 해줌
    (WAMP : WindowOS Apache, MySQL, PHP, MAMP : MacOS Apache, MySQL, PHP, MAMP)

  • 로컬호스트(localhost)
    : 서버의 기능을 제공하는 로컬의 머신

  • 가상머신(Virtual Machine)
    :물리적으로 존재하는 컴퓨터가 만들어내는 가상의 컴퓨터
    (프로세스 가상 머신과 시스템 가상 머신이 있다)
    - Virtual Box
    - VMware

  • Linux, Ubuntu
    : Unix 기반으로 개발된 Linux 운영체제의 여러 배포판 중, 데비안에서 파생된 Ubuntu

  • 리눅스 명령어
    - 기본 명령어/자주쓰는 명령어

  • 리눅스 디렉토리 구조
    - 기본 디렉토리

  • vi(vim) 편집기 사용법
    - 사용법

- 추가 개념 키워드

  • Web Server(WS)와 Web Application Server(WAS)
    - 정리한 벨로그 (중간 부분) 링크
  • 운영체제(OS)
    • 운영체제: 응용프로그램 실행, 시스템의 하드웨어, 소프트웨어의 자원 운영/관리
      --> 생산성 + 사용성 향상
    • Window, MacOS
      비교링크
  • CLI와 GUI
    • 인터페이스 : 시스템/장치 간 정보 교환 경계면 or 사용자의 기기 사용을 도와줌
    • GUI : graphical user interface
    • CLI : command line interface
  • HTTP
    - 벨로그 링크
  • 패키지 설치와 컴파일 설치
    • 패키지 매니저
    • 컴파일 설치
      --> 링크

논의해보면 좋은 것들

Warming Up

  • 소통과 개발의 중요성
  • 스스로를 소통이 잘되는 사람이라고 생각하는가? 이유는?
  • 추가로 함께 일하고 싶은 개발자/사람의 특성은 무엇이 있을까요?

Server

  • 세상에는 어떤 종류의 서버스들이 있고 거기에 서버란 어떠한 것을 제공해줄까요?
  • 본인이 만들고 싶은 서비스와 서버가 있나요? 있다면 무엇인가요?
  • 본인이 생각하는 좋은 서버란? 좋은 서버가 갖추어야 하는 조건은 무엇인가요?
  • 실습 과제를 수행하면서 배운 것들, 공유하면 좋은 것들

0개의 댓글