본문 바로가기

분류 전체보기

(465)
[AWS] 구조화된 데이터 분석하기 1. 레드 시프트(RedShift) : 분석 대상 데이터를 저장하는 DB로서 대용량 데이터의 검색과 분석에 최적화된 DB 서비스이다.레드 시프트는 대용량 데이터를 열 방향으로 부석 및 집계하는 작업을 효율적으로 수행하도록 만들어진 DB이다. [특징] -앞서 이야기 했듯이 열 방향 분석 및 집계를 빠르게 처리할 수 있는 DB이다. -여러 서버에서 분산 처리하는 구조이기 때문에 분석할 데이터양이 늘어도 확장이 자유롭다. - 레드 시프트는 DWH(Data WareHouse) 및 BI(Business Intelligence)의 기본 DB로 적합하다. - 레드 시프트는 RDS와 마찬가지로 관리형 DB 서비스로 제공되기 때문에 사용자는 서버 구성 및 데이터 중복성과 같은 것들에 대해서 고민할 필요가 없음. - 레드..
[AWS] API Gateway API Key 알아보기 AWS API Gateway에서 API Key를 활성화하여 서비스를 제공할 경우에는 사용자는 API키 정보를 필수로 탑재하여 사용을 해야 한다. 키 값이 일치할 경우에는 사전에 설정한 할당량과 속도에 맞게 서비스되고 그렇지 않은 경우 InvalidKeyParameter 예외가 발생한다. 아래와 같은 방식으로 구현하여 사용할 수 있다. 1. 사용자가 HEADER값에 API KEY값을 입력하여 요청. (사용자에게 API KEY값을 공유하여 사용한다.) : 사용자는 REST API 요청시 X-API-Key 헤더로서 API KEY를 함께 전달한다. (단, 이와 같이 사용하면 API KEY값이 도난당할 수 있으므로 보안에 위험이 있다.) 2. 권한 부여자가 제공한 API KEY를 사용하기. 사용자가 Token값과..
[AWS] API Gateway Lambda 권한 부여자 사용하기 API에 대한 액세스 권한을 제어하는데 Lambda 함수를 사용한다. 권한 부여자는 OAuth나 SAML 같은 보유자 토큰 인증 전략을 사용할 수 있고 헤더, 경로, 쿼리문자열, 단계 변수 또는 컨텍스트 변수 요청 파라미터 정보를 활용하여 인증을 할 수 있다. *SAML : https://ko.wikipedia.org/wiki/SAML 간단히 요약하자면 Lambda로 권한 부여하기 위한 방법은 아래와 같이 두가지로 나눌 수 있다. 1. TOKEN을 사용하여 권한 부여 2. 헤더, 쿼리 문자열, 단계 변수, 컨텍스트 변수 같은 요청 파라미터를 사용하여 권한 부여 [API와 Lambda 연결하는 방법] 1. API Gateway 콘솔로 이동후 API를 선택하고 "권한 부여자"를 선택한다. 2. "+새로운 권..
[AWS] API Gateway 엑세스 제어 (안증/ 인가 / 권한 / API KEY) API Gateway에서 리소스 및 메소드별 엑세스 제어하는 방법에는 여러가지 방법이 있다. (AWS의 서비스들은 항상 최종의 솔루션을 제공하지 않는다. 다양한 수단과 방법만 제공하고 최종 결정은 사용자의 몫으로 남겨둔다.) 1. 리소스 정책 사용 - 특정 IAM 권한이나 역할을 부여 받은 사용자가 리소스별 API 호출 여부를 제어하기 위해 사용된다. - 리소스 정책은 JSON 정책 문서를 작성하여 API에 연결하여 사용한다. - 리소스 정책은 아래와 같이 크게 3가지 형태로 제공된다. 1> 지정된 AWS 계정의 사용자 2> 지정된 원본 IP 주소 범위 또는 CIDR(사이더) 블록 3> 지정된 가상 사설 클라우드 (VPC) 또는 VPC 엔드포인트(계정 무관) *[참고 CIDR : https://ko.wi..
OAuth 알아보기 [OAuth란 무엇인가?]Wiki에서 이야기 하는 OAuth는 아래와 같다. (https://ko.wikipedia.org/wiki/OAuth)OAuth는 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준이다.[1] 이 매커니즘은 여러 기업들에 의해 사용되는데, 이를테면 아마존,[2] 구글, 페이스북, 마이크로소프트, 트위터가 있으며 사용자들이 타사 애플리케이션이나 웹사이트의 계정에 관한 정보를 공유할 수 있게 허용한다. 위 내용을 사례와 함께 정리해 보자. 친구와 소통하는 웹서비스가 있다고 가정하자. 이 웹서비스는 사용자의 친구들의 정보를 Facebook으..
[JAVA] OkHttp로 REST API 호출하기 Android에서 많이 사용하고 있는 OkHttp에 대해 알아보자. OkHttp는 Square에서 제공하는 오픈소스 프로젝트이며 동기, 비동기 방식을 각각 제공해줌으로서 개발자가 선택하여 사용할 수 있다. [GET 동기]public void get(String requestURL) { try { OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .addHeader("x-api-key", RestTestCommon.API_KEY) .url(requestURL) .build(); //GET Request //동기 처리시 execute함수 사용 Response response = client.newCall(requ..
[JAVA] HttpClient로 REST API 호출하기 이번 페이지에서는 Apache에서 제공하고 있는 HttpClient 라이브러리를 이용해 REST API를 호출하는 방법을 알아보자.  [GET]public void get(String requestURL) { try { HttpClient client = HttpClientBuilder.create().build(); // HttpClient 생성 HttpGet getRequest = new HttpGet(requestURL); //GET 메소드 URL 생성 getRequest.addHeader("x-api-key", RestTestCommon.API_KEY); //KEY 입력 HttpResponse response = client.execute(getRequest); ..
[JAVA] HttpURLConnection로 REST API 호출하기 이번 페이지에서는 HttpURLConnection을 이용해 REST API를 호출하는 방법을 알아보자. [GET] public void get(String strUrl) { try { URL url = new URL(strUrl); HttpURLConnection con = (HttpURLConnection) url.openConnection(); con.setConnectTimeout(5000); //서버에 연결되는 Timeout 시간 설정 con.setReadTimeout(5000); // InputStream 읽어 오는 Timeout 시간 설정 con.addRequestProperty..