일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Aggregation
- elasticsearch cache
- Elasticsearch
- vavr
- java crawler
- Docker
- IONQ
- dbeaver
- Analyzer
- api cache
- 아이온큐
- java
- 양자컴퓨터
- Selenium
- file download
- ann
- NORI
- TSLA
- 테슬라
- request cache
- Cache
- Query
- aggs
- API
- redis
- Elastic
- mysql
- KNN
- aqqle
- JPA
Archives
- Today
- Total
아빠는 개발자
[java] package 에서 common 과 base 의 의미 본문
728x90
반응형
네이밍에 정답이 어딧겠소만
Java 프로젝트에서 common과 base 패키지의 의미는 관례적으로 다음과 같음
1. common 패키지
common 패키지는 프로젝트 내에서 여러 모듈이나 클래스들이 공통으로 사용하는 기능이나 유틸리티 클래스를 포함합니다. 이 패키지에는 다음과 같은 요소들이 포함될 수 있습니다:
- 유틸리티 클래스 (Utility Classes): 문자열 처리, 날짜 처리, 파일 입출력 등과 같은 일반적인 기능을 제공하는 클래스들.
- 상수 정의 (Constants): 여러 곳에서 공통으로 사용하는 상수 값들.
- 공통 인터페이스 (Common Interfaces): 여러 클래스들이 구현해야 하는 공통 인터페이스들.
- 헬퍼 클래스 (Helper Classes): 특정 작업을 돕는 보조 클래스들.
예시:
package com.example.common;
public class StringUtils {
public static boolean isEmpty(String str) {
return str == null || str.isEmpty();
}
}
package com.example.common;
public class DateUtils {
public static String formatDate(Date date) {
// 날짜 포맷팅 로직
}
}
2. base 패키지
base 패키지는 프로젝트의 기본 클래스나 최상위 클래스들을 포함하는 패키지입니다. 이 패키지에는 다음과 같은 요소들이 포함될 수 있습니다:
- 기본 클래스 (Base Classes): 다른 클래스들이 상속하여 사용할 수 있는 기본 클래스들.
- 추상 클래스 (Abstract Classes): 구체적인 구현을 제공하지 않는 추상 클래스들로, 다른 클래스들이 이를 상속하여 구체적인 구현을 제공해야 합니다.
- 기본 구성 요소 (Base Components): 프레임워크나 라이브러리의 핵심 구성 요소들.
예시:
package com.example.base;
public abstract class BaseEntity {
private Long id;
private Date createdDate;
private Date updatedDate;
// 공통 필드와 메서드들
}
package com.example.base;
public abstract class BaseService<T> {
public abstract T findById(Long id);
public abstract List<T> findAll();
}
요약
- common 패키지: 여러 클래스나 모듈에서 공통으로 사용할 수 있는 유틸리티, 상수, 헬퍼 클래스 등을 포함합니다.
- base 패키지: 프로젝트의 기본 클래스나 최상위 클래스를 포함하며, 주로 다른 클래스들이 상속하여 사용할 수 있는 클래스들입니다.
이러한 구조는 프로젝트의 모듈화와 코드 재사용성을 높여줍니다. 각 패키지의 역할을 명확히 함으로써 프로젝트를 더 체계적으로 관리할 수 있습니다.
aqqle 멀티프로젝트 인데 이것저것 추가되다보니 개판됐음..
이 구조로 정리좀 해봐야겠다.
728x90
반응형
'Java' 카테고리의 다른 글
[java] 함수형 프로그래밍(Functional Programming) 은? (0) | 2024.09.02 |
---|---|
[java] Vavr 란? (0) | 2024.09.02 |
[java] URL 호출해서 파일 다운로드 (InputStream) (0) | 2024.06.01 |
[java] Unix 타임스탬프 (0) | 2024.06.01 |
[JPA] CRUD 구현하기 (1) | 2024.04.10 |