일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
- network
- TypeScript 타입챌린지
- npm
- 타입챌린지 Readonly2
- 타입 챌린지 Deep Readonly
- 해커톤
- node.js
- TypeScript
- chainable options
- 타입 챌린지
- Array.prototype.push
- 월간cs
- 노드 교과서 개정2판
- 타입스크립트
- type challenge omit
- 이펙티브 타입스크립트
- 타입챌린지
- prisma 파일 분리
- 타입스크립트 타입챌린지
- Type Challenge
- typeorm
- nestjs
- 타입 챌린지 IndexOf
- 스터디 회고
- 189-Awaited
- 와글와글
- multiple schema
- 백엔드
- HTTP
- 코딩테스트
- Today
- Total
목록2024/01 (9)
iamkanguk.dev
오늘은 포스팅을 2개나 작성한다..ㅎㅎ 그만큼 몰랐던 것들을 오늘은 좀 많이 알게 된 것 같아서 뿌듯해서 그런 것 같다 (사실 별건 아니지만) 이전 포스팅에서 strict 모드를 추가하면서 많은 에러가 발생했다고 언급했다. null parameter가 들어올 수 있는 가능성이 있는 코드들 등등을 수정하는 가운데 request의 user 변수의 type이 지정되지 않아서 발생한 문제가 있었다. 어떻게 request 안에 넣어놓은 user 데이터에 type을 부여할 까 고민하다가 좋은 글을 참고하게 되어서 조금 참고하고 작성해보려고 한다. 문제 상황 strict 모드에는 any 타입이 사용되는 경우 에러를 뱉는 옵션이 있다. 필자는 TypeScript로 개발을 하기 때문에 any 타입을 사용하게 되면 그 이..
이제 express가 아니라 NestJS를 하면서 자연스럽게 TS와 친해지려고 노력하고 있다. 최근에 Nest로 프로젝트를 하면서 tsconfig.json 파일을 만질 때가 있었는데, 정확히 이 파일이 어떤 역할을 하는지 모르고 사용을 했던 것 같다. 그리고 프로젝트를 하는 도중에 내가 작성한 소스를 한번 쭉 그냥 보고 있었는데 최대한 any 타입을 지양하고 각종 메서드나 변수 등에 타입을 꼭 달아주었다. 그런데도 몇 군데 빼먹은 곳이 있었는데 생각해보니까 얼핏 이런걸 에러로 보여주는 기능이 있는데? 라고 알고 있었는데 적용이 안되어서 내가 실수한 부분이 몇 군데 있구나 싶었다. 보니까 strict 모드가 활성화 되어있지 않은 것. 그래서 이번 포스팅에서는 strict mode를 어떻게 활성화 했는지 (..
개인적으로는.. 알고리즘 문제 푼 걸 블로그에 올려두지는 않는 편이다. 하지만 특정 코딩테스트를 준비할 때마다 짧고 굵게 공부를 하는 편인데 문제를 풀면서 새로 알게된 지식들이나 어려웠던 문제는 조금조금씩 기록을 해두려고 한다. 문제링크 https://www.acmicpc.net/problem/1527 1527번: 금민수의 개수 첫째 줄에 A와 B가 주어진다. A는 1보다 크거나 같고, 1,000,000,000보다 작거나 같은 자연수이다. B는 A보다 크거나 같고, 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 풀이 from itertools import product a, b = map(str, input().split(' ')) la, lb = len(a), len..
필자는 맵필로그라는 프로젝트에서 사용자 인증에서 JWT 토큰을 사용하기로 결정했다. 하지만 단순히 Access Token만 사용하는 것이 아닌 Refresh Token 사용을 도입을 하기로 결정했다. 각 개발자분들 마다 어떤식으로 구현을 하는지 각각 다르기 때문에 인터넷에서도 각기 다른 자료들을 볼 수 있다. 그래서 필자는 이번 포스팅에서는 해당 프로젝트에서 JWT를 왜 도입했는지, 어떤식으로 Access Token과 Refresh Token 전략을 사용했는지에 대해서 정리를 해보려고 한다. 그리고 지금부터 Access Token은 AT로, Refresh Token은 RT로 표기하는 점 참고해주세요! 또한, 이 포스팅에서는 JWT의 자세한 개념에 대해서는 언급을 하지 않을 예정이니 다른 포스팅으로 한번 ..
문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/60058 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 def isRight(p): # 문자열 p가 올바른 괄호 문자열인지 확인하는 함수 stack = [] for i in p: if i == '(': stack.append(i) else: if not stack: return False stack.pop() return True if not stack else False def splitToUAndV(p): # 문자열 p를 u와 v로..
해당 포스팅은 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 토대로 작성된 글입니다. 인증 Authorization (요청) - 클라이언트 인증 정보를 서버에 전달할 때 사용한다. - value 값은 인증 방식에 따라 다양하다. 우리가 흔히 아는 Bearer도 이에 해당한다. WWW-Authenticate (응답) - 리소스 접근 시 필요한 인증 방법을 정의 - 401 Unauthorized 응답과 함께 사용한다. 쿠키 (Cookie) - 로그인하지 않은 사용자가 서버에 /welcome을 요청하게 되면 서버는 ~손님을 응답한다. - 사용자가 id, password 정보를 담아서 서버에 /login을 POST로 요청하면 서버에서는 로그인 성공 응답을 할 것이다. - 그리고 사용자가 로그인을 ..
해당 포스팅은 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 토대로 작성된 글입니다. HTTP Header 개요 (1) HTTP Header - header-field = field-name ":" OWS field-value OWS (OWS는 띄어쓰기 허용을 의미한다) - field-name은 대소문자를 구분하지 않는다. 하지만 value는 구분한다. (2) HTTP 헤더의 용도 - 기본적으로 HTTP 전송에 필요한 모든 부가정보를 담는다. - 예를 들어 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 캐시관리 정보 등이 있다. - 그리고 우리는 필요시 임의의 헤더를 추가할 수 있다. (key-value) (3) HTTP Header 추가 정보 위의 사진은 RFC2616 기준인 ..
해당 포스팅은 김영한님의 모든 개발자를 위한 HTTP 웹 지식 강의를 토대로 작성된 글입니다. HTTP 상태코드 소개 상태코드는 클라이언트가 보낸 요청의 처리 상태를 응답에서 번호로 알려주는 것이다. 크게 5개의 상태코드가 있다. - 1XX (Informational): 요청이 수신되어 처리중 (거의 사용하지 않기 때문에 생략한다) - 2XX (Successful): 요청이 정상처리 되었음 - 3XX (Redirection): 요청을 완료하려면 추가적인 행동이 필요하다 - 4XX (Client Error): 클라이언트 오류. 잘못된 문법 등으로 서버가 요청을 수행할 수 없음 - 5XX (Server Error): 서버 오류. 서버가 정상 요청을 처리하지 못함 앞으로 시간이 흐르면서 새로운 상태코드가 나올..
이번에 처음으로 회고록을 써보려고 한다. 나 스스로 성장을 하는거에 집중을 해야겠다고 생각이 들어서? 쓰게 된 것 같다. 처음 써보는 회고록이니... 아직은 직접 글쓰는 솜씨가 부족하다고 많이 생각들어서 다른 블로그에 많이 보이는 연말정산 문답 형식을 조금 사용해보려고 한다. 여기서 그냥 내가 마음에 드는 질문들만 뽑아서 쓰고, 마지막에는 간단~하게 정리하는 회고글을 쓰려고 한다. https://blog.naver.com/hgmkjy/222964960826