'db'에 해당되는 글 2건

  1. 2024.12.23 저렴한 비용으로 웹서비스 구축하는 방법
  2. 2019.07.15 ERD (ER 다이어그램) 작성 방법

저렴한 비용으로 웹서비스 구축하는 방법

개인프로젝트 2024. 12. 23. 09:51

웹서비스를 최소한의 비용으로 구축하려면 비용 절감을 위한 효율적인 선택과 오픈소스 도구 활용이 중요합니다.

각 항목별로 저렴하게 설정하는 방법입니다.

1. 도메인

  • 무료 도메인:
    • Freenom에서 무료 도메인(예: .tk, .ml, .ga)을 사용.
  • 저렴한 유료 도메인:
    • 도메인 등록 업체(예: Namecheap, Google Domains)에서 프로모션을 통해 .com 도메인을 $5~$10/년 정도로 구매 가능.

2. 서버

  • 무료/저비용 클라우드 서비스:
    • AWS Free Tier: 1년 동안 t2.micro(1 vCPU, 1GB RAM) 무료 제공.
    • Google Cloud Free Tier: f1-micro 인스턴스(매월 30GB HDD 포함) 무료.
    • Azure Free Account: 12개월 동안 특정 리소스 무료.
    • Oracle Cloud Free Tier: 항상 무료인 Arm 기반 VM 2개 제공.
  • 저비용 VPS:
    • DigitalOcean, Linode, Vultr 등에서 $5/월부터 시작하는 저렴한 VPS 제공.
  • 자체 서버 호스팅:
    • Raspberry Pi 등 저전력 장치를 사용하여 집에서 서버를 운영. (단, 인터넷 업타임과 보안 관리 필요)

3. 데이터베이스(DB)

  • 오픈소스 데이터베이스:
    • MySQL/MariaDB, PostgreSQL 등 무료로 사용 가능.
  • 클라우드 관리형 DB:
    • Google Cloud, AWS에서 제공하는 무료 DB 서비스.
  • 로컬 설치:
    • 서버에 직접 MySQL/MariaDB를 설치하여 운영.
  • SQLite:
    • 소규모 웹서비스에서는 간단히 SQLite로 시작 가능(파일 기반).

4. 웹 서버

  • 무료 웹서버 소프트웨어:
    • Nginx: 경량화된 고성능 웹 서버.
    • Apache: 안정적이고 널리 사용되는 웹 서버.
  • HTTPS 인증서:

5. 애플리케이션 개발 환경

  • 언어 및 프레임워크:
    • Python: Flask, Django.
    • JavaScript: Node.js, Express.
    • PHP: Laravel, CodeIgniter.
  • 무료 개발 도구:
    • Visual Studio Code, GitHub.

6. 배포 및 버전 관리

  • 무료 Git 리포지토리:
    • GitHub, GitLab, Bitbucket.
  • CI/CD 도구:
    • GitHub Actions, GitLab CI/CD 등 무료로 제공.

7. 운영비 절감 팁

  1. 자동화:
    • Ansible, Docker 등으로 서버 설정 자동화.
  2. 스케일 아웃 전략:
    • 초기에는 최소 리소스 사용, 트래픽 증가 시 추가 리소스 할당.
  3. 정적 웹사이트로 시작:
    • 간단한 웹사이트는 Netlify, Vercel 같은 무료 정적 사이트 호스팅 플랫폼 활용.
  4. 모니터링 도구:
    • 무료로 제공되는 Grafana, Prometheus, UptimeRobot 사용.

예상 초기 비용 예시

항목 비용(월)

도메인 $1~$10/년
서버 무료(AWS 등) 또는 $5~$10
데이터베이스 무료(MySQL)
HTTPS 인증서 무료(Let's Encrypt)
총계 $5~$15

 

위 방법들을 활용하면 초기 비용을 $5~$15 수준으로 유지하면서도 안정적인 웹 서비스를 구축할 수 있습니다.

추가적으로 클라우드 프로모션을 적극 활용해 비용을 절감할 수 있습니다.

:

ERD (ER 다이어그램) 작성 방법

Back-End/Data Base 2019. 7. 15. 16:51

데이터 모델은 데이터베이스에 독립적이다.

 

정보 시스템을 개발하기 전에 보다 많은 아이디어를 도출하고 데이터베이스 설계의 이해를 높이기 위해

 

데이터모델링을 한다,

 

관계형 데이터 모델은 실체(Entity), 속성(Attribute), 관계(Relationship)로 구성된 ER Diagram으로 표현된다.

 

 

관계형 데이터 모델 - 데이터베이스 개발 과정

 

  1. 업무 정보화 요구
  2. 개념 데이터 모델링 - 분석, 전략 수립
  3. 데이터베이스 설계 - 설계
  4. 데이터베이스 생성 - 개발

 

 

ERD는 개념 데이터 모델링 단계에서 작성하는 다이어그램

 

 

실체(Entity) : 관리하고자 하는 정보의 실체

 

ㄴ둥근 사각형으로 작성

ㄴEntity 이름은 단수형이고 유일하며 대문자로 크게 표기 할 것. ( )안에 동의어 표기 가능.

ㄴ모든 Entity는 하나 이상의 식별자 (UID : Unique Identifier)을 가져야한다.

ㄴUID가 없다면 Entity가 아님

 

 

 

속성(Attribute) : Entity를 구성하고 있는 구성 요소

 

ㄴAttribute 이름은 소문자로 작게 표기할 것.

ㄴEntity 이름과 Attribute 이름이 같으면 안됨.

ㄴ"#"  은 UID. "*"는 필수(Mandatory). "o"는 선택(Optional) Attribute를 의미

ㄴ자신의 Attribute가 아니면서 Relation을 위해 자신의 Attribute로 표시해서는 안된다.

 

 

 

관계(Relationship) : Entity간의 관계

 

ㄴ 두 Entity 사이에 선을 긋고 관계 명칭을 기록한다.

ㄴ 선택 사항을 표시한다.

ㄴ 점선은 선택 (may be) 을 의미 (부서입장에서는 사원을 배치받을 수도 있고, 안받을 수도 있기 때문에)

ㄴ 실선은 필수 (must be) 를 의미 (사원입장에서는 반드시 부서에 배치되어야 하기 때문)

ㄴ 관계 형태를 표시한다.

ㄴ 새 발 모양은 하나 이상 (one or more) 을 의미 (사원 여러명이 한 부서에 속할 수 있기때문)

ㄴ 단 선은 단 하나 (one and only one) 를 의미 (한명의 사원은 한 부서에만 소속될 수 있다.)

 

 

 

 

Relationship 표현

 

 

 

 

Relationship 읽기

 

 

먼저 한 방향 (좌 -> 우)을 읽고 난 후에 다른 방향 (우 -> 좌)을 읽는다.

 

 

 



  관계 형태 - 1 : 1 관계


  


  ㄱ. 양쪽 방향 모두 단 하나씩 (one and only one) (라면은 두개 이상의 스프를 포함하고 있지 않고, 스프도 한개이상의 라면에 들어있지 않다.)


  ㄴ. 드물게 발생되는 형태


  ㄷ. 양방향 모두 반드시 (must be) 가 되는 경우는 아주 드물다.


  ㄹ. 1 : 1 관계는 실제로는 동일한 ENTITY일 경우가 많다.

 

 

 



  관계 형태 - M : 1 관계


  


  
  ㄱ. 한쪽 방향은 하나 이상 (one or more) (각 사원은 단 하나의 부서에 반드시 소속되어야 하고, 각 부서는 여러명의 사원을 배치받을 수 있다.)


  ㄴ. 다른 방향은 단 하나씩 (one and only one)


  ㄷ. 가장 일반적인 관계 형태


  ㄹ. 보통 must be와 may be로 지정되나 양방향 모두 must be로 지정되는 경우도 있다.

 

 

 

  
  관계 형태 - M : M 관계
  
  


  ㄱ. 양쪽 방향 모두 하나 이상 (one or more) 
       (각 학생은 하나이상의 교육과정에 신청할 수도 있고, 각 교육과정은 여러 학생을 등록 받을 수 있다.)


  ㄴ. 자주 발생되는 형태이지만 최종 결과에서는 M : M 관계는 나타나지 않는다.


  ㄷ. 상세 개념모델링 (Advanced Conceptual Data Modeling) 단계에서 M : 1 관계로 분할된다.
       (M : M관계를 그대로 놔두면 문제가 발생되기 때문)


   - ( 학생과 교육과정 사이에 교육과정 사이에 "수강신청"이라는 Entity를 만들어서 학생은 자신이 수강신청한 
     교육과정에만 관계를 맺고 있으면 된다. 이런식으로 M : M 관계를 M : 1 관계로 분할시키면 된다. )

 

 

 



  UID Bar


  한 사람의 사원의 부양가족을 확인하려면 부양가족 테이블에 "사번" Entity가 있어야 하는데 


  부양가족의 UID를 -> 사번 + 주민번호 (기본키를 복합키로) 로 해서 한 사람의 사원에 대한 부양가족을 찾을 수 있다.


  

 

 

 



 데이터베이스 설계


 - Entity를 Table로 Mapping


 - Attribute를 Column으로 Mapping


 - UID를 Primary Key로 Mapping


 - Relationship을 Foreign Key로 Mapping

 

 

관계형 데이터 모델 - 요약

 



 - 데이터 모델은 데이터베이스에 독립적이다.


 - 데이터 모델링은 건축물의 설계도를 그리는 작업과 같다. 


 - 관계형 데이터 모델은 여러 가지 데이터 모델 중 가장 널리 사용되는 모델이며, 실체(Entity), 속성(Attribute), 관계(Relationship)로 구성된
   ER Diagram으로 표현된다.


 - Entity는 하나 이상의 식별자 (UID : Unique Identifier)를 가져야 하며 UID가 없다면 Entity가 아니다.


 - E - R Diagram 작도 시 관계를 표현할 때에는 어떤 Entity가 주(主) 인가를 잘 따져서 표현한다.


 - 관계의 종류에는 M : 1, M : M, 1 : 1 이 있는데 M : 1 관계가 대부분이다.
   M : M 관계는 상세 관계 모델링 단계에서 M : 1로 분할 되며, 1 : 1 관계는 대부분 하나의 Entity로 표현 가능한 경우가 많다.


 - 관계형 데이터베이스는 2차원 테이블로 데이터를 표현한다.

아래 책은 제가 공부할때 활용했던 책으로 추천드리는 책이니 한번씩 읽어보시는것을 추천드립니다!! ㅎㅎ

토비의 스프링 3.1 세트:스프링의 이해와 원리 + 스프링의 기술과, 에이콘출판

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

출처

https://www.youtube.com/watch?v=mehjXqNKvh8

: