목록NodeJS.Express.MongoDB (12)
나의개발일지
본 글은 작성자가 어디선가 주워듣고 이해한 내용들을 개인적인 언어로 작성한 게시물입니다. 잘못된 내용이 존재할 수 있으니, 읽게 되신다면 이점을 감안해 주세요!!! - 우리는 결국 자신이 가진 이야기로 상대방을 이해할 수 있을 뿐이다.- 인증과 인가(권한)를 구현하는 방법은 다양하게 있다. 이번에 사용해볼 모듈은 passport라는 npm 모듈로 인증과 인가를 보다 쉽게 구현할 수 있게 도와주는 모듈이다. 이전 프로젝트에서는 express-session을 이용하고 bcrypt를 이용해서 암호화해서 데이터베이스에 패스워드를 저장하고 로그인을 유지시켰다. passport도 비슷한 로직을 따르지만 숨겨진 기능이 우리를 대신해서 그러한 로직을 처리해 준다. 간단하게 로그인/회원가입을 구현하고 로그인한 유저가 p..
본 글은 작성자가 어디선가 주워듣고 이해한 내용들을 개인적인 언어로 작성한 게시물입니다. 잘못된 내용이 존재할 수 있으니, 읽게 되신다면 이점을 감안해 주세요!!! - 우리는 결국 자신이 가진 이야기로 상대방을 이해할 수 있을 뿐이다.- 인스타그램이나 블로그에 이미지를 업로드하게 되면, 해당 이미지는 어디에 저장되는 것일까?라는 의문을 가져본 적이 있는가???? 나는 사실 별달리 생각이 없었고 당연히 데이터베이스에 저장이 되는 것이 아닌가라고 생각했다. 하지만, 내 생각과는 달리 이미지나 동영상과 같이 용량이 큰 데이터의 경우 데이터베이스에 저장하지 않는다. 어찌 저지 저장을 할 수 있을 수도 있으나 그것은 효율적이지 않다. 또한 데이터베이스에 따라서 허용되는 데이터의 용량이 한정되어 있어서 데이터를 저..
본 글은 작성자가 어디선가 주워듣고 이해한 내용들을 개인적인 언어로 작성한 게시물입니다. 잘못된 내용이 존재할 수 있으니, 읽게 되신다면 이점을 감안해 주세요!!! - 우리는 결국 자신이 가진 이야기로 상대방을 이해할 수 있을 뿐이다.- 웹애플리케이션에서 중요한 기능 중 하나는 인증(Authentication)과 권한(Authorization)이다. 인증과 인가는 일반적인 웹애플리케이션이라면 모두 가지고 있는 기능 중 하나로 로그인과 로그인 유지와 관련된 내용이다. python을 이용한 인증과 권한을 구현한 경험은 있지만, node에서는 처음이기에 공부하면서 이해한 내용을 정리하고자 한다. 공부하면서 느낀 점은 django를 이용한 인증 권한 구현과 대략적인 흐름은 비슷하다는 것이었다. 다른 점이 있었다..
본 글은 작성자가 어디선가 주워듣고 이해한 내용들을 개인적인 언어로 작성한 게시물입니다. 잘못된 내용이 존재할 수 있으니, 읽게 되신다면 이점을 감안해 주세요!!! - 우리는 결국 자신이 가진 이야기로 상대방을 이해할 수 있을 뿐이다.- 오늘 정리할 내용은 쿠키(cookie)와 세션(session)이다. 쿠키와 세션은 웹애플리케이션에서 공통적으로 사용되는 개념이며, express에서 쿠키와 세션을 이용하면서 세션과 쿠키는 무엇이며, 어떻게 사용하는지와 왜 사용하는지 등을 공부하면서 정리해보고자 한다. 쿠키와 세션은 기본적으로 내용이 광범위하기 때문에 설명하고 이해한 내용은 작은 일부분에 지나지 않을 수도 있지만, 그래도 오늘 공부한 내용을 적어놔야지 내일 잊어버리지 않기 때문에 정리하자!!!!!!!!!!..
본 글은 작성자가 어디선가 주워듣고 이해한 내용들을 개인적인 언어로 작성한 게시물입니다. 잘못된 내용이 존재할 수 있으니, 읽게 되신다면 이점을 감안해 주세요!!! - 우리는 결국 자신이 가진 이야기로 상대방을 이해할 수 있을 뿐이다.- 웹애플리케이션의 데이터를 다루다보면, 데이터 끼리의 연결이 필요한 경우가 있다. mongoose에서도 데이터끼리의 연결, 다큐먼트끼리의 연결을 돕는 기능이 존재한다. 보통 SQL데이터베이스에 많이 사용되는 객체 간의 관계에는 1:1(일대일), 1:N(일대다), 1:M(다대다)관계가 있다. 오늘은 mongoose에서 다큐먼트끼리의 1:N(일대다)의 관계를 설정하는 방법에 대해서 정리해보고자 한다. 1대N의 관계를 여러개로 나눌 수 있다??? SQL에서 1대N은 단순히 N에..
본 글은 작성자가 어디선가 주워듣고 이해한 내용들을 개인적인 언어로 작성한 게시물입니다. 잘못된 내용이 존재할 수 있으니, 읽게 되신다면 이점을 감안해 주세요!!! - 우리는 결국 자신이 가진 이야기로 상대방을 이해할 수 있을 뿐이다.- 웹애플리케이션에서 백엔드가 보통 다루는 것은 데이터이다. 상품데이터, 유저데이터, 기타 등등의 다양한 데이터를 다루게 된다. 이러한 데이터들은 데이터베이스에 저장되고, 데이터베이스에서 다시 꺼내와서 화면에 그려지게 되는 것이다. 그렇기 때문에 데이터가 데이터베이스에 저장 되기 전에는 알맞은 데이터인지에 대한 검사가 필요할 것이다. 만약 이름을 나타내는 데이터인데, 숫자가 들어간다면, 이는 잘못된 데이터이다. 그렇기 때문에 데이터를 저장하기 전에는 유효성 검사가 필요하고,..
본 글은 작성자가 어디선가 주워듣고 이해한 내용들을 개인적인 언어로 작성한 게시물입니다. 잘못된 내용이 존재할 수 있으니, 읽게 되신다면 이점을 감안해 주세요!!! - 우리는 결국 자신이 가진 이야기로 상대방을 이해할 수 있을 뿐이다.- 이번 주제는 error핸들러... 강의를 보면서 익숙해지고 이해하려고 하는데 좀처럼 생각대로 되지 않는다. 왜지????라는 의문을 가지고서 이해한 내용을 작성한다. 이번 글은 다른 포스팅글에 비해서 잘못된 내용이 많이 포함될 거 같은 느낌적인 느낌이 드는 것은 착각이기를 바라면서 에러핸들러를 알아보자!!!! 에러 핸들러???? 에러핸들러가 뭘까??라는 간단한 개념부터 집고 넘어가자니 내가 아는 에러핸들러는 코드가 실행 중에 비정상적인 종료가 되지 않도록(?) 에러가 발생..
본 글은 작성자가 어디선가 주워듣고 이해한 내용들을 개인적인 언어로 작성한 게시물입니다. 잘못된 내용이 존재할 수 있으니, 읽게 되신다면 이점을 감안해 주세요!!! - 우리는 결국 자신이 가진 이야기로 상대방을 이해할 수 있을 뿐이다.- express는 정해진 틀이 존재하지 않는 것 같다. django와 비교해서 좀 더 자유롭다고 느끼는 한편 내가 직접 설정을 해주거나 해야 하는 부분도 존재한다고 한다. 그중 하나가 middleware인 것 같다. 직접 middleware를 설정해주어야 한다는데, 복잡한 느낌이 들긴 한다. 그런데 middleware라는 게 복잡한 거기도 하고 알고 보면 간단한 기능을 수행하는 것도 middleware라고 해서 아직은 개념이 애매한 느낌이다. 그래서 이번 포스팅에서는 mi..
본 글은 작성자가 어디선가 주워듣고 이해한 내용들을 개인적인 언어로 작성한 게시물입니다. 잘못된 내용이 존재할 수 있으니, 읽게 되신다면 이점을 감안해 주세요!!! - 우리는 결국 자신이 가진 이야기로 상대방을 이해할 수 있을 뿐이다.- 앞 서 포스팅된 글은 개별적으로 express와 mongoose를 통합하지 않은 상태에서 작은 프로젝트를 진행한 것이다. 이제 두 개를 함께 사용해서 데이터에 대한 처리가 일어나면 데이터베이스에 반영되게 하는 Product CRUD 프로젝트를 진행해 보았다. 작성된 코드는 모든 상황이 이상적으로 진행된다는 전제하에 작성된 코드로 오류처리와 같은 추가적인 코드는 작성되지 않았다. 먼저 최소한 CRUD가 요청되면 해당 데이터가 데이터베이스에 반영되는 것을 우선적으로 생각해서..
본 글은 작성자가 어디선가 주워듣고 이해한 내용들을 개인적인 언어로 작성한 게시물입니다. 잘못된 내용이 존재할 수 있으니, 읽게 되신다면 이점을 감안해 주세요!!! - 우리는 결국 자신이 가진 이야기로 상대방을 이해할 수 있을 뿐이다.- 앞서 django를 이용한 프로젝트에서 사용된 mysql의 경우 python파일 안에서 mysqlclient라는 pip 라이브러리를 이용해서 작업을 할 수 있었다. mysqlclient를 이용해서 mysql 데이터베이스에 대한 작업을 편리하게 했던 거와 같이 node에서 MongoDB를 편리하게 사용할 수 있는 npm모듈이 있는데, 그게 mongoose이다. npm i mongoose를 통해서 빠르게 설치 후 작업을 해보도록 하자!!!!! mongoose를 사용하기 위해..