학습 기록/데브코스 웹 풀스택 4기 24

백엔드 심화: DB 실습, 시간 타입

date/ 24.09.12. /* 공부하며 정리한 내용이니 정확하지 않을 수 있습니다. 잘못된 내용은 댓글로 알려주세요!*/ 📌DB 테이블을 생성하는 SQL문을 직접 작성하는 실습을 진행해 보겠습니다.  참고로 이런 식으로 DB 켜고 바로 쓰지 말고 메모장에 작성한 다음 붙여넣기 해주는 것이 좋습니다. 별도 관리의 필요성!   auto_increment_lock_mode라는 것이 있습니다. 중간에 insert에 실패하더라도 auto_increment를 부여한 값은 하나씩 증가한 값을 갖게 되는 케이스의 원인. 📌JOIN 기능이 신기해서 실제로 적용해 보았습니다.  📌

백엔드 심화: DB 기본

date/ 24.09.11. /* 공부하며 정리한 내용이니 정확하지 않을 수 있습니다. 잘못된 내용은 댓글로 알려주세요!*/  📌데이터베이스란, 데이터를 통합하여 효율적으로 관리하기 위한 데이터 집합체를 의미합니다. 데이터를 구조화하여 관리함으로써 데이터 중복을 막고, 효율적이고 빠른 데이터 연산을 가능하게 합니다. 우리는 데이터베이스를 운영하고 관리하기 위한 DBMS(database management system)을 통해 데이터베이스를 사용합니다. 때문에 우리가 날것의 데이터를 직접 사용하는 사례는 거의 없을 것입니다. ㅎ.. 사실 당연합니다. DBMS의 종류에는 오라클, mySQL, mariaDB 등이 있습니다. 굉장히 다양하고 운영하는 회사도 다 다르지만 명령어(SQL)는 서로 유사합니다. SQ..

백엔드 기초: 마무리, express

date/ 24.09.10. /* 공부하며 정리한 내용이니 정확하지 않을 수 있습니다. 잘못된 내용은 댓글로 알려주세요!*/ 📌오늘은 뭘 했느냐... 라우팅과 express의 구조에 대해 한 번 더 살펴보고, 간단하게 ERD를 그려보았습니다. ERD를 그릴 때 유의했던 점은 회원마다 채널을 여러 개(실제 유튜브의 경우 한 개의 계정당 채널을 100개 소유할 수 있다. 비슷하게 구현하는 것이 목표.) 가질 수 있다는 점입니다. 이제까지 코드를 짤 때는 그냥 채널명 혹은 id 받아와서 정보 뿌려 주면 되는 거지~ 싶었는데 전혀 해결책이 아니었고, 각 채널별로 id를 부여해서 분류해야 했습니다. 수업 들으면서 노션에 표로 작성해봄 실제 설계야 이것보다 복잡하겠지만, 지금은 이 정도만 고려하고 넘어가겠습니다...

백엔드 기초: 유튜브 채널 페이지 만들기

date/ 24.09.09. /* 공부하며 정리한 내용이니 정확하지 않을 수 있습니다. 잘못된 내용은 댓글로 알려주세요!*/  저번에 로그인 페이지까지 간결하게 구현해 보았습니다. 오늘은 채널 API를 설계하고 페이지를 구현해 보겠습니다. 📌자바스크립트에서 빈 객체를 확인하는 방법이 3가지 있습니다. 객체.keys()를 활용하는 방법, for문을 이용하여 안에 property가 있는지 하나하나 체크하는 방법, lodash라는 라이브러리를 활용하는 방법입니다. 그 중 가장 추천하는 방법은 객체.keys()를 활용하는 방법입니다. const obj1 = {}const obj2 = { message : "안 비었음" }console.log(Object.keys(obj1))console.log(Object.k..

백엔드 기초: 전체 조회, forEach와 map, delete

date/ 24.09.05. /* 공부하며 정리한 내용이니 정확하지 않을 수 있습니다. 잘못된 내용은 댓글로 알려주세요!*/  📌전체 유튜버가 조회되는 화면을 만들다 말았습니다. 마저 제작해 보겠습니다.app.get('/youtubers', (req, res) => { db.forEach(function(youtuber) { console.log(youtuber) }) res.json(db.values())}) 이런 코드를 일단 추가해 주었습니다. 잘 실행되는지 로그를 통해 확인해 보겠습니다. 잘 뜨는군요! 그럼 다음 단계로 넘어가서 ... app.get('/youtubers', (req, res) => { var youtubers = {} db.forEach(function(v..

백엔드 기초: postman과 post

date/ 24.09.04. /* 공부하며 정리한 내용이니 정확하지 않을 수 있습니다. 잘못된 내용은 댓글로 알려주세요!*/   📌method 중 POST는 웹 브라우저로 테스트가 안 됩니다. 이런! 저는 회원 가입 기능도 넣고 싶고, 유튜브 페이지를 만든다면 유튜브 채널도 개설할 수 있게 하고 싶은데 어떻게 해야 할까요? 사실 이런 예시에서 사용자가 등록해야 하는 데이터는 오픈된 상태로 보내면 안 됩니다. 당연히 숨겨서 보내야겠죠? 이러한 데이터를 (http 템플릿 중) body에 숨겨서 POST로 전송합니다. 즉, 데이터가 body에 숨겨져 와야만 POST인 줄 아는 것이죠. 그럼 테스트는 대체 어떻게 하나, 싶으니 소개합니다. POST를 위한 테스트 도구, postman입니다.  구글에 postm..

백엔드 기초: map object, 함수

date/ 24.09.03. /* 공부하며 정리한 내용이니 정확하지 않을 수 있습니다. 잘못된 내용은 댓글로 알려주세요!*/  📌어제까지만 하더라도 우리는 string만 db에 담아 화면에 뿌려보았습니다. 음... 저는 싫어요. 다른 것도 담고 싶다면 어떻게 하면 좋을까요?const express = require('express')const app = express()app.listen(1234)app.get('/:id', function(req, res) { let {id} = req.params id = parseInt(id) if (db.get(id) == undefined) { res.json({ message : "없는 상품입니다." }) ..

백엔드 기초: 객체, map, req.params

/date 24.09.02. /* 공부하며 정리한 내용이니 정확하지 않을 수 있습니다. 잘못된 내용은 댓글로 알려주세요!*/  📌자바스크립트는 특징이 있습니다. const, params를 문자열로 받지만, 그렇게 해서 받은 문자열이 숫자로 이루어졌다면 숫자처럼 알아서 변환하여 계산해 주곤 합니다. 다른 언어에서는 통하지 않는 부분이니 parseInt를 사용하는 버릇을 들이도록 합시다.if ((req.params.n - 10) > 0) { console.log("url로 전달받은 숫자가 10보다 크네요")} //정상작동: 문자열을 숫자처럼 알아서 바꿔서 계산let number = parseInt(req.params.n) - 10//parseInt: 문자열을 숫자로 변환  📌그럼 req.params를 사..

백엔드 기초: Express 기본

/date 24.08.30. /* 공부하며 정리한 내용이니 정확하지 않을 수 있습니다. 잘못된 내용은 댓글로 알려주세요!*/  Expressexpress는 사실 http와 많이 다르지 않습니다. express 안에 http가 포함되어 있기도 하구요. 외부 모듈이기 때문에 figlet처럼 npm을 통해서 다운로드 가능합니다. 터미널을 열고 npm i express 명령어를 입력해 줍니다.  성공적으로 설치가 완료되었습니다. 그럼 express를 구동해 보도록 하겠습니다. const express = require('express')const app = express()//왜 const? http는 let이던데...//let은 변수, const는 상수//createServer가 없고 express를 app에..

백엔드 기초: node.js, npm

/date 24.08.29. node.js를 뜯어보기 전에 저번 강의에서 언급하였던 HTTP method를 다시 살짝 살펴본 후 정리해 보도록 하겠습니다. 공부하며 정리한 내용이니 정확하지 않은 내용이 포함되어 있을 수 있습니다. 댓글로 알려주세요. HTTP methodHTTP method는 HTTP에 담아 보내는 나의 목적이라고 볼 수 있습니다. (이전 게시글 중 HTTP 템플릿의 body에서 언급하였던 목적이 바로 이것입니다.) 이름에서도 알 수 있듯 HTTP는 규약이라 사용을 위해 정해둔 용어가 따로 있습니다. 외울 필요는 없지만 때에 맞게 적절한 method를 찾아서 사용할 필요는 있습니다. method 몇 가지를 소개합니다.생성(=등록) : POST조회: GET수정: PUT / PATCH삭제: ..