전체 글 (24) 썸네일형 리스트형 db의 유효성 검사기준을 확인하자 - sql_mode dev에서는 잘 되는 작업이 live 서버에서 db 에러를 뱉는 경우가 생겼다. 이는 디비에 저장되는 데이터에 대한 유효성 검사(validation check) 범위의 문제였는데, dev와 live의 검사범위가 달라서 발생하는 문제였다. live 서버의 유효성 검사 기준이 훨씬 까다로웠기 때문에 dev 서버의 테스트는 모두 통과했으나 live 서버에서 오류를 발생시킨 것이다. dev에서 미리 문제를 발견해야 정상이지만 이 경우, 역설적이게도 live에서 오류를 발견하게 되는 셈이다. db 데이터의 유효성 검사는 SELECT @@sql_mode; 쿼리문으로 확인 할 수 있으며, sql 공식 문서에서 각 조건의 유효성 검증 기준과 설명이 나와있으니 참고하자. why ORM? 왜 ORM을 쓰는걸까? orm(object relational mapping) 객체의 관계적 매핑이라는 뜻을 가지고 있는데 이게 무슨 의미일까? (보통 매핑이란 개념은 기존에 가지고 있던 개념을 다른 개념과 관계짓는 것을 의미한다.) 이를 이해하기 위해서는 객체-관계 미스매치 라는 개념을 이해해야 근본적인 이해를 할 수 있다. 객체-관계 미스매치라는 개념은 객체지향 패러다임과 관계형 패러다임이 다르다는 의미다. 객체지향은 객체(object)로 모든것을 설명한다. 관계형db의 경우 테이블로 설명하지만 서로의 관계를 표현하기위해 테이블이나 외래키를 이용한다. 이는 객체지향으로 표현하기 힘든 부분이다. orm은 이런 관계형을 객체지향을 패러다임으로 쓸 수있게끔 만들어준다. 관계형 db의 본질적 존재이유(데이터.. response validator joi 사용하기 node js는 매우 자유롭다. 자바스크립트 특성상 타입을 엄격하게 구분하지않는다. 이런 점은 장점이 되기도 하지만 실수의 여지가 될 가능성이 높다. 그래서 자체적인 코드로 API의 response값을 체크해주게 되는데, 이는 코드의 중복을 늘리게 된다. 이런 불편함에 node는 response value에 대해 validation check를 위한 joi라는 모듈을 제공한다. 조이 모듈은 스키마로 데이터의 조건을 설정한다.(나는 스키마만 모아두는 schema.js 파일에 모두 넣어 쓰기로 했다.) 예를 들어, name과 birthyear을 body의 값으로 받아온다고 하면(post방식) name, unit 은 스트링일 것, 파라미터에 꼭 포함될 것을 조건으로 가지고 있다. (조건은 훨씬 다양하다.) 이.. 이전 1 ··· 3 4 5 6 7 8 다음