강의 내용 정리/오픈소스SW개발(11)
-
오픈소스 SW개발 (11) Chatbot
Chatbot 1. Chatbot 1) 챗봇 흐름 - 사용자가 우선 메세지를 서버에게 보낸다. 이를 서버는 챗봇에게 보내주고, 이에 맞는 액션을 취해주고 그 결과를 서버를 통해 사용자에게 메세지를 전달해준다. - 메신저 서버와의 프로토콜을 잘 지켜서 메세지를 수신하고 이에 맞는 결과를 전해주는 과정이 필요하다. 2) 만들고자하는 챗봇: 번역기 챗봇 3) 필요한 것 (1) AWS Server 챗봇 서버를 위한 AWS Server (2) Line Developers 메세지 API를 위한 Line Developers (3) Naver Developers Papago API를 사용한 번역기 2. Chatbot 만들기 실습 1) AWS Server (1) IP 주소 설정 - 기본설정의 IP를 사용하게되면 매번 실..
2022.06.27 -
오픈소스 SW개발 (10) Cloud Computing
Cloud Computing 1. Cloud Computing 1) Traditional models - 클라우드 컴퓨팅이 없었을 때는 우리가 만든 서버 위에서 서비스가 출시되었다. 즉, 물리적인 머신을 직접 임대하거나 구매해서 서비스를 제공했다. 그 위에 OS나 환경을 설치해야했다. 하지만 서비스의 특징 상 시간대별로 고객의 접속량이 달라질수밖에 없다. 만약 사용자가 많이 몰릴 때 서버가 작다면 서비스의 질이 낮다고 느낄 수밖에 없다. 그렇다고 이를 위해 서버의 크기를 키울수밖에 없는데 이러한 경우에는 서버가 쉬는 시간이 많을 것이다. 2) Data Center - 물리적인 머신을 구매하거나 임대해서 여기에 배치해서 서비스를 운영하는 식으로 진행했다. 데이터 센터에 서버를 갖춰놓고 이를 사용하기도 한다..
2022.06.22 -
오픈소스 SW개발 (9) Virtualization
Virtualization 1. Virtualization 1) Virtualization란? 물리적인 컴퓨터는 한 대지만 여러 대의 컴퓨터가 독립적으로 동작할 수 있게끔 도와주는 것 (1) Virtualization의 수준 - 하드웨어에 가까울수록 저수준, 어플리케이션과 가까울수록 고수준이다. 이는 좋고 나쁘고의 의미가 아니라 하드웨어에 얼마나 가까운지에 대해 수준을 나눈 것이다. - 라이브러리는 호환성을 지켜주기 위한 것이 크다. (2) 특징 - 앞으로 하드웨어 레벨, OS 레벨 가상화에 대한 내용을 많이 사용할 것이다. 2) ISA - 이해하기 쉬운 용어를 작성하면 컴파일을 통해 ISA로 번역한다. - 게임은 하드웨어에 맞게 가상화를 해야한다. 이를 게임 에뮬레이터라고 하기도 한다. 3) Run-t..
2022.05.13 -
오픈소스 SW개발 (8) LINUX
LINUX 1. Linux란? 컴퓨터 하드웨어에 접근하고 어플리케이션에게 인터페이스를 제공하는 운영체제다. 1) Kernel OS의 핵심적인 역할을 수행하는 것 (1) 커널이란? - 컴퓨터 하드웨어 리소스를 추상화한다. 예를 들어 코어를 프로세스로 추상화하거나 디스크를 파일로 추상화한다. - 시스템 자원을 관리한다. - 보안기능을 제공하거나 하나의 어플리케이션이 다른 곳에 침범하지 않도록 도와주는 역할을 진행한다. - 어플리케이션의 요청에 응답하는 것을 한다. (2) 커널의 목표 - 성능이 좋아야한다. 커널의 성능이 느리면 어플리케이션이 느리게 동작한다. - 안정성이 높아야한다. 커널의 안정성이 낮으면 어플리케이션이 동작하지 않을 수 있다. 혹은 진행 중인 작업이 날라 갈수도 있다. - 기능이 다양해야한..
2022.05.06 -
오픈소스 SW개발 (7) Express
Express NodeJS를 사용하는 웹 프레임워크 0. 기본 개념 1) Request와 Response 브라우저가 요청을 보내고 서버에서 응답을 보낸다. 네이버는 페이지를 열자마자 여러가지 요청을 보낸다. 2) HTTP 메소드 GET: 리소스를 단순히 요청하는 것으로 브라우저 페이지를 여는 것도 이에 해당한다. POST: 새로운 리소스를 만드는 것 PUT: 기존에 존재하는 리소스를 수정하는 것 DELETE: 기존에 존재하는 리소스를 지우는 것 3) REST 브라우저에서 화면을 만들기 위함 뿐만이 아니라 클라이언트와 서버의 통신을 위해 HTTP 프로토콜로 사용하는 것으로 점차 확장되고 있다. 따라서 각 HTTP 메소드와 함께 대상이 되는 주소를 적어 요청한다. 이 방식을 RESTful 방식이라 한다. 대..
2022.05.03 -
오픈소스 SW개발 (6) NodeJS
NodeJS 1. NodeJS란? 1) NodeJS의 특징 - 자바스크립트 기반의 엔진을 인터프리터로 가지고 있고 프레임워크는 아니고 런타임 환경이다. - 이벤트 중심의 아키텍쳐이고, 이는 비동기적으로 동작한다. - Non-Blocking I/O를 지원하고, 실행 흐름이 싱글 스레드로 하나만 실행된다. - 독립적으로 짜여진 객체 집합인 모듈이 많이 짜여져있다. 2) NodeJS의 장점 (1) Asynchronous - I/O 작업은 일반적으로 많은 시간이 걸리는데 이 작업이 끝날 때까지 이를 기다리는 경우가 많다. 하지만 NodeJS는 non-blocking을 지원하고 CPU를 기다리는 시간이 없어도 된다. (2) Productivity - 자바스크립트는 프론트엔드에서 사용하는데 도움을 주었지만 이를 활..
2022.04.23