본문 바로가기

반응형

Welcome !

(441)
[elastic search] REST API 실습 (GET, POST, PUT, DELETE, UPDATE) 실습 시작 전 elsaticsearch 와 kibana 를 모두 on 해놓기 1. classes라는 index(=db) 가 있는지 확인해보기 curl -XGET http://localhost:9200/classes // 정리된 상태로 결과물을 보려면 pretty 붙이기 curl -XGET http://localhost:9200/classes\?pretty { "error" : { "root_cause" : [ { "type" : "index_not_found_exception", "reason" : "no such index [classes]", "resource.type" : "index_or_alias", "resource.id" : "classes", "index_uuid" : "_na_", "in..
[elasticsearch] "Content-Type header [application/x-www-form-urlencoded] is not supported","status":406 elasticSearch에서 PUT 또는 POST를 하는 경우 나온 에러 "Content-Type header [application/x-www-form-urlencoded] is not supported","status":406 elasticsearch 6.0 이후부터는 content-type을 꼭 넣어야 한다고! 아래와 같은 명령어를 curl -XPOST http://localhost:9200/classes/1/ -d ' {"title": "acb", "subject": "def"}' {"error":"Content-Type header [application/x-www-form-urlencoded] is not supported","status":406}% 이렇게 옵션을 추가해주니 되었다. curl..
[elasticsearch, kibana] homebrew로 설치하기 on mac 맥북 Elasticsearch / kibana homebrew를 사용해서 설치하기 (맥북) elasticsearch 설치 전, JDK 설치 / java_home 환경변수 설정이 필요하다. 1. JDK 설치 https://blckchainetc.tistory.com/376 JAVA JDK mac m1에 설치하기 JDK를 mac m1에 설치하는 방법 (homebrew 이용) 1. homebrew가 없다면 먼저 설치하기 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 2. openJdk 설치하기 br.. blckchainetc.tistory.com 2. JAVA_HOME 환경변수 설정 http..
JAVA_HOME 환경변수 설정 on 맥북 Mac Os X JDK 설치 후 JAVA HOME 환경변수 설정 방법 1. 내가 쓰고 있는 shell이 무엇인지 알기 ( bash / zsh ) echo $SHELL 2. JAVA_HOME 변수에 값 넣어 해당 파일로 넣기 bash 의 경우 echo export "JAVA_HOME=\$(/usr/libexec/java_home)" >> ~/.bash_profile zsh 의 경우 echo export "JAVA_HOME=\$(/usr/libexec/java_home)" >> ~/.zshrc * 만약 multiple JDK versions 이 설치되어 있다면 특정해주기 echo export "JAVA_HOME=\$(/usr/libexec/java_home -v 1.7)" >> ~/.bash_profile (또는 ~/.zs..
JAVA JDK mac m1에 설치하기 JDK를 mac m1에 설치하는 방법 (homebrew 이용) 1. homebrew가 없다면 먼저 설치하기 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 2. openJdk 설치하기 brew install openjdk 3. 설치되었는지 확인하기 $(brew --prefix openjdk)/bin/java --version 4. arm64 hardware 인지 확인하기 file $(brew --prefix openjdk)/bin/java #결과 : /opt/homebrew/opt/openjdk/bin/java: Mach-O 64-bit executable arm64
[gitflow Error ] /Applications/Sourcetree.app/Contents/Resources/bin/getopt: No such file or directory flags:FATAL unable to parse provided options with getopt. gitflow 설치 후 init rep하려니 아래와 같은 에러가 나왔다. Error : /Applications/Sourcetree.app/Contents/Resources/bin/getopt: No such file or directory flags:FATAL unable to parse provided options with getopt. 이유를 찾아보니 sourceTree path와 뭔가 꼬인 것 같다. 해결법 $ cat ~/.gitflow_export => export FLAGS_GETOPT_CMD=/Applications/Sourcetree.app/Contents/Re~ 이런게 쭉 보인다. $ nano ~/.gitflow_export => 파일 편집하러 가서 위에서 본 저 줄을 모두 삭제한다. ..
[gitflow Error] 'fatal: branch 'develop' does not exist' gitflow설치 후, webstorm 오른 아래쪽에 no-git 이었나 요걸 클릭해서 init repo(gitflow 시작) 클릭하니 아래의 에러가 나왔다. Error 'fatal: branch 'develop' does not exist 해결법 $ git checkout develop develop으로 체크아웃 한 후 init repo를 다시 클릭하면 된다. 만약 에러가 Error 'fatal: branch 'master' does not exist Master로 나오면 master로 checkout 해주고 init repo 를 하면 된다. Reference : https://stackoverflow.com/questions/46915350/got-fatal-branch-master-does-not-..
[React] select options box 사용하기 선택지를 주어야 할 때 select, option tag? 를 사용한다. option에는 key가 꼭 있어야 한다고 한다. 사용 예제 const [symbol, setSymbol] = useState('ETH'); . . . ETH TTK 
Expected `onClick` listener to be a function, instead got a value of `object` type. [ERROR] Expected `onClick` listener to be a function, instead got a value of `object` type. "onClick" 이 실행되어야 한다는 오류 return {v} 여기의 OnClickd을 넣자마자 오류가 나왔다. 찾아보니 () => {실행시킬 함수} 로 click을 하면 바로 실행되게 만들면 오류가 사라진다. Transactions {info['block'].transactions.map((v,i) => { return {search(info['block'].transactions[i])}} className={"hover"}>{v} })} ​
[ERROR]DELETE_FAILED: IamRoleLambdaExecution (AWS::IAM::Role)Cannot delete entity, must detach all policies first. (Service: AmazonIdentityManagement; Status Code: 409; Error Code: DeleteConflict; 에러난 상황 : aws batch 서버의 권한 - 실행 역할을 재설정(기존 거를 다른 거로 변경)하기위해 serverless.yml의 소스 코드에 iam을 추가하고 재배포하려다가 에러가 났다. ERROR: DELETE_FAILED: IamRoleLambdaExecution (AWS::IAM::Role) Cannot delete entity, must detach all policies first. (Service: AmazonIdentityManagement; Status Code: 409; Error Code: DeleteConflict; 해결법 : aws - Lambda 함수 - 구성 - 권한 - 실행 역할을 바꿀 새로운 역할 이름으로 변경해준다. -> serverless.yml 코드에 iam 주소를..
package.json 최신 버전으로 업데이트하기 TypeScript 컴파일 중 /node_modules/mongoose/node_modules/mongodb/mongodb.ts34.d.ts (3688,4): Expression expected. 요런 에러가 많이 났다. package.json 최신 버전으로 한번에 업데이트를 해주니 오류 해결되었다. npm 모듈 버전 확인 npm show [모듈명] version npm 모듈 개별 업데이트 npm update [모듈명] npm package.json 모듈 한번에 업데이트 시키기 npm install -g npm-check-updates 최신버전 확인 ncu 최신버전 업데이트 ncu -u 모듈 설치 npm install
Error: EPERM: operation not permitted Error: EPERM: operation not permitted, unlink ~ serverless 서버를 배포하다가 나온 에러 해결법을 찾아보니 여러개의 방법이 있었는데 첫번째로 많은 사람들이 사용한 방법은 1. 캐시 지우기 $ npm cache clean --force 2. 최신 버젼 npm 을 관리자 admin으로 설치하기 $ npm install -g npm@latest --force 3. 캐시 다시 지우기 $npm cache clean --force 이었는데 나는 그대로 에러가 나왔다. 에러 끝에 자세히 보니 Error: EPERM: operation not permitted, unlink '/Users/'userName'/Documents/project/batch-serverless/.b..
Resource handler returned message: "Request must be smaller than 5120 bytes for the UpdateFunctionConfiguration operation [ERROR : ] Resource handler returned message: "Request must be smaller than 5120 bytes for the UpdateFunctionConfiguration operation aws lambda 서비스에 배포할 때 나온 에러 메세지이다. 원인 : 환경 변수의 용량이 초과됨 아래 문서에 보면 함수의 환경변수의 사이즈가 4KB까지로 정의되어 있다. Documents : https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html Lambda quotas - AWS Lambda The Lambda documentation, log messages, and console use th..
AWS Lambda Error: Unzipped size must be smaller than 262144000 bytes AWS Lambda Error: Unzipped size must be smaller than 262144000 bytes AWS Lambda 서버 배포 중 4KB 환경변수 크기 에러 해결 이후 또 나타난 에러 해결 방법 : 프로젝트 파일 크기를 크게 만드는 개발 packages를 제외시키면 된다. serverless.yml 파일에서 package: exclude: - node_modules/** node_modules/** 를 제외하도록 추가하기 -> 해결되었다 ! References : https://stackoverflow.com/questions/45342990/aws-lambda-error-unzipped-size-must-be-smaller-than-262144000-bytes AWS Lamb..
[JavaScript] 객체 복사하기 <옅은 복사 vs 깊은 복사> JavaScript, 자바스크립트에서 객체 복사하는 여러 방법들이 헷갈려서 직접 공부겸 글로 남기기 긴 글 짧게 요약하면 ↘↘ clone() : 복사를 하고 참조도 한다. (옅은 복사) deepClone() : 복사를 하고 참조는 없다. (깊은 복사) 참조란 ? = > 같은 객체를 바라보고 있는 것 const example1 = { a:1, b:2}; const copied = example1; console.log(example1); // { a:1, b:2} console.log(copied); // { a:1, b:2} // example1의 'a'의 값을 100으로 변경 example1.a = 100; console.log(example1); // { a:100, b:2} console.log(c..
[mysql] ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constraint fails dataGrip으로 mysql 의 테이블에 원격 저장소에서 불러온 데이터를 복붙하려고 했는데 계속 에러가 났다. 해당 테이블을 삭제하려고 해도 삭제가 안되었다. (update & delete 불가라고 나옴) 터미널 가서 삭제 명령어를 쳐보니 foreign key 설정이 되어 있어서 (다른 데이터와 연결되어 있어서) update & delete를 제한한다고...! 일단 복붙할 곳은 local mysql 이고 당장 foreign키 사용 예정이 없어서 강제 해제하고 삭제 진행 -> 다시 복붙을 했다. // 해당 db에 들어가기 use [database-name]; // foreign_key 해제 set foreign_key_checks = 0; // 원하는 테이블 삭제 drop table [table-name..
TypeScript 타입스크립트 컴파일 과정 일반 프로그램이 실행되는 과정 1. 프로그래머가 다수의 텍스트 파일을 작성한다. 2. "compiler"라는 특별한 프로그램이 텍스트 파일을 파싱하여 추상 문법 트리 (AST, Abstract Syntax Tree) 자료구조로 변환시킨다. * AST는 공백, 주석, 탭 or 공백 등의 결과를 완전히 무시한다. 3. 컴파일러는 AST를 바이트코드 (bytecode)라는 하위 수준의 표현으로 변환한다. 4. 바이트코드가 만들어졌으면 런타임이라는 다른 프로그램에 바이트코드를 입력해 평가하고 결과를 얻을 수 있다. => 컴파일러가 소스 코드를 파싱해 AST로 만들고 다시 AST를 바이트코드로 변환한 것을 런타임이 평가하도록 지시하는 것 타입스크립트가 실행되는 과정 1. 소스 코드 작성 by 프로그래머 2. 타입..
[mac/ homebrew] nvm node 특정 버전으로 다운그레이드 현재 node 를 brew를 통해 이미 다운받은 상태인 경우 * 다운 받은 상태가 아니라면 바로 brew install node@version 을 입력해서 다운ㅇ 1. 현재 노드 버전 확인 node -v 2. 다운 가능한 node 찾기 brew search node -> 여기에 나오는 버전들 중 하나 선택 협업 중이라면 .nvmrc 파일에 적힌 버전으로 설치 3. 원하는 node 버전으로 설치 brew install node@14 or brew install node 14.17.1 --> 처음에 이렇게 했다가 오류가 나옴! 그냥 위에서 보인 그대로 node@14 요런식으로 다운해야함 => brew install v16으로 다시 깔음 @ 4. 기존 버전과의 연결을 끊고 새롭게 다운한 버전 연결시키기 br..
[Mongoose] virtual field만들어서 populate 사용하기 with options 모델 스키마에 virtual 필드를 생성 const MenuCategorySchema: Schema = new Schema( { // MySql 메뉴 카테고리 IDX idx: { type: Number, required: true, unique: true }, // MySql 매장 IDX restaurantIdx: { type: Number }, // 카테고리 명 name: { type: String, required: true }, // 노출 우선순위 priority: { type: Number, required: true }, // 삭제 여부 isDeleted: { type: Boolean, required: true, default: false }, // 카테고리 설명 description: { t..
[TypeScript] interface object 안 objects들 인터페이스, 배열 안 배열의 인터페이스 만들기 오브젝트 안 오브젝트들 인터페이스로 만들기 { name: "test", items: { "a": { id: 1, size: 10 }, "b": { id: 2, size: 34 } } } 위의 items를 인터페이스로 만들 때 [key: key의 type]을 사용한다. 위의 예제를 인터페이스로 작성할 때 아래처럼 작성한다. "a", "b" 는 string이므로 [key: string] 이렇게! export interface Item { id: number; size: number; } export interface Example { name: string; items: { [key: string]: Item }; } [ [ {1:1}, {2:2}, {3:3}, {4:4} ], [ {1:1} ], [ {2:..
[mongoDB] Operations updating... Query and Projection Operators Query Selectors $eq ( = equal ) 같은 value $gt ( = less than or equal) ~보다 작거나 같은 value $ne ( not equal ) ~와 같지 않은 value $nin ( not in an array ) 주어진 배열 요소들 중 하나라도 일치하지 않는 경우 Logical $and 여러 경우를 모두 포함한 경우 $not ~ 가 아닌 ( 해당 조건의 field가 없는 곳까지 모두 반환 ) db.inventory.find( { price: { $not: { $g..
[MongoDB] Replica set이란? A replica set in MongoDB 몽고디비에서 A replica set이란 똑같은 데이터 set을 유지하는 mongod processes의 한 그룹이다. Replica sets은 redundancy(중복)과 high availability(높은 사용성)을 제공하고 모든 production deployments의 기본이 된다.  Redundancy & Data Availability Replication은 redundancy와 data availability를 제공한다. 다른 데이터베이스 서버들의 여러개의 데이터 카피본들로, replication은 하나의 데이터베이스 서버의 손상에 대항할 수 있다. 어떤 경우에는 Replication은 읽기 능력을 향상시켜주기도 한다. clients가 다른 서..
[MongoDB] Mongoose Query 총 정리 updating...      Query()     Query.prototype.$where()      Query.prototype.Symbol.asyncIterator()for/ await/ of loop와 사용되는 asyncIterator 를 반환한다. find() 쿼리문과만 사용된다. 명시적으로 요 매서드를 부를 필요가 없다, 자바스크립트 런타임이 불러 준다. * asyncIterator() An AsyncIterator is an Object that returns a sequence of Promises. Since AsyncIterators are AsyncIterables, you can use for await (const value of iterable) {} to easily loop..
[MongoDB] options - lean, new, upsert MongoDB options 몽고디비 crud 를 하다가 자주 마주친 { lean: true, new: true, upsert: true } 옵션들 자세히 공부해보쟈~~~ 1. lean 디폴트 값으로 MongoDB 쿼리는 Mongoose Document class를 반환한다. 일반 바닐라 자바스크립트 objects 보다 훨씬 무겁다. 몽구스 도큐먼트 클래스는 아주 많은 change tracking 의 internal 상태를 가지고 있기 때문이다. { lean: true } 옵션값을 넣어주게 되면 몽고스에게 POJO (Plain Old JavaScript Object) 를 달라고 말하게 된다. mySQL의 { raw : true } 와 비슷하다. lean() 옵션을 준 return 값의 사이즈는 = 36,..

반응형