본문 바로가기

til

(58)
웹 풀사이클 데브코스 TIL 34일차 SELECT 컬럼명 변경 SELECT name AS category_name FROM categories; 이와 같이 AS를 활용해 원하는 이름으로 컬럼을 변경해줄 수 있다. name -> category_name 외래키 설정과 조인 books 테이블과 categories 테이블의 FK 설정을 해주었고 LEFT JOIN을 통해 카테고리 이름을 함께 얻어올 수 있게되었다. SELECT * FROM Bookshop.books LEFT JOIN categories ON books.category_id = categories.id; `'1','어린왕자들','7','0','종이책','0','어리다...','..
웹 풀사이클 데브코스 TIL 33일차 SQL 관리 프로젝트에서 sql등을 따로 정리해 놓고 싶다면 다음과 같이 data.sql 파일을 하나 만들어서 사용하면 된다. picsum 더미 이미지를 제공하는 사이트. https://picsum.photos/ https://picsum.photos/id/1/200/300 이와같이 간단한 URL로 이미지를 가져올 수 있다. 쿼리 스트링과 일반 요청이 같은 url을 사용할 때 router.get('/', allBooks) router.get('/:id', bookDetail) router.get('/', booksByCategory) books 라우터를 보면 한가지 문제점이 있다. allBooks와 booksByCategory가 같은 URL을 사용하고 있는 것이..
웹 풀사이클 데브코스 TIL 32일차 http-status-codes npm 모듈로 http 상태 코드를 문자형식으로 사용할 수 있다. https://www.npmjs.com/package/http-status-codes const {StatusCodes} = require('http-status-codes') if(err) { console.log(err); return res.status(StatusCodes.BAD_REQUEST).end(); } res.status(StatusCodes.CREATED).json(results); 사용 예시 코드이다. node.js 패키지(파일) 구조 app.js: 프로젝트의 메인 라우터 역할 users.js: 하위 라우터 역할 books.js: 하위 라우터 역할 라우터가 로직까지 다 수행..
웹 풀사이클 데브코스 TIL 31일차 Express-generator 구조 bin/www 포트넘버, 에러 등등 웹 서버를 구축하는데에 필요한 설정 데이터가 정의되어 있음 => .env 파일과 같이 설정 값을 가지고 에러 처리, 기타 추가 설정을 해주는 파일 node_modules Node.js, Express 에 필요한 모듈들이 설치되는 폴더 public images, javascripts, stylesheets -> 정적 파일(ex. 로고, 회사 소개) routes app.js 서버의 시작점에서 URL에 따라서 각 경로를 담당하는 모듈들이 들어있는 폴더. 라우팅 로직을 구현하는 모듈들 클라이언트에서 어떤 요청을 주느냐에 따라서 어떤 로직을 수행할 지 파일별로 분할 해서 관리하는 정도(cf. 자바의 controller 역할) views 클라..
웹 풀사이클 데브코스 TIL 30일차 dbdiagram.io 데이터베이스 ERD 설계를 위해 dbdiagram.io 라는 사이트를 이용하였다. https://dbdiagram.io/d 좋아요 ERD 좋아요는 새로 테이블을 만들어서 관리한다. Table likes { user_id integer liked_book_id integer } 좋아요 누른 유저 아이디와 눌려진 책 아이디를 한꺼번에 관리하면 된다. 이렇게 하면 따로 books table에 좋아요 숫자를 가지고 있지 않고 그때 그때 집계함수로 계산할 수 있다. 장바구니 ERD Table cartItems { id integer bookId integer count integer } 장바구니는 ERD를 그릴 때 cartitems 라는 테이블로 만든다. 컬럼은 bookId와 count 가..
웹 풀사이클 데브코스 TIL 29일차 오늘부터 본격적으로 프로젝트 2가 시작되었다. 주제는 책 쇼핑몰이다. 쇼핑몰에는 웹 기술의 많은 부분이 들어있기 때문에 잘 익혀두도록 하자. 회원 API 설계 주어진 요구사항에 맞게 회원 API를 구현하였다. 회원가입 Method: POST URI: /join Status Code: 성공 201 Request body: {email: “사용자가 입력한 이메일”, password: “사용자가 입력한 비밀번호” } Response body: 로그인 Method: POST URI: /login Status Code: 성공 200 Request body: {email: “사용자가 입력한 이메일”, password: “사용자가 입력한 비밀번호” } Response body: JWT Token 비밀번호 초기화 요청..
웹 풀사이클 데브코스 TIL 28일차 1분 자기소개 프로젝트 개요 3~5줄로 줄여서 말하기 장점 3가지를 나열하면 된다. 장점의 근거는 프로젝로 든다. 프로젝트는 2개 이상을 추천. 많아도 4~5개 이하로. 자기소개를 통해 면접 방향을 바꿀 수 있다. 틀리면 안되는 진짜 면접 질문 DB ERD: 연관관계, 자료형, 정규화(테이블을 왜 그렇게 쪼갰는지) 웹 자바스크립트는 00 언어이다? -> 프로토타입, 객체, 함수, 동작, 멀티 패러다임, 컴포넌트. 어떤걸 선택하던 우리의 코드와 결이 맞아야 한다! RESTful 하다? -> REST API에 대하여 패키지 구조: 대기업 쪽에서 관심이 많음 패키지구조를 왜 그렇게 짰는가를 물어본다. DDD: 도메인 주도 개발 (소프트웨어 공학 CS) 도메인: 쇼핑몰 예시) 회원 서비스, 구매 서비스, 결제 ..
웹 풀사이클 데브코스 TIL 27일차 인증 vs 인가 인증 Authentication. 로그인. 사이트에 가입된 사용자라는 걸 증명 예시) 쇼핑몰 상품 구매, 마이페이지 인가 Authorization. 허가. 인증 후에 페이지 접근 권한이 있나? 예시) 관리자 / 고객 에 따라 접근할 수 있는 페이지가 다르다. 쿠키 쿠키: 서버와 클라이언트가 주고받는 정보 로그인 -> 서버가 쿠키를 구워줌 사용자 서버 쿠키를 주고받음 장점: 서버가 저장 X => 서버 저장공간 X, Stateless 하다 => RESTful 하다 단점: 보안 취약 세션 세션: 로그인이 되어있는 상태 로그인 -> 서버가 금고를 만들어서 정보 저장하고 금고 번호를 줌 사용자 서버가 번호만 가지고 대화 장점: 보안 비교적 좋다 단점: 서버가 저장 O => 서버 저장공간, Stat..