일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- HTTP
- 코딩테스트
- 와글와글 해커톤
- npm
- 189-Awaited
- 타입 챌린지
- Mappilogue
- 스터디 회고
- 백엔드
- network
- typeorm
- TypeScript
- nestjs
- TypeScript 타입챌린지
- 와글와글
- Type Challenge
- Conditional Types
- node.js
- 월간cs
- 노드 교과서 개정2판
- 이펙티브 타입스크립트
- 타입 챌린지 IndexOf
- type challenge omit
- 타입 챌린지 Deep Readonly
- 맵필로그
- 타입스크립트
- 해커톤
- 타입챌린지
- 타입챌린지 Readonly2
- Array.prototype.push
- Today
- Total
목록전체 글 (50)
iamkanguk.dev
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일") 이런식으로 연산자 사용을 다르게 해서 표현을 할 수 있다. 다른 연산자 사용에 대한 설명을 확인하려면 공식문서 또는 해당 링크를 참고하시면 좋을 것 같습니다! 이슈내..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dUTKLj/btsB2vji8tX/bWe8sJuRetmBCvDNnUddwK/img.png)
최근에 몸이 너무 안좋고 무기력해서 아예 1주일 넘게 쉬어버렸다. 여러분 모두 감기조심... 자세조심.. 허리조심 하시길..! 그래서 그런지 오랜만에 블로그 포스팅을 시작으로 다시 열심히 준비해서 내년 초반기에 꼭 취업을 해보려고 한다! Nest에서 400번대 에러, 정확히는 Class-Validator의 에러 메세지는 배열로 나오는 것을 알고 계실 것이다. 그런데 프로젝트에서도 에러코드 + 단일 메세지 조합으로 Response를 달라고 하시는 개발자분이 계시고, 커뮤니티에서도 몇몇 분이 질문으로 올려주시더라. 그런데 구글링을 몇개 해봤는데 그런 자료들이 없는 것 같아서.. 필자가 글을 한번 올려볼까 한다. 참고로 아래 작성되는 방법은 필자의 뇌피셜로 구현을 한 것이라서,, 부정확할 수도 있다는 점 참고..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Q5MjC/btsBx9nnzE8/zKlv0QPdfmDaR8VHnuwPPK/img.jpg)
Glimpse 프로젝트를 진행하던 중 백엔드 동료 개발자 분이 먼저 User 쪽 개발을 해주셔서 올려준 code를 pull 받고 package를 install 하려고 했는데 에러가 발생했다. 에러를 어떻게 해결했는지에 대해서 공유를 해보려고 한다. npm ERR! code ERESOLVE npm ERR! ERESOLVE could not resolve npm ERR! npm ERR! While resolving: @liaoliaots/nestjs-redis@9.0.5 npm ERR! Found: @nestjs/common@10.2.10 npm ERR! node_modules/@nestjs/common npm ERR! @nestjs/common@"^10.2.10" from the root project n..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Tv8IK/btsBuqvVUWW/pEmzCwXsnhHeLPHO741kQK/img.png)
해당 포스팅은 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 바탕으로 작성된 글입니다. 클라이언트에서 서버로 데이터 전송 데이터를 전달하는 방식은 크게 2가지로 나뉜다. Query-Parameter를 통한 데이터 전송 보통 GET 방식에서 많이 사용하고 검색어로 검색할 때 게시판 리스트에 정렬 조건을 넣을 때 쿼리 파라미터를 이용해서 많이 사용한다. Message-Body를 통한 데이터 전송 HTTP Message Body를 통해서 데이터를 전송한다. 주로 POST, PUT, PATCH 메서드에서 사용한다. 예를 들어 회원가입을 하려면 클라이언트에서 데이터를 서버로 전송해야 한다. 그 다음에 상품을 주문하거나 새로운 리소스를 등록하거나 변경할 때 사용한다. 클라이언트에서 서버로 데이터를 전..
오늘은 회고록을 한번 쭉 써보려고 한다. 사실 Velog에서 썼었다가... 기획 노출로 손해배상 청구를 받아서 바로 비공개 처리를 했었다. 다행히 청구는 받지 않았다.. 휴! 처음에는 이게 기획노출인가? 싶었지만 그런 사소한 거 하나가 걸릴만 했던 것 같다.. 이 부분에 있어서는 너무 죄송하게도 생각하고 잘 몰랐던 것 같다. 그 때는 너무 무서웠ㄷr... 어쨌든 이제는 내가 잘못된 부분을 확실하게 알았으니 다시 다듬어서 조금 써보려고 한다. 외주를 어떻게 시작하게 되었는지? 사실 외주(아웃소싱)라는게 신입(학생)들이 해보기는 어려운 경험이라고 생각한다. 나도 이 때까지만 해도 외주를 해보고 싶지만 할 수 있을까? 라는 생각을 했었다. 왜냐면 크몽같은 사이트에서 보면 거의 대부분이 경력직만 구하기 때문이다..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dFg6aY/btsBirVZuwv/4GNGk5Qk1KPu7qBpXkWlLk/img.png)
해당 포스팅은 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 토대로 작성되었습니다. HTTP API 설계 요구사항 및 API URI 설계 예시를 들어 다음과 같은 API 리스트가 있다고 해보자. 1. 회원 목록 조회: /read-member-list 2. 회원 조회: /read-member-by-id 3. 회원 등록: /create-member 4. 회원 수정: /update-member 5. 회원 삭제: /delete-member 위의 API 설계는 잘못된 설계이다. 이유는 아래에서 천천히 보자. API URI 설계 분리 우리는 API URI 설계를 할 때 리소스와 해당 리소스를 대상으로 하는 행위를 분리해야 한다. 위의 예시를 보면 리소스는 회원이고, 행위는 조회, 등록, 수정, 삭제로..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dBVGlO/btsBogFlpfq/kBLiDdyCXNEr6Nm0YLRzX1/img.png)
해당 포스팅은 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 토대로 작성되었습니다. HTTP (HyperText Transfer Protocol) 서버와 클라이언트가 서로 데이터를 주고받기 위해 사용되는 통신 규약이다. 웹문서(hypertext) 간에 링크를 통해 연결할 수 있는 프로토콜이고, 문서 뿐만 아니라 다양한 종류의 데이터들을 폭 넓게 전송할 수 있다. 심지어 서버 간의 통신에서도 HTTP를 사용하고 있다. HTTP의 역사 (1) HTTP/0.9 - 1991년 GET 메서드만 지원했고, HTTP 헤더는 존재하지 않았다. (2) HTTP/1.0 - 1996년 Method와 Header, 그리고 상태코드가 추가되었다. (3) HTTP/1.1 - 1997년 현재 가장 많이 사용하고 있는..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bTRP3R/btsBgIqa5mM/5zxM0z3hQS25LtIv4O6mRK/img.jpg)
최근에 NestJS 오픈채팅 커뮤니티에 들어갔는데 카카수님이 후배들을 양성하고 계신다. 전체적인 프로젝트를 관리해주시고, 다양한 지식을 습득할 수 있도록 GitHub Issue와 PR을 통해 도와주시는데 참고해도 괜찮다고 말씀하셔서 이렇게 하루에 한번씩 참고해서 공부해보려고 한다. npm은 node package manager의 약자로 프로젝트에 필요한 라이브러리를 다운로드 또는 관리할 수 있도록 해주는 프로그램이다. npm 설치 확인 node -v # Node 버전 확인 npm -v # npm 버전 확인 package.json 생성 npm init npm init -y # 기본값 입력 package install npm install [패키지명] npm i [패키지명] # install을 i로 축약 가..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bTK7B2/btsA7M0N224/40uPeYeakGYQImJonJxZbK/img.png)
해당 포스팅은 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 토대로 작성되었습니다. 개요 이번 포스팅에서는 URI가 무엇인지, 그리고 웹 브라우저 요청 흐름이 어떻게 흘러가는지에 대해서 알아보려고 한다. 웹 브라우저 요청 흐름은 대충 어느정도인지 아는데 이번 기회에 한번 쪼꼼 더 자세하게 정리해보려고 한다. URI, URL, URN? URI는 Uniform Resource Identifier 의 약자이며 Resource를 식별하는 통합된 방법이다. Uniform은 리소스를 식별하는 통일된 방식, Resource는 자원을 의미하며 URI로 식별할 수 있는 모든 것을 의미한다. dentifier는 다른 항목과 구분하는데 필요한 정보이다. URI는 Locator(URL)과 Name(URN) 또는..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/R9amT/btsA7QhcfKi/uTth5sNuwJaPre1yJbcXH0/img.png)
해당 포스팅은 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 토대로 작성되었습니다. 개요 이전 포스팅의 IP 프로토콜을 통해 데이터를 전송하는 과정에서는 여러가지 한계점이 있다고 설명했었다. 연결성 보장이 안되고, 패킷 전달에서 순서 문제가 발생할 수도 있었고 심지어 전달 도중 패킷이 손실될 수도 있는 문제점이 있었다. 그리고 이런 한계점들을 해결하기 위해 나온 프로토콜이 TCP 프로토콜이라고 마지막에 언급하였다. 인터넷 프로토콜의 4계층 제일 위에는 HTTP나 FTP등 애플리케이션 측면에서 많이 사용하는 계층이 있고, 그 밑에 TCP와 UDP인 전송 계층이 있으며 아래에는 이전 포스팅에서 설명드렸던 IP 프로토콜인 인터넷 계층이 있고 마지막으로는 랜카드 등을 포함해서 실제 네트워크 랜 드..