1. Tool

피그마 선택

이유: 무료, 간편함, 협업, 오픈소스

1. 요구 분석:
로또 당첨 번호와 회차 정보 저장
각 회차의 보너스 번호 저장
회차에 따른 당첨 번호 조회 가능


2.개념적 설계:
Entity: LottoDraw, LottoNumber
Relationship:
한 LottoDraw는 여러 LottoNumber를 가짐 (One to Many)
한 LottoNumber는 하나의 LottoDraw에 속함 (Many to One)

 

3.논리적 설계:
3.1. LottoDraw

id (PK): Integer
date: Date
bonusNumber: Integer

 

3.2. LottoNumber

id (PK): Integer
drawId (FK): Integer (LottoDraw의 id 참조)
number: Integer

 

3.3 특이사항: 보너스번호를 LottoDraw 테이블에 저장하는 이유

3.3.1 LottoDraws 테이블에 저장

장점: 각 회차마다 하나의 보너스 번호만 있기 때문에, 회차와 함께 보너스 번호를 저장하면 조회하기가 간단해진다
단점: LottoNumbers 테이블과의 일관성이 떨어질 수 있습니다. 일반 당첨 번호와는 다르게 처리해야 하는 경우가 생길 수 있다.

 

LottoNumbers 테이블에 저장 (별도의 구분자 필드 추가)

장점: 모든 번호 (당첨 번호 + 보너스 번호)를 동일한 테이블에서 관리할 수 있으므로 일관성이 유지된다. 특정 회차의 모든 번호 (당첨 + 보너스)를 한번의 쿼리로 조회할 수 있다.
단점: 번호를 조회할 때마다 구분자 필드를 확인해야한다. 이는 쿼리 복잡성을 약간 증가시킬 수 있다.

 

4.JPA Entity 클래스 작성

 

@Entity
public class LottoDraw {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    private LocalDate date;

    private Integer bonusNumber;

    @OneToMany(mappedBy = "lottoDraw", cascade = CascadeType.ALL)
    private List<LottoNumber> numbers = new ArrayList<>();
    // ... getters, setters, etc.
}

@Entity
public class LottoNumber {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    @ManyToOne
    @JoinColumn(name = "drawId")
    private LottoDraw lottoDraw;

    private Integer number;
    // ... getters, setters, etc.
}

'프로젝트 > 로또 번호 추천 웹사이트' 카테고리의 다른 글

3. UI/UX 설계  (0) 2023.10.31
1. 요구사항 분석  (0) 2023.10.31
0. 홈페이지를 제작하는 방법, 순서  (0) 2023.10.30

1.최근 5회차의 로또 당첨 번호 제공:

사용자가 웹 애플리케이션에 접속하면 최근 5회차의 당첨 번호를 볼 수 있어야 한다.

2.최근 5회차에서 가장 나오지 않았던 번호들을 기반으로 한 로또 번호 추천 기능: 

최근 5회차에서 가장 자주 나오지 않았던 번호들 중에서 로또 번호를 추천해주는 기능을 제공해야 한다.

 

3.관리자가 별도의 조치를 하지 않아도 모든 것이 자동으로 이루어져야한다.

 

'프로젝트 > 로또 번호 추천 웹사이트' 카테고리의 다른 글

3. UI/UX 설계  (0) 2023.10.31
2. 데이터베이스 설계  (0) 2023.10.31
0. 홈페이지를 제작하는 방법, 순서  (0) 2023.10.30

1.요구사항 분석

웹 애플리케이션의 목적 및 핵심 기능 파악
사용자의 필요와 요구를 분석


2.설계


데이터베이스 설계 (테이블, 관계 등)
UI/UX 디자인 (화면 레이아웃, 사용자 경험)
아키텍처 및 시스템 설계 (서버 구조, API 설계 등)

 

3.개발

프론트엔드 개발 (HTML, CSS, JavaScript 등)
백엔드 개발 (서버 로직, 데이터베이스 연동 등)
API 개발 및 연동

 

4.테스팅

단위 테스트 (각 기능 별 테스트)
통합 테스트 (전체 시스템 테스트)
성능 테스트, 보안 테스트 등 필요한 추가 테스트 진행

 

5.배포

웹 서버 및 데이터베이스 서버 설정
도메인 연결 및 SSL 인증서 적용
애플리케이션 배포 및 실행

 

6.유지보수

애플리케이션 모니터링 및 오류 수정
사용자 피드백 기반의 업데이트
성능 개선 및 보안 강화

'프로젝트 > 로또 번호 추천 웹사이트' 카테고리의 다른 글

3. UI/UX 설계  (0) 2023.10.31
2. 데이터베이스 설계  (0) 2023.10.31
1. 요구사항 분석  (0) 2023.10.31

+ Recent posts