멘토링

멘토링 내용 정리 database (4회차 정리)

Chansman 2025. 4. 2. 22:39

📌 데이터베이스 설계와 AWS 클라우드 서비스 멘토링 정리


🚩 1. 데이터베이스 테이블 설계와 데이터 타입

  • 테이블명은 기본적으로 복수형으로 작성합니다.
  • VARCHAR: 커피 이름 등 문자열 데이터 저장 시 사용합니다.
  • DECIMAL: 가격 정보를 소수점까지 정확히 저장 (예: 총 10자리 중 소수점 2자리)
  • 모든 테이블은 id 컬럼을 가지며, 이는 기본 키(PK)로 설정됩니다.
  • 카테고리와 사이즈는 별도의 테이블로 분리하고, 외래키(FK)로 연결하여 명확한 관계를 유지합니다.
  • 하위 카테고리는 상위 카테고리를 참조하는 방식으로 데이터 구조를 구성합니다.

🚩 2. 정규화와 데이터 구조의 중요성

  • 정규화는 효율적 데이터 관리를 돕지만, 과도하면 복잡성이 증가할 수 있습니다.
  • 데이터 구조 설계 시 이름, ID, 단위를 사용하며, 수량은 제품별로 상이할 수 있습니다.
  • 동일 재료라도 메뉴별로 사용량이 다를 수 있으며, 이를 용량(volume)으로 관리합니다.
  • 사용자(User) 테이블은 일반적으로 ID, 이메일, 비밀번호, 닉네임을 포함합니다.

🚩 3. 주문 시스템 데이터 구조

  • 주문번호(orderNumber)는 유니크한 문자열(uuid) 형태로 설정하여 보안을 높입니다.
  • 주문 데이터는 userId, order date, total price 등을 포함하며, 주문 상세 내역은 별도의 옵션 테이블과 연결할 수 있습니다.
  • 데이터 크기 관리 측면에서 BigInt와 Int 타입의 차이를 이해하고, 용도에 맞게 선택합니다.

🚩 4. AWS 클라우드 서비스 개요

  • AWS는 개발 과정에서 필수적인 클라우드 서비스입니다.
  • 주요 서비스:
    • EC2: 서버 컴퓨터를 빌려 사용할 수 있습니다.
    • RDS: 관계형 데이터베이스 관리 서비스입니다.
    • S3: 파일 저장 및 공유를 위한 저장소입니다.
    • Route 53: 도메인 관리 및 서버 연결 서비스를 제공합니다.

🚩 5. 클라우드와 온프레미스(On-premise)의 차이

  • 온프레미스는 기업이 직접 물리적인 서버를 운영하는 방식으로, 비용과 관리적 부담이 큽니다.
  • 클라우드 컴퓨팅은 인터넷을 통해 필요한 만큼의 IT 리소스를 임대하여 비용 효율적으로 운영 가능합니다.
  • AWS 같은 서비스는 클릭 몇 번으로 서버 자원 및 사양을 쉽게 조정할 수 있으며, 글로벌 서비스 제공에도 용이합니다.

🚩 6. 서버 위치와 글로벌 서비스의 중요성

  • 서비스 이용자와 서버 위치가 멀수록 통신 시간이 증가합니다.
  • AWS는 서버의 물리적 위치(리전)를 선택할 수 있어 글로벌 서비스에 적합하지만, 지역별로 요금 차이가 있습니다.
  • 예시로, 서버가 영국에 위치한 경우 한국에서 접속할 때 속도가 느릴 수 있습니다.

🚩 7. 터미널과 원격 서버 접속의 중요성

  • 터미널을 통한 원격 서버 접속(SSH)은 서버 관리의 필수적 요소입니다.
  • Linux 명령어 (CD, MKDIR, VI 등)와 Git 명령어 숙련이 요구됩니다.
  • 서버 접속 후 터미널에서 명령어를 실행하면, 이는 원격 서버에 바로 적용됩니다.

🚩 8. 서버 보안과 비용 관리

  • 서버 접근 키(key)는 절대 유출되지 않도록 주의해야 합니다.
  • AWS는 상대적으로 비용이 높으며, 프리티어 사용 시에도 일정 비용이 발생할 수 있습니다.
  • 프리티어 기간 이후에도 비용이 발생하므로 철저한 관리가 필요합니다.

🚩 9. 백엔드 개발자의 역할과 책임

  • DevOps 부재 시 백엔드 개발자는 AWS 서비스 관리 및 구축까지 책임져야 합니다.
  • 다양한 AWS 서비스 간 커넥션 구축 및 관리 역시 백엔드 개발자의 주요 업무입니다.

erDiagram
    users ||--o{ orders : places
    orders ||--o{ order_detail : contains
    order_detail ||--|| products : ordered
    products ||--o{ products_ingredients : has
    ingredients ||--o{ products_ingredients : included_in
    products ||--o{ products_size : has
    sizes ||--o{ products_size : available_in
    products ||--|| sub_categories : belongs_to
    sub_categories ||--|| categories : part_of

    users {
        int id PK
        varchar username
        varchar email
        varchar password
        varchar nickname
    }

    orders {
        int id PK
        uuid order_number "UUID 고유 식별자"
        int user_id FK
        datetime order_datetime
        decimal total_price
    }

    order_detail {
        int id PK
        int order_id FK
        int product_id FK
        int quantity
        varchar personal_option
    }

    products {
        int id PK
        varchar name
        decimal price
        int sub_category_id FK
    }

    products_ingredients {
        int id PK
        int product_id FK
        int ingredient_id FK
        int volume_or_quantity
    }

    ingredients {
        int id PK
        varchar name
        varchar unit
    }

    products_size {
        int id PK
        int product_id FK
        int size_id FK
    }

    sizes {
        int id PK
        varchar name
    }

    sub_categories {
        int id PK
        varchar name
        int category_id FK
    }

    categories {
        int id PK
        varchar name
    }

 

 

📌 이번 멘토링은 데이터베이스 설계 원칙과 AWS 클라우드 서비스에 대한 이해를 바탕으로 효율적인 시스템 구축 및 운영 능력을 높이는 데 목적을 두고 있습니다.