2024.08.28 - [Server/Spring] - 상품 관리 애플리케이션 만들기 (1) - 요구사항 확인
상품 관리 애플리케이션 만들기 (1) - 요구사항 확인
스프링 부트를 사용해 상품 관리 애플리케이션을 만들고자 한다.진행 순서는 다음과 같다. 1. 뼈대 코드 짜기2. 유효성 검사 추가하기3. 데이터베이스 연동하기4. 객체지향 더하기 뼈대 코드를
say-hi-world.tistory.com
요구사항 확인이 끝났다면, 필요한 데이터의 구조를 설계한다
데이터를 너무 이른 시기에 정의해버리면, 객체 지향 패러다임에서 이야기하는 '객체 간의 협력'에 초점을 맞추지 못한 채,
각 데이터끼리 고립시켜버리는 결과를 가져올 수 있다.
그러나 처음 애플리케이션 개발을 시작하는 사람에게는 데이터부터 생각하는 설계 방식이 적절한 출발점이 될 수 있다.
이후 포스티에서 객체지향 관점으로 짜는 경우를 살펴보도록 한다.
하나의 상품 데이터는 다음과 같이 정의할 수 있다.
상품 : Product (클래스)
번호 : id (Long)
이름 : name (String)
가격 : price (Integer)
수량 : amount (Integer)
특별히 Product만 대문자로 시작하는데, 자바의 작명 관례를 따른것이다.
클래스의 이름은 대문자로 시작하고, 나머지 필드는 소문자로 시작하도록 한다.
데이터 타입을 확인하면 id는 Long, price와 amount는 Integer을 사용하였다.
price, amount와 달리 id는 등록된 상품 개수에 따라 1씩 증가한다.
그런데 Integer타입을 사용할 경우, 21억개만 사용할 수 있다. (원래는 -21~+21억개를 표현할 수 있는데, 양수만 쓰일 것이므로.)
실무에서 상품은 21억개를 금방 넘어설 수 있다.
따라서 2의 63제곱 개를 나타낼 수 있는 자료형인 Long을 사용한다.
* int와 Integer의 차이, long과 Long의 차이는 아래의 글을 참고한다.
요약하자면
정의되지 않은 상태가 null로 표현하려면 Integer,
정의되지 않은 상태를 허용하지 않고 0으로 초기화하려면 int를 사용하면 된다.
앞서 정의한 데이터 구조에 맞게 Product 클래스의 코드를 프로젝트에 추가하고 이번 절을 마친다.
package com.demo.product.management;
public class Package {
private Long id;
private String name;
private Integer price;
private Integer amount;
}
<Package 클래스에는 추가되어야 할 것들>
- 생성자
- private 필드에 접근할 수 있게하는 무언가
- 필요한 메서드
위 사항들은 실습을 진행하면서 추가하도록 한다.
'스터디 > Spring' 카테고리의 다른 글
상품 관리 애플리케이션 만들기 (1) - 요구사항 확인 (0) | 2024.08.28 |
---|---|
HTTP 전송 데이터 형식, JSON vs XML (0) | 2024.08.27 |