본문 바로가기

분류 전체보기

Node.js로 DynamoDB 시작하기[2] -AWS SDK를 이용하여 dynamodb Table 생성 Node.js로 DynamoDB 시작하기[1] -linux에 Local DynamoDB 설치 저번 글에서는 linux 환경에 local DynamoDB를 설치하였다. 이번 글에서는 node.js로 aws sdk를 이용하여 저번 글에서 설치한 local DynamoDB를 제어해보려고 한다. #SetUp npm init npm install aws-sdk #CreateTable.js 설치가 끝났다면 현재 디렉토리에 CreateTable.js라는 파일 생성하여 아래와 같이 작성해준다. 우리는 dynamodb를 tokyo region에서 생성했기 때문에 4번째 줄의 region에 tokyo region인 "ap-northeast-1"을 기입해준다. 만약 타 리전의 dynamodb 를 설치하였다면 region을 .. 더보기
Node.js로 DynamoDB 시작하기[1] -linux에 Local DynamoDB 설치 #DynamoDB DynamoDB는 AWS에서 지원하는 종합관리형 NoSQL 데이터베이스 서비스로 NoSQL의 특징인 원활한 확장성과 빠르고 예측 가능한 성능을 제공한다. DynamoDB는 RDBMS처럼 스키마가 정해져있지 않고 비정형적인 데이터를 저장하는데 유용하며 JOIN과 같은 복잡한 테이블 데이터 처리과정이 있는 경우에는 비적합하다. 이번 글에서는 Amazon DynamoDB를 Local 환경에 설치한 뒤 node.js를 이용하여 간단한 액세스를 실습 해 볼 예정이다. #SetUp 우선 DynamoDB를 사용하기 위해서는 Java8 (jdk 1.8) 이상 버전이 설치되어 있어야 한다. [Cent OS] #sudo yum install java-1.8.0-openjdk-devel.x86_64 [Ub.. 더보기
Express와 Apollo server를 이용한 GraphQL API 만들기 지난번에 [Express.js/Node.js] Express framework를 이용한 REST API 서버 만들기 에서 Express 프레임워크를 이용하여 REST API서버를 만들어 보았다. 이번에는 Express 프레임워크와 Apollo Server를 이용해서 GraphQL API를 만들어보자. GraphQL에 대해서는 GraphQL(Graph Query Language) 란? 더보기
GraphQL 스키마 작성하기 (GraphQL Schema) GraphQL(GraphQueryLanguage) 란? 위 글에서 GraphQL에 대해 소개하는 시간을 가졌다. GraphQL을 이용한 API를 구현하기 위해서는 스키마(Schema)를 작성할 수 있어야한다. 스키마는 데이터 타입의 집합으로 API 문서 역할을 한다. GraphQL API를 설계할 때엔 스키마를 먼저 정의하게 되며 이 스키마에는 어떤 종류의 객체를 반환할 지 내가 받을 수 있는 자원은 어떤 종류인지 어떠한 자원을 인자로 받는지가 정의되어있다. # 스칼라 (Scalar) 스칼라 타입은 gql schema에서 쪼개질 수 없는 가장 작은 단위이며 5가지 기본 타입이 존재한다. Int : 부호가 있는 32비트 정수 Float : 부호가 있는 부동소수점 값 String : UTF-8 문자열 Boo.. 더보기
GraphQL(Graph Query Language) 란? # GraphQL GraphQL은 Graph Query Language의 줄임말으로 페이스북에서 개발하였으며, 서버 API를 구성하기 위해 만든 데이터베이스 쿼리 언어이다. 쿼리문의 작성이 직관적이며 API를 호출할 때 쿼리문을 원하는 형식으로 작성하여 원하는 데이터만 응답받도록 할 수 있다. 기존 서버 API에서 주로 사용되던 RESTful API는 사용자가 원하는 형태의 모든 API를 구현하는데에 어려움이 있었으며 이러한 니즈는 GraphQL의 등장배경이 되었다. https://graphql.org/ 에 접속하여 GraphQL의 쿼리문의 형식과 그에 따른 응답을 예제로 볼 수 있다. # EndPoint 위에 적었듯 GraphQL의 등장배경에는 RESTful API의 구현방식 상 각기 다른 요구 사항에.. 더보기
REST API 란? # 서버 API API(Application Programming Interface)는 특정 서비스나응용 프로그램에서 사용할 수 있도록 OS나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스이다. 서버 API는 web 서버에 어떠한 요청을 하였을 때 그에 맞는 응답을 줄 수 있는 Endpoint를 Web을 통하여 노출한 것이다. 예를 들자면 어떠한 개발자가 http://54.43.122.44/weather 라는 endpoint에 현재 날씨를 text로 반환하는 API를 open했다면 사용자는 해당 endpoint로 요청하여 현재 날씨를 text로 받아올 수 있다. # REST API REST는 서버 API를 만드는 방법론 중 하나이며 REpresentational State Transf.. 더보기
[Express.js/Node.js] Express framework를 이용한 REST API 서버 만들기 express.js는 Node.js를 위한 웹 프레임워크이다. node.js만으로도 웹 어플리케이션 및 API 서버 개발이 가능하지만 express를 이용한다면 좀 더 손쉽게 API 서버를 구현할 수 있다. 이 글에서는 간단한 API 서버를 구현해보도록 하겠다. HTTP의 4가지 주요 메서드 [GET, POST, PUT, DELETE] 와 라우팅을 이용한 버저닝(versioning)을 구현해보겠다. 우선 로컬 PC에 node js를 설치해 준 뒤 작업을 위한 디렉토리[testapi]를 생성해준다. 이후 npm init 커멘드로 package.json 파일을 초기화해준다. npm init 커멘드를 입력하면 몇가지를 묻는데 그냥 엔터키를 난사해서 우선은 기본설정으로 세팅하자. 전부 입력이 끝나면 packag.. 더보기
[JavaScript] 콜백(Callback)함수와 비동기 처리 자바스크립트에서 콜백 함수는 매우 중요한 개념이다. 콜백함수란? 콜백함수는 함수 내부에서 매개변수로 전달되어 특정 시점에 호출되는 함수를 말한다. 다음은 콜백함수의 예제이다. 간단하게 동작을 살펴보면 returnName을 보면 파라미터에 callback이라는 함수가 선언되어있다. returnName함수의 파라미터로 받게되는 함수(여기선 sayHello)는 "jason" 이라는 string을 인자로 받게된다. returnName 함수는 sayHello라는 함수를 파라미터로 가지고 호출 되는데, returnName 함수는 sayHello 함수를 인자로 받아야 하기 때문에 sayHello 함수가 먼저 실행된 뒤 returnName 함수가 실행되게 된다. 따라서 결과는 아래와 같다. 자 콜백함수에 대한 정의는 .. 더보기
AWS 란? AWS(Amazon Web Service)는 아마존닷컴에서 운영하는 클라우드 컴퓨팅(Cloud Computing) 플랫폼이다. 클라우드 컴퓨팅은 제공자 입장에서는 가상화 된 컴퓨터의 리소스를 사용자에게 요구하는 즉시 제공하는 것이고 사용자 입장에서는 인터넷 기반 컴퓨팅의 일종으로 정보를 자신의 컴퓨터가 아닌 클라우드(인터넷)에 연결된 다른 컴퓨터로 처리하는 기술을 의미한다. 쉽게 풀어서 얘기하면 AWS에서 제공하는 컴퓨터를 내가 원격으로 사용할 수 있다고 생각하면 된다. AWS의 모회사인 아마존 닷컴은 세계 최대의 인터넷 쇼핑몰으로 블랙 프라이데이같이 사용자들이 몰리는 기간을 대비하여 서버를 엄~~~~~~~~~~~~청나게 증설시켜 놨는데 이 서버들이 평소 때 놀고 있는 걸 보고 CEO인 제프 베조스가 이.. 더보기
BOJ)14288 내리 갈굼4 문제:icpc.me/14288 트리에서 질의를 처리하는 문제이다. 우선 dfs를 이용하여 트리의 번호를 reordering 시켜주어 트리를 구간으로 생각해보자. 문제를 풀기 위해서 일반의 경우와 야자의 경우에 업데이트 시켜주는 영역을 다르게 생각해보자 일반의 경우만 생각해본다면 value가 아래로 전파되기 때문에 나의 자식들의 구간에 업데이트 시켜준 뒤, 답을 가져올 때는 해당 지점의 값을 출력하면 될것이다. 야자의 경우에는 value가 위로 전파되므로 나의 위치에 업데이트 시킨 뒤, 답을 가져올 때, 내 자식들의 업데이트 현황을 다 더해주면 되므로, 자식들의 구간의 합을 출력하면 될것이다. 두가지 모두 Fenwick tree를 이용하여 구현 가능하므로 2개의 fenwick tree를 구현하면 문제를 해.. 더보기