본문 바로가기

Web development131

[EKS] 쿠버네티스에 AWS Credential 추가하기 서비스에서 AWS SQS에 메시지를 보내거나 하는 등 aws-sdk를 사용하기 위해 IAM User 인증이 필요한 경우 서비스에서 꼭 필요로 하는 권한만을 가진 IAM user를 만든다. 필요하다면 그룹도 함께 만들어준다. 생성된 유저의 액세스 키 ID와 시크릿 키를 잘 저장해둔다. 쿠버네티스 대시보드(kubectl proxy)로 가서, 서비스가 위치한 네임스페이스를 선택하고, 좌측 메뉴 하단의 Secrets 메뉴로 가서 우상단의 +를 눌러 Secret을 추가한다. 아래와 같은 형식으로 추가하면 된다. 단 data에 들어가는 key들은 base64로 인코딩하여 넣어야 한다. 변환사이트 링크 : https://www.convertstring.com/ko/EncodeDecode/Base64Encode api.. 2020. 6. 10.
[Typescript] Jest 모킹시 빨간줄 뜨는 문제 (Property 'mock' does not exist on type) mocking시 모킹한 모듈이 몇번 호출되었는지 확인하는 테스트 코드를 짤 때, mock 부분에 빨간줄이 뜨면서 에러가 날 때가 있다. IDE에서 관련된 힌트를 주지도 않아서 한참 헤맸는데... 알고보니 TS Lint 문제였다. 해결방법은 간단하다. // @ts-ignore expect(mockedModule.mock.calls.length).toBe(0); 바로 윗줄에 // @ts-ignore를 추가해주면 된다. 2020. 6. 2.
티스토리에 2차 도메인 연결하기 - 도메인 구입부터 연결까지 도메인은 후이즈, 가비아 등 여러곳에서 구입이 가능합니다. 저는 구글 도메인에서 구입하였습니다. 링크 : https://domains.google/ Google Domains | Register Your Domain Name – Google Domains Find your place online with a domain from Google, powered by Google reliability, security and performance. domains.google 내가 가지고 싶은 도메인을 검색해볼 수 있는데요. 저는 morolog를 구매하고 싶어 검색했습니다. 특정 끝자리를 가지고 싶을 경우 morolog.com 등으로 검색해도 됩니다. 검색하면 이런 결과화면이 나타납니다. 저는 morolog.d.. 2020. 5. 27.
[AWS] CodeStar로 브랜치별 production/staging 자동배포 환경 만들기 준비물 master 브랜치만 있는 CodeStar 프로젝트 진행과정 기존에 생성되어있는 CodeStar 프로젝트에 staging 브랜치를 추가한다.(기존 프로젝트는 master 브랜치용으로 사용된다) staging 브랜치용 CodeStar 프로젝트 생성 파이프라인 수정 권한 수정 테스트 프로덕션용으로 사용할 CodeStar 프로젝트는 이미 생성되어 있다고 가정함. 프로덕션용 CodeStar 프로젝트 이름 : moro-test-lambda-API (이 글에서 새로 생성할)스테이징용 CodeStar 프로젝트 이름 : moro-stag-test 아래 staging 브랜치 생성과정의 프로젝트명이 moro-cstest라고 되어있는데 무시하면 된다. moro-test-lambda-API 프로젝트에 브랜치 생성할때 .. 2020. 4. 13.
[AWS] SAM Local, CodeStar를 사용해 Lambda 로컬테스트 및 자동배포환경 만들기 본인 및 협업할 멤버는 이미 AWS 가입이 되어 있고, AWS Management Console Access 권한이 있다고 가정한다. 준비물 AWS 계정 및 콘솔 액세스 권한 Docker Homebrew Sourcetree(선택) aws-sam-cli 우선 aws-sam-cli 설치가 필요한데, npm package는 deprecated 되었으므로 Homebrew로 설치한다. $ brew tap aws/tap $ brew install aws-sam-cli $ sam —v // 설치 확인 혹시.. 버전 확인을 했을때 최신 버전을 설치했는데도 아래와 같은 알림이 뜬다면 moro-test-lambda-API ateam$ sam --version A newer version of the AWS SAM CLI .. 2020. 4. 9.
package-lock.json의 역할과 커밋해야 하는 이유 npm install시 자동으로 생기는 package-lock.json이 대체 무슨 역할인지 알아보자. package.json은 이 프로젝트 패키지의 정보들을 담고 있다. 이름, 버전 등을 포함하고 있는데, 의존성 모듈 정보도 가지고 있다. { "name": "myApp", ... "dependencies": { "express": "^4.16.4", ... } } dependencies에는 이 패키지 실행에 필요한 다른 모듈들의 이름과 버전 정보가 명시되어 있다. 그래서 다른 사람이 내 코드를 다운받아 실행하더라도, npm install만 실행하면 내가 설치했던 의존 모듈들이 함께 설치된다. 하지만, 여기엔 문제가 몇가지 있다. 첫번째 문제는, 명시된 모듈이 다른 버전으로 설치될 수 있다는 것이다. d.. 2020. 4. 3.
[Javascript] 이벤트루프와 호출 스택(call stack), 비동기성 자바스크립트의 큰 특징으로 비동기성과 싱글스레드, Non-blocking IO가 있다. 비동기성은 알겠고, 논 블로킹 IO도 비동기성에서 오는 특징이라는건 알겠는데, 비동기성은 어떻게 동작하는 것일까? 그것도 싱글스레드라면, 한번에 한 동작밖에 못하는게 아닌지? 우선 동기성과 비동기성은 간단히 그림으로 살펴보자. 한 동작을 수행하다가 다른 동작이 필요한 경우, 동기 : 응답이 반환될때까지 하던 일을 멈추고 기다린다. 비동기 : 응답을 기다리느라 하던 일을 멈추지 않는다. 여기서 언뜻 들었던 의문이 있다. 하던 일을 멈추지 않는다 = 여러 일을 동시에 한다 => 싱글스레드인데? 이 부분은 자바스크립트의 동작 원리, 특히 이벤트루프와 호출스택을 이해해야 한다. 호출 스택(call stack) 자바스크립트는 .. 2020. 4. 3.
[Javascript] for, setTimeout 퀴즈 아래와 같은 코드의 출력이 어떻게 될까? for (var i = 0 ; i { console.log(i) }, 1000) } 난 보고.. 1초 있다가 1, 또 1초 있다가 2, 또 1초있다가 3 찍힐거라고 생각했다. 정답은 1초 후 거의 동시에 3이 3번 찍힌다. 정답을 보고서, 아.. for문이 너무 빨리 돌아서 그렇구나? 1초안에 3번 도는게 끝나서 3이 세번 찍히는구나 했다. 그리고 await가 걸린것도 아니니 당연히 각 setTimeout은 거의 동시에 실행되니까, 그래서 거의 동시에 찍히는거구나 했다. (이건 당연한건데 왜 생각을 못했을까?) 그러면 for문 반복횟수를 늘리고, setTimeout 시간을 줄이면 다른 숫자도 찍히겠구나? for.. 2020. 3. 31.
[Javascript] map vs filter vs reduce for문 대신 map을 사용할 수 있다. const people = [ { name: 'effy', age: 13}, { name: 'kim', age: 7}, { name: 'cathy', age: 21}, { name: 'moro', age: 28}, { name: 'jamonda', age: 32} ] // for let names1 = []; for (const person of people) { names1.push(person.name); } console.log(names1); // map const names2 = people.map((person) => person.name) console.log(names2); names1과 names2는 같다. 값 반환에 조건이 필요한 경우 filte.. 2020. 2. 11.