카테고리 없음

TIL (2023/08/25) Friday

0to1ton 2023. 8. 25. 09:48
  • 드디어 3주차 강의 시작
    • Node.js 뿌셔보자!!
    • 보다 실습이 많아서 훨~~씬 재밌게 할 수 있을 것 같다! 저번 주 내용이 조금 심심?!해서 지루해질려던 차 할일이 팍 밀려와서 너무 좋다. 이제 머리박고 강의들어야겠다.
  • 특강 진행 - 연봉 1억원 개발자 되기
    • Tree형 사고를 하자
    • 이런 레벨 간 요소들의 상호관계에 맞춰서 사고를 확장할 수 있는 능력이 필요하다.
      • Level 1 : android, iOS, Web
      • Level 2 : Mobile, Tablet, Desktop
      • Level 3 :  Home, Discover, Search, More, Login, Signup
  • 3주차 주특기 1주차 강의는 총 2주차 강의로 구성되어있는데 1주차까지 다 들었다.  배운내용을 정리해본다.
    • 웹 브라우저의 통신 방식
      • 정적 웹페이지, 동적 웹페이지, URL, DNS, IPV4 vs IPV6, 작동원리 
    • 웹서버의 이해 
      • 웹서버 정리, 웹 어플리케이션 서버, 웹서버와 브라우저간의 통신 방법 정리
    • JavaScript
      • 탄생비화 - 정적인 문서를 동적으로 제공하기 위해 만듬
      • 정적 웹페이지 - HTML로 가능
      • 동적 웹페이지 - JavaScript 필요
      • ECMA Script - 2023년 기준 14번째
      • 동기 (sync)vs 비동기 (async)
      • aync + non-blocking model
      • promise - pending, fulfilled, rejected
    • Node란?
      • V8 JS 엔진에 빌드된 JS 런타임
      • Core Library + Bindings, V8 Engine, Libuv
      • 사용해야하는 이유: 논블로킹 I/O, 싱글스레드, 이벤트 루프 (호출스택 + 이벤트큐)
      • REPL (Read, Evaluate, Print, Loop)
    • Package Manager
      • Npm, yarn
      • package-lock.json, yarn.lock
    • Express.js
    • Module
      • CJS (Common JS)
      • ESM (ECMA script module)
      • import {함수명} from "./file"
      • export, import
    • API, REST API의 개념
      • Rest의 구성요소 - URL, HTTP method, JSON - 자원, 행위, 표현
    • Routing 및 route의 구조
      • routing: 클라이언트에서 요청이 들어오면 서버에서 응답을 하는 방식
      • router, method, path, handler
        • router.get('/books', (req, res) => { res.json({ success: true, data: getAllBooks() }); });
      • 미들웨어 - 모든 요청/응답을 서버에서 공통적으로 관리
        • app.use('/api', [goodsRouter]);
      • API client - insomnia, thunder
      • Request & Response
        • Request: url, http method, header, query parameter, body data
        • Response: status code, response data, response header
        • Req 객체 - req.body, req.params, req.query
          • req.body - const ReqBody = req.body;
            • 보안
          • req.params  - const { name } = req.params;
            • ex) 게시글의 상세 정보 조회, 사용자의 상세 정보 조회
          • req.query - - const ReqQuery = req.query;
            • ex) https://sparta.com?name=이용우&age=29
            • 위치를 표시하거나 웹 페이지에 특정한 옵션을 설정할 때 사용합니다. ex) 게시글의 정렬, 특정 날짜의 게시글만 출력하는 옵션 설정 등
        • Res 객체 - res.status(code), res.send(data), res.json(json)
          • res.status(code)
          • res.send(data)
          • res.json(json)
  • 알고리즘 2문제