MSW 동적 경로가 정적 경로를 가로채는 문제 해결하기
·
Frontend
MSW에서 request handler를 작성할 때 경로 매칭과 관련하여 주의해야 할 점을 공유합니다.문제 및 원인MSW request handler를 작성할 때 정확한 경로로 핸들러를 작성해도 오류가 발생할 때가 있습니다. 다음과 같이 구현했다고 해봅시다.const handlers = [ http.get('/posts/:id', postResolver), http.get('/posts/latest', latestPostsResolver),];fetch('/posts/latest'); 여기서 /posts/latest로 요청을 보냈을 때 /posts/latest를 다루고 있는 핸들러에 매칭될 것이라고 일반적으로 예상할 것입니다. 하지만 예상과 달리 /posts/:id를 다루는 핸들러에 매칭되는데요. 이..
AI로 만든 자동화 소프트웨어를 커뮤니티에 배포하기까지
·
회고
자동화를 하게 된 계기나는 게이머다. 내 인생에서 게임을 안 했던 적은 고등학생 때 뿐... 5살 때부터 그랜드체이스를 했고 초등학생 때는 마비노기, 중고등학생 때는 롤을 했다. 커서는 이것저것 취향에 맞으면 먹어보고 여전히 게임을 하며 살고 있다. 2021년인가? 2022년부터는 로스트아크를 했었다. 내가 시작할 당시 메이플스토리에서 로스트아크로 넘어오는 사람들이 많았는데, 영업하는 사람들이 공통적으로 언급하는 로아의 장점 중에 하나가 바로 "커스터마이징"이었다. 다른 게임처럼 눈코입만 선택하는 수준이 아니라, 이마의 넓이, 미간 넓이, 턱의 두께나 각도 등 디테일한 부분까지 자유롭게 설정할 수 있다는 점에서 "갓겜" 소리를 듣곤 했다. 개인적으로는 실사 그래픽에 거부감이 있어 커마를 해도 예쁘다는 생..
객체 리터럴 타입과 원시 타입 간 인터섹션 타입이 never가 아닌 이유
·
Frontend/JS, TS
책 "이펙티브 타입스크립트"의 아이템 37 "공식 명칭에는 상표를 붙이기" 부분을 읽던 중, 의문이 생겼다. 왜 객체와 원시 타입을 인터섹션하는데 never가 아닌 거지? 브랜디드 타입(Branded Type)을 공부하면서 생긴 의문을 정리하고자 이 글을 쓴다. 브랜디드 타입을 모르고 읽어도 무방하지만, 안다고 가정하고 글을 썼기 때문에 더 깊게 이해하고 싶다면 이 글을 추천한다. 객체 타입과 원시 타입의 인터섹션 살펴보기type A = number & object; // nevertype B = number & {}; // number & {}type C = number & { _brand: "C" }; // number & { _brand: 'C' } object의 타입은 정확히 object이다. 원..
브랜딩 기법 (Branded Type)
·
Frontend/JS, TS
구조적 타입 시스템의 호환성으로 인한 문제타입스크립트는 기본적으로 구조적 타입(Structural Type) 시스템으로 타입의 구조가 동일하면 타입 간 호환이 가능하다.덕분에 유연한 타입 사용이 가능하지만, 동시에 타입이 다름에도 불구하고 같은 구조를 가지고 있어 호환이 되는 불편이 있을 수 있다. type UserID = number;type PostID = number;async function getPost(userID: UserID, postID: PostID) { const response = await fetch(`/${userID}/${postID}`); const data = await response.json(); return data;}const userID: UserID = 1;..
달레 알고리즘 스터디 4기 회고
·
회고
달레 스터디 4기를 끝내며얼마 전 15주간 진행하던 알고리즘 스터디 달레스터디 4기가 끝이 났다. 이 스터디는 leetcode의 blind75를 매주 5문제씩 15주에 걸쳐 풀이하고, 풀이 코드를 상호 리뷰하는 스터디였다. 스터디의 근본적인 목적은 해외 취업에서 코딩테스트와 인터뷰를 준비하기 위함인 듯 하다. 실제로 해외에서 개발하시는 분들이나 해외 취업 준비 목적으로 참여하시는 분들이 많다. 전반적인 후기 나는 해외 취업보다는 그냥 꾸준히 코테 문제를 풀고 싶어서 + 커뮤니티 목적으로 참여했다. 문제 선정 및 배치Blind75는 이미 많은 사람들이 풀어보았고 인터뷰 등에서 자주 나오는 문제들을 선정해놓은 문제집이기 때문에 신뢰가 갔다. 또 이 문제집을 어떤 순서로 풀지 고민하지 않아도 스터디에서 정해놓..