React Query 알아보기 - 2
·
DEV/React
지난 포스팅 보기 2022.09.14 - [프로그래밍/React] - React Query 알아보기 - 1 들어가며 안녕하세요. 오늘도 React Query 에 대해 알아보겠습니다. 지난편에는 개념과 간단한 세팅, 실습 + useQuery hook 을 알아봤는데요. 오늘은 값을 변경할 때 쓰이는 useMutation 쪽을 알아보고 실습도 해보려 합니다. useMutation useMutation 은 useQuery 와 달리 값을 변경, 추가, 삭제 하기 위해 사용하는 hook 입니다. mutation 는 다음 표에 있는 상태 중 순간마다 단 한가지 상태로만 존재합니다. isIdle or status === 'idle' 현재 fresh/reset 상태 isLoading or status === 'loadi..
React Query 알아보기 - 1
·
DEV/React
들어가기 최근 React Query를 조져질 공부할 기회가 생겨 블로그에 정리해보려 합니다. 사실 여태 Node.js 만 파왔던 제게 React 는 아직도 너무나 어렵지만.. 열심히 해볼게요 :-) React Query 는 아예 처음 들어보진 않았고, 최근 SWR 을 써본 일이 있어서 둘의 차이나 장단점 등을 간략하게 공부했던 경험이 있습니다. 하지만 개념적으로나 사용법은 전혀 모르니 official document 와 구글 자료들을 찾아보며 하나씩 정리해보겠습니다. React Query 란? React Query는 React Application 에서 서버 상태를 가져오고, 캐싱하고, 동기화하고, 업데이트하는 작업을 쉽게 만들어 주는 라이브러리 입니다. 기본적으로 리액트에는 데이터를 가져오거나 업데이트..
[SOPT] 29대 서버 파트장 돌아보기 - 1
·
DEV/잡다한 개발 일지
🚀 들어가며 안녕하세요. 오랜만입니다. 오늘은 제가 3기수 활동했고, 29대 서버 파트장으로 활동했던 많은 분들이 잘 아시는 국내 최대 IT 벤처 창업 연합 동아리 SOPT를 돌아보려고 합니다. (9/5 부터 31기 신입회원 모집이라고 합니다. 많관부 😖) https://sopt.org SOPT SOPT는 매년 두 번, 3월과 9월에 신입회원을 모집합니다. 서류 평가와 면접 평가를 통해 신입회원을 선발합니다. SOPT 채널(페이스북, 인스타그램, 유튜브, 카카오톡 채널)을 통해 다음 기수 리크루 sopt.org 서버 파트장(이하 서팟장)을 하면서 어떤걸 했고, 어떤걸 배웠고, 어떤게 힘들었는지 등등 개인적인 생각을 적어보려합니다. 굉장히 재미없습니다. 이번 편은 리크루팅 위주로 작성해볼게요. 🥱 왜 지원..
[Nest.js] Official Document 정리 (Controller) - 2
·
DEV/Node.js
Status Code 언급한대로 기본적으로 상태 코드는 POST 요청을 제외하고는 항상 200이다. @HttpCode() decorator 를 통해 핸들러 레벨에서 쉽게 바꿀 수 있다. @Put() @HttpCode(204) modifyCat(): string { return 'modify cat'; } HttpCode 는 @nestjs/common 패키지에서 import 한다. 종종 상태 코드가 정적이 아니라 다양한 요인에 의해 달라질 수 있다. 이 경우 library-specific response 객체를 사용할 수 있다. (@Res()) Headers custom response header 를 위해 @Header() decorator 나 library-specific response 객체를 사용 ..
[Nest.js] official document 정리 (설치, controller) - 1
·
DEV/Node.js
들어가기 전에 최근 사이드 프로젝트로 앱스토어에 이미 출시되어 있는 Cherish 애플리케이션 개편 작업에 함께하게 되었습니다. 제가 맡은 역할은 다른 두 서버 개발자와 함께 Cherish 의 서버를 전면 개편하는 일 입니다. Nest.js 와 요즘 뜨고 있다는 Prisma 를 도입하려고 합니다. 이에 당분간 Nest.js 를 빡세게 공부해보려고 합니다. 아직 많은 내용을 보진 못했지만, document 를 보면 볼 수록 꽤 tsoa 와 비슷하다는 생각이 드네요! 학습하기에 보다 수월할 것 같습니다. 해당 내용은 Nest.js official document 내용을 개인적으로 학습하며, 번역한 글 입니다. https://github.com/NewCherish/Cherish-Server-Lab/tree/j..
[tsoa] 첫 오픈소스 contributor 경험담
·
DEV/잡다한 개발 일지
🚀 들어가며 여러분 잘 지내셨나요? 오랜만에 돌아옵니다. 이번 글은 별건 아니고 제가 개발을 시작한 후 처음으로 오픈소스 contributor 가 되어 글을 남겨보려고 적었습니다. contributor 라는게 되게 커보이고 모두가 쓰는 라이브러리인데.. 내가 감히? 라는 생각이 참 많이 들었는데요. 태끼님의 블로그를 보고 자신감을 얻어 저도 contributor 가 되었습니다. 사실 많은 걸 해결한건 아니구요. 숟가락 하나 얹었습니다. 🙋🏻 tsoa 제가 contributor 가 된 라이브러리는 tsoa 입니다. tsoa를 간단히 설명해보자면, Typescript와 Node.js 로 서버 애플리케이션을 빌드하는 openAPI compiler 라고 소개되어 있습니다. express, koa, hapi 모두..
node.js, express, typescript 로 S3에 image upload 하기 (Feat. multer, aws-sdk)
·
DEV/Node.js
✏️ 작성자: 서팟장 잡채 📌 작성자의 한마디: "7차 세미나 때 할 내용이었는데..." 30기 THE SOPT Server part 블로그에 제가 작성한 글을 가져왔습니다! (서버파트 기술 블로그) 안녕하세요! 👻 오늘은 우리가 사용하는 Node.js 와 Express, Typescript 환경에서 아주 간단하게 이미지를 받아서 S3 bucket 에 upload 하는 코드를 작성해보려 합니다. 사실 이 내용은 7차 세미나에서 다룰 거지만, 혹시라도 합동 세미나/솝커톤에서 이미지 업로드를 다뤄보고 싶으신 분이 계시다면 유용할 것 같아 작성합니다. 기본 지식 우리가 지금까지 했던 POST API 들의 Request 가 JSON 형식이었다면, 파일은 multipart/form-data 를 사용합니다. 이러한..
Node.js, MongoDB Change Streams 를 사용한 특정 사용자에게 특정 시간에 FCM 보내기
·
DEV/Node.js
✅ 들어가며 안녕하세요. 저는 지금 29th SOPT 의 장기해커톤인 앱잼에 참여중입니다. 현재 참여하는 프로젝트에서 FCM (Firebase Cloud Messaging) 을 사용하는데 이 어플의 핵심 기능 중 하나가 사용자가 지정한 시간에 알림을 보내는 것입니다. 사실 그냥 FCM 을 어떤 이벤트의 응답으로 보내는 것, 또는 홍보용으로 보내는 것 이라면 크게 어렵지 않습니다. 하지만 여러 사용자가 지정한 시간에 각각 맞춰서 알람을 전송해야하므로 스케쥴러를 사용해야합니다. 먼저 생각했던 방법은 서버 내에서 node-scheduler 를 사용해서 스케쥴링 하려 했지만, 이 경우 특정 사용자의 알림을 수정하고, 삭제하는데 어려움이 있다는 문제점이 있었고, db와 연결된 스케쥴러가 아니라 만약 서버가 꺼진다..
[BOJ/11968] High Card Wins, c++
·
DEV/PS
🔗 링크 https://www.acmicpc.net/problem/11968 11968번: High Card Wins Bessie the cow is a huge fan of card games, which is quite surprising, given her lack of opposable thumbs. Unfortunately, none of the other cows in the herd are good opponents. They are so bad, in fact, that they always play in a completely predictable fas www.acmicpc.net 🤯 한줄 후기 누가 카드 순서를 미리 알고 .. 불법 아님 ? 🤷 문제 👩‍💻 풀이 엄청 예전에 틀렸다가 ..