해당 글에 저자의 견해가 포함되어있으며,
또 다든 의견들을 댓글에 작성해 주시면 감사하겠습니다.
안녕하세요.
Nodes입니다.
오늘부터 NodesDev 웹사이트 개발에 관하여
조금씩 블로그에 기재를 해볼까 합니다.
해당 웹사이트는 크게 손이 많이 가는 프로젝트는 아닐 거라 생각 듭니다.
기능적 구현이 프로젝트들을 소개하는 웹사이트다 보니
타 웹사이트보다는 구현할게 적습니다.
구현을 하면서 생각했던 부분들을 적어보겠습니다.
프로젝트 기획
1. 정적 페이지로 구현
정적 페이지로 구현하면 확실히 서버가 따로 필요 없으니 비용면에서 절감될 것입니다.
하지만 프로젝트가 하나 씩 늘어날 때마다 정정 페이지 소스코드를 직접 수정해 줘야 하는 불편함이 발생합니다.
또한 프로젝트가 많아질수록 소스코드가 차지하는 양이 많아지겠죠?
소스코드가 많아져 관리하기 힘들어도 정적페이지로 구현해도 상관없습니다만...
요즘은 정적으로 구현하는 케이스가 적습니다.
2. 동적 페이지 구현
동적 페이지로 구현할 시 일종의 데이터베이스에 프로젝트 정보를 입력해놓고
해당 프로젝트에 대한 정보만 받아오면 됩니다.
정적 페이지에 비해 비용은 나오지만,
프로젝트를 추가해 나아갈 때마다 소스코드 수정/생성이 크게 필요하지 않아
확실히 편할 거 같습니다.
소스코드의 변화는 시간에 따른 유지보수면에서 늘 발생합니다.
저는 두 번째 방법을 통해 구현하겠습니다.
어드민 패널
프로젝트가 추가될 때마다 해당 데이터베이스에 접근하여
직접 쿼리문 작성 후 데이터베이스에 직접 입력해도 상관없습니다.
소형 웹사이트다 보니 그렇게 관리를 해도 크게 불편하지는 않습니다.
다만 추후를 추가되는 기능(확장성) 면에서 생각을 한다면
관리자 전용 페이지(어드민 패널)를 만들고
해당 페이지 CRUD 기능을 달아주면 될 것 같습니다.
어드민 패널은 일반 사용자분들이 접근하면 안 되니 구현 시
반드시 보안 설정 및 접근 설정을 하셔야 합니다.
프로젝트 정보 형식
이제 데이터베이스를 사용하려면
여러 가지 부분을 고려하셔야 합니다.
1. 어떤 데이터베이스를 사용해야 하나.
이 부분은 고려해야 할 부분이 많습니다.
데이터베이스마다 용도와 방식이 다르기 때문입니다.
관계형 데이터베이스, 문서형 데이터베이스, 네트워크 형 데이터베이스...
추후 블로그에서 자세하게 설명드리겠습니다.
첫째, 해당 프로젝트는 소형 웹사이트입니다.
둘째, 프로젝트 정보에 대해 관계가 복잡하지 않습니다.
그러므로 MySQL이나 PostgreSQL 등 관계형 데이터베이스를 안 쓰고
문서형 데이터베이스인 Mongo를 택해도 될 걷습니다.
Mongo도 관계형 데이터베이스 아닌가요,
관계를 정의할 수 있는데요?
문서 데이터베이스도 관계 정의가 가능하며
database는 굳이 해당 정의를 요구하진 않습니다.
프로젝트에 간략 정보로는
현재 상태, 판매상태, url, image url, contents을 넣어줄 예정입니다.
위 사진에는 Contents부분이 빠져있네요...
해당 프로젝트는 태그로 검색이 가능하도록 프로젝트마다 태그를 달아줄 것입니다.
프로젝트 하나 당 태그는 여러 개가 존재할 수 있고
태그당 프로젝트도 여러 개가 존재할 수 있습니다.
즉, N:N 관계이므로 N:N 테이블을 따로 생성해서 접근하는 것이 좋습니다.
이 정도면 어느 정도 프로젝트를 만들 준비는 마친 거 같습니다.
프런트 : NextJs
백 : NodeJs
데이터베이스 : Mongo
'Programs > NodesDev' 카테고리의 다른 글
NodesDev.(WEB) 개발 계획 & 추후 계획 (0) | 2022.02.27 |
---|
댓글