2024.08.16 프로그래머스 - 웹 기반 문서 편집기 프로젝트 3
웹 기반 문서 편집기 프로젝트 - 3
- mysql : prmgs, prgms
- 구조 설계서
- 소프트웨어의 구조 설계를 기술하고 정의하는 문서
- 소프트웨어 개발 과정에 있어 가장 중요한 기준
- 프로젝트 초기 단계에서 필수적으로 산출해야 하는 문서
- BE 패키지 구조 (express)
- index.ts, app.ts ⇒ 앱 진입점 파일
- settings.ts ⇒ 환경변수 및 각종 설정 변수
- routes/ ⇒ 라우트 함수 모음
- models / ⇒ 모델 클래스 모음
- utils / ⇒ 유틸리티 함수 및 유틸리티 객체 모음
- middlewares/ : 미들웨어 함수 모음
ERD
로컬 Docker에 (with k8s) 에 db 구축
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
# notes-db.yaml apiVersion: apps/v1 kind: Deployment metadata: name: notes-db namespace: db spec: selector: matchLabels: run: notes-db replicas: 1 template: metadata: labels: run: notes-db spec: containers: - name: notes-database image: mariadb:11.2.2 env: - name: MARIADB_ROOT_PASSWORD value: root volumeMounts: - name: notes-db-storage mountPath: "/var/lib/mysql" volumes: - name: notes-db-storage persistentVolumeClaim: claimName: notes-db-pvc --- apiVersion: v1 kind: Service metadata: name: notes-db labels: run: notes-db namespace: db spec: type: NodePort selector: run: notes-db ports: - port: 3306 nodePort: 30036
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
# notes-db-volume apiVersion: v1 kind: PersistentVolume metadata: name: notes-db-volume labels: type: local namespace: db spec: storageClassName: manual capacity: storage: 10Gi accessModes: - ReadWriteOnce hostPath: path: "<Path to your data directory>" --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: notes-db-pvc namespace: db spec: storageClassName: manual accessModes: - ReadWriteOnce resources: requests: storage: 10Gi
kubectl 로 생성
1 2 3
kubectl create namespace db kubectl apply -f notes-db-volume.yaml kubectl apply -f notes-db.yaml
접근
- 로컬 컴퓨터로 부터 접근
- localhost:30036
- 클러스터 안의 다른 포드에서 접근하는 경우
- notes-db.db.svc.cluster.local
- 로컬 컴퓨터로 부터 접근
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.