사랑하애오
article thumbnail
Warning: connect.session() MemoryStore is not designed for a production environment
Node.js 2022. 11. 2. 11:26

회사에서 서버를 배포하려고 하니 로컬환경에서는 문제 없이 잘 작동되는 exress-session에서 자꾸 warning을 뱉어내서 알아보니 production 환경에서는 제대로 작동하지 않는다는 것이었다. 그래서 결국 redis를 쓰기로 다짐했다. Node 프로젝트에서 pm2로 다중 클러스터 인프라를 구축했다면 세션 불일치 문제가 생기게 마련이다. 만일 서버가 종료되어 메모리가 날라가면 접속자들의 로그인이나 혹은 기타 세션들이 모두 날라가버리게 된다. 따라서 이를 방지하기 위해 세션 아이디와 실제 사용자 정보를 외부 데이터베이스에 저장하는 편이다. 이때 개발자들이 많이 사용하는 것이 Redis db이다. 다른 데이터베이스를 사용해도 되지만, 세션은 빠릿빠릿하게 응답을 해야되기 떄문에 메모리 기반의 데이터..

article thumbnail
Nodejs Express MariaDB(Ubuntu) 회원가입 및 로그인 (2)
Node.js 2021. 12. 21. 16:24

CMD에서 다음의 명령을 사용해 express를 설치하시오 npm install express-generator -g 그러면 이제 express-generator를 사용할 수 있습니다. Step 1. 새 App 디렉토리를 만듭시다. cmd를 켜고 cd /desktop으로 디렉토리를 바꾸고 새로운 app을 생성 ㄱㄱ express --view=ejs myApp cd myApp code . myApp 디렉토리로 이동 하고 편집기를 엽니다. Step 2. 필요한 모듈들을 설치합니다. npm i express express-session express-flash express-validator method-override mysql http-errors cookie-parser body-parser morgan..

article thumbnail
Nodejs Express MariaDB(Ubuntu) 회원가입 및 로그인 (1)
Node.js 2021. 12. 21. 15:26

MariaDB를 설치할 리눅스는 Ubuntu Linux 20.04 LTS 버전이다. MySQL이나 MariaDB 둘 다 SQL문을 사용합니다. ubuntu 20.04 LTS 버전의 uname -a 많은 사람들이 간과하는 것이지만 모든 DBMS는 Server 모듈과 Client 모듈로 구성된다. 설치 대상 서버의 기능에 따라서 Server 모듈만 설치할 수도 있고 Client 모듈만 설치할 수도 있다. 물론 둘다 설치하는 것이 일반적이긴 하다. MariaDB 또한 Server와 Client로 구성되어 있다. 먼저 MariaDB 서버를 설치한다. 설치 전에 apt-get update 명령을 실행하여 패키지 목록을 최신화하는 것을 잊지 말자. 실제 설치되어 있는 패키지를 업그레이드 하는것이 아니라 현재 설치된..

article thumbnail
[MERN] SNS Chat App 만들기 (1)
Node.js 2021. 11. 24. 12:43

React.js를 공부하다가 포트폴리오 겸 공부 겸 연습도 할겸 여러 소스도 많고 공부할 요소가 많은 SNS로 선정해서 공부하게 되었습니다. 사용한 기술스택은 간단하게 요약하자면 MERN으로 MONGODB, Express, React.js, Node.js 입니다. (MERN) 첫번째로 위에 사용할 라이브러리들을 설치해줍니다. https://www.mongodb.com/try/download/community https://nodejs.org/en/download/current/ 설치가 완료되었으면 본격적으로 들어가겠습니다. (Node와 관련된 것은 이전에 포스팅을 해두었습니다.) 각자 사용할 편집기를 열기 전에 먼저 cmd로 진행하겠습니다. cd desktop -> desktop으로 이동 yarn cre..

[Node.js] Express Server 구축
Node.js 2021. 11. 9. 12:06

https://nodejs.org/en/ Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org LTS 버전으로 설치하시는게 좋습니다. 설치가 완료되시면 아래 커맨드를 이용해 설치가 잘 되었는지 확인하실 수 있습니다. node --version 프로젝트 생성하기 원하시는 위치에 프로젝트 디렉터리를 생성해주시고 프로젝트 루트 폴더에서 아래 커맨드를 실행해주세요. npm init -y npm 은 nodeJS에서 여러 패키지들을 설치하고 관리할 때 사용되는 패키지 매니저로 위 커맨드를 실행할 시 프로젝트 폴더 내에서 package.json이라는 파일이 생성될 겁니다. 강의를 진행하며 npm을 사용해 패..

[React] constructor() 생성자 사용법
Node.js 2021. 10. 20. 15:38

class TempComponent extends Component{ constructor(props){ super(props); } render(){ return(); } } React에서 Component를 생성할 때 state 값을 초기화하거나 메서드를 바인딩할 때 construcotr()를 사용합니다. React의 Component의 생성자는 해당 Component가 마운트 되기 전 호출됩니다. React.Component를 상속한 컴포넌트의 생성자를 구현할 때는 super(props)를 선언을 권고하고 있습니다. 이유는 this.props 사용 시 생성자 내에서 정의되지 않아 버그 발생 가능성이 생기기 때문입니다. class TempComponent extends Component{ constr..

article thumbnail
[Node.js/vue.js] 영화정보 페이지 제작(frontend, backend 연동)
Node.js 2021. 9. 17. 17:36

vs code 터미널에서 작성 작업 디렉토리 생성 $ mkdir movie 프론트엔드와 백엔드 작업을 하게 될 작업디렉토리를 생성한다. Frontend 작업디렉토리 생성 및 front 서버 실행 $ npm install -g yarn $ npm install -g @vue/cli $ vue create frontend $ cd frontend $ npm run serve npm 명령으로 vue.js 개발을 위해 필요한 패키지를 설치한다. 그리고 vue create 명령을 이용해 frontend 디렉토리를 생성하고, 새로 생성된 frontend 프로젝트 디렉토리에서 서버를 실행하고 브라우저에서 http://localhost:8080에 접속하면 다음과 같은 페이지를 확인할 수 있다. 위와 같이 페이지가 정상..

[Node.js] 템플릿엔진
Node.js 2021. 9. 14. 14:40

'템플릿엔진'이란? 웹 프로그래밍을 할 때 주로 사용하는 마크업 언어인 HTML은 정적인 언어이다. 따라서 Javascript로 표현하면 반복문으로 간단하게 처리할 수 있는 동적 연산을 HTML으로만 표현하게 되면 일일이 직접 적어주어야 하는데, 이런 과정이 불편해서 나온것이 '템플릿엔진' 이다. 템플릿 엔진은 Javascript를 사용해서 HTML을 렌더링할 수 있게 도와주는 도구이다. 템플릿엔진의 종류 Pug(Jade) EJS Handlebars ...... 템플릿엔진에는 굉장히 다양한 종류가 있지만, 대표적으로는 Pug와 EJS를 많이 사용한다. Pug(Jade) 예전 이름인 Jade로 더 유명한 Pug는 꾸준히 많은 인기를 얻고 있는 엔진이다. Pug 구조와 HTML 구조 비교 doctype ht..