일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 굿바이 2024년
- configmodule
- nestjs
- HTTP
- 스터디
- network
- 이펙티브 타입스크립트
- npm
- 회고
- type challenge equal type
- 타입스크립트
- typescript type challenge
- 와글와글
- 월간cs
- equal 타입
- 해커톤
- 회고록
- Type Challenge
- configservice
- 타입챌린지
- typeorm
- 코딩테스트
- type-safe configservice
- 2024년 회고록
- TypeScript 타입챌린지
- microsoft azure openai
- 백엔드
- 타입 챌린지
- node.js
- TypeScript
- Today
- Total
목록전체 글 (58)
iamkanguk.dev
필자는 맵필로그라는 프로젝트에서 사용자 인증에서 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
프로젝트를 진행하면서 S3에 업로드 되어있던 이미지를 삭제하는 기능을 구현해야 했었다. 기능을 구현하고 테스트하는데 이유 불문의 이슈가 계속해서 발생하고 있었다. 참고로 AWS에 권한 설정은 전부 되어있던 상황이었고, 퍼블릭 엑세스도 허용되어 있는 상황이었다. 이슈는 간단하게 한마디로 정리하자면 이미지를 삭제하려고 하면 403 Access Denied 에러가 계속해서 발생하고 있었다. 진짜 어디가 잘못된지 이해가 안되어서 하루동안 계속 삽질을 했던 것 같다. 기분 좋은 크리스마스 이브에.....!!!!!!!! 어쨌든 지금부터 어떻게 이 이슈를 해결했는지 설명하려고 한다. ENV 파일 노출 최근에 DND 10기 지원 + 이력서 작성을 위해 지금까지 작업했던 프로젝트를 정리하고 있는데 GitHub Repo를..
보통 많이 사용하는 createQueryBuilder에서 getRawMany 메서드와 getMany 메서드가 있다는 것을 Nest 개발자 분들은 알고 계실 것이다. skip과 take는 pagination 작업을 처리할 때 주로 적용하는 option이다. 하지만 skip과 take는 getRawMany에서 적용되지 않는다고 한다. TypeORM의 createQueryBuilder에서 getRawMany 메서드는 Raw Data를 반환하는데 이 때 limit와 offset을 적용시켜주어야 한다고 한다. 필자는 skip과 take이 문제가 있을지 전혀 상상하지 못하고 코드 레벨에서 실수가 있었는지 계속 봐서 시간이 많이 소요되었는데 다른 분들은 이 포스팅을 보면서 삽질을 안하셨으면 좋겠다는 생각이 든다! 좋..
MySQL에서 Query문을 작성할 때 DATE_FORMAT 메서드를 많이들 사용하실 것이라고 생각한다. 필자는 DATE_FORMAT 메서드를 사용해서 A년 B월 C일로 반환을 해야하는 요구사항이 발생했다. 프로젝트 디자인을 확인해보니 예시를 들어 2023년 8월 7일 이런식으로 앞에 0이 없는 상태로 출력을 해야 하는 상황이었다. DATE_FORMAT % 연산자 사용 - 2023년 08월 07일: DATE_FORMAT(date, "%Y년 %m월 %d일") - 2023년 8월 7일: DATE_FORMAT(date, "%Y년 %c월 %e일") 이런식으로 연산자 사용을 다르게 해서 표현을 할 수 있다. 다른 연산자 사용에 대한 설명을 확인하려면 공식문서 또는 해당 링크를 참고하시면 좋을 것 같습니다! 이슈내..
최근에 몸이 너무 안좋고 무기력해서 아예 1주일 넘게 쉬어버렸다. 여러분 모두 감기조심... 자세조심.. 허리조심 하시길..! 그래서 그런지 오랜만에 블로그 포스팅을 시작으로 다시 열심히 준비해서 내년 초반기에 꼭 취업을 해보려고 한다! Nest에서 400번대 에러, 정확히는 Class-Validator의 에러 메세지는 배열로 나오는 것을 알고 계실 것이다. 그런데 프로젝트에서도 에러코드 + 단일 메세지 조합으로 Response를 달라고 하시는 개발자분이 계시고, 커뮤니티에서도 몇몇 분이 질문으로 올려주시더라. 그런데 구글링을 몇개 해봤는데 그런 자료들이 없는 것 같아서.. 필자가 글을 한번 올려볼까 한다. 참고로 아래 작성되는 방법은 필자의 뇌피셜로 구현을 한 것이라서,, 부정확할 수도 있다는 점 참고..