Wecode - Project 2 (부트캠프) 79

layered pattern : API Architecture

1. presentation layer : 사용자, client 와 직접 연결되는 부분 2. business layer: 회사 비즈니스 로직 구현 3. persistence layer: sql 문 쓰는 파일 (데이터베이스 관련) 단방향이다. app.js 단일 파일을 파일 분리 presentation layer: routes, controller(res,req) business layer: service persistence layer: Dao (databases) app.js :연결 기능 query문 -> dao/ servicecontroller project1- 2일차(3): 회원가입 기능 layered pattern project 1 복사 붙여놓기 복사본은 깃 반영 안 됨..

Project2- 2주차 3일차 : standing meeting

백엔드 - 결제: 포인트 대신, 토스 페이먼츠 연결하고, db 저장하는 것만 있으면 됨 (프론트에게 영향 없음, 주기만 하면 되니) 전체 목록 페이지에서 : 기능 하나 구현할 때마다 백엔드, 프론트 통신 하는 중 프론트 - 장바구니 : cart id를 주문 페이지 ui 우선적으로 하는 중 (오른쪽을 받아와서 남은 오늘부터 통신을 하나씩 하기로 함. 장바구니가 결국 상품을 타고 와야 하는 거기 때문에 최초진입이 상세가 아니기에, 목록 api는 결국 어디서든 부르고 있다고. 그래서

project 2 - 회원가입, 로그인 통신 성공 /conflict 해결

1차 시도 맥북 내 서버 ip 주소 : ipconfig getifaddr en0 npm install 로 패키지 모두 다 다운 가능하니, ctrl+c 후 node app.js로 서버 연결 [Express 초기 환경세팅] 2. database 서버 연결- dbConnection 설정 -Westagram Backend Project - TypeORM 설치 및 적용 dbConnection 정상 작동 확인 아래 링크에서 진행했던 TypeORM 설치에서 이어져서, [Express 초기 환경세팅/ TypeORM 설치] **(주황색) -Westagram Backend Project - 1. Express pm-developer-justdoit.tistory.com 프론트측에서 회원가입을 하면, 바로 나에게 이렇게 통..

Project 2 : 주문 페이지 + 깃허브 캡쳐 (수요일)

내 담당이 아니지만, 다른 기능, 페이지도 내가 모두 구현하고 구상해보기 위해 가장 간단한 회원가입/ 로그인 기능을 담당하였다. 내 담당은 가장 빠르게 완료 후 다른 기능 다 건드려보기 목표: 사용자가 상품 주문할 수 있는 페이지 구현 주문페이지에 data 넘기기 order 주문 페이지 이동 (2가지 루트) 1. '장바구니 cart' 페이지 --> 주문할 상품 '선택' --> 구매 버튼 2. 상품 '상세페이지 productDetail' --> '바로 구매' 버튼 1. 회원이 선택한 상품 data 를 어떻게 주문 페이지로 이동시킬 것인가 (주문 페이지 data 넘기기) - 상품 주문하는 유저 정보 - 주문하는 상품 정보 이미 만들어진 모든 정보를 장바구니/상세페이지에서 일일이 넘길 필요는 없고, 필요한 데..

Project 2: "소셜 로그인" + 깃허브 캡쳐 ** (수요일)

구글 지메일 회원가입 1. client가 google server로 회원가입 요청 2. google server가 idToken 전송 3. client 가 service server로 idToken 전송 4. service server가 idToken이 유효한지 goolge server에 검증/ user data 요청 5. 유효한 idToken이면 user Data 전송 6. service server가 받은 user data 저장 , 가공 -> client 에 응답 https://developers.google.com/identity/sign-in/web/backend-auth?hl=ko 백엔드 서버로 인증 | Authentication | Google for Developers 이 페이지는 Cloud..

Project 2: 2주차 Planning meeting + sprint 1 회고

지난 sprint 목표치 대비 얼마나 했는지 티켓 10개 목표 중 몇개 했는지 - 왜 못했을까 - 잘한 부분 회고 여기에서, 다음 sprint를 위한 action item 도출 회고 - 풀백 소통 (api 없어도 mock data 줘서 할 수 있도록) - 티켓을 더 할 수도 있을텐데, 티켓 양을 적게 잡았나? (속도 측정) - 쳐낼 수 있는 사람에게 티켓을 넘겨주는 (팀은 동일한 경험치의 사람들만 있진 않을테니) - 개선할 점, 유지할 거 회고 후 action item으로 가져가는 등 회고 후 이번주 sprint 진행 다음 sprint를 성공적으로 진행 하기 위함.

Project 2 - 비밀번호 찾기 ** + 깃허브 캡쳐 (수요일)

비밀번호 찾기 - 이메일로 인증코드 보내기/새 비밀번호 생성service 추가 const nodemailer = require('nodemailer'); const jwt = require('jsonwebtoken'); const { userDao } = require('../models'); const { getUserIdByEmailDao, createUserDao, setNewPasswordDao } = userDao; const getUserIdByEmailService = (email) => { return getUserIdByEmailDao(email); }; const createUserService = (data, isUseOauth) => { let email, birth_date, ge..

api endpoint를 설계 하고 구현하는게 뭐니

API 엔드포인트를 설계하고 구현하는 것은 웹 애플리케이션에서 데이터를 송수신하고 서비스를 제공하기 위한 중요한 과정입니다. 이 과정은 다음과 같은 단계로 이루어집니다: 1. 요구사항 분석: 먼저 어떤 유형의 API가 필요한지와 API가 제공해야 하는 기능을 정의합니다. 어떤 종류의 데이터를 요청하거나 제공할 것인지, 어떤 작업을 수행해야 하는지 등을 결정합니다. 2. API 엔드포인트 설계: 요구사항을 기반으로 API 엔드포인트를 설계합니다. 엔드포인트는 URL 경로 및 HTTP 메서드(GET, POST, PUT, DELETE 등)로 구성됩니다. 각 엔드포인트는 특정 작업 또는 리소스에 대한 접근을 정의합니다. 3. 데이터 모델 설계 (옵션): API가 데이터베이스와 상호 작용하는 경우, 데이터 모델을..

회원가입, 로그인, 게시물 생성 함수에서 언제 bcrypt, jwt를 활용?

bcrypt는 비밀번호의 안전한 저장과 비교에 사용 (bcrypt는 데이터베이스에 저장) JWT는 사용자 인증 및 권한 관리에 사용됩니다. (유저 인증 개념) 회원가입 : bcrypt를 사용하여 비밀번호를 해싱하고, 로그인: 비밀번호를 비교하기 위해 bcrypt를 사용/ 로그인 후 JWT 생성하고 사용자 인증 및 권한을 관리하기 위해 활용됩니다. 게시물 생성: JWT는 사용자 인증에 필요한 정보를 제공하는 데 사용 Bcrypt JWT 회원가입 O (비번 해싱해서 저장) X 로그인 O (비번 비교) O (토큰 생성, 발급) 게시물 생성 X O (인증) JWT(Jason Web Token)는 사용자 인증과 관련된 다양한 기능에서 사용될 수 있으며, 주로 회원가입, 로그인, 게시물 생성과 같은 기능에서 다음과..

[dbmate] dbmate up vs. dbmate migration, dbmate drop

dbmate와 mysql의 관계가 뭐니 dbmate는 데이터베이스 마이그레이션(Migration) 도구로, 데이터베이스 스키마의 변경 사항을 관리하고 버전을 관리하는 데 사용 이 도구는 데이터베이스 스키마를 관리하는 과정을 자동화하고, 다른 개발자나 환경에서도 일관된 데이터베이스 스키마를 유지하도록 도와줍니다. dbmate는 다양한 데이터베이스 시스템과 통합될 수 있지만 여기서는 MySQL과의 관계에 중점을 둡니다. MySQL은 관계형 데이터베이스 관리 시스템(RDBMS)으로, 데이터를 테이블 형태로 저장하고 관리합니다. dbmate는 MySQL과 함께 사용하여 다음과 같은 작업을 수행할 수 있습니다: 1. 마이그레이션 생성: dbmate를 사용하면 데이터베이스 스키마 변경 사항을 기록하는 마이그레이션 ..