본문 바로가기
반응형

전체보기83

mongoDB collection 이름이 복수형으로 바뀔때 서론 mongoDB collection의 기본 naming convention은 소문자의 복수형이다. 그렇기 때문에 특정해주지 않으면 자동으로 db상에 복수형으로 저장이 된다. 해결법 mongoose.model('post', postSchema, 'post'); 이처럼 collection name을 3번째 인자로 넘겨주면 된다 2022. 3. 3.
github 특정 파일 모든 commit에서 삭제 하기 github에 잘못 올라간 설정 파일을 모든 커밋으로부터 제거하기 위해서는 아래와 같이 하면 된다. 파일명이 .env인 경우 git filter-branch --tree-filter 'rm -rf .env' HEAD 그리고 나서 git push origin master 깃허브에 푸쉬해주면 된다. 2022. 3. 2.
cookie, session과 passport.js cookie | session cookie는 웹서버에서 클라이언트에게 발급하는 것이고, session은 서버에서 이 cookie를 통하여 클라이언트의 정보를 저장해놓은 것이다. 따라서 클라이언트가 서버에 접속할 때마다, 클라이언트는 웹 서버에게 cookie를 포함하여 요청하고, 웹서버는 이 cookie를 통해 서버에 저장해 놓은 session 에서 검색하여 클라이언트의 정보를 알아낸다. passport serialize, deserialize passport.serializeUser((user,done)=>{ done(null,user); }); passport.deserializeUser((user,done)=>{ done(null, user); }); serializeUser은 로그인 시 done(n.. 2022. 3. 2.
mongoose 특정 db와 collection 연결 서론 express.js를 mongodb와 연결하는 중에 계속 connection error가 났다. mongoose docs에서는 아래와 같이 특정 db에 연결하라고 되어있지만, 연결이 되질 않는다. mongoose.connect('mongodb://localhost:27017/myapp');해결법 connect 메서드에서 url에 바로 db이름을 설정해주는 방법이 아닌, option으로 넘겨주면 된다. 그리고 collection은 schema에서 설정해주면 된다. 아래는 코드이다. require('dotenv').config(); const mongoose = require('mongoose'); mongoose.connect( `mongodb://${pro.. 2022. 3. 1.
react-redux undefined 문제 서론 express.js + react.js 를 사용한 server-side-rendering 으로 블로그를 제작중이다. react.js 에 redux를 사용해서 data를 전달하기 위해서 서버와 클라이언트에 redux를 추가하던 중 아래와 같은 문제가 생겼다. The slice reducer for key "category" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value .. 2022. 2. 26.
npm command 윈도우에서 폴더 삭제 서론 웹 프로젝트에서, 빌드한 프로젝트 폴더를 새롭게 빌드하기 전에 기존에 빌드된 폴더를 지워야 하는 경우가 생긴다. 리눅스 기반 운영체제 에서는 package.json에 rm -rf 로 쉽게 지울 수 있지만, 윈도우 개발 환경에서 powershell 이나 cmd를 사용했을 때 지우기가 여간 쉽지가 않다. 해결법 npm install rimraf rimraf를 프로젝트 폴더에 설치한다. 그리고 아래와 같이 package.json에 명령어를 추가해주면 된다. npx rimraf dist 2022. 2. 26.
html pre, code tag overflow in grid 서론 markdown 을 적용하는 경우 console.log("hello world"); 처럼 pre 태그 밑에 code 태그를 사용하여 코드블럭을 구성한다. 나의 경우 블로그를 제작하면서 css grid 로 layout을 구성해서 그밑에 마크다운을 적용하기 위한 pre 태그와 code 태그가 위치한다. 하지만 그렇게 해서 코드블럭을 입력하면 grid가 overflow 되는 문제가 발생한다. 처음에는 온갖 구글링을 하며 overflow를 없애보려고 했는데 잘 되지 않았다. 원하는 방식은 code block 이 grid element 크기보다 가로폭이 클때 스크롤이 되는 것이다. pre태그와 code 태그를 아무리 수정해도 되질 않고 overflow가 되지 않았다. 해답은 grid overflow에 있었다.. 2022. 2. 24.
segmentation fault 2차원 배열을 선언해서 사용하려는데 100*100000의 2차원 배열을 선언하면 segmentation fault가 발생한다. 그럴때에는 stack 영역이 아닌 data 영역에서 선언해주어야 한다. 함수 내에서 선언하는 것은 stack 영역에 할당하게 된다. 반면 global이나 static으로 선언하는 경우는 data영역에 할당한다. 따라서 보통 전역변수로 선언해 주어야 segmentation fault가 발생하지 않는다. 아래는 전역변수로 선언하여 코드를 작성하는 경우이다. 2022. 2. 22.
sass @use not working node-sass를 사용하는 경우 react에서 sass를 사용해서 css reset 파일을 사용하려 하는데 작동이 제대로 되지 않는 문제가 발생했다. 위와 같이 h1 태그가 제대로 초기화 되지 않는다. 구글링을 해보니 sass 에서 @use는 Dart-sass 에서만 지원을 하고 있다고 한다. sass 홈페이지에서는 위와 같이 나와있다. dart-sass 만 @use 태그를 지원한다. 그래서 @use 대신 @import를 사용하면 아래와 같이 잘 적용이 된다. 한편으로는 @import 는 사용하지 않는 것을 권장하고 있고, 점점 migration을 하는 중이라고 한다. 그냥 sass를 이용하자! 위의 문제는 react 설정을 할때 node-sass를 설치해서 생긴 문제로, node-sass가 위의 sa.. 2022. 2. 19.
Ubuntu에서 폰트 설치하는 방법 코딩 할 때 가독성이 좋은 폰트를 사용하고 싶은 경우가 있다. 그럴 때 고정폭 폰트를 다운받아서 설치해야 하는데, .ttf파일을 우분투 기본 fonts프로그램을 설치하면 굉장히 오랜시간이 걸리고, 설치가 되었는지 확실하게 구분이 되질 않는다. 위의 사진에서 Install을 누르는 경우 windows에서 처럼 한번에 설치가 되지 않을 뿐 더러 오랜 시간이 걸린다. 설치 방법 https://www.nerdfonts.com/ 위 링크에 접속하여, Downloads를 클릭한다. Nerd Fonts - Iconic font aggregator, glyphs/icons collection, & fonts patcher Iconic font aggregator, collection, & patcher: 3,600+ .. 2022. 2. 11.
반응형