뚜벅뚜벅 개발일기

「세상은 죽을 때까지도 전체를 다 볼 수 없을 만큼 크고 넓으며, 삶은 말할 수 없이 아름다운 축복이다.」

Typescript - Array 인터페이스

typescript 소스코드 뜯어보기

microsoft의 typescript 오픈소스 코드를 뜯어보고 array 인터페이스를 분석해보자. interface Array 먼저, Array는 다양한 타입을 다루기 때문에 제네릭을 이용해 유동적으로 타입을 정해줄 것이다. 1 2 3 4 5 6 7 // lib.es5.d.ts interface Array<T> { length:...

Typescript - Type Guards 타입 가드

참고 : typescript 핸드북 1 2 3 4 5 6 7 8 9 10 11 12 13 interface Bird { fly(); layEggs(); } interface Fish { swim(); layEggs(); } function getSmallPet(): Fish | Bird { // ... } let...

AWS S3 접근성 통제하기

접근 정책, 버킷 정책, 접근 제어 목록을 이용해 S3 접근을 관리해보자.

S3 버킷에 누가, 어떻게 접근하도록 할 것인지 정의할 수 있다. 이를 통해 S3에 저장된 객체를 세분화해 통제할 수 있으며 접근 정책, 버킷 정책, 접근 제어 목록의 접근성 통제의 세가지 주요 방식에 대해 알아본다. 1. 접근 정책 IAM 으로 S3의 객체를 세분화해 통제할 수 있다. 예를 들어, S3 풀 액세스 정책을 생성하고 10명의 회원이...

구글 api를 사용해 소셜 로그인 구현하기

구글 API 등록을 마쳤다는 전제하에 진행합니다. 구글 소셜 로그인 전체적인 흐름은 아래의 사진과 같다. 복잡해보이지만 크게 아래의 세단계로 이루어진다. 1. 사용자를 구글 authorization page로 보내 code 받기 URL POST /o/oauth2/v2/auth Host : accounts.google.com Pa...

AWS S3 presigned URL로 이미지 업로드 하기

회원가입할 때 프로필 이미지를 등록하는데 이 이미지를 어떻게 S3에 업로드할 지 생각해본 결과 두가지 방법으로 나눌 수 있었다. 이미지를 서버로 가져와 서버에서 직접 S3로 업로드 presigned url을 반환해 브라우저 단에서 이미지를 s3로 업로드 이미지의 크기가 커졌을 때, 서버로 이미지를 가져오는 것이 비효율적이라는 생각이 들어...

Typescript - 자료구조 stack 만들기

javascript의 Array를 사용하지 않고 Stack 자료구조를 구현해보자. 스택 참고 : 스택과 큐 스택은 나중에 들어간 것이 (Last-In) 먼저 나오는 (First-Out) LIFO 형태의 자료구조이다. 링크드 리스트를 이용해 구현해볼 것이다. Interface 인터페이스는 일종의 규약으로 이를 사용해 특정 형식의 클래스를 만들 ...

AWS S3 정적 웹사이트 호스팅하기

apidoc로 만든 API 명세서를 S3로 웹 호스팅해봅시다.

APIDOC 공식 홈페이지 AWS CLI S3 공식 문서 - sync API 명세서를 만들어 협업하는 동료들과 공유하기 위해 웹 호스팅을 하고 쉽게 관리하기 위해서 aws-cli를 이용해 로컬 디렉토리와 s3 버킷을 동기화시키는 방법을 알아보자. APIDOC 코드에 있는 API 어노테이션을 이용해 API 명세서를 만들어준다. 1 2 3 4 5 ...

API Gateway와 커스텀 도메인 연결하기

Route53에서 커스텀 도메인을 구매해 API Gateway와 연결해봅시다.

Lambda 함수에 API Gateway를 연결한 후 엔드포인트를 확인하면 https://<uniqueid>.execute-api.<region>.amazonaws.com 형태의 복잡한 URL을 볼 수 있다. 나뿐만 아니라 내가 만든 API를 사용해줄 프론트엔드 개발자를 위해 커스텀 도메인을 구매하기로 결정했다. Route 5...

Webpack 이란 ?

참고 웹팩 핸드북 웹팩 공식홈페이지 Serverless Webpack Webpack 웹팩이란? 웹팩은 모듈 번들러로 웹 애플리케이션을 구성하는 자원(HTML, CSS, Javascript, Images 등)을 각각의 모듈로 보고 이를 조합해 병합된 하나의 결과물로 만드는 도구 중 하나이다. 웹팩에서의 모듈은 웹 애플리케이션을 구성하는 모든...

인공지능을 위한 알고리즘과 자료구조 (4)

함수의 점근적 분석

함수의 점근적 분석 (asymptotic analysis) 문제의 크기가 아주 크게 증가했을 때, 우리가 갖고 있는 이 알고리즘은 얼마 만큼의 계산량을 요구하는가를 분석한다. 만약 같은 문제를 푸는 서로 다른 2개의 알고리즘을 갖고 있다고 했을 때, 어떤 알고리즘이 더 좋은 지에 대해 과학적이고 수치적으로 표현할 수 있다. 두 알고리즘을 비교하기 ...