PUB/SUB 설명 레디스를 사용하는 가장 큰 이유가 속도는 물론 아마 pub/sub 기능 때문이 아닐 까 싶다. SUBSCRIBE, UNSUBSCRIBE, PUBLISH는 게시자/구독자의 메시지 패러다임을 구현한다. 게시된 메시지는 구독자가 무엇인지에 대한 지식없이 채널로 특징이 지어진다. 구독자(SUBSCRIBE)는 하나 이상의 채널에 관심을 표명하고 해당 게시자가 누구인지에 대해 알 필요가 없고 관심있는 메시지만 수신을 한다. 이렇게 게시자와 구독자를 분리하면 확장성이 향상되고 보다 동적인 네트워크 토폴로지가 가능해진다. 특정 채널을 구독하는 방법은 다음과 같이 아주 간단하다. redis > SUBSCRIBE channel [channel ...] 위와 같이 간단하게 구독이 가능하며 발행자는 다른 ..
바야흐로 개발자 시대가 도래하고 있는 지금 프론트엔드 엔지니어들은 타입스크립트 없이 개발을 한다는 건 상상을 할 수도 없는 시점이다. 그동안 vue, react만 고집해 오다가 이번에 타입스크립트를 공부해 봤는데 생각보다 막 어렵게 다가오진 않았다. 제네릭에 대한 개념이 조금 생소하긴 했지만 몇 번 보다보니 알게 된거 빼곤 딱히 어려움이 없던거 같다. 아직 실무에 많이 사용을 해보진 않아서 함부로 말하기는 조심스럽겠지만 개념만 이해하기에는 자바스크립트만 알고 있으면 일주일 이내로 충분히 학습하기에 충분한 시간 이었다. 평소에 코딩을 할 때에도 !==, === 등으로 항상 타입을 체크해오는 버릇이 있던지라 타입에 대한 중요성을 알지 못했는데 이번에 공부를 하게 되면서 왜 사용해야 하는지 조금 적어볼까 한다..
기존 자바스크립트에 타입스크립트를 점진적으로 도입시에 충분히 나올만한 오류 상황이 DOM 조작에 관련된 오류일 것 같다. 아래와 같은 코드가 있다고 가정해보자. Recovered 자바스크립트로 위의 태그를 접근해야한다고 할 때 아래와 같이 선언을 해보자. const recoveredTotal = $(".recovered"); 위 처럼 선언을 하면 일단 문제 없이 동작이 되긴한다. 하지만 DOM API를 사용하고자 할 때 부터 다음과 같은 오류가 나기 시작한다. 왜냐하면 타입을 추론할 수 없기 때문이다. Property 'innerText' does not exist on type 'Element'.ts(2339) 이럴 경우에는 DOM에 대해서 타입 단언을 명확하게 해주어야 한다. 그러면 타입스크립트 오류..
타입스크립트 맵드타입을 알아보겠습니다. 맵드타입이란 기존에 정의가 되어 있는 타입을 새로운 타입으로 변환해 주는 것을 의미 합니다. 자바스크립트의 map 이라는 함수를 이용하는 것과 비슷합니다. const a = [1, 2, 3]; const b = a.map(item => item * 2); console.log(b); // [2, 4, 6] https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/map 자바스크립트의 맵은 오브젝트, 배열 등의 객체를 순회하면서 새로운 객체로 반환하는 함수 입니다. Array.prototype.map() - JavaScript | MDN map() 메서드는 배열 내의 모든 요..
유틸리티 타입이란 이미 정의해 놓은 타입의 문법을 변환할 때 사용하는 문법 입니다. 유틸리티 문법을 사용하지 않아도 타입스크립트를 사용하는데 크게 문제는 없지만 사용을 하게 된다면 타입을 좀 더 간결하게 사용할 수 있습니다. Partial 특정 인터페이스에서 다른 인터페이스로 받을 때 옵셔널로 처리하는 것을 의미한다. interface로 정의한 것과 type으로 정의한 동작방식이 같다. 즉 인터페이스 Product를 생성하고 일부분만 사용하고 싶을 때 Partial을 이용하면 된다. 하지만 너무 남용해서 사용하다보면 속성이 어떻게 들어오는지 헷갈릴수도 있으니 주의해서 사용하자. interface Product { id: number; name: string; price: number; brand: str..