Stouter's Blog
과정을 담는 개발 블로그입니다.
Tag 회고
Typscript로 개발을 하다가 함수의 return type과 관련하여 궁금증이 생겨서 멘토분께 질문을 드렸었다. 좋지 않은 질문이었음에도 훌륭한 답변을 해주셔서 그 안에 많은 긍정적인 사고를 할 수 있었다. 새로운 지식을 배웠으니 이를...
⚠️ 개인적인 의견이 잔뜩 담겨 있는 글이며, 생각을 담은 글이기에 글이 다소 정리되지 않았으며 옳지 않은 부분이 있을 수 있습니다.
약 5달간의 여정이 끝났다. 웹에 관해 아는 것이 전혀 없던 내가 어떻게 두려움도 없이 이 곳에 올 선택을 할 수 있었을까. 부스트캠프에 지원하기로 했던 결심은 내 개발 인생에서 가장 크고...
Tag BoostCamp
항상 기계적으로 구현했던 인증 부분에 관해서 어느날 의문이 들었다. 우리는 어떤 공격을 방어하기 위해 이러한 절차들을 마련해둔걸까? 과연 JWT 토큰 기반의 인증은 안전한걸까? 정리해보자.
NestJS에서는 인증 부분을 Guard를 통해 쉽게 구현할 수 있다. 우리는 현재 두 가지의 Guard를 사용하고 있다. 두 가지의 Guard의 이름을 criticalGuard와 looseGuard로 지었다.
SleepyWoods 서비스는 웹 게임 기반의 SNS로 개인화된 경험 및 데이터가 잘 지켜지는 것이 중요하다. 편리하지만, 안전하기도 한 회원 인증 서비스를 구현하기 위해 고민했던 부분을 정리해보자.
Typscript로 개발을 하다가 함수의 return type과 관련하여 궁금증이 생겨서 멘토분께 질문을 드렸었다. 좋지 않은 질문이었음에도 훌륭한 답변을 해주셔서 그 안에 많은 긍정적인 사고를 할 수 있었다. 새로운 지식을 배웠으니 이를...
⚠️ 개인적인 의견이 잔뜩 담겨 있는 글이며, 생각을 담은 글이기에 글이 다소 정리되지 않았으며 옳지 않은 부분이 있을 수 있습니다.
약 5달간의 여정이 끝났다. 웹에 관해 아는 것이 전혀 없던 내가 어떻게 두려움도 없이 이 곳에 올 선택을 할 수 있었을까. 부스트캠프에 지원하기로 했던 결심은 내 개발 인생에서 가장 크고...
Tag Trouble Shooting
NestJS에서는 dotenv 등의 외부 라이브러리가 아닌 내장된 ConfigModule를 통해 환경 변수를 접근할 수 있도록 해주는데. .env 파일을 삽입해두면 하위 모듈에서 이를 process.env 식으로 접근하여 환경 변수를 사용할 수 있다.
Tag Nestjs
부스트캠프에서 팀원들과 SleepyWoods라는 실시간 WebSocket 서비스를 만들었을 때, Socket.io를 사용했었다. 이번 글에서는 간단하게 클라이언트의 disconnect를 감지하는 부분을 구현해보자.
NestJS에서는 dotenv 등의 외부 라이브러리가 아닌 내장된 ConfigModule를 통해 환경 변수를 접근할 수 있도록 해주는데. .env 파일을 삽입해두면 하위 모듈에서 이를 process.env 식으로 접근하여 환경 변수를 사용할 수 있다.
Tag Socket
부스트캠프에서 팀원들과 SleepyWoods라는 실시간 WebSocket 서비스를 만들었을 때, Socket.io를 사용했었다. 이번 글에서는 간단하게 클라이언트의 disconnect를 감지하는 부분을 구현해보자.
Tag Crawling
회사에서 필요한 데이터를 수집 및 가공하는 과정에서 python으로 크롤링을 하게된 적이 있었다. 이 때 다양한 문제들을 접할 수 있었는데, 그 과정에서 얻어낸 정보들을 정리하기로 결심했다.
Tag Selenium
회사에서 필요한 데이터를 수집 및 가공하는 과정에서 python으로 크롤링을 하게된 적이 있었다. 이 때 다양한 문제들을 접할 수 있었는데, 그 과정에서 얻어낸 정보들을 정리하기로 결심했다.
Tag Typescript
항상 기계적으로 구현했던 인증 부분에 관해서 어느날 의문이 들었다. 우리는 어떤 공격을 방어하기 위해 이러한 절차들을 마련해둔걸까? 과연 JWT 토큰 기반의 인증은 안전한걸까? 정리해보자.
NestJS에서는 인증 부분을 Guard를 통해 쉽게 구현할 수 있다. 우리는 현재 두 가지의 Guard를 사용하고 있다. 두 가지의 Guard의 이름을 criticalGuard와 looseGuard로 지었다.
SleepyWoods 서비스는 웹 게임 기반의 SNS로 개인화된 경험 및 데이터가 잘 지켜지는 것이 중요하다. 편리하지만, 안전하기도 한 회원 인증 서비스를 구현하기 위해 고민했던 부분을 정리해보자.
Typscript로 개발을 하다가 함수의 return type과 관련하여 궁금증이 생겨서 멘토분께 질문을 드렸었다. 좋지 않은 질문이었음에도 훌륭한 답변을 해주셔서 그 안에 많은 긍정적인 사고를 할 수 있었다. 새로운 지식을 배웠으니 이를...
Tag 인증
항상 기계적으로 구현했던 인증 부분에 관해서 어느날 의문이 들었다. 우리는 어떤 공격을 방어하기 위해 이러한 절차들을 마련해둔걸까? 과연 JWT 토큰 기반의 인증은 안전한걸까? 정리해보자.
NestJS에서는 인증 부분을 Guard를 통해 쉽게 구현할 수 있다. 우리는 현재 두 가지의 Guard를 사용하고 있다. 두 가지의 Guard의 이름을 criticalGuard와 looseGuard로 지었다.
SleepyWoods 서비스는 웹 게임 기반의 SNS로 개인화된 경험 및 데이터가 잘 지켜지는 것이 중요하다. 편리하지만, 안전하기도 한 회원 인증 서비스를 구현하기 위해 고민했던 부분을 정리해보자.
Tag NestJs
NestJS에서는 인증 부분을 Guard를 통해 쉽게 구현할 수 있다. 우리는 현재 두 가지의 Guard를 사용하고 있다. 두 가지의 Guard의 이름을 criticalGuard와 looseGuard로 지었다.
SleepyWoods 서비스는 웹 게임 기반의 SNS로 개인화된 경험 및 데이터가 잘 지켜지는 것이 중요하다. 편리하지만, 안전하기도 한 회원 인증 서비스를 구현하기 위해 고민했던 부분을 정리해보자.
Tag 문진
라이브러리를 commonjs 기반으로 생성해야하는 이유
타입 공유를 선택한 계기 백엔드에서 API들을 구현하면서 다양한 API 타입들을 정의하게 되었다. 이 때, 프론트엔드와 백엔드에서 사용하는 타입을 공유하기로 결정했다. 이를 통해 다음과 같은 이점을 얻을 수 있었다. 타입 안정성...
모노레포를 결정한 이유 기존의 불편함 현재 문진 웹서비스의 개발 팀원은 백엔드 개발자인 나와 프론트엔드 개발자인 윤하님 두명으로 구성되어 있다. 기존에 같이 토이 프로젝트를 진행하면서 백엔드와 프론트엔드를 분리하여 개발했었는데, 다음과 같은...
Tag Turborepo
라이브러리를 commonjs 기반으로 생성해야하는 이유
타입 공유를 선택한 계기 백엔드에서 API들을 구현하면서 다양한 API 타입들을 정의하게 되었다. 이 때, 프론트엔드와 백엔드에서 사용하는 타입을 공유하기로 결정했다. 이를 통해 다음과 같은 이점을 얻을 수 있었다. 타입 안정성...
모노레포를 결정한 이유 기존의 불편함 현재 문진 웹서비스의 개발 팀원은 백엔드 개발자인 나와 프론트엔드 개발자인 윤하님 두명으로 구성되어 있다. 기존에 같이 토이 프로젝트를 진행하면서 백엔드와 프론트엔드를 분리하여 개발했었는데, 다음과 같은...
Tag 모노레포
라이브러리를 commonjs 기반으로 생성해야하는 이유
타입 공유를 선택한 계기 백엔드에서 API들을 구현하면서 다양한 API 타입들을 정의하게 되었다. 이 때, 프론트엔드와 백엔드에서 사용하는 타입을 공유하기로 결정했다. 이를 통해 다음과 같은 이점을 얻을 수 있었다. 타입 안정성...
모노레포를 결정한 이유 기존의 불편함 현재 문진 웹서비스의 개발 팀원은 백엔드 개발자인 나와 프론트엔드 개발자인 윤하님 두명으로 구성되어 있다. 기존에 같이 토이 프로젝트를 진행하면서 백엔드와 프론트엔드를 분리하여 개발했었는데, 다음과 같은...
Tag 트러블슈팅
모노레포를 결정한 이유 기존의 불편함 현재 문진 웹서비스의 개발 팀원은 백엔드 개발자인 나와 프론트엔드 개발자인 윤하님 두명으로 구성되어 있다. 기존에 같이 토이 프로젝트를 진행하면서 백엔드와 프론트엔드를 분리하여 개발했었는데, 다음과 같은...
Tag Type-safety
타입 공유를 선택한 계기 백엔드에서 API들을 구현하면서 다양한 API 타입들을 정의하게 되었다. 이 때, 프론트엔드와 백엔드에서 사용하는 타입을 공유하기로 결정했다. 이를 통해 다음과 같은 이점을 얻을 수 있었다. 타입 안정성...
Tag npm
모노레포 환경에서 개발을 하다보면 자체적으로 라이브러리나 패키지를 구현할 때가 많다. 이러한 라이브러리를 다른 프로젝트들에서도 사용하려면 NPM으로 배포하는 것도 좋은 방안이 될 수 있다. 본 글에선 NPM에 내 라이브러리를 배포하는 방법을...
Tag pm2
Node 기반으로 서비스 환경을 구성했을 땐 무중단 배포를 위해 프로세스 관리 도구인 PM2를 많이 쓰게 된다. 해당 글에선 PM2가 어떤 동작을 하여 무중단 배포를 하는지, 또한 어떻게 구성하는 지를 정리해보자....
Tag 배포
Node 기반으로 서비스 환경을 구성했을 땐 무중단 배포를 위해 프로세스 관리 도구인 PM2를 많이 쓰게 된다. 해당 글에선 PM2가 어떤 동작을 하여 무중단 배포를 하는지, 또한 어떻게 구성하는 지를 정리해보자....
Tag DB