| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- Azure
- 프로그래머스
- 파이썬
- 유노코딩
- 오픈소스기반데이터분석
- 방송대
- 개발자취업
- 코딩테스트준비
- 항해99
- mongoDB
- Python
- 파이썬프로그래밍기초
- 99클럽
- 코드잇
- 코딩테스트
- aws
- JavaScript
- 중간이들
- CSS
- nestjs
- redis
- 클라우드컴퓨팅
- node.js
- 데이터베이스시스템
- 꿀단집
- 방송대컴퓨터과학과
- HTML
- Git
- TiL
- 엘리스sw트랙
- Today
- Total
목록분류 전체보기 (243)
배꼽파지 않도록 잘 개발해요
벌써 프로젝트가 1차적으로 마무리되었다. 우리 서버는 NestJS 프레임워크를 사용하여 express-session과 connect-redis, passport를 통해 세션 인증을 사용하고 있다. 이전 프로젝트에서 토큰만 사용해봐서 쿠키와 세션을 사용하는 것이 굉장히 낯설었다. 프로젝트 시행착오의 70%는 인증 쪽이고, 30% TypeORM 쪽이다. https://programming-bellybutton.tistory.com/215 [중간이들] NestJS 세션 로그아웃 구현 중 쿠키 문제 해결 과정NestJS 서버에서 express-session과 passport, connect-redis를 사용하여 세션 로그인을 구현하였다.API를 점검하는 도중에 로그아웃에 문제가 있는 것을 발견하였다.어제 몇 ..
예전에 multer로 이미지 처리를 할 때 경로구분자로 인해 배포 환경에서 오류가 났던 경험이 있었다.내 컴퓨터인 윈도우에서는 경로구분자가 '/' 슬래시였으나, 배포 컴퓨터의 운영체제인 리눅스에서는 경로구분자가 '\' 역슬래시여서 문제가 발생하였다. https://programming-bellybutton.tistory.com/209 [꿀단집] 배포환경에서 multer로 프로필 이미지 변경이 안 되는 문제 - 서버 파일 경로 구분자 문제우리 서버에서 multer를 활용하여 프로필 이미지를 변경할 수 있는 기능이 있다. 클라이언트에서 사진을 업로드하면 서버에서 multer를 통해 이미지를 서버의 public/uploads 폴더 안에 저programming-bellybutton.tistory.com mult..
현재 프로젝트에는 S3 버킷에 파일을 업로드하는 기능을 구현하려고 한다. 회원가입 시 인증서류 이미지 업로드, 글쓰기 에디터 이미지 업로드 등 다양한 곳에서 사용된다. 프론트엔드 측에서는 서버에서 presigned url을 받아온 다음 그 URL을 엔드포인트로 하여 formdata의 정보들을 request body로 담아서 보내야 한다. 로컬에서 이 부분을 만들어서 직접 구현하고 있는데, 다음과 같은 에러가 났다. 서버에서 presigned url을 받아오는 부분은 문제가 없으나, S3 버킷에 직접 업로드할 때는 에러가 발생하였다. AWS S3에서 던져준 에러는 아래와 같다."Policy Condition failed: ["starts-with", "$Content-Type", "image/png"]..
NestJS 서버에서 express-session과 passport, connect-redis를 사용하여 세션 로그인을 구현하였다.API를 점검하는 도중에 로그아웃에 문제가 있는 것을 발견하였다.어제 몇 시간 동안 테스트한 결과, 자잘한 문제가 다양하게 발생하여 해결하는 것에 시간이 좀 걸렸다.우선 큼직하게 핵심만 요약하면 아래와 같다.세션 로그인/로그아웃 문제 및 해결과정 요약문제- 로그아웃 시 Redis 데이터 삭제 문제: 서버에서는 삭제되었다고 기록되지만, 실제 Redis에서 데이터가 삭제되지 않음. - 쿠키 삭제 문제: 로그아웃 시 쿠키가 완전히 삭제되지 않고, 새로운 값으로 변경됨. - 환경 설정 문제: 세션의 saveUninitialized 설정이 의도치 않게 true로 설정되어 불필요한 세션..
NestJS를 사용하다보면 express에서 Request와 Response 객체를 직접 import 해야할 일이 있다. 예를 들면 Response 객체를 사용하여 클라이언트에 쿠키를 설정하거나 전송해야하는 일, 미들웨어 작성, 거의 없지만 파일 전송 등의 경우가 있다. 컨트롤러에서 만든 API를 Thunder Client로 테스트하던 도중 응답이 pending 상태가 되는 일이 발생하였다. 이럴 경우 무조건 내가 코드를 잘못 쓴 것이기 때문에 컨트롤러부터 살펴봐야한다.auth.controller.ts 파일을 살펴보니 해당 API에서 @Res() 데코레이터를 주입하여 사용하고 있었다. 코드를 아래처럼 수정하면 잘 작동한다. @Res 데코레이터를 삭제하거나, 아니면 @Res 데코레이터를 사용하면서 resp..
현재 프로젝트의 NestJS 서버에서는 Redis를 사용하고 있다.다른 백엔드 개발자분의 브랜치를 dev에 merge를 하고, 그걸 현재 내가 작업하는 브랜치에 merge를 하였다.Conflict가 나서 코드는 해결하였으나, 실행할 때 다음과 같은 오류가 났다. 로컬에서 6379 포트로 Redis가 접속이 되지 않는다는 오류가 떴다.그런데 나는 분명히 로컬에서 Redis를 연결하여 사용한 적이 없다. Redis Cloud에서 받은 Host, Port, Password를 입력하여 Redis Module을 만들어 사용하였기 때문이다. 가장 최근에 변경된 posts.service.ts 코드를 확인해보니 Redis Client를 생성할 때 어떠한 인자도 넣지 않고 있었다.this.redis = new Redis..
이번 프로젝트에서 Redis를 사용할 일이 많아졌다. 회원가입 후 이메일에 발급하는 토큰회원의 세션 정보좋아요 수 업데이트 등 Redis에 데이터를 입출력할 일이 많아졌다. 그래서 데이터를 직접 확인해야할 일이 생겼다. Redis를 활용할 때는 Redis Cloud와 Redis insignt를 사용하면 된다. Redis Cloud : 클라우드 기반의 서비스, 데이터베이스와 관련된 정보만 확인 가능. 세부적인 데이터 내용은 직접 확인할 수 없고 관리도 불가능함.Redis Insight : Redis의 GUI 도구, 실제 데이터베이스 내의 데이터를 직접 확인할 수 있으며, CLI 명령어를 사용하여 데이터를 관리할 수 있음.Redis Cloud 사용은 아래 블로그의 글을 참고하였다.https://inpa.t..
중간이들 커뮤니티 사이트에서는 SMS로 인증번호 6자리를 발송하는 API가 있다. 이를 위해 twilio와 네이버 클라우드 SMS 서비스 둘 중 한 곳을 플랫폼으로 선택하기로 하였다. 결론부터 말하면 SMS 인증번호 발송서비스 플랫폼으로 네이버 클라우드를 선택하지 않은 이유, 아니 "못"하는 이유는 사업자 계정이 아니기 때문이다. 방침이 변경되어서 개인 계정으로는 현재 이 SMS서비스를 이용할 수 없다. 아쉽게 되었다. 일단 접속한 후 결제할 계좌를 등록해주어야 한다.중요한 건 23시~9시 에는 계좌이체나 체크카드 등록이 불가능하다는 것이다.보통 이 시간대에는 결제가 잘 안 되는게 많다. 신규 가입 고객은 할인 크레딧 100,000원이 지급된다. https://www.ncloud.com/product N..
꿀단집 쇼핑몰 프로젝트에서는 passport 라이브러리의 Google OAuth Strategy를 활용하여 구글 소셜로그인을 하는 기능이 있다. https://console.cloud.google.com Google 클라우드 플랫폼로그인 Google 클라우드 플랫폼으로 이동accounts.google.com '구글 소셜로그인 구현'으로 검색하면 이미 수많은 글들이 나온다. 이걸 구현하는 것도 꽤 어렵지만 문제는 구글 측의 심사를 거쳐야 실제 외부 사용자들이 우리 서버의 소셜로그인을 이용할 수 있다는 것이다.그래서 이 Google 클라우드 플랫폼의 'OAuth 동의화면' 카테고리에서 게시 상태를 '프로덕션'으로 변경해주어야 한다. 프로덕션으로 변경하면 이렇게 인증 준비 화면이 뜬다.일단 당연히 배포가 ..
우리 서버에서 multer를 활용하여 프로필 이미지를 변경할 수 있는 기능이 있다. 클라이언트에서 사진을 업로드하면 서버에서 multer를 통해 이미지를 서버의 public/uploads 폴더 안에 저장을 하고, 해당 이미지 경로를 DB의 사용자 정보에 저장한다. 이걸 클라이언트가 받아서 화면에 렌더링하는 식으로 구현을 하였다. 문제는 로컬에서는 아주 잘 작동을 하였으나, 배포 후 작동을 하지 않는다는 것이었다. 여기 모달창에서 왼쪽 프로필이미지 버튼을 누르면 변경할 수 있는 창이 뜬다. 여기서 미리보기로 바뀐 이미지가 뜨고, 저 모달창을 닫아도 변경된 이미지가 렌더링되어야 한다.이걸 내가 구현하였는데, 순서가 헷갈려서 시간이 꽤 걸렸던 기억이 났다.프론트엔드는 렌더링 되는 화면과 데이터 로직을 모두 고..