Next.js 15 에서 MSW 적용하기 (feat. GraphQL)
Next.js 15 + GraphQL 조합에서 msw(2.6.6.)를 적용하면 msw의 인터셉터 함수가 GraqphQL의 operation 함수를 가로채지(intercept) 못하는 문제가 발생한다.
Next.js 15 + GraphQL 조합에서 msw(2.6.6.)를 적용하면 msw의 인터셉터 함수가 GraqphQL의 operation 함수를 가로채지(intercept) 못하는 문제가 발생한다.
DT 진단을 할 수 있는 제품의 MVP를 만들고 있었다. MVP를 개발할 당시까지만 해도(합의된) 프로덕트의 도메인은 dtlab.co.kr 하나였다.
api요청의 취소가 가능한 AbortablePromise를 구현해보았다.
에러 처리 방법에는 다음과 같이 2가지 방법이 있다.
AbortController 인터페이스는 하나 이상의 웹 요청을 취소할 수 있게 해준다.
제네릭은 타입 정보가 동적으로 결정되는 타입이다. 제네릭을 통해 같은 규칙을 여러 타입에 적용할 수 있기 때문에 타입 코드를 작성할 때 발생할 수 있는 중복 코드를 제거할 수 있다. 쉽게 말해, 제네릭은 선언 시점이 아니라 생성 시점에 타입을 명시하여 하나의 타입만이 아닌 다양한 ...
부모로부터 상속받은 특정 값을 활용해 테스트하기 위해서는 상속하는 부모 컴포넌트와 자식 컴포넌트를 만들어야한다. 아무 값이 없는 자식 컴포넌트를 만든다. 그리고, AbstractComponent를 extend한다. AbstractComponent에는 테스트할 때 사용할 값들을 가지...
class Person {
타입 호환성은 어떤 타입을 다른 타입으로 취급해도 되는지 판단하는 것이다. 정적 타입 언어의 가장 중요한 역할은 타입 호환성을 통해 컴파일 타임에 호환되지 않는 타입을 찾아내는 것이다. 어떤 변수가 다른 변수에 할당 가능하기 위해서는 해당 변수의 타입이 다른 쪽 변수의 타입에 할당...
자바와 같은 다른 언어에서 인터페이스는 클래스를 구현하기 전에 필요한 메서드를 정의하는 용도로 쓰인다. 타입스크립트에서는 좀 더 다양한 것들을 정의하는데 사용된다. 타입스크립트에서 인터페이스로 정의할 수 있는 타입의 종류와 인터페이스로 타입을 정의하는 방법을 알아보겠다.
아래의 코드는 캐시 추가 충전 버튼에 대한 테스트 코드이다.
기본적으로 터치 이벤트의 처리는 브라우저가 담당하는 영역이다. touch-action 속성을 통해 어떤 요소 내에서 브라우저가 처리할 터치 액션의 목록을 지정할 수 있다. 표준 터치 제스쳐로는 터치를 사용한 스크롤(panning)과 여러 손가락을 사용한 확대/축소(pinch zoo...
type Width = number | string;
자바스크립트는 동적 타입 언어이다. 따라서 변수의 타입은 런타임에 결정된다. 반대로, 타입스크립트는 정적 타입 언어이다. 타입스크립트는 자바스크립트의 모든 기능을 포함하면서 정적 타입을 지원한다. 정적 타입 언어는 변수의 타입이 컴파일 타임에 결정된다.
객체를 만들 때, 하나의 생성자로 여러 객체를 만들 수 있다. 하지만 싱글턴은 필요에 의해 단 하나의 객체만을 만들 때 사용한다. 즉, 전체 시스템에서 하나의 인스턴스만 존재하도록 보장하는 객체 생성 패턴을 말한다.
무료악보 구매 방법
::ng-deep .cdk-overlay-pane {
ES6에서 도입된 Generator Function는 사용자의 요구에 따라 다른 시간 간격으로 여러 값을 반환할 수 있으며, 내부 상태를 관리할 수 있는 함수이며, function generatorFunction() { / ... / }와 같이 사용한다. 즉, Generator F...
ES6에서 도입된 이터레이션 프로토콜(iteration protocol)은 데이터 컬렉션을 순회하기 위한 프로토콜(미리 약속된 규칙)이다. 이터레이션 프로토콜을 준수한 객체는 for…of 문으로 순회할 수 있고 Spread 문법의 피연산자가 될 수 있다.
const getBaumSweet = (n) => {
10 ≤ chores length ≤ 30
export function pingPong(startNumber: number, endNumber: number): string {
lst = ['u', '6', 'd', '1', 'i', 'w', '6', 's', 't', '4', 'a', '6', 'g', '1', '2', 'w', '8', 'o', '2', '0']
kakao.maps.load(() => {
배열 arr1과 arr2가 주어집니다. 각 배열의 원소는 숫자 1부터 13까지로 이루어져 있습니다.
자연수가 들어있는 배열 arr가 매개변수로 주어집니다. 배열 arr안의 숫자들 중에서 앞에 있는 숫자들부터 뒤에 중복되어 나타나는 숫자들 중복 횟수를 계산해서 배열로 반환하도록 solution 함수를 완성해주세요. 만약 중복되는 숫자가 없다면 배열에 -1을 채워서 반환하세요.
var countBits = function (n) {
function arraydiff(a, b) {
--primary0: #fdf6f6;
type Partial<T> = { [P in keyof T]?: T[P]; };
이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다.
function solution(n) {
다음과 같은 흑백 세상에 오렌지 나무와 사과나무가 있습니다. a는 사과나무의 위치를, b는 오렌지 나무의 위치를 나타냅니다.
타입스크립트 공식문서에 compilerOptions들로 typeRoots와 types를 아래와같이 정의한다.
navigator.geolocation.getCurrentPosition((result) => {
@Directive({ selector: '[footerScroller]' })
$ npx gatsby new my-blog-starter https://github.com/JaeYeopHan/gatsby-starter-bee
@ViewChild('telEl') telEl: ElementRef;
ngAfterViewInit() {
전체 화면 높이를 차지하도록 요소의 스타일을 지정하려면 높이를 100vh로 설정하면된다. 하지만 예상되로 되지 않는 것을 경험할 것이다. 웹 브라우저에 기본적으로 보이는 주소 줄까지 높이로 계산해, 가려진 영역 때문에 스크롤이 발생한다.
분명하진 않지만 HTML 요소는 3차원으로 생성된다. x축과 y축에 정렬된 것 외에도 z축에 놓일 수 있고, 3차원에서의 위치를 제어한다.
배열 리터럴은 Array생성자 함수와 그 프로토타입으로 이루어져 있다. Array.prototype에는 배열 메소드가 모두 담겨있다. Array의 prototype은 객체이다. proto가 생략 가능하기 때문에 배열 인스턴스가 마치 자신의 메소드인 것처럼 호출이 가능하다.
단일 페이지 애플리케이션(Single Page Application, SPA)는 모던 웹의 패러다임이다. SPA는 기본적으로 단일 페이지로 구성되며 기존의 서버 사이드 렌더링과 비교할 때, 배포가 간단하며 네이티브 앱과 유사한 사용자 경험을 제공할 수 있다는 장점이 있다.
.container {
&:before {
자바스크립트 데이터 타입은 크게 두 가지로 분류된다.
어떠한 객체가 만들어지기 위해 그 객체의 모태가 되는 녀석을 프로토타입이라고 한다.
1. 한 컴포넌트 안에서 mobiliance 결제 iframe을 랜더해야하는 상황이다.
개발을 하다보면 스크롤을 잠깐 막아야하는 상황이 발생하곤 한다.
MDN: A closure is the combination of a function and the lexical environment within which that function was declared
ex1) 인접한 경우
How to handle query parameters in a router link. One of:
We detected that the Chromium Renderer process just crashed. This is the equivalent to seeing the 'sad face' when Chrome dies. This can happen for a number o...
목적: 원하는 Text가 제대로 나오는지, A를 클릭했을 때 기대하는 동작을 하는지 등을 테스트 합니다. 작은 수정에도 테스트가 깨지기 쉽고 Mock Injection해서 UI만 테스트 하는것도 공수가 많이 들어갑니다.
로컬 컴파일 시점에서는 아무 문제 없는 코드가 배포한 프로덕션에서 에러가 난다.😭
call + back: something will call this function back sometime somehow
모바일 웹에서 호버 효과가 발생하는 이슈가 있다. 모바일에서 그게 가능한 것일까?라는 의문이 들 수도 있다.
sticky가 적용된 엘리먼트의 부모 요소의 height 범위 내에서 fixed으로 작동되지만 그 외의 영여에서 static으로 동작한다.
고정된 헤더와 푸터 스크롤값에 따라 감추기
height: 44px;
cashComponent에 paymentTermsDescription 자식 컴포넌트가 있고 자식 컴포넌트에 formControl을 정의해놓은 상태에서 나는 에러였음.
const sub$ = new Subject();
sprite-instagram: (
Resolution
컴포넌트에서 옵저버블을 구독하면 이 컴포넌트가 종료될 때 구독했던 옵저버블을 해지하는 것이 좋다고 알고 있을 것이다.
// chargeCash가 호출되고 있는지 감시하는 로직
node version upgrade
switch(expression)
.image-container {
1. 절대 경로 (주소 앞에 '/'를 붙여야한다)
::ng-deep .modal-dialog {
position: fixed;
.container {
.flexcontainer {
: 디렉티브가 적용되는 DOM 엘리먼트를 참조하기 위해 ElementRef를 디렉티브 생성자로 주입받습니다.
Design System
인터페이스는 클래스에서 구현부가 빠졌다고 이해하면 편하다. 즉, 어떠한 객체가 이러이러한 프로퍼티 혹은 메소드를 가진다고 선언하는 것이다. 실질적인 구현은 이를 구현한다고 선언하는 클래스에 맡긴다.
⇒ 인수를 연속적인 observable 형태로 변환한다
/ 히어로의 이름은 인자로 받은 정규표현식에 매칭되지 않아야 합니다. /
웹 애플리케이션 파일 업로드는 크게 두가지 방식이 있다.
Object.keys() 메서드는 개체 고유 속성의 이름을 배열로 반환합니다. 배열 순서는 일반 반복문을 사용할 때와 같습니다.
앵귤러에는 부모로 이벤트를 보내는 방법에 @Output과 EventEmitter가 있다.
@Component({
위의 코드는 Angular에서 ngIf를 처리할 때 아래와 같이 변환 됩니다.
DOM 프로퍼티
1) setTimeOut
\- 범위, 영역 [네이버 사전]
\- 자바스크립트 엔진은 표현식을 평가할 때 문맥, 즉 컨텍스트(Context)에 고려하여 암묵적 타입 변환을 실행한다
javascript의 가장 큰 특징중의 하나는 single-threaded 언어라는 점이다.
대부분의 경우 this의 값은 함수를 호출한 방법이 결정합니다. 실행하는 중 할당으로 설정할 수 없고 함수를 호출할 때 마다 다를 수 있습니다. ECMAScript 5는 함수를 어떻게 호출했는지 상관하지 않고 this 값을 설정할 수 있는 bind 메서드를 도입했고, ECMAScr...
IT 동아리 NEXTERS에서 앱을 만들고 있다.
쉽게 말하면 문제가 있는 패턴이나 코드를 찾기 위해 사용되는 정적 분석 툴이다.
Welcome, Gatsby! This starter is full-package for your new blog!