본문 바로가기

분류 전체보기110

ECS 기본 개념 계기 자사 인프라가 ECS(fargate) 서비스를 사용하고 있어 알아보게 되었다. ECS란? AWS에서 제공하는 컨테이너 오케스트레이션 서비스로 여러 어플리케이션 컨테이너를 쉽고 빠르게 실행하고, 컨테이너를 적절하게 분배 및 확장 & 축소 할 수 있도록 도와주는 서비스입니다. 주요개념 Fargate EC2 인스턴스의 서버나 클러스터를 관리할 필요 없이 컨테이너를 실행하기 위해 Amazon ECS || EKS*를 위한 기술입니다. 컨테이너를 실행하기 위해 가상 머신 클러스터를 프로비저닝, 구성 및 확장할 필요가 없습니다. 서버 유형을 선택하거나, 클러스터를 확장할 시점을 결정하거나, 클러스터 패킹을 최적화할 필요가 없습니다. 서버 또는 클러스터에 대해 고민하거나 상호 작용할 필요가 없습니다. 애플리케이션.. 2022. 2. 17.
타입스크리트 / type 과 interface 의 차이 계기 사내 프로젝트 코드 분석 중 어떤 곳에는 type를 쓰고 어떤 곳에는 interface를 써서 정확히 어떤 차이점이 있는지 이해할 수 없었다. 확장하는 방법 ( 상속 ) interface AnimalInterface { species: string height: number weight: number } interface AfricaAnimal extends AnimalInterface { continent: string } interface는 extends로 확장한다. type AnimalType = { species: string, height: number, weight: number } type AfricaAnimal = AnimalInterface & { continent: string }.. 2022. 2. 11.
해시 함수들 속도 || 그 외 암호시스템 계기 jwt 토큰 발급시 유저들마다 secret 키를 다르게 해주기위해 secret 키와 user의 pk 를 암호화해서 secret 키를 포함하여 토큰을 발급해주었다. 이 상황에서 해시 함수를 어떤걸 써야될지 고민이되었다. 암호시스템 1. HMAC [Hash-based Message Authentication Code ] 해싱에 대해서 다시 얘기해볼 때 입력값이 같다면 해싱된 해시값은 항상 동일하기 때문에 수정에 대한 검출은 가능하지만 거짓 행세하는 것을 검출하기는 어렵다. 거짓행세에 대해 검출하고 차단하기위해 SHA256으로 해싱된 메세지를 메세지 인증 코드(private key 2022. 2. 8.
타입스크립트 / generic 제너릭 [ Generic ] 선언 시점이 아니라 생성 시점에 타입을 명시하여 하나의 타입만이 아닌 다양한 타입을 사용할 수 있도록 하는 기법이다. 데이터 타입을 정하지 않고 외부에서 지정하는 방법 여러 가지 타입에서 동작하는 컴포넌트를 생성하는데 사용 특징 컴파일시 타입 안정성을 보장한다. 캐스팅 관련 코드를 제거할 수 있다. 코드 예시 자료구조 클래스로 예를 들어보겠다. class stack { private data: any[]= []; constructor(){} public push(item: any) { this.data.push(item) } public pop():any { return this.data.pop(); } ... } export default stack 해당 자료구조엔 어떤타입.. 2022. 2. 2.
FP - Pipe Pipe 의 사전적 의미 배관들은 A 에서 B 라는 지점으로 자원을 보내는 용도로 많이 사용된다. 단순히 터널과 같은 공간의 개념이라고 생각하면 된다. 파이프 함수는 실제 현실에서의 파이프(배관)에서 아이디어를 가져왔다고 봐도 좋겠다 FP - Pipe 파이프는 단방향 통신을 위한 용도로 사용된다. 하나의 파이프는 그 이전 파이프에서 전달된 결과를 파라미터로 삼아 또 다른 결과를 내놓는다. 파이프를 이해하기위한 선행 학습 순수함수 같은 입력 값에선 같은 반환 값을 보장한다. 함수 외부 스코프의 그 어떠한 변수의 값도 바꾸지 않는다. 그런데 왜 순수 함수가 파이프에서 중요한가? 위에서 말한 것처럼, 한 파이프가 반환하는 값은 그 다음 파이프의 입력 값으로 전달된다. 그런데 파이프가 상황에 따라서 다른 값을 .. 2022. 1. 31.
DIP- 의존역전 원칙 의존 역전 원칙 (Dependency Inversion Principle) 의존 역전 원칙은 "고수준 모듈은 저수준 모듈의 구현에 의존해서는 안 된다. 저수준 모듈이 고수준 모듈에서 정의한 추상 타입에 의존해야 한다."를 의미한다. 이것을 아주 쉽게 말하면, "자신보다 변하기 쉬운 것에 의존하지 마라"라고 이해하면될것같다. 자주 변화하는 것보다 변화하기 어려운 것, 변화가 거의 없는 것에 의존하라는 것 고수준 모듈: 어떤 의미 있는 단일 기능을 제공하는 모듈 저수준 모듈: 고수준 모듈의 기능을 구현하기 위해 필요한 하위 기능의 실제 구현 현실 세계를 예 내가 PayService를 개발하고 싶은 개발자라고 가정하자 Pay수단에는 되게 여러가지 방법이 있다 SamsungPay, KaKaoPay, NaverP.. 2022. 1. 21.