전체 글
자바스크립트 Jest로 유닛 테스트하는 방법
자바스크립트 Jest 라이브러리를 사용하면 작성한 자바스크립트 코드가 예상대로 작동하는 지 테스트해볼 수 있습니다. Jest 테스트 라이브러리 설치 $ npm i --save-dev jest 라이브러리 설치 후 package.json의 script 부분에서 "test": "jest"를 다음과 같이 수정해줍니다. { "scripts": { "test": "jest" }, "devDependencies": { "jest": "^29.2.2" } } Jest 유닛 테스트 방법 다음과 같이 더하기 함수 sum이 있다고 해보겠습니다. // sum.js function sum(a, b) { return a + b; } module.exports = sum; 이를 테스트하라면 sum.test.js 파일을 새롭게 생성..
[집무실 레터 ⑨] 나만의 러닝 페이스 찾기
요즘 러닝을 하고 있어요. 상수 나들목에서 마포대교까지 이어지는 한강을 따라 3킬로미터를 뛰어요. 한두 번 뛰다 보니 벌써 같은 풍경이 눈에 들어오지만, 그러한 반복에 애써 실망하지 않으려 해요. 솔직히 말해 같은 풍경은 지루해요. 그런데 저는 풍경을 보러 나온 것이 아니라 러닝을 하러 나간 것이거든요. 달릴 때의 숨가쁨과 달리고 난 다음 주어지는 상쾌함과 명료함이 좋아서 말이죠. 보이는 풍경보다는 달리는 몸에 집중할 때 달리는 일이 새롭게 느껴져요. 현재 제 러닝 페이스는 5’50”에요. 초반엔 조금 빠르게 뛰지만 돌아올 무렵에는 체력이 떨어져서 천천히 뛰어서 나온 평균치예요. 체력이 된다면 조금 더 열심히 뛰면 되고, 힘에 부친다면 페이스를 낮춰서 천천히 뛰면 되더라고요. 중요한 건 제 나름의 페이스..
태국 방콕 맛집과 핫플 추천: 백종원과 함께 뽑은 가볼만한 현지 식당 TOP 7
안녕하세요. 여행자 휘입니다. 이번에 5박 6일로 태국에 다녀왔는데요. 방콕에 방문하신다면 이번 포스팅에서 소개드리는 7가지 현지 맛집과 핫플레이스를 한 번 방문해보시길 조심스레 추천드려봅니다! 참고로 저는 이번이 세 번째 방콕 방문입니다! 나름 엄선해서 골라봤어요. 😎 1. 나이 쏘이 (Nai Soie) - 한국인들이 좋아하는 국수 맛집 첫 번째로 추천드릴 곳은 한국인에게 잘 알려진 국수 맛집인 나이 쏘이인데요. 이미 관광 코스 중 하나가 된 곳이기도 하죠. 방문해보시면 아시겠지만 현지인 반 한국인 반으로 한국인에 특화된 국수 맛집입니다. 메뉴판은 아래와 같고요. 면을 먼저 고르고 아래에서 토핑을 고르시면 됩니다. 무난하게 A1이나 A2를 시켜주시면 됩니다. 가격은 평균 120바트인데요. 현재 환율로 ..
팀 페리스 ‹타이탄의 도구들›
나는 이 책을 쓰면서 이른바 세상에서 가장 큰 성공과 혁신을 거듭한 인물들을 만나보았다. 그들과 함께 대화하고, 산책하고, 식사를 하고, 회의를 하면서 알게 된 사실들 중 하나는 그들은 대부분 ‘배거본더(vegabonder, 방랑자 또는 유랑자)’였다는 것이다. 잠시 머리를 식히기 위해 여름휴가에 떠나는 여행이 아닌, 더 긴 시간을 들여 더 깊이 관찰하며 세상을 걷는 여행 전통인 ‘배거본딩’의 삶을 실천하는 사람들이었다. 배거본딩은 일상에서 최소한 6주 이상 벗어나 여행을 한다는 뜻을 갖고 있다. 짧게는 몇 개월에서 길게는 몇 년에 이르기까지, 충분한 시간을 갖고 떠나는 여행일 때 비로소 우리는 일상의 삶을 새롭게 바꿔나갈 수 있다. 배거본딩은 삶에 대한 새로운 관점이다. 우리에게 소유가 아닌 선택권을 ..
NestJS 기초 (13) JWT를 사용한 인증 인가 처리와 데코레이터 구현
이번 포스팅에서는 JWT를 사용하여 사용자의 인증 및 인가를 처리하고 이를 데코레이터로 구현하여 가드로 활용하는 방법에 대해 알아보도록 하겠습니다. JWT 기본 개념 JWT는 Jason Web Token의 약자로 두 주체가 안전한 방식으로 클레임(claims)을 주고 받는 방법입니다. JWT에 포함된 클레임은 JSON 객체로 인코딩되는데요. 공식 웹사이트인 Jwt.io에서 JWT를 인코딩 또는 디코딩해볼 수 있습니다. JWT 구성 JWT를 구현하기 전에 JWT를 사용하기 위해 알아야 할 기본 구성에 대해 살펴보도록 하겠습니다. JWT는 크게 3가지 요소인 헤더, 페이로드, 서명으로 구성되는데요. 각 요소는 .으로 구분합니다. 헤더(header) 헤더에는 JWT 유형과 알고리즘이 담깁니다. { "typ":..
자바스크립트 Set 설명
자바스크립트의 Set() 은 고유한 값만을 가진 새로운 객체를 생성하는 데 사용합니다. 모든 유형의 값들을 저장할 수 있기 때문에, NaN과 undefined 또한 저장할 수 있습니다. 예시를 통해, 사용 방법을 살펴보도록 하겠습니다. 이번 예시에서는 set 메소드를 사옹하여 배열 내 중복 요소들을 제거해 보도록 하겠습니다. const numbers = [1, 1, 1, 2, 3, 4, 4, 5, 6, 6, 7, 8, 9, 10, 10] [...new Set(numbers)]; // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 추가적으로 Set()을 통해 배열 내 중복 요소들을 제거한 다음, 요소를 포함하고 있는지 확인해볼 수 있습니다. 다음과 같이 Set.prototype.has(value..
자바스크립트 Promise, async, await 정리
1. Promise Promise 생성자 함수는 비동기 요청을 처리하는 방법 중 하나인데요. 실행은 되었지만 결과를 아직 반환하지 않은 객체를 의미합니다. 비동기 처리를 수행할 콜백 함수를 인수로 받습니다. 콜백 함수는 resolve와 reject 함수를 인수로 받습니다. 성공 또는 실패 하나의 결과만 반환됩니다. const promise = new Promise((reslove, rejcet) => { if (/*비동기 처리 성공*/{ resolve('value'); } else { /*비동기 처리 실패*/ reject(new Error("...")); } }); 2. async/await async와 await는 프로미스를 보다 쉽게 구현하는 방법입니다. 프로미스의 then, catch, finall..
NestJS 기초 (12) 가드를 사용한 인증과 인가
인증 및 인가의 기본 로직은 1. 접근 여부를 파악하고 2. 신원 정보를 확인하고 3. 일치하면 true 아니면 false를 리턴하는 것입니다. 과정을 통과하지 못하는 경우 보통 권한 없음(401) 또는 제한됨(403) 에러를 반환합니다. 가드란? 가드는 CanActivate 인터페이스를 구현하며 싱글 리포지토리를 갖습니다. 가드는 요청을 조건에 따라 라우트 핸들러에서 처리 여부를 결정합니다. 이를 보통 인증이라 합니다. Express 애플리케이션에서 인증은 보통 미들웨어에서 처리했습니다. 그러나 미들웨어는 next()를 호출한 다음 어떠한 핸들러가 실행되는지 알지 못합니다. 반면, 가드는 ExecutionContext 인스턴스에 접근할 수 있으며, 다음에 실행될 것을 분명히 알고 있습니다. 가드를 통한..