본문 바로가기

전체 글

(61)
5) Primary-backup 구현하기 - 문제 설명본 과제에서는 간단한 Primary-backup 프로토콜을 구현하여 복제 프로토콜에 대한 이해를 높여봅시다.- 요구 사항주어진 client.c, server.c 를 바탕으로 Primary-backup 프로토콜을 수행하는 클라이언트, 서버 프로그램을 완성하 세요. - util.c#include #include #include #include #include #include #include #include #include #include #include #include // Constants#define KEY_SIZE 16 // 사용할 KEY 크기이다. 16바이트.#define VALUE_SIZE 16 // 사용할 VALUE 크기이다. 32바이트.#define DATASET_SIZE 1000 ..
소프트웨어분석및설계 (13) 컴포넌트 모델과 OOP / - 컴포넌트란 무엇인가?- 클라이언트 컴포넌트와 서버 컴포넌트는 어떻게 구분하는가? - 클라이언트 컴포넌트로컬 자원을 사용하여 작업을 수행.서버에게 데이터를 요청하거나, 특정 작업을 수행하도록 요청을 보낸다.사용자와 직접 상호작용.주로 GUI 컴포넌트: 버튼, 리스트, 스프레드 시트.- 서버 컴포넌트클라이언트의 요청을 처리, 응답을 제공.서버의 중앙집중 자원 사용, 다수의 클라이언트 요청에 응답.컨테이너 안에 포함되어 통신. 이때 통신은 서버 내부에 들어있는 비즈니스 오브젝트들이 서로 통신하는 것.EJB(Enterprise Java Beans), CORBA(Common Object Request Broker Architecture) 등. - 컴포넌트 아키텍쳐플러그-인 된 컴포넌트를 관리하는 시스템컴포넌트..
4) Power of two choices 로드 밸런싱 구현하기 - 문제 설명우리는 수업 시간에 다양한 로드 밸런싱 알고리즘을 배웠습니다. 이제 power of two choices라는 새로운 알고리 즘을 직접 구현해서 배움을 심화시켜 봅시다.Power of two choices는 random 로드밸런싱과 least connection을 혼 합한 것과 유사합니다.방법은, 임의로 두 개의 서버를 선택을 한 후, 선택된 두 개의 서버 중에서 현재 전송중인 요청의 수 혹은 연결되어 있는 커넥션의 수가 적은 쪽을 선택합니다.예를 들어서, 서버가 1~4까지 4개가 존재하 고, 어느 한 시점에 각 서버로 전송중인 요청의 수가 40 30 20 10이라고 가정 해봅시다. power of two choices에서 는 서버 1~4 중에 임의로 두 개를 선택합니다. 예를 들어서 서버 2..
일본정치론 (12) 미일동맹과 중일관계 - 전수방위: 군대가 없다고 해서 타국이 공격하는데 방어를 안 할 수는 없다. 전적으로 방위를 한다는 의미의 전수방위. 자위대의 존재 인정. 일본이 경제적으로 성장하고 국가의 위상이 올라가면서 국제문제를 반영하려는 움직임이 발생.- 후쿠다 독트린 - 아시안과의 관계, 원조의 사용. 일본의 적극적인 외교 움직임. - 걸프전에서의 수표외교 비판. 보통국가로의 전환 주장.고이즈미, 아베 총리가 주로 주장. 일본의 국제적, 군사적 역할을 만들어나가는 변화. - 경제외교 분야: 일본이 경제력을 활용해 다른 국가들과의 관계개선. 특히 강조하는 것이 인간안보. 일본의 지도자들이 개념을 캐치해서 사용. 유엔에서 인간안보 기금 설치, 여러 분야에서 기여.- 인간안보: '공포'로부터의 자유, '결핍'으로부터의 자유. 공포..
Lesson 6. 라우트와 외부 파일 6장에서 다룰 내용fs 모듈을 이용한 전체 HTML 파일의 저장정적 에셋 저장라우트 모듈 생성 6.1. fs 모듈을 이용한 정적 파일 제공 HTML 파일의 일부분을 사용해 페이지를 구성한다면 main.js 파일이 복잡해진다.응답할 HTML 파일을 따로 작성하고, 동일한 프로젝트 디렉터리 내 views 폴더에 저장한다. 결과적으로 사용자에게 표시할 모든 내용은 views 폴더에 저장되고, 표시할 내용을 결정하는 모든 코드는 main.js 파일에 저장된다.  다음 단계를 따른다.프로젝트 폴더를 만든다.프로젝트 폴더 안에 main.js 파일을 만든다.views 폴더를 만든다.views 폴더 안에 index.html 파일을 만든다. Welcome!  클라이언트는 파일시스템과 상호작용하는 fs 모듈의 도움으..
Lesson 5. 수신 데이터 다루기 5장에서 다룰 내용요청 데이터의 수집과 처리curl 명령을 통한 POST 요청 제출기본 라우트를 가지는 애플리케이션 제작 5.1. 서버 코드의 수정 다음은 4장 코드를 수정 작업한 것이다.const port = 3000, http = require("http"), httpStatus = require("http-status-codes"), app = http.createServer();app.on("request", (req,res) => { res.writeHead(httpStatus.OK, { "Content-Type" : "text/html" }); let responseMessage = "This..
Lesson 4. Node.js에서 웹 서버 만들기 4장에서 다룰 내용Node.js와 npm을 사용한 기본 웹 서버 생성브라우저에서의 요청 처리 및 결과 보내기 코드 작성브라우저에서의 웹 서버 실행 4.1. 웹 서버의 이해 - 웹 서버: Node.js 웹 애플리케이션의 기본. 이미지/HTML 웹 페이지를 앱에서 읽어들여 사용자에게 보여준다.- 웹 서버: 데이터 읽기 및 처리를 통한, 인터넷상의 요청에 대한 응답을 위해 설계된 소프트웨어.HTTP(Hypertext Transfer Protocol)이라는 인터넷상에서 웹 페이지 열람 및 데이터 전송을 위해 세계적으로 표준화된 시스템을 따른다.- 서버와 클라이언트가 통신하는 보편적 방법은 HTTP 요청을 사용하는 것.가장 자주 접하고 사용하는 2개의 HTTP 메소드는 다음과 같다.1) GET: 서버로부터 정보를..
3) Look-aside cache 구현하기 - 과제명Look-aside cache 구현하기 - 캐시: 자주 사용되는 데이터 값을 미리 복사해놓는 임시 저장소.속도 향상을 위해 사용하며, 다음과 같은 상황에서 사용된다.원본 데이터보다 빠르게 접근한다.같은 데이터에 반복적으로 접근한다.변하지 않는 데이터를 주로 사용한다.- 캐싱 전략: 캐시로 사용할 때 어떻게 배치하는가가 시스템 성능에 큰 영향을 준다.Look-Aside: 데이터를 찾을 때 우선 캐시에서 찾고, 데이터가 있다면 캐시에서 데이터를 가져오는 전략.만약 캐시에 데이터가 없어 Cache Miss가 발생한다면, 앱은 DB에서 데이터를 가져온 뒤 캐쉬에 넣어주는 작업을 진행한다.이 구조는 캐시가 다운되더라도 DB에서 데이터를 가져올 수 있다.DB에서 캐시로 미리 데이터를 넣어주는 것을 Cach..