목차
0. Ice Breaking 🧊🔨
함께 스터디 할 여러분들의 추가적인 자기소개를 해주세요!💚
- 학과/학년
- 인하대학교 컴퓨터 공학과 19학번으로 3학년 재학중입니다.
- 닉네임
- 제 닉네임은 헤론입니다.
- 닉네임을 지은 이유
- 어릴 때 부터 게임이나 자기소계 할때 쓰는 이름이라 딱히 이유가 있지는 않습니다.
- 진로 또는 UMC에 들어온 목적
- 저는 백앤드 개발자를 제 진로를 잡았습니다. 서버 구축이나 서버 관리 등에 관심이 많기 때문입니다. 그래서 UMC에 들어왔습니다. 서버 관리에 핵심인 spring에 대해 공부도 할 수 있고 앱도 직접 개발해 볼 수 있는 기회도 있다고 하니 이만한 동아리가 없다고 생각했습니다.
- 되고 싶은 모습
- 제가 선택한 분야에서 인정받는 개발자가 되고 싶습니다. 제가 생각하는 인정이란 누구나 저에게 불안감 없이 개발을 맡길 수 있는 것입니다.
- 활동 지역
- 저는 연수구에 거주하고 있습니다. 저는 주로 연수구나 송도 인하대 주변에서 활동합니다.
- 아침형 / 올빼미형
- 저는 올빼미형입니다. 요즘 학교때문에 아침에도 활동해야해서 많이 힘듭니다.
- 좌우명
- 저와 관련된 일은 책임지자! 입니다. 제가 맡은 일은 어떻게 해서든 열심히 할려고 합니다.
1. 학습 목표 🎯
- 서버의 정의와 역할을 이해한다.
- 서버의 구성요소과 각 요소와의 관계를 이해한다.
- 서버가 어떻게 구축되는지 이해한다.
- 서버와 관련된 개념들을 이해한다.
2. 1주차 수업 후기 ✏
<aside> 📌 1주차 ****수업을 듣고 느낀 점과 각자의 과제 진행 상황을 서로 이야기해주세요!
이곳에 강의 내용을 정리해도 좋습니다
</aside>
나는 어떤 개발자가 될까? 를 생각할 수 있는 시간이었다. 강사님이 강조했던 것처럼 실력도 중요하지만 소통할 수 있는 개발자가 되어야겠다고 생각했다.
서버는 Serv + er = Server였다. 올바른 정보 전달, 제한 시간 내에 정보 제공, 안정적인 서비스 제공, 메뉴 제시등 식당에서 보면 주방 같은 느낌이다. 서버는 1 : n 으로 상대적이다. client도 서버가 될 수 있고 서버도 client가 될 수 있다.
! 주의사항 !
- 과제 피드백 기반 진행입니다!
- 한 명씩 본인의 과제를 발표하고, 서로의 과제에 대하여 피드백을 하는 것이 기반이 되어야 합니다!
- 워크북에서 제공되는 키워드 혹은 강의에서 들은 디테일적인 부분에 대해서 토의를 진행해주세요!
- 스터디 시간에 각자가 키워드를 맡아 공부해온 것을 발표
- 나머지 스터디원들이 해당 발표에서 추가적인 내용들을 첨언하는 방식으로 스터디를 진행하셔도 좋습니다!
- 스터디 전에 키워드에 대한 공부들을 진행하여 노션에 정리하신 후,
3. 실습 💻
미션 수행 내용/결과 (각 페이지에 작성해주세요!)
🔥 트러블 슈팅 (실패한 경험도 성장을 위한 경험!)
<aside> 📌 실습을 하면서 발생한 이슈가 있다면 문제 - 원인 - 해결 순서대로 작성해주세요. 레퍼런스까지 기록 해 두시면 더 좋습니다!
</aside>
- 트러블 슈팅 양식[ 해결 방안 ]
- [ 참고 자료 ]
- [ 문제 원인 ]
미션 수행 내용/결과를 작성 하면서 같이 정리 했다.
4. 개념 키워드 🔑
📌 이번 주차 세미나에서 중요하게 다룬 키워드들입니다. 키워드에 대해 조사해본 후 해당 키워드에 토글 안에 자유롭게 정리해주세요!
- 서버와 서비스
- Serve + er.
- 서버는 클라이언트에게 여러 가지 서비스를 제공하는 것을 뜻한다.
- 클라이언트 - 서버 관계
- 클라이언트로부터 요청을 받아야 비로소 서버는 서비스를 시작한다. 그리고 서비스를 한 서버는 다른 서버에 서비스를 요청 할 수 있으므로 요청을 한 서버는 클라이언트가 될 수 있다.
- 서버의 동작 방식과 순서 (요청이 들어왔을 때 서비스가 어떻게 처리되는가?)
- 정적페이지 : 웹브라우저 요청에 항상 같은 내용을 표시하는 웹페이지이다. html,css,javascript
- 요청하는 클라이언트마다 그 클라이언트, 요청시간, 어떤 방식의 요청에 따라 각각 다른 내용이 표시되는 웹페이지이다. →로그인,쇼핑몰 사이트 장바구니, 게시판 등등.
- 클라이언트가 서버에 요청을 하면 WS가 요청을 받아 WAS에게 건내주고 WAS는 HTML등을 만들어 DB와 소통한 후 WS에게 다시 준다.
- 서버의 구조
- Server Program
- Backend Language(ex : Java, Javascript…)
- DB, DBMS
- SQL
- MySQL
- MSSSQL
- ORACLE
- NoSQL
- MongoDB
- Redis
- Cassandra
- SQL
- APMAPM의 구성요소
- Apache : 웹 서버 프로그램으로 웹 서비스를 제공해주는 서버이다. 요청을 받은 서버는 클라이언트 컴퓨터에 HTML 파일을 제공한다.
- 아파치는 프로세스를 만드는데 시간이 오래 걸리니 PREFORK 방식을 채택. 미리 프로세스를 만들어 놓고 요청들어오면 바로 갔다 주는 것이다. → 이를 실현하기 위한 서버 프로그램과 외부 프로그램관의 연계법을 정한 것이 CGI이다.
- 아파치는 CGI(Common Gateway Interface)제공. 즉, 웹 서버 상에서 프로그램을 동작 시키기 위한 방법을 정의 하는 프로그램이다. 그때 사용 하는 것이 php. php를 설치하면 요청이 들어왔을 때 HTTP 헤더 분석하고 파싱(구문 분석)하여 PHP로 파라미터를 넘겨줌 → 그러면 PHP에서는 파라미터를 받아 응답 할 HTML을 아파치에게 전달한다. 그 후 아파치는 정적인 자원들과 함꼐 브라우저로 반환.
- PHP : C 언어를 기반으로 만들어진 서버 측에서 실행되는 서버 사이드 스크립트 언어이다. php는 동적 웹 페이지를 쉽고 빠르게 만들 수 있도록 해줍니다.(동적 웹 페이지는 서버가 사용자의 요청 해석하고, 해당 데이터를 가공하여 생성하는 웹 페이지)
- MySQL : SQL 데이터베이스 서비스. 웹 페이지에 게시판, 동영상 같은 데이터를 저장하고 화면에 보여줄려 할 때 데이터베이스와의 연동이 필요하다.
- Application Performance Management로 웹 서비스를 제공하는 데 있어 안정적으로 운영할 수 있게 지원해주는 서비스 이다.
- 로컬 호스트 (localhost)로컬 호스트는 자신의 컴퓨터를 가리키는 호스트 이름 / 도메인 이다.
- localhost = 127.0.0.1인데 여기서 127.0.0.1은 자신의 컴퓨터를 가리키는 IPv4 IP주소이다. 자기 자신을 가리키는 형식이다. 그래서 루프백 주소라고도 한다.
- 호스트는 네트워크를 이용하기 위해 네트워크에 연결된 장치이다.
- 가상머신 (Virtual Machine)
- Virtual Box제일 간단한 말로 컴퓨터 가상화 프로그램이다. 가상으로 대부분의 OS를 작동 시키기 위해 사용하는 것이다.
- (Windows, Linux, macOS, 등등)
- 가상 머신은 물리적 컴퓨터에서 물리적 컴퓨터 처럼 작동하는 소프트웨어 컴퓨터이다. 이런 가상 머신을 만들어 주는 것이 Virtual Box랑 VMware이다.
- VMware
- Virtual Box와 마찬가지로 가상 머신을 만들어주는 프로그램이다.우리 컴퓨터의 Application 안에 Vmware가 다운 받아지고 게스트 컴퓨터가 생성된다. 이를 통해 가상 머신을 사용할 수 있게 된다.
- 하이퍼 바이저유형 1 하이퍼 바이저 : 설치 프로세서를 위한 추가 소프트웨어가 필요하지 않다. 호스트 컴퓨터의 하드웨어 리소스에 직접 작동한다. VMware ESXI
- 유형 2 하이퍼 바이저 : 호스트 컴퓨터의 운영 체제에 설치. 물리적 시스템의 하드웨어 및 리소스에 직접 엑세스 하지 않는다. Virtual Box
- 하이퍼 바이저는 가상 머신을 실행하는 데 필요한 환경을 제공하는 중요한 소프트웨어이다. 가상 머신의 운영체제와 제 컴퓨터 하드웨어 사이에 분리를 하는 것이다.
- Linux, Ubuntu리눅스는 커널을 기반으로 한다. 커널이 운영 체제의 핵심이다. 커널을 통해 사용자가 자신의 운영 체제를 개발할 수 있다. 이를 통해 개발자들이 배포판을 만든다. 배포판 중에 하나가 우분투이다.리눅스는 안정적인 운영체제이고 여러 사용자가 동시에 작업 할 수 있는 다중 사용자 시스템이다. (group)
- 우분투는 리눅스 배포판이다. 여기서 배포판이란 ? 리눅스 프로그램은 두 가지 이상 프로그램이 만나 주어진 일을 처리하는 경우가 있는데 이 때 이 것을 모아서 배포한 것이 배포판이다. 우분투는 GUI와 CLI가 있다. 장점은 우분투는 쉽게 설치할 수 있다.
- 커널은 시스템의 모든 것을 완전히 통제한다.
- 리눅스는 오픈소스 운영 체제이다. Unix기반 OS이다.
- 리눅스 명령어
- 리눅스 디렉토리 구조
- vi(vim) 편집기 사용법
- Web Server(WS)와 Web Application Server(WAS)WAS는 DB 조회나, 어떤 로직을 처리해야 하는 동적인 컨텐츠를 제공하는 서버 → Tomcat, Jeus웹 서버 사용 이유 ?
- WAS 부담 줄이기 (정적 컨텐츠 앞에서 수행)
- WAS 환경설정 파일을 외부에 노출 안시키기
- 각각 독립적으로 존재 가능하다. 대부분의 WAS가 정적인 컨텐츠도 제공 그래서 웹 서버 없이 WAS만 존재할 수도 있다. 근데 일반 적으로 웹 서버를 WAS 앞에 둔다.
- Web Server는 정적인 컨텐츠(html, css, js)를 제공하는 서버 → Apache,Nginx
- 운영체제 (OS)
- 운영체제운영체제는 크게 사용자 영역과 커널 영역으로 나뉜다. 사용자 영역은 실제 사용자가 응용프로그램을 이용하기 위해서 마련한 공간, 커널 영역은 사용자 영역에서 사용자가 이용하는 프로그램을 안전하고 효율적으로 작동하기 위한 컴퓨터 자원을 관리하는 곳이다.
- 컴퓨터 시스템의 각종 하드웨어적인 자원과 소프트웨어적인 자원을 효율적으로 운영 관리함으로써 사용자가 시스템을 이용하는데 편리함을 제공하는 시스템 소프트웨어이다. 즉, 하드웨어와 소프트웨어를 하나로 묶는 핵심 소프트웨어이다.
- Window, MacOS
- 윈도우는 마이크로소프트사가 개발한 운영체제이다. 현재 제일 많이 쓰이고 호환되는 유명한 응용 프로그램이 많다. 하지만 보안에는 취약하다. 자유롭기 때문에 이 곳 저 곳에서 침투를 한다. 특징은 GUI 사용, 선점형 멀티태스킹(동시에 여러개의 프로그램을 실행하는 멀티태스킹을 하면서 CPU 이용시간 제어하여 문제가 생기면 강제 종료시킨다).
- MacOS 애플의 운영체제이다. 애플 기기간의 연동성이 뛰어나다. 보안 또한 매우 강하다. 유닉스 기반의 운영체제이다.
- CLI와 GUI
- 인터페이스
- 소프트웨어 인터페이스 : 컴퓨터의 하드웨어의 동작을 지시하고 제어하는 프로그램들이 상호 작용하는 방식이다. 시스템 소프트웨어는 운영체제와 응용 프로그램 들 간에 커뮤니케이션할 수 있도록 방법을 미리 정해 놓은 것이다.
- GUI
- 사용자가 그래픽을 통해 사용자와 소통하는 방식. 윈도에서 많이 쓰는 아이콘, 클릭 등, 키보드 마우스 모두 사용 가능.
- CLI
- 글자의 입출력을 통해 사용자와 컴퓨터 간 소통하는 방식. 윈도우의 cnd 리눅스의 terminal
- 인터페이스
- HTTP프로토콜은 컴퓨터 네트워크에서 데이터를 주고 받을 때의 규약이다.특징 : 요청/응답 구조 , 무상태 프로토콜, 비 연결성 등이 있다.
- 대표적인게 OSI 7계층.
- HyperText Transfer Protocol 웹 상에서 정보를 주고받을 수 있는 프로토콜이다. HTTP는 클라이언트와 서버 사이에 이루어지는 요청/응답 프로토콜이다.
- 패키지 설치와 컴파일 설치
- 패키지 매니저
- 컴퓨터의 운영 체제를 위해 일정한 방식으로 컴퓨터 프로그램의 설치, 업그레이드, 구성, 제거 과정을 자동화하는 소프트웨어 도구들의 모임이다. (apt-get install)
- 컴파일 설치
- 우분트는 apt-get으로 프로그램 설치, 업데이트, 삭제가 가능하다. 하지만 컴파일 설치도 존재한다. 컴파일 설치는 직접 소스 코드를 다운 받아 컴파일 한 뒤 실행하는 것이다. 컴파일 설치를 알아야 하는 이유는 보안정책상 Packager manager 사용을 막아 놀 수 있기 때문이다.
'UMC-3rd Server 기록' 카테고리의 다른 글
Server 6주차 워크북 (0) | 2022.12.14 |
---|---|
Server 5주차 워크북(Best) (0) | 2022.12.14 |
Server 4주차 워크북 (0) | 2022.12.14 |
Server 3주차 워크북 (0) | 2022.12.14 |
Server 2주차 워크북 (1) | 2022.12.13 |