프레임워크(Framework)
프레임워크(Framework)는 특정한 목적을 가진 소프트웨어 애플리케이션을 개발하기 위해 사용되는 구조적인 틀이나 기반입니다. 일반적으로 프레임워크는 개발자가 특정 기능을 구현하는 데 필요한 기본적인 구조, 라이브러리, 툴 등을 제공하여 개발 생산성을 향상시키고 일관된 형태로 소프트웨어를 개발할 수 있도록 돕습니다.
프레임워크는 보통 다음과 같은 특징을 가집니다:
- 재사용성: 프레임워크는 일반적으로 특정한 도메인이나 기능에 대한 재사용 가능한 코드와 구성 요소를 제공합니다. 이를 통해 개발자는 반복적인 작업을 최소화하고 개발 시간을 단축할 수 있습니다.
- 확장성: 프레임워크는 확장성을 지원하여 사용자가 필요에 따라 쉽게 기능을 추가하거나 수정할 수 있도록 합니다. 이는 소프트웨어 애플리케이션의 요구 사항이 변경될 때 유연하게 대응할 수 있도록 도와줍니다.
- 일관성: 프레임워크는 일관된 디자인 패턴과 구조를 가지고 있어서 여러 개발자가 협업하여 작업할 때 일관된 코드 스타일을 유지할 수 있습니다.
- 보안성: 프레임워크는 일반적으로 보안에 관련된 기능을 내장하고 있어서 보안 취약점을 줄이고 개발자가 보안을 고려한 소프트웨어를 개발할 수 있도록 돕습니다.
- 문서화: 프레임워크는 보통 문서화가 잘 되어 있어서 개발자가 프레임워크를 이해하고 사용하는 데 도움이 됩니다. 이는 개발 생산성을 높이고 오류를 줄이는 데 도움이 됩니다.
데이터 저장 계층 또는 영속 계층
데이터 저장 계층 또는 영속 계층은 데이터를 영구적으로 저장하고 관리하기 위한 부분으로, 일반적으로 데이터베이스와 관련된 작업을 처리합니다. DAO, DTO, VO 등은 이러한 영속 계층에서 사용되는 객체들을 나타냅니다.
- DAO (Data Access Object): DAO는 데이터베이스나 다른 영구 저장소에 대한 접근을 추상화하는 객체입니다. DAO는 데이터베이스와의 통신을 담당하고 비즈니스 로직에서 데이터베이스에 접근할 수 있도록 인터페이스를 제공합니다. DAO는 데이터의 CRUD(Create, Read, Update, Delete) 작업을 수행하며, 트랜잭션 관리와 에러 처리 등의 기능도 제공할 수 있습니다.
- DTO (Data Transfer Object): DTO는 데이터를 전송하거나 전달하기 위한 객체입니다. 주로 여러 개의 필드를 가지고 있는 간단한 자료구조로 구성되어 있으며, 비즈니스 계층과 프리젠테이션 계층 사이에서 데이터를 전달하는 데 사용됩니다. DTO는 주로 데이터베이스로부터 데이터를 읽어와서 비즈니스 로직으로 전달하거나, 비즈니스 로직에서 데이터베이스에 데이터를 저장할 때 사용됩니다.
- VO (Value Object): VO는 불변(immutable)하고 Serializable 인터페이스를 구현하는 객체입니다. 주로 읽기 전용 데이터를 표현하는 데 사용되며, DTO와 유사하지만 VO는 데이터의 불변성을 보장하고 재사용성을 높이는 데 중점을 둡니다. VO는 주로 데이터베이스로부터 데이터를 읽어오거나, 비즈니스 로직에서 처리된 결과를 프리젠테이션 계층으로 전달하는 데 사용됩니다.