특정 포트 listening 강제 종료
vs code에서 서버를 열고 사용하다보면 창을 reload 한다던가 하여 터미널 창이 지워질 때가 있다. 이 경우 더이상 이 터미널에서 서버 상태 로그를 볼 수 없고 서버를 멈출 수도 없다. 바로 이런 경우.. 이 경우 cmd로 들어가 강제로 종료시켜야 한다. 사용중인 프로세스의 pid 확인1$ netstat -ano cmd 창에서 위 명령어를 입력하면 프로세스의 pid를 확인할 수 있다. 강제종료시킬 포트의 pid를 확인한다. 강제 종료1$ taskkill /f /pid [pid] 명령어를 입력하면 강제종료를 시킬 수 있다.
GraphQL 이란
img + em { display: block; text-align: center; } GraphQL은 페이스북에서 만든 쿼리언어이다. 등장한지 얼마 안됐음에도 불구하고 인기가 매우 가파르게 올라가고 있지만 아직 GraphQL을 이용한 open API를 제공하는 곳은 국내 및 해외를 포함해도 많지않다. 쿼리언어 즉, SQL과 마찬가지이다. 하지만 둘의 구조적 차이는 분명하다. SQL이 DB 시스템에 저장된 데이터를 효율적으로 가져오는 목적으로 만들어진 반면, GQL은 web client가 데이터를 서버로부터 효율적으로 가져오는 것을 목적으로 한다. 따라서 SQL은 백엔드 시스템에서 사용되는 반면, GQL은 주로 클라이언트 시스템에 호출된다. GQL은 어느 특정 DB나 플랫폼에 종속적이지 않다. 일반적으로 GQL의 인터페이스간 송수신은 네트워크 레이어7의 HTTP POST 메서드와 웹소켓 프로토콜을 활용한다. Rest API vs GraphQLAPI에 가장...
Gulp 사용 오류 정리
Gulp 이슈 정리Gulp 사용 실습을 따라하다 발생한 오류들을 해결했던 방법들을 정리 해놓으려한다. gulp-image 설치 이슈 (ENONET) 위 에러가 발생해 이틀동안 원인을 찾았다. gulp-image는 이미지 파일을 압축하여 서버에 올려주는 작업을 해주는 라이브러리이다. gulp-image npm 설치 페이지에서 다양한 옵션을 확인 할 수 있다. 설치 명령어가 다음과 같이 나타나있다. 여기서 사용중인 os에 맞게 External Dependencies를 먼저 설치하고 모듈을 설치해야 사용시 오류가 나지 않는다.뒤늦게 관련 모듈을 설치했으나 해결되지 않았고, gulp-image 모듈 삭제 후 재설치하여 문제를 해결할 수 있었다. gulp-sass css path 이슈gulp-sass는 scss를 css 파일로 변환시켜주는 라이브러리이다. scss를 읽어 생성된 css 파일은 지정 dest 경로에 정상적으로 생성되었는데 파일 경로를 제대로 읽어오지 못해 적용이 되지...
Gulp.js
Gulp.jsGulp는 오픈소스 자바스크립트 toolkit이다. Node.js로 만들어진 task runner로 시간을 잡아먹는 반복적인 작업들을 자동화하는데 사용된다. 사용 예로는 파일 합치기, 유닛 테스트 작업, linting, 최적화 작업 등이 있겠다.
Data analytics3 - Athena, Glue 실습
: 로그 데이터를 Athena - Glue로 분석하기CloudWatch 로그 데이터를 S3 로 옮기는 방법은 두 가지가 있다. Export log data to S3 directly Using Kinesis Firehose to push log messages from CloudWatch Logs to S3 옵션 1의 경우 S3를 로그를 오랜기간 보관하려는 비용적 이유로 사용한다면 적절하다. Export 작업은 콘솔 또는 CLI로 가능하며 매우 간단한데, 대신 클라우드와치에 들어온 데이터가 Export 가능한 상태가 될 때까지 최대 12시간이 걸릴 수 있다고 한다. 데이터가 매우 실시간으로 들어오는 경우 발생하는 이슈 같은데, 의 작성자가 테스트 한 바로는 15분이 걸렸다고 한다. real-time 분석을 필요로 한다면 옵션 1 보다는 2가 더 적절한 선택지이다. 데이터 내보내기를 했지만 새로 들어오는 데이터만 S3로 보내지는 것 같다. 다시 데이터를 쏘아보기는 번거로워서...
Data analytics2 - DataLake
DataLakeData lake는 정형화된 그리고 비정형화된 그 어떤 데이터도 모두 저장할 수 있는 중앙화된 집중식 레파지토리이다. 말 그대로 필터링이나 정제화가 진행되지 않은 데이터가 흐르는 강이다. 특징 데이터를 구조화 할 필요 없이, 있는 그대로 저장하여 데이터에 따라 서로 다른 분석 작업을 진행 할 수 있고, 빅데이터 처리, 실시간 분석, 머신 러닝등 다양한 작업이 가능하다. 빅데이터 시대에 다양한 데이터를 통제하기 좋다. 기술의 복잡성을 이해하지 않은 상태로 데이터레이크 구축을 하게 되면 Data swamps(데이터 늪)이 될 수 있으므로 주의해야 한다. Data warehouse와 용도가 다르다. 서로를 보완할 수는 있지만 대체할 수는 없다. S3를 통해 시작된다. Data Warehouse와의 차이점Data warehouse의 경우 관계형 데이터들을 빠르게 쿼리하기 위해 정형화된(clean한) 데이터를 저장하는 최적화된 데이터베이스이다. 반면,...
Data Analytics1 - Athena
표준 SQL을 사용하여 AWS S3에 저장된 데이터를 쉽게 바로 분석할 수 있는 대화형 쿼리 분석 서비스 특징 사용하기 쉽다. (아테나가 S3 저장소를 가리키도록 하고 -> 스키마를 정의하고 -> 표준 SQL로 쿼리 한다) 서버리스 서비스이다 - 인프라를 관리할 필요가 없다. 99.999999999%의 객체 내구성을 보장한다. 자동으로 쿼리를 병렬 실행하므로 많은 data set과 복잡한 쿼리가 있더라도 결과를 빠르게 도출해낸다. AWS Glue와 통합되어 사용할 수 있다. 편리한 가상화를 위해 Amazon QuickSight와 통합된다. 사례 Streaming Analytics Firehose는 데이터를 column 단위의 파일 형식으로 변환시키고 다양한 집계를 수행한다. 데이터가 S3에 그러한 형식으로 저장되고 나면 Athena에서는 데이터들을 표준 SQL로 쿼리하고 이 결과는 Amazon QuickSight에서 시각화된다.하지만 이런식으로 구조를 짠 경우...
AWS - DynamoDB6
DynamoDB로 집계내기 문제 DynamoDB는 pure ‘key-value’ NoSQL로 집계와 같은 메서드는 제공하지 않는다. 생각해본 다른 방법 Apache Hive 연동 별도 table 두기 Amazon Redshift 이용 1. Hive 사용 장점 : RDB에서 사용하는 쿼리문을 그대로 사용할 수 있음 단점 : Hive에 저장한 데이터가 항상 최신 데이터임이 보장되지 않는다. 2. 별도의 table 두기 예상했던 시나리오 : append table과 update table을 나눠 append table에 데이터가 추가 될 때마다 stream trigger를 걸어 총 재생수와 같은 갱신되는 항목들의 값을 update table에 저장해두고 요청시 추가 연산 없이 값을 전송하도록 한다. 고려하지 못한 점 : 현재 집계 내야 하는 내용은 date 를 어떻게 설정하느냐에 따라 계속해서 달라지는 값이므로 어느 테이블에 고정되어 변하지 않는 값이 아니다. ->...
AWS - DynamoDB5
DynamoDB 설계키 설계DynamoDB는 NoSQL이기 때문에 어떤 쿼리를 사용하게 될 지 생각해보고 해당 작업을 빠르게 할 수 있는 키를 설정하는 것이 매우 중요하다. DynamoDB의 기본키는 ‘파티션 키’와 ‘정렬 키’로 이루어진다. 새 테이블을 만들 때 기본키는 무조건 지정해야 한다. 기본키기본키는 테이블의 각 항목을 나타내는 고유 식별자로, DynamoDB 기본키의 종류는 두 가지가 있다. 파티션키(해시키) : 하나의 속성으로 구성되는 단순 기본키. 파티션 키로만 구성되어있는 테이블에서는 어떤 두 개의 테이블 항목도 동일한 파티션 값을 가질 수 없다. 파티션 키 & 정렬 키(범위(range) 속성) : 파티션 키와 정렬 키 두가지 속성으로 구성되는 복합 기본 키이다. 복합키를 사용하는 테이블의 서로 다른 두 항목은 같은 파티션 키 값을 가질 수 있다. 하지만 정렬 키 값은 달라야 한다. 그 외에도 더욱 유연한 쿼리를 위해 보조 인덱스 기능을...
AWS - DynamoDB4
DynammoDB 요금 정책요금 정책에는 두 가지가 있다. 온디맨드 용량 모드 요금 해당 APP이 테이블에서 수행하는 데이터 READ/WRITE에 대해 요금이 부과된다. 워크로드의 확장/축소를 DB가 알아서 처리하기 때문에 읽기 및 쓰기 처리량을 지정할 필요가 없다. APP의 트래픽 처리량을 예측하기 힘든 경우 적합 프로비저닝 용량 모드 요금 초당 읽기 및 쓰기 수를 지정해 사용하는 정책이다. 자동 조정을 사용하면 지정한 사용률에 따라 테이블의 용량을 자동 조정하여 APP의 성능은 보장하고 비용은 절감할 수 있다. 트래픽이 예측 가능하거나 트래픽이 일관되거나 점진적 변화가 일어나는 앱에 적합하다. RDMS에서 DynamoDB로 마이그레이션Near zero downtime migration from mysql to dynamodb 방법은 크게 두가지가 있다. AWS DMS 사용 : AWS DMS는 DynamoDB를 타겟으로 마이그레이션을 지원하는...