https://sundaland.tistory.com/203
아티팩트 (Artifact)
자바 개발에서 아티팩트라는 용어는 빌드 과정에서 생성되는 파일이나 결과물을 의미한다. 이 아티팩트는 다양한 형태를 가지며, 자바 개발의 중요한 산출물이다.
자바 아티팩트의 종류
- JAR 파일 (Java Archive) : 자바 클래스 파일과 해당 애플리케이션 또는 라이브러리에 필요한 리소스 파일을 압축한 아카이브 파일이다. 이는 자바 애플리케이션을 배포하거나 라이브러리를 공유할 때 흔히 사용된다.
- WAR 파일 (Web Application Archive) : 웹 애플리케이션의 배포를 위해 사용되는 아티팩트이다. JSP, 서블릿, 자바 클래스, XML, HTML, 자바스크립트 파일 등 웹 애플리케이션을 구성하는 모든 파일을 포함한다.
- EAR 파일 (Enterprise Application Archive) : 주로 앤터프라이즈 애플리케이션을 위해 사용되며, 여러 개의 모듈을 하나의 아카이브로 묶는다. 대규모 시스템에서 다양한 애플리케이션 구성 요소를 통합하기 위해 사용된다.
- 클래스 파일 : 자바 소스 코드가 컴파일된 후 생성되는 바이너리 파일이다. 이 파일들은 JAR, WAR, EAR 파일로 패키징되기 전 단계의 산출물이다.
아티팩트의 중요성
- 재사용성과 공유 : 아티팩트는 다른 프로젝트나 팀원들과 코드나 라이브러리를 공유하기 위한 표준화된 방법을 제공한다.
- 버전 관리 : 아티팩트는 특정 버전으로 관리되어, S/W의 버전 관리나 배포 과정을 효과적으루 수행할 수 있게 한다.
- 자동화된 빌드 및 배포 : 현대의 개발 환경에서는 아티팩트의 새성과 배포가 자동화 도구를 통해 관리된다. 이는 개발 과정을 효율적으로 만들어준다.
자바 아티팩트는 개발 과장에서 매우 중요한 역할을 하며, S/W 구성, 배포, 버전 관리에 있어 핵심적인 요소이다.
DAO (Data Access Object)
자바에서 데이터베이스의 데이터에 접근하기 위한 객체를 의미한다. 이 패턴은 액세스 로직과 비즈니스 로직을 분리하여 구현하는데 사용된다.
- 데이터 접근 추상화 및 캡슐화 : DAO는 DB와의 모든 상호작용을 캡슐화하여, 나머지 애플리케이션에 데이터 소스로부터의 데이터 접근 방식을 숨긴다. 이는 DB 작업을 수행하는 API를 제공함으로써, 나머지 애플리케이션이 DB에 직접 접근하는 것을 방지한다.
- 데이터 소스로부터의 독립성 : DAO를 사용하면 애플리케이션은 특정 DB나 저장소 기술에 종속되지 않는다. 이를 통해 DB 시스템을 변경하거나 다른 종류의 저장소로 마이그레이션할 때 애플리케이션의 나머지 부분에 미치는 영향을 최소화할 수 있다.
- 재사용 및 유지보수의 용의성 : 공통된 접근 로직을 DAO에 구현함으로써, 코드 중복을 줄이고 재사용성을 높일 수 있다. 또한 데이터 접근 로직을 한 곳에 집중시켜 두면 유지보수가 훨씬 용이해진다.
DAO 패턴 구현 방법
- DAO 인터페이스 : DB 작업을 수행하는데 필요한 메서드를 정의한다.
- DAO 구현 클래스 : DAO 인터페이스를 구현하며, 실제 DB 연결과 데이터 조작 로직을 포함한다.
- DTO : DB 데이터를 나타내며, DAO를 통해 DB와 애플리케이션 간에 데이터를 전송하는데 사용된다.
예를 들어 사용자 정보를 관리하는 애플리케이션에서는 UserDao 인터페이사 정의될 수 있고, 이 인터페이스에는 getUserById, saveUser, updateUser, deleteUser와 같은 메서드를 포함할 수 있다.
UserDAOImpl 클래스는 이 인터페이스를 구현하고 실제 DB 로직을 처리한다.
DAO 패턴은 DB 관련 코드의 가독성과 유지 보수성을 향상시키며, 테스트와 데이터 소스 교체를 용이하게 만든다.
▼ 사용자 정보를 저장하는 자바 빈 User 클래스
package springbook.user.domain;
public class User {
String id;
String name;
String password;
public String getld() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
자바 빈 (Java Bean)
자바에서 재사용 가능한 컴포넌트를 만들기 위한 일종의 규약 또는 표준이다. 자바 빈은 다양한 자바 애플리케이션, 특히 웹 애플리케이션과 데스트톱 애플리케이션에서 데이터를 표현하고 관리하는데 널리 사용된다.
자바 빈은 특정 규칙을 따르는 단순한 클래스이다.
- 캡슐화 : 자바 빈은 데이터(프로퍼티)를 private 필드로 저장하고, 이에 접근하기 위해 public 메서드인 getter와 setter를 제공한다. 이를 통해 데이터 접근과 수정을 제어할 수 있으며, 객체의 상태와 행동을 적절히 분리한다.
- 직렬화 가능성 : 자바 빈은 Serializable 인터페이스를 구현함으로써, 객체의 상태를 파일이나 네트워크를 통해 전송 가능한 형태로 변환할 수 있다. 이는 자바 빈이 퍼시스턴스(persistance) 및 원격 전송에 적합하게 만든다.
- 기본 생성자 : 자바 빈은 파라미터가 없는 기본 생성자를 가진다. 이는 자바 빈을 쉽게 인스턴스화하고, 프레임워크가 라이브러리가 리플랙션을 사용해 객체를 자동으로 생성할 수 있게 한다.
- 재사용 가능성 : 표준화된 디자인 패턴을 사용함으로써, 자바 빈은 다양한 환경에서 재사용될 수 있다. 이는 개발자가 일관된 방식으로 객체를 사용하고 관리할 수 있게 해준다.
자바 빈의 장점
- 유연성 : 자바 빈은 코드의 재사용성을 높이고 유지보수를 용의하게 한다. 표준화된 구조 덕분에 다른 개발자도 쉽게 이해하고 활용할 수 있다.
- 통합성 : 다양한 자바 기반 프레임워크 및 라이브러리와 쉽게 통합된다, 예를 들어 Spring 프레임워크는 자바 빈을 사용하여 의존성 주입과 같은 고급 기능을 제공한다.
- 데이터 바인딩과 처리 용의성 : 웹 애플리케이션에서 자바 빈은 폼 데이터를 쉽게 취급할 수 있게 해준다. 사용자 인터페이스와 백앤드 데이터 처리 사이의 연결 고리 역할을 한다.
▼ 사용자의 입력을 받아서 처리하는 코드의 예
public class UserBean implements Serializable {
private String name;
private String email;
public UserBean() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
위 자바 빈은 사용자의 입력을 받아서 처리하는데 사용될 수 있으며, 다양한 비즈니스 로직에서 재사용될 수 잇다. 이 처럼 자바 빈은 간단하면서도 매우 강력한 도구로, 자바 기반 애플리케이션의 개발을 촉진한다.
'Toby Spring 3.1' 카테고리의 다른 글
관심사의 분리 (Separation of Concerns) (0) | 2024.08.08 |
---|---|
원칙과 패턴 (Open-Closed Principle) (0) | 2024.08.08 |
UML (Unified Modeling Language) (0) | 2024.08.05 |