til(21)
-
미들웨어 [ TIL ] [ express ]
Problem express 의 미들웨어를 알아보자 Solve 요청과 응답의 중간에 위치하기 때문에 미들웨어 라고 부른다. 보통은 요청과 응답을 조작해 기능을 추가하거나 나쁜 요청을 걸러낸다. 각각의 미들웨어는 next() 메소드를 호출해 그 다음 미들웨어가 작업을 처리 할 수 있도록 순서를 넘긴다. 미들웨어는 req, res, next 가 매개변수인 함수이고, 미들웨어 함수를 여러번 인자로 쓸 수 있다. const express = require('express') const app = express() app.use((req, res, next) => { console.log('응애 나 미들웨어'); next() }); app.get('/', (req, res) => { res.send('하이염'..
2023.07.16 -
CORS [ TIL ] [ node.js ]
Problem 배포를 완료하고 프론트에 데이터를 주었는데 프론트에서 CORS 오류가 발견됨 Try npm i cors // app.js // ... const cors = require("cors"); // ... let corsOptions = { origin: "*", credential: true, }; // ... Solve 옵션에 origin 을 여러번 바꿔보았으나 프론트에 문제가 계속되었고, 위의 코드로 변경 후, 프론트에서 CORS 관련된 코드를 모두 제거하니 해결 되었다. What I Learned CORS 에 대해 배웠다. CORS 는 브라우저에서 보안적인 이유로 cross-origin HTTP 요청들을 제한한다. 그래서 요청을 하려면 서버의 동의가 필요한데 동의를 하지 않는다면 브라..
2023.07.16 -
테스트코드 [ TIL ]
Problem jest 를 공부하며 테스트코드에 대해 몇가지 궁금증이 생겼다. 기준은 단위테스트이다. 1. 테스트코드는 보조적인 수단인것 같은데 테스트를 위해 원본 코드의 구현을 고치는게 맞는가? 2. api 단위 테스트는 보았던 강의처럼 실제 코드를 먼저 구현하고 테스트코드를 구현하는데 이게 보편화되어 있는 것인가? Try 검색을 해보았지만 원하는 답을 얻기 어려웠다. 그래서 보고있는 강의의 강사분께 질문을 드렸다. Solve 개발자가 생각한 비즈니스로직이 정상적으로 동작하는지 확인하기 위해 구현 하는 것 이라고 강사님이 말씀하셨고, 테스트 코드를 구현하면서 실제 비즈니스 로직과 괴리감이 들거나, 실제 비즈니스 로직을 수정해야 한다면, 이는 잘못된 개발 방식으로 진행 하고 있을 가능성이 있다고 한다..
2023.07.12 -
SQL vs NoSQL [ TIL ]
Problem mongo 를 공부한후 mysql 을 공부헸다. 두 데이터베이스는 NoSQL 과 SQL 로 나눤다. 두 데이터베이스의 특징과 차이의 대해 알아보자. Solve SQL (관계형 데이터베이스) SQL 을 사용하면 RDBMS 에서 데이터를 저장, 수정, 삭제 및 검색할 수 있다. 데이터는 정해진 데이터 스키마에 따라 테이블에 저장되고, 관계를 통해 여러 테이블에 분산된다. 스키마를 준수하지 않은 레코드는 테이블에 추가할 수 없다. 즉, 스키마를 수정하지 않는 이상은 정해진 구조에 맞는 레코드만 추가 가능한 것이 관계형 데이터베이스의 특징이다. 또 데이터의 중복을 피하기 위해 관계를 이용한다. NoSQL (비관계형 데이터베이스) 스키마도 없고, 관계도 없다. NoSQL 에서는 레코드를 문서라고..
2023.07.09 -
ORM [ TIL ]
Problem ORM 에 대해서 간단히 알아보자. Solve Object Relational Mapping 의 약자이다. 프로그래밍 언어의 객체와 관계형 데이터베이스의 데이터를 자동으로 연결해주는 도구이다. 왜 사용할까? 데이터 베이스의 접근을 사용하고 있는 프로그래밍 언어의 관점에서 맞출 수 있다. SQL 을 자동으로 생성하여 불일치를 해결한다. SQL 문을 직접 작성하지 않고 엔티티를 객체로 표현할 수 있다. 즉 객체를 통해 간접적으로 데이터베이스를 다룬다. 장점 직관적인 코드와 비즈니스 로직에 집중 가능하다. 재사용 및 유지보수의 편리성이 증가한다. 그리고 DBMS 에 대한 종속성이 저하되는 장점이 있다. 단점 완벽한 ORM 으로만 서비스 구현이 어렵다. 프로젝트의 복잡성이 커질 경우 난이도 도..
2023.07.09 -
HTTP 상태코드 [ TIL ]
Problem nodejs 에서 express 를 사용하면서 api 를 만들때 status 를 통해 상태 코드를 보낸다. 이 상태코드들이 의미하는 바를 몰라 정리를 해본다. Try 아래 두 사이트를 참고하였다. https://developer.mozilla.org/ko/docs/Web/HTTP/Status HTTP 상태 코드 - HTTP | MDN HTTP 응답 상태 코드는 특정 HTTP 요청이 성공적으로 완료되었는지 알려줍니다. 응답은 5개의 그룹으로 나누어집니다: 정보를 제공하는 응답, 성공적인 응답, 리다이렉트, 클라이언트 에러, 그리고 developer.mozilla.org https://ko.wikipedia.org/wiki/HTTP_%EC%83%81%ED%83%9C_%EC%BD%94%EB%9..
2023.07.05