개발바닥

Strapi + mongodb 설치하기 본문

각종 설치

Strapi + mongodb 설치하기

라이언 2022. 3. 19. 20:18
반응형

Strapi ?

Strapi란 Bootstrap + API를 줄여서 Strapi라고 한다. Headless CMS 툴 중 하나로 컨텐츠와 view를 분리하는것이 Headless CMS의 핵심이다. Strapi는 Node.js 웹 프레임워크 중 하나인 Koa 기반으로 구현되었으며 설치하기 위해서는 node.js 설치가 필요하다. Strapi를 설정에 연결할 DB를 설정하게 되면 자동으로 api를 만들어주고 api를 통해서 컨텐츠에 접근 및 수정이 가능하다. 

 

현재 실무에서 admin 사이트 구축을 위해 strapi를 사용하려고 했으나 아쉽게 무산돼서 사용을 안하고 있지만 사용하기 위해 알아둔 지식들을 공유하면 좋을 거 같아서 포스팅을 하게 됐다. 

Strapi는 오픈소스이다. 유료도 있지만 무료로 충분히 사용이 가능하다.

오픈소스 Headless CMS 중 가장 인기가 많다. (https://jamstack.org/headless-cms/)

항상 느끼지만 인기가 많은데에는 다 이유가 있다. 그래서 처음에 새로운 툴을 사용하고자 할 때 가장 인기 있는거를 사용하면 못해도 반은 먹고 들어간다.

 

 

22년 03월 19일 기준으로 v4까지 출시했고, 아쉽지만 v4에서는 mongodb를 지원하지 않고 있다...

(https://medium.com/strapi/mongodb-support-in-strapi-past-present-and-future-515d654cbd75)

그래서 mongodb 를 사용하기 위해서는 v3로 다운그레이드해서 사용해야 된다.

 

서론이 너무 길어서 본론으로 들어가겠습니다.

 

Strapi v3 설치

1. node.js 설치 ( strapi v3는 node.js v12 ~ v14 지원하기 때문에 버전을 맞춰서 설치하시면 됩니다.)

2. strapi 3.6.8 설치

 

Node.js 설치

node.js 설치 후 다운그레이드 할 수 있다. 윈도우에서 node 버전 관리를 위한 n을 설치한다.(nvm)

(for Window)
$ npm install -g n
$ n 14.15.0

(for mac)
$ brew install node@14
$ brew link --force node@14

 

Strapi 3.6.8 설치

$ npm install npx -g (npx install)
$ npx create-strapi-app@3.6.8 프로젝트명

# Strapi 설치가 완료되면 아래 커멘드대로 입력한다.
$ Quickstart(recommanded)
$ Would you like to use a template ? N

 

설치가 완료되면 어드민 등록 페이지가 뜰 것이다.

주의할 점
어드민 등록 페이지는 strapi admin 페이지 접속하기 위해서 꼭 필요한 계정이므로 아무렇게나 짓지말고 반드시 기억해야 된다.
설치 후 한번만 보여주기 때문에 까먹었더라면 다시 설치해야된다..

계정 등록이 완료됐다면 다음 어드민 페이지에 접속한 것을 확인할 수 있다.

이 페이지가 정상적으로 떳다면 strapi 설치는 성공했다고 생각하면 된다.

하지만, 기본적으로 db는 SQLlite로 설치되어 있기 때문에 mongodb로 바꿔주는 작업을 하겠습니다.

 

 

mongodb 셋팅

mongodb 최소 지원 버전은 3.6이다.

로컬 db로 설정할거면 로컬에 mongodb가 동작하고 있어야 된다.

$ cd project명/config  # config 폴더 경로로 이동한다.
$ sudo vim database.js # mongodb로 셋팅한다.


# 아래 코드로 변경해준다. (mongodb atlas 연결 로컬은 uri쪽에 로컬로 변경해주면 된다.)
module.exports = ({ env }) => ({
  defaultConnection: "default",
  connections: {
    default: {
      connector: "mongoose",
      settings: {
        uri:
          "mongodb+srv://유저명:비밀번호@cluster0.ke0pv.mongodb.net/testDB?retryWrites=true&w=majority",
        srv: env.bool("DATABASE_SRV", true),
        port: env.int("DATABASE_PORT", 27017),
        database: "testDB"
      },
      options: {
        authenticationDatabase: env("AUTHENTICATION_DATABASE", null),
        ssl: env.bool("DATABASE_SSL", true)
      }
    }
  }
});

이렇게 하면 strapi에 mongodb 설정이 완료된다.

주의할 점
db 설정 부분에서 database: db명 을 지정해주는 데 없으면 만들고 있으면 기존 db에 strapi에 필요한 컬렉션을 만든다.

 

아쉽게도 실무에 strapi 사용을 안하기로 결정했다.. 그 이유로는 이런 툴을 사용하게 되면 간단한 서비스는 빠르고 쉽게 구축이 가능하지만,

필요한 기능을 확장하기 위해서는 코드 작업이 불가피하기 때문에 이럴바에는 기존 사용하던 언어로 백엔드 구축하는 게 더 빠르다고 판단이 되서 사용을 못하게 됐다.(node.js 를 배워서 기능 확장하기에는 현재 실무에서는 Go를 사용하고 있어서 러닝커브가 발생하므로 포기했다..)

반응형

'각종 설치' 카테고리의 다른 글

[ 우분투 ] vim install & setting  (0) 2020.01.15
[ 인텔리 J ] 무료 버전 설치  (0) 2020.01.09
Tibero 설치  (0) 2019.09.26
VMWare에 가상머신 Ubuntu 설치  (0) 2019.09.22
VMWare & Ubuntu 다운 및 설치  (0) 2019.09.22
Comments