Heroku deploy error - devDependency module 설치 이상
Heroku devDependency Module ‘not found’ ErrorProblemGraphQL-yoga로 만든 간단한 api 서버를 heroku에 deploy하려는데 계속 오류가 발생했다. 에러 메세지는 아래와 같다. 123456...2021-03-27T10:35:52.906327+00:00 app[web.1]: [nodemon] starting `babel-node index.js`2021-03-27T10:35:52.939566+00:00 app[web.1]: sh: 1: babel-node: not found2021-03-27T10:35:52.976590+00:00 app[web.1]: [nodemon] failed to start process, "babel-node" exec not found2021-03-27T10:35:52.978952+00:00 app[web.1]: [nodemon] Error... package.json 파일에서...
React 기본 내용 정리
리액트 라이브러리를 설치함으로써 시작할 수 있다. 기본적으로 Node.js가 설치되어있어야 한다. create-react-app리액트 프로젝트를 처음부터 구성하는 것은 쉽지 않은 일이다. 리액트는 구성이 되어있는 프로젝트를 바로 시작하는 라이브러리를 가지고 있다. 아래 명령어로 간단하게 시작할 수 있다. 이때 npx를 사용하는 이유는 최신 리액트 버전을 사용하기 위해서이다. 공식 도큐먼트에서도 1npx create-react-app my-app my-app은 디렉토리명이다. 현재 디렉토리에 폴더가 생성되어 리액트 프로젝트가 만들어진다. 리액트 구성리액트는 ‘컴포넌트’ 단위로 이루어져있다. 컴포넌트는 함수형과 클래스형으로 두 가지 방법으로 만들 수 있는데 최신 리액트는 함수형을 주로 사용한다고 한다. 함수형으로 전환되던 시기에는 많은 예시가 클래스형으로 이루어져 있었는데 이제 공식 도큐먼트의 예시도 함수형으로 되어있으며 이를 더 범용적으로 사용하는 추세로 보인다. 컴포넌트란...
graphql-yoga로 GraphQL 시작하기
기본 사용법을 익히기 위해 graphql-yoga를 사용했다. 서버 열기123456789import { GraphQLServer } from "graphql-yoga";import resolvers from "./graphql/resolvers";const server = new GraphQLServer({ typeDefs: "graphql/schema.graphql", resolvers,});server.start(() => console.log("Graphql Server Running")); 서버를 열면서 스키마 파일을 지정하고, resolver 또한 설정해준다. 포트를 따로 지정하지 않으면 4000번 포트로 서버가 열리고 브라우저로 접속시 깔끔한 ui를 가진 플레이그라운드로 간편하게 api를 테스트 해볼 수 있다. 오른쪽에 보이는 DOCS,...
특정 포트 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에서 시각화된다.하지만 이런식으로 구조를 짠 경우...