728x90
API

API

    ngrinder Mac os 간단 설치 및 테스트 방법

    api의 성능 테스트를 위해서 네이버에서 만든 ngrinder 설치하고 테스트를 진행해봤다. ngrinder는 controller와 agent로 구성이 되어 있는데 이에 대한 내용은 https://naver.github.io/ngrinder/ 해당 내용을 체크하자. 1. Controller 설치 - 톰캣을 설치하고 아래 주소에서 war를 다운받아서 실행시킨다. https://github.com/naver/ngrinder/releases 단, 3.4.2는 테스트 스크립트 실행 시 unexpected token에러가 발생한다. 그래서 3.4.1을 사용하는걸 추천한다. 설치 완료되면 아래 url로 접근 해서 확인 (초기 계정은 admin/admin) - 뒤에 root path는 편의를 위해서 war 파일을 n..

    node.js oauth2 server 만들기

    스프링 프로젝트에서는 자주 oauth2를 사용했었는데 node.js는 해본적이 없어서 공부할 겸 node-oauth2-server 라이브러리를 사용하여 진행해보고 있다. 확실히 힘든 부분이 있고 설명이 어려워서 외국에서 예로 인터넷에 올려논 부분을 실제로 돌려보면서 수정하여 진행하고 있다. 설명과 소스는 git repository에 계속 수정해서 올릴 예정이다.현재는 Authorization_code와 password 방식만 올려놓았다. implict와 refresh_token 하는 기능도 수정해서 올려야겠다. Git Repository 주소https://github.com/weduls/node-aouth2-server-example

    마이크로서비스 조립성 및 정리

    마이크로서비스의 조립성은 서비스 디자인 원칙의 하나이다. 서비스를 어떻게 디자인해서 효율적으로 할 수 있는 원칙을 이야기하며 크게 두 가지 요소로 나뉜다. 1. 오케스트레이션(Orchestration)- 여러개의 서비스를 모아 하나의 완전한 기능을 만드는 서비스가 마이크로 서비스이다. 그럴 경우 중앙에서 두뇌 역할을 하는 오케이스트레이터가 여러 서비스를 묶어서 조율할 수 있어야 한다. 이 오케스트레이터는 외부에 노출되는 접점이다.- 예를들어 주문이라는 서비스가 들어오면 고객 서비스, 상품 서비스, 배송 서비스에 역할을 분배하여 요청하는 중재자를 의미한다. 2. 연출 (Choreography)- 특정한 서비스가 실행되면 메시키큐에 producer가 이벤트를 넣고 그 곳을 바라보면서 대기하던 consumer..

    간단한 카카오 챗봇 만들기

    node.js 공부한 것으로 한번 테스트 해보기 위해서 카카오 플러스친구를 만들고 그곳에서 호출하는 api를 만들어 연동해봤다. 일부러 wedul 플러스 친구 정보와 친구추가를한 사용자들에 정보를 담을 데이터는 redis에 넣어봤다. 플러스친구 만들기우선 카카오 플러스친구에 들어가서 플러스친구를 만들었다. 플러스 친구에 wedul이라고 검색하면 이제 나온다. 신기하다.친구 추가 url : http://pf.kakao.com/_qMxnEj 이제 친구 추가후에 채팅창에서 보여줄 안내 대화를 만들기 위해 api를 만들었다. api 만들 때 필요한 상세 내용들은 문서에 잘 나와있다. 아주 간단해서 10분이면 다 만들듯??? 그렇게 만든 api를 aws 프론티어에 올려서 카카오 플러스친구에 연동했다. Develo..

    node.js에 swagger 적용

    Spring Boot에 적용했었던 swagger를 node.js에도 적용해보자. spring boot에서는 자동으로 만들어졌으나, node.js에서는 Definition을 적용해줘야해서 귀찮다. 설정 방법을 알아보자. 설치 패키지12"swagger-jsdoc": "^3.0.2","swagger-ui-express": "^4.0.0"cs Definition정의 swagger에 대해 적용할 프로그램에 대한 정보와 path, api들 위치등에 대해 정의한 definition을 정의한다.1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768..

    Swagger 라이브러리를 사용하여 API 내용 정리하기

    Web 개발을 진행하다보면 다양한 API를 개발하게 된다. 하지만 정리하기가 쉽지 않고 이를 위해서 인터페이스정의서를 계속 정리하기도 사실 쉽지 않다. 이를 위해서 한번에 API 내용이 정리되어 한눈에 볼 수 있도록 제공해주는 library가 있다. 이 library인 swagger를 적용해보자. 1. 라이브러리 추가 Swagger 사용을 위한 라이브러리를 gradle에 추가하자.12compile group: 'io.springfox', name: 'springfox-swagger2', version: '2.5.0'compile group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.5.0'cs 2. Swagger 설정 관련 내용 Configu..

    Tistory 외부 Editor API Tistory Editor 사용후기

    티스토리를 사용하다보니 에디터가 너무 옛날이라 사용하기가 힘들었다. 그래서 찾아보던중 외부 API를 이용하여 개발한 프로그램이 있어서 사용해보았는데 너무 좋았다. 가장 좋았던 이유는 캡처프로그램을 통해 캡처 후 Ctrl + C와 Ctrl + v를 통해 등록이 가능하다. 이 부분이 너무 편하다. 그리고 드래그 앤 드롭으로 사진을 옮겨서 첨부할수 있어서 좋은 것 같다. 다운로드 주소 http://tistory-editor.tistory.com/ 지원 OS 윈도우, mac

    Java8 스트림(stream) 연산

    리덕션 연산 Stream의 reduce 메소드는 2개의 인자를 받아 인자와 같은 값을 리턴하는 (T,T) -> T 메소드이다. 첫 번째 인자는 누적되는 값이 되고, str2는 foreach처럼 순서대로 요소가 들어오는 방식이다. public static void main(String args[]) { List list = Arrays.asList(new String[] {"a", "b", "c"}); Stream stream = list.stream(); Optional opt = stream.reduce((str1, str2) -> str1 + str2); opt.ifPresent(System.out::println); } =>> 리턴 값 "abc" 또 다른 형태의 reduce 메소드 위에서 소개한 r..

    Java Json Library Jacson Annotation 소개

    restFul API를 만들다 보면, 어떤 항목을 serialize 제외하거나 null인 항목은 제외하거나 하는 작업이 필요로 할 때가 있다. 이를 Jackson 라이브러리의 Annotation을 사용하여 하는 방법을 확인해보자. [Maven 셋팅] 1234567891011 2.9.2 com.fasterxml.jackson.core jackson-databind ${jackson.version} Colored by Color Scriptercs 예제로 사용될 Student Dto 클래스이다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647package com.wedul.common.dto; /** *..

    REST API 효율적인 설계 방법

    REST 구성 구성 요소표현방법내용ResourceHTTP URI자원을 정의VerbHTTP Method자원에 대한 행위를 정의RepresentationsHTTP Message Pay Load자원에 대한 행위의 내용을 정의ex) Resource : /wedul/member Verb : HTTP POST Representations : { "id" : "wedul" }REST 특성 1. 유니폼 인터페이스 -> HTTP 표준만 따르면 어떠한 기술이든 사용가능 (HTTP/JSON, HTTP XML) 2. 무상태성 (STATELESS) 3. 캐시 가능 -> 웹 캐시, CD을 이용한 캐싱 가능 4. 자체 표현 구조 (SELF-DESCRIPTIVENESS) -> API 내용만 보고도 별도의 문서 없이도 쉽게 이해가 가..

반응형