목록분류 전체보기 (188)
포도가게의 개발일지
what? - 웹훅은 웹페이지 또는 웹앱에서 발생하는 특정 이벤트들을 callback으로 변환해주는 방버이다. 일반적인 API는 클라이언트가 서버를 호출하는 방식이다. 하지만 웹훅의 경우 서버에서 특정 이벤트가 발생했을 때 클라이언트를 호출하는 방식이면 "역방향 API"라고도 부른다.(sse같은건가?) Webhook 프로바이더는 해당 이벤트가 발행하면 HTTP POST 요청을 생성하여 callback URL(endpoint, 목적지)로 이벤트 정보을 보냅니다. why? - 메일을 수신할 수 있는 웹앱의 클라이언트와 서버가 있다. 구현할 것은 서버측에서 메일을 수신하였을 경우 클라이언트 측으로 알림 메세지를 전달하는 것이다.!! 알림!! (즉 busy waiting쓸데없는 overhead를 줄 일 수있다 ..
객체지향에서 제일 중요한것은 역할 책임 협력이다. 객체들이 애플리케이션의 기능을 구현하기 위해 수행하는 상호작용을 협력이라 부른다. 객체가 협력에 참여하기 위해 수행하는 로직을 책임이라 부른다. 객체들이 협력 안에서 수행하는 책임들이 모여 객체가 수행하는 역할을 구성한다. 객체지향 시스템은 자율적인 객체들의 공통체다.!! 객체는 고립된 존재가 아니라 기능이라는 더 큰목표를 달성하기 위한 사회적인 집단이다!! 책임주도설계 1. 시스템이 사용자에게 제공해야하는 기능인 시스템 책임을 파악한다. 2. 시스템 책임을 더 작은 책임으로 분류한다. 3. 분할된 책임을 수행할 수 있는 적절한 객체 또는 역할을 찾아 책임을 할당한다. 4. 객체가 책임을 수행하는 도중 다른 객체의 도움이 필요한 경우 이를 책임질 적절한 ..
CrowdSourcing? - 크라우드 소싱은 인터넷,소셜미디어,스마트폰에 존재하는 어떤 대규모의 사람들의 작업이나 정보, 제안을 포함한다. 사람들은 작은 봉사를 통해 약간의 pay를 지불받는다. - 기업은 크라우드소싱을 통해 국내 또는 전 세계 모든 곳의 사람들에게 업무를 위탁할 수 있습니다.그 결과, 크라우드소싱을 통해 사내 직원의 일반적인 오버헤드 비용을 들이지 않고도 다양한 기술과 전문 지식을 활용할 수 있습니다. Why? AWS CrowdSourcing === MTurk - MTurk은 요청자(Requester)와 작업자(worker)를 이어주는 일종의 크라우드 소싱 서비스로, 해결해야 하는 과제를 가진 요청자가 과제를 MTurk에 올리면, 전세계에 작업자로 등록된 사람들이 실시간 자발작으로 M..
chap 2 영화 - 영화에 대한 기본 정보를 표현한다. 상영 - 실제로 관객들이 영화를 관람하는 사건을 표현한다. 사용자가 실제로 예매하는 대상은 영화가 아니라 상영이다. 할인정책(금액할인, 비율할인)하나만 적용가능하며 할인 조건은 여러개 적용가능 협력, 객체, 클래스 - 대부분의 사람은 클래스를 결정한 후에 클래스에 어떤 속성과 메서드가 필요한지 고민한다. 안타깝게도 객체지향의 본직과는 거리가 멀다. 진정한 객체지향의 패러다임으로의 전환은 클래스가 아닌 객체에 초점을 맞출 때에만 얻을 수 있다. 첫째, 어떤 클래스가 필요한지를 고민하기 전에 어떤 객체들이 필요한지 고민하라. 클래스는 공통적인 상태와 행동을 공하는 객체들을 추상화 한것이다. 즉 클래스의 윤곽을 잡기 위해서는 어떤 객체들이 어떤 상태와 ..
1. shell이나 driver(나같은경우는 node.js driver)를 이용하여 mongodb server에 query를 보내면 mongodb server가 direct로 data를 write하지 않는다. mongodb server는 storage engine과 communication을 하며 storage engine은 내가 마음에 듣는것으로 바꿀 수 있다. default로는 Wired Tiger engine을 사용한다. storage engine은 결국 file에 data를 저장하게 된다. 1. storage engine은 data chunk를 memory에 load하고 자주 사용하는 data가 memory에 있도록 관리합니다. 2. storage engine은 먼저 in-memory에 data..
HTTP Cookie? - 웹 쿠키는 서버가 사용자의 웹 브라우저에 전송하는 작은 데이터 조각입니다. 브라우저는 그 데이터 조각들을 저장해 놓았다가, 동일한 서버에 재요청시 저장된 데이터를 함께 전송합니다. 쿠키는 두 요청이 동일한 브라우저에서 들어왔는지 아닌지를 판단할 때 주로 사용합니다(음.. 우리는 cookie를 이용하여 동일한 access인지 확인하여 auth를 해준다.). 이를 이용하면 사용자의 로그인 상태를 유지할 수 있습니다. stateless인 http에서 상태정보를 기억할수 있게 됩니다. 쿠키의 세가지 목적 세선 관리 개인화 트래킹 과거에는 클라이언트 측에 정보를 저장할 때 쿠키를 주로 사용했습니다. 유일한 방법이었기 때문에 하지만 지금은 modern storage api를 사용해 정보를..
chap 1. 1. 객체 설계 모듈이란? - 크기와 상관없이 클래스 형태, 패키지 형태, 라이브러리 형태로 프로그램을 구성하는 임의의 요소 - 모듈은 세가지 목적이 있으며 첫번째 : 정상 작동 되어야 한다. 두번째 : 변경을 위해 존재 -> 쉽게 변하기 위해서는 객체가 자율적이어야 한다. -> 책임을 각자 가진다. 세번째 : 의사소통이 가능하여야 한다. -> 코드가 직관적(? 상식적 or 일반적)이어야 한다. 객체지향의 목표는? - 서로 의존하면서 협력하는 객체들의 공통체를 구축하는 것 -> 의존성을 없애는게 아니라 불필요한 의존성을 없애는것이다! - 때문에 변경이 쉽기 위해서 최소한의 의존만 남기고 불필요한 의존성을 버려야 한다. - 의사소통이 쉽다는거는 직관적(? 상식적)이어야 한다는 것이다. -> ..
Pre-signed url - 생성자가 해당 객체에(S3) 대한 액세스 권한을 보유할 경우, pre-signed url은 url에서 식별된 객체에 대한 액세스를 부여합니다. 즉 객체를 업도르하기 위해 미리 서명된 url을 수신하는 경우. pre-signed url의 생성자(Iam role을 가지고있는 api 서버겠지?)가 해당 객체를 업로드하는데 필요한 권한을 보유하는 경우에만 객체를 업로드할 수 있습니다. - 모든 객체 및 버킷은 기본적으로 비공개입니다. 사용자/고객이 특정 객체를 버킷에 업로드할 수 있기를 원하는 경우 pre-signed url이 유용하지만 AWS 보안자격증명 또는 권한을 요구하지 않습니다. - pre-signed url을 생성하는 경우 보안자격증명을 제공한 후에 버킷 이름, 객체 키..