전체 글 69

소셜로그인 구현 시 작동 순서 및 과정

1. 유저가 소셜로그인 버튼을 누르고 ID, PW 입력 2. 해당 소셜에서, 유저가 입력한 ID와 PW가 올바른지 확인 3. 올바른 로그인 정보일시 소셜에서 브라우저로 시크릿 코드를 전송 4. 브라우저는 소셜에게 받은 시크릿 코드를 백엔드로 전달 5. 백엔드는 브라우저에게 받은 시크릿 코드를 소셜로 다시 전송 (로그인 요청한 유저와 동일한지 확인 과정) 6. 소셜에서 백엔드에게 받은 시크릿 코드와 브라우저에게 전송했던 시크릿 코드가 일치하는지 확인 7. 일치 시 소셜에서 백엔드로 해당 유저의 AccessToken과 프로필을 전송 8. 백엔드는 소셜에서 받은 유저의 프로필이 db에 없으면 회원가입을 진행하고, 있으면 로그인 처리

개발/JavaScript 2023.06.07

Prisma Transaction이란?, $transaction 사용 방법

트랜잭션이 대체 뭘까!!!! 그게 뭐냐면~ 데이터베이스에 대한 작업이 여러개 일 때 그 작업들을 하나로 묶어줌 (like... 파워포인트에서 그룹화 같은 역할...) 여러개의 작업이 한개의 로직을 구성하고 있을때 사용할 수 있음~! 묶여진 모든 작업들이 성공적으로 실행을 마쳐야만 데이터베이스에 저장됨 한 작업이라도 실패를 하거나 중간에 오류가 발생하면 묶여진 데이터 내에서 이전에 했던 작업들을 다시 원상복구~ 예를들면 transaction(계란후라이 만들기) { 1. 가스레인지 불 켜고, db에 불켜기 true로 체크하기 2. 프라이팬에 기름 두르고, db에 기름 두르기 true로 체크하기 3. 냉장고에서 계란 꺼내고, 남은 계란 갯수 db에 update하기 4. 프라이팬에 계란 올리고, 완성까지 걸린 ..

개발/PrismaORM 2023.06.01

엔드포인트 500 오류 해결 / param으로 받아오는 엔드포인트와 중복 주의

멋지게 코드를 짜고 test를 돌리니 더 멋지게 500에러가 떴다. 500에러는 서버오류인걸 알고 있었기에 내가 잘못 짠 코드가 있나 확인을 했다. 근데 아무리 확인해도 코드 넘 잘 짰음.. 에러 메시지를 다시 확인해보니 이상하게도 어느 부분에서 오류가 났는지는 나타나지 않고 [Nest] 3589 - 2023. 05. 31. 오후 12:47:41 ERROR Object: { “statusCode”: 500, “timestamp”: “2023-05-31T03:47:41.648Z”, “path”: “/my”, “message”: “”, “name”: “” } 계속 이렇게만 뜨는거임 client에서 요청을 보내는 엔드포인트가 잘못 설정됐을 수도 있어서 swagger랑 post man을 확인해봤는데 넘 멀쩡함..

오류 해결/API 2023.06.01

자주 사용되는 HTTP 상태코드(statusCode) 종류와 의미

- 200: 요청이 성공적으로 처리됨 - 201: 요청이 성공적으로 처리되었고 새로운 리소스가 생성됨 - 400: 서버가 요청을 이해하지 못했거나 잘못 된 요청임 - 401: 클라이언트가 인증되지 않았거나 유요한 인증 자격이 없음 - 403: 서버에 의해 요청이 거부됨 클라이언트가 리소스에 접근 할 권한이 없음 - 404: 요청한 리소스가 서버에서 찾을 수 없음 - 407: 클라이언트가 프록시 서버를 통해 요청을 보내기 위해 인증이 필요함 - 500: 서버에서 발생한 내부 오류

개발/HTTP 2023.05.26

ssh 키 만들기, 삭제하기, 보기, 찾기, github 등록하기

github가 갑자기 권한이 없다면서 pull과 push를 거부했다.. ^^ 이유를 찾아보니 ssh키를 github에 등록해야한단다;; 그게 대체 뭐임 자세히 알지는 못했는데 대충 이해한대로 적어본다면 내 컴퓨터에서 발급한 키를 github 계정에도 등록을 해줘야 하는것 같다. - ssh 생성 명령어: ssh-keygen - ssh 조회 명령어: cat ~/.ssh/id_rsa.pub - ssh 삭제 명렁어: rm -rf .ssh 이 세가지만 복붙하면 된다. 1. 터미널을 연다 2. ssh-keygen 를 입력해서 ssh키를 생성한다. 2-1. 이미 ssh키가 있다면 어쩌구 저쩌구 경고문이 나올거임. 근데 나는 헷갈려서 그냥 삭제하고 다시 만들었음 2-2. rm -rf .ssh 를 입력해서 기존 ssh키..

오류 해결/Linux 2023.05.25

스프레드 연산자와 나머지 연산자

둘 다 '...'을 사용해 비슷하게 생겼다. - 스프레드 연산자: 배열이나 객체를 펼쳐서 전개함 객체를 복사하거나 새로운 배열 및 객체 생성 시 유용하게 사용됨 const arr1 = [1, 2, 3]; //얘네 const arr2 = [4, 5, 6]; //둘을... const mergedArr = [...arr1, ...arr2]; //개별로 분리한 후 하나의 배열로 합치기~! console.log(mergedArr); // 출력: [1, 2, 3, 4, 5, 6] - 나머지 연산자: 나머지 값들을 모아서 배열로 만듦 함수에 파라미터에서 사용되며 함수에 전달된 인자들 중에서 명시된 파라미터로 할당하지 않은 나머지 인자들을 배열 형태로 받아옴 function foo(a, b, ...rest) { //a..

개발/JavaScript 2023.04.14

[Mac] 사용중인 포트 확인 및 프로세스 강제종료

순조롭게 3000번 포트로 개발중이던 어느날... npm start를 하자 이미 다른 프로세스가 3000번 포트를 쓰고있다는 오류가 떴다. 오류: [NestApplication] Error: listen EADDRINUSE: address already in use :::3000 엥? 누구야 ~! 하지만 어떤 프로세스가 사용중인지 찾기 위해 그 방법을 찾아야 하는... 과정이 넘나 귀찮았기 때문에 조금 있으면 알아서 종료가 되겠지 하고 내 포트 번호를 3001번으로 변경했다. 하지만 예상과 다르게 이틀째 3000번 포트를 사용 못해서 이 글을 쓰게 되었다 ㅎ 1. 터미널에 lsof -i :[조회할 포트번호] 를 입력한다. 나는 3000번 포트를 조회할것이기 때문에 lsof -i :3000 이라고 해줬다...

오류 해결/Linux 2023.04.12

PostgerSQL에 더미데이터 넣기, 데이터 확인하기 (pgAdmin 활용)

더미데이터 넣기 1. pgAdmin에서 데이터를 넣을 Table에 우클릭 -> Scripts -> INSERT Script 2. Query창에서 "?"마다 더미데이터로 사용 할 (본인이 생성한 Column에 알맞는) 내용 작성 3. 작성 완료 했으면 상단의 화살표 버튼 누르기 더미데이터 넣기 끝! * string을 큰 따옴표("")로 감싸면 오류가 나서 작은 따옴표('')로 바꿨더니 데이터 저장이 잘 되었다. 왜인지는 다음에 찾아봐야지.. 데이터 확인하기 아까와 같이 Table명에 우클릭 후 View/Edit Data -> All Rows 끝

개발/DB 2023.04.10