Wecode - Project 2 (부트캠프)/독학 17

Project 2- '구조분해 할당', '객체 할당', '객체 분해 destructuring'

Request body 객체 구조분해할당 const name = req.body.name const email = req.body.email const password = req.body.password 보다는 **const { name, email, password } = req.body** 객체 할당 변수에서 객체 속성을 추출하고 해당 값을 변수에 할당 = "객체 분해(destructuring)" 사용 객체 할당 -> 주로 객체의 속성을 더 간편하게 변수에 할당하고 사용하기 위해 사용 JavaScript와 TypeScript에서 객체 할당을 수행하는 방법의 간단한 예제 // 객체를 생성 const person = { firstName: "John", lastName: "Doe", age: 30, };..

layered pattern 코드 분리 연습을 위한 clone, 새로운 github 저장소 연결

CRUD, layered pattern 연습 layered pattern 코드 분리 연습을 위한 clone, 새로운 github 저장소 연결 경우 1)이미 만들어진 단일화된 app.js 코드에서 분리 project 2를 진행하는 중에 project 1을 복사 해서 코드 분리 해보는 경우 1. proje pm-developer-justdoit.tistory.com 경우 1)이미 만들어진 단일화된 app.js 코드에서 분리 project 2를 진행하는 중에 project 1을 복사 해서 코드 분리 해보는 경우 1. project1 폴더 복사 2. .git 연결 삭제 Rm -rf .git 한 로컬에 project1, project2 여러 개의 remote가 연결될 수 있고, 동시에도 remote 연결이 될 수..

깃허브 merge conflict 충돌 해결법

충돌이 나는 이유가 뭔지부터. remote에 내가 만든 BRANCH를 dev에 merge 하려고 하니, 같지 않아서 충돌이 나는 것. 그럼 일단, remote 깃허브랑 local dev 중에 뭐가 더 최신? Remote (그 동안 팀원들이 merge 했을 수도 있으니까) 깃은 "너 충돌 났어" 라고 말하는 거 뿐 해결을 못함. 그래서 로컬에 받아줘서, 그거를 충돌을 내서, 고쳐준 코드를 다시 올리는 것 깃허브가 알아서 자동 병합을 못하니, 뭐가 최신이고 뭐를 지워야할지 몰라서 뭐가 들어갈지 볼라거 충돌이 나는거니까, 그 remote에 있는 dev를 local에서 dev를 pull 받고, remote에서 하려고 했던 login branch를 remote에 merge 하려던 작업을, github에서는 못하니..

layered pattern에서 가져올 때; module, export/import

회원가입 dao 에 insert into user 코드로 함수 export 하는데, 그 함수 하나하나 secvice에 require 안하는 이유는, model 폴더로 index.js로 패키지를 했기에? requrie는 단방향만 가져오는 (router->controller->services->Dao) export는 export하면, 어디서나 불러올 수 있는데, 단방향 상관없이 여기저기 파일 다 쓰이는거고, require는 하나하나 signup , Index.js는 user끼리 연결하게 타게 해줌 -> userrouter- usercontroller-userservices- userDao userRouter에서 다음에는, 다른데 거칠 거 없이 바로 userController로 갈 것. index.js를 가봤..

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 복사 붙여놓기 복사본은 깃 반영 안 됨..

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를 사용하면 데이터베이스 스키마 변경 사항을 기록하는 마이그레이션 ..