프로그래머스 데브코스/TIL

오늘 배운 내용 📚 미니 프로젝트 Youtube 적용 : 목록 가기 유효성검사 express에 유효성검사를 할 수 있는 모듈이 존재하는지 처음 알았습니다. 항상 유효성검사를 콜백함수 안에서 진행했었는데 express-validator를 이용하여 미들웨어 쪽으로 코드를 옮기니 콜백함수에 들어가는 코드들이 많이 줄어들어서 간편해졌다고 생각을 했습니다. mysql2에 대한 궁금증도 생겨났습니다. 왜 똑같은 mysql2를 사용하는데 conn.query(sql, data, callback)을 하면 callback 함수 안의 매개변수들이 작동을 하지 않을까?를 생각하게 되었습니다. const mysql = require("mysql2"); const conn = mysql .createConnection({ hos..
오늘 수업 내용📚 미니 프로젝트 Youtube 적용 추가 정리 내용📑 timezone 설정 기존에 작업 중이던 Youtube에 db를 차근차근 적용 중에 있습니다. 기본적으로 user와 channel의 데이터베이스를 만들고 하나하나 sql문을 작성하면서 정리 중인데 현재 고민인 내용으로는 우리가 form 형식으로 내 회원번호가 1번이다 2번이다 이런 건 알 수 없기 때문에 대게 이메일이나 아이디, 혹은 생성자 이름을 받습니다. 그게 아니라면 URI로 회원번호를 받을 수도 있겠지요. 만약에 URI로 받지 않는다는 가정을 한다면 채널 생성에서 sql문은 총 3가지가 될 것 같다는 생각을 했습니다. 1. 채널명 중복 확인, 2. 유저번호 받기, 3. 채널생성 만약 2번을 진행하지 않는다면 채널생성에 꼭 필요한..
오늘 수업 내용📚 테이블 생성 실습을 토대로 미니 프로젝트 Youtube 테이블 생성 Database와 node 연동 timezone 설정 어제 배운 테이블 생성실습을 토대로 미니프로젝트의 Youtube에 data를 넣을 테이블들을 생성을 하였습니다, 오늘은 workbench를 통해서 테이블을 만들어보려 했는데 query 작성 후 apply를 하니까 에러가 발생을 했고 이상하다 싶어서 CLI를 통해서 똑같은 코드를 작성을 하니 별문제 없이 테이블이 생성이 되는 걸 보고 코드자체에는 문제가 없지만 workbench에서 작성을 할 때에는 테이블명 앞에 스키마이름을 작성해 주던가 사용하고자 하는 스키마를 기본스키마로 설정을 해둬야 문제없이 테이블이 생성이 되는 것을 알게 되었습니다. 그리고 예전에 timezo..
오늘 수업 내용 📚 테이블 생성 실습 제약조건 NOT NULL DATE 타입 오늘은 어제 배운 RDBMS 실습을 진행했습니다. 항상 mysqlworkbench를 통해서 테이블을 만들다가 CLI로 하나하나 하니까 감회가 새롭고 기존에 문제가 되던 error을 마주해 볼 수 있는 귀한 경험이 된 거 같습니다.😅 그리고 테이블 생성할 때 콘텐츠 영역의 데이터타입을 어떻게 정해야 할지 varchar와 text, longtext 등등 다양한 타입이 있는데 어떻게 설정을 해야 할지 매번 감이 안잡혔는데 앞으로 수업을 듣다 보면 이런 궁금증도 해결이 될 수 있었으면 좋을 것 같아요. 그리고 오늘수업을 들으면서 NOT NULL과 DEFAULT의 차이에 대해서도 조금 이해할 수 있게 된 것 같습니다. 예전에 FK 설정 ..
오늘 수업 내용📚 RDBMS란? 데이터 중복 처리(정규화) 실전 ERD 추가 정리 추가 정리 내용📑 database의 key 오늘 수업은 데이터베이스를 다루었습니다. 데이터베이스의 종류와 테이블을 구성을 어떻게 하는지, 데이터 중복을 어떻게 하는지 그걸 토대로 실습으롤 진행했던 유튜브 ERD 수정을 진행하였는데요. 수업외적으로 궁금한 것들을 정리하느라 조금 시간이 걸렸던 것 같습니다. 특히 DBMS의 종류와 데이터 중복 처리를 위한 정규화의 정의라던가 database의 key에 대해서 알고 싶었습니다. 책을 찾아보기도 했고 인터넷을 찾아보기도 하였습니다. 본다고 바로 이해할 수가 없었고 이해하는데 시간이 많이 들더라고요. 특히 정규화의 경우에는 총 6가지의 정규화 작업이 존재했는데 BCNF부터 이해가 잘..
오늘 수업 내용📚 실습에 Router 적용하기 Map객체 → DB로 ERD 구성해 보기 ERD에 따른 코드 수정 (기존 프로젝트 posts) 오늘 수업으로 인해 코드수정을 하게 되었습니다. 기초코드부터 찬찬히 작성하여 조금씩 디벨롭해 가는 방향으로 수업을 진행 중인데 제가 스스로 짠 코드를 강사님의 조건에 맞게 코드를 수정을 하는 부분에 있어서 누락이 된 부분, 참고하면 좋을 부분들을 정리하면서 하느라 조금 시간이 걸렸습니다. 일단 강사님과 코드를 짜면서 달랐던 부분은 db.size를 확인하는 작업에서 차이가 났습니다. 저는 아무래도 db는 당연히 있다라고 생각을 한 것 같은데 허를 찔린 기분이 들었고 db.size를 추가하는 작업을 했습니다. 저는 if 중점 최대한 지양하려고 하는 편이라 early r..
오늘 수업 내용 📚 미니 프로젝트 로그인 : 예외처리 Object.key 채널 API 설계 채널 생성, 채널 개별 조회, 채널 개별 삭제, 채널 개별 수정, 채널 전체 조회 오늘은 어제에 이어서 미니 프로젝트를 통해서 실전 코드 작성을 해보았습니다. API 설계부터 설계에 맞는 API 작성을 하였는데요. 아무래도 제가 작성하는 방식과 강사님이 하는 방식이 다르다 보니 그 부분에 있어서 조금 혼란스러웠던 게 있었던 것 같습니다. 예를 들어서 로그인할 때 강사님은 let hasUser = false; let loginUser = {}; db.forEach((user,id)=>{ if(user.userId === userId){ hasUser = true; loginUser = user } }) if(hasU..
오늘 수업 내용 📚 핸들러란? 객체와 일치하는 데이터를 찾는 find 백엔드에서 예외처리 미니 프로젝트 - youtube 안정성을 위한 예외처리를 어제 공부를 했는데 이 예외처리는 사실 프론트, 백 둘 다 해당되는 얘기였다면 오늘 배운 예외처리는 백엔드에서 예외처리를 해줘야하는 것과 이 처리를 해주면 프론트엔드에서 어떻게 좋은지에 대해서 알 수 있었습니다. 항상 프론트에서 일을 더 하냐 백에서 일을 더하냐로 이야기가 많이 나오는 걸 알고 있습니다. 예를 들어서 토큰관리를 어디서 할 것인가? 유효성검사를 어디서 할 것인가 같은 이야기들 말입니다. 사실 오늘 배운 이야기도 이것과 관련이 있지 않을까 생각이 들었습니다. 백엔드에서 해주면 감사하고 안 해주면 프론트에서 다시 한번 검사를 한다고 생각을 했기 때문..
오늘 수업 내용 📚 API 실습 - DELETE와 PUT forEach와 Map 예외처리 리팩토링 http status code 오늘 수업을 통해서 깨달을 바가 있다 하면 바로 예외 처리였습니다. 혼자 작업하던 코드들을 살펴보면 전부 예외처리가 거의 없었기 때문입니다. 그래서 기존에 작성한 코드들을 전부 예외처리를 추가해 보았습니다. 특히 개별조회, 삭제, 수정일 때 발생하는 에러가 줄어든 걸 확인을 했습니다. 이를 통해서 기존에 작업한 코드들 도 마찬가지로 차근차근 바꿔보려 합니다. 또한 앞으로 작업할 코드들도 최대한 예외적으로 발생할 일을 생각하여 예외처리를 해보도록 하려고 합니다. 그리고 예외처리를 하면서 어디까지 코드를 줄여야 하는 것일까 생각을 해보았습니다. app.put("/youtubers/..
코드둥
'프로그래머스 데브코스/TIL' 카테고리의 글 목록 (4 Page)