카테고리 없음

TIL (2023/08/26) Saturday

0to1ton 2023. 8. 26. 23:02

오늘의 목표는 2주차 강의까지 다 듣고 개인과제까지 완료하는 것이었다. 

아쉽게도 오늘의 할당량을 마치지는 못 했다. 그 이유는 생각보다 강의 듣는게 시간이 오래걸렸기 때문이고 이는 할당량 측정을 잘 못 한 나의 잘못이다. 

그래도 오늘 참 많이 배운 날이다. 

복습을 할 겸 배운 것들을 좀 정리해본다

 

  • 저장장치 - In-memory (비영속성) vs Database (영속성)
  • 데이터베이스의 종류 - RDB vs NoSQL
  • Mongo DB - NoSQL, JSON
  • Studio 3T - Database Tool 
  • Mongoose - MongoDB JS 라이브러리, ODM (Object Document Mapper)
    • Schema - Document Property 를 정해주는 곳
      • Schema Type - null, String, Number, Date, Buffer, Boolean, ObjectId, Array
    • Model - Database에 데이터를 저장하고 읽어올 때 사용되는 데이터 구조
    • exec()를 붙어야지 정상적으로 조회된다.
  • 미들웨어
    • 웹서버 요청을 받을 때, 모든 요청에 대한 공통적인 처리를 하고 싶을 때 필요 (인증, 로깅, 에러핸들링 등)
    • app.use((req, res, next) ⇒ {}
    • express.js의 미들웨어
      • urlencoded: body 데이터를 손쉽게 코드에서 사용할 수 있게 도와주는 미들웨어
      • json: json 규격 body 데이터를 손쉽게 코드로 사용
    • 미들웨어가 여러개인 경우 순차적으로 통과
    • 미들웨어 유의사항
      • app.get 이 api 호출을 할 때 res.json을 함께 쓰는 것을 추천
      • res.json()과 next()를 함께 쓰지 않는다 - 대기하는 미들웨어가 있기 때문
  • 데이터 유효성 검증 라이브러리 Joi
    • JavaScript 유효성 검증은 사용자로부터 입력된 데이터가 원하는 형식과 규칙에 맞는지 확인하는 과정. 주로 웹 애플리케이션에서 사용자가 폼을 제출할 때 입력값을 검사하고 검증하는 과정. 이를 통해 잘못된 데이터가 서버로 전송되거나 저장되지 않도록 방지하며, 사용자 경험을 향상시키고 보안을 강화 가능. ⇒ 안전한 데이터 처리
    • 클라이언트, 서버 측에서 유효성 검증을 할 수 있음. 
    • Joi는 서버 사이드 유효성 검증 라이브러리
      • name: Joi.string().min(3).max(30).required() 등의 값들을 validate 할 수 있음
      • const validation = schema.validate(user);
      • const validation = await schema.validateAsync(user);
  • 에러 처리 미들웨어
    • 에러는 원하지 않았던 비즈니스 로직이 수행되지 않도록 하기 위해 사용.
      만약, 중복되어선 안되는 데이터에 다시 등록 요청이 들어오게 된다면, 데이터를 삽입하지 않아야함. 이렇게, 더이상 코드를 실행하지 않아야하는 경우에 에러를 발생.
    • app.use(err, req, res, next) => { console.error(err.stack); res.status(500).send('Something broke!!'); }
  • 코드 서식 + Prettier
    • 좋은 코드: 가독성 좋고, 일관성이 있으며, 간결한 코드
    • case1: 괄호 잘 사용
    • case2: 한 줄에 모든 코드 작성
    • case3: 객체 리터럴 내의 프로퍼티를 개행으로 구분
    • case4 : 문자열 리터럴 사용, 화살표 함수 괄호 생략

 

내일은 나머지 강의를 듣고 개인과제를 제출하려고 한다. 내일 아침부터 바쁘게 움직여야겠다.

화이팅!