ERP 시스템(Enterprise Resource Planning)은 기업의 모든 자원을 관리하고 최적화하기 위한 통합 시스템입니다. 오늘부터 우리는 자바의 스프링 프레임워크(Spring Framework)를 이용해 ERP 시스템을 처음부터 끝까지 구축해보겠습니다. 이 대장정의 첫 번째 단계는 프로젝트의 기초를 설정하고, 핵심 구조를 세우는 것입니다. 쉬운 단계부터 신중하게 진행하며 차근차근 완성해보겠습니다.
1. 자바 스프링 프레임워크란?
스프링 프레임워크는 자바(Java)를 기반으로 한 강력한 웹 애플리케이션 개발 프레임워크입니다. ERP 시스템 구축에 있어 스프링을 선택하는 이유는 모듈화, 유연성, 보안성에 있습니다. 스프링은 대규모 애플리케이션에서도 효율적인 성능을 유지할 수 있어 ERP 시스템 구축에 이상적입니다.
1.1 스프링의 주요 기능
- IoC(제어의 역전): 객체 생성과 의존성 주입을 스프링이 관리하여 코드 유지보수가 쉬워집니다.
- AOP(관점 지향 프로그래밍): 로깅, 보안 등의 횡단 관심사를 분리하여 처리합니다.
- MVC 패턴 지원: Model, View, Controller를 분리하여 클린 아키텍처를 유지할 수 있습니다.
2. 프로젝트 기본 설정
스프링으로 ERP 시스템을 만들기 위해서는 Spring Boot를 사용하여 빠르고 간단하게 프로젝트를 시작할 수 있습니다. Spring Boot는 복잡한 설정을 자동화해주므로, 개발자는 비즈니스 로직에 집중할 수 있습니다.
2.1 스프링 부트 프로젝트 생성
스프링 부트 프로젝트는 다음과 같은 방식으로 생성할 수 있습니다.
- Spring Initializr 사이트를 방문하여 프로젝트를 생성하거나, IDE(IntelliJ, Eclipse)에서 스프링 부트 프로젝트를 시작할 수 있습니다.
- 프로젝트 생성 시 다음과 같은 의존성을 추가합니다:
- Spring Web: 웹 애플리케이션 개발용.
- Spring Data JPA: 데이터베이스 연동을 위한 JPA.
- MySQL Driver: 데이터베이스 드라이버.
- Thymeleaf: 서버 사이드 템플릿 엔진(선택 사항).
2.2 Maven 또는 Gradle 빌드 설정
스프링 부트 프로젝트는 일반적으로 Maven 또는 Gradle을 빌드 도구로 사용합니다. pom.xml
이나 build.gradle
파일에서 의존성을 설정합니다.
<!-- Maven 설정 예시 -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
3. 기본 구조 설정
이제 기본적인 MVC 패턴을 설정하여, ERP 시스템의 구조를 세워보겠습니다. ERP 시스템은 많은 데이터를 처리해야 하므로, 먼저 간단한 모듈을 설정하고 이를 확장하는 방식으로 진행할 예정입니다.
3.1 모델 정의
ERP 시스템에서 모델은 데이터베이스와 상호작용하는 중요한 요소입니다. 예를 들어, ERP 시스템의 기본 기능 중 하나인 사용자 관리를 위한 모델을 정의해봅시다.
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String username;
private String password;
// getter, setter 추가
}
위 코드는 JPA를 이용해 User 엔티티를 정의한 것입니다. 이 엔티티는 데이터베이스의 사용자 정보를 관리하는 데 사용됩니다.
3.2 컨트롤러 설정
컨트롤러는 클라이언트로부터 요청을 받아서 처리하는 역할을 합니다. 스프링의 Controller를 사용해 간단한 사용자 관리 페이지를 만들 수 있습니다.
@Controller
@RequestMapping("/users")
public class UserController {
@GetMapping
public String listUsers(Model model) {
// 사용자 목록을 가져오는 로직
return "user-list"; // user-list.html 뷰로 반환
}
}
이 컨트롤러는 /users
경로에서 사용자 목록을 보여주는 기능을 담당합니다. 이후 데이터베이스와 연동하여 실제 데이터를 가져오는 기능을 구현하게 됩니다.
3.3 데이터베이스 연동
데이터를 관리하기 위해서는 Spring Data JPA를 사용하여 데이터베이스와 연동합니다. 여기에서는 MySQL을 사용해보겠습니다.
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
// 사용자 검색 기능 등 필요에 따라 메소드 추가 가능
}
UserRepository 인터페이스는 JPA를 이용해 데이터베이스와 상호작용하는 기본적인 CRUD 기능을 제공합니다.
4. 기본적인 페이지 생성
4.1 Thymeleaf를 이용한 사용자 목록 뷰
사용자 정보를 화면에 출력하는 기본적인 HTML 뷰를 Thymeleaf를 이용해 만들어봅시다.
<!-- user-list.html -->
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>사용자 목록</title>
</head>
<body>
<h1>사용자 목록</h1>
<ul>
<li th:each="user : ${users}">
<span th:text="${user.username}">사용자 이름</span>
</li>
</ul>
</body>
</html>
이 뷰는 서버에서 가져온 사용자 목록을 th:each
구문을 통해 화면에 출력합니다. 이처럼 간단한 방식으로 백엔드 데이터와 프론트엔드를 연결할 수 있습니다.
결론
이번 글에서는 자바 스프링 프레임워크를 이용해 ERP 시스템의 첫 번째 단계를 구현해보았습니다. 프로젝트 구조 설정, 데이터베이스 연동, MVC 패턴을 통한 기본적인 사용자 관리 기능을 구축하는 데 집중했습니다. 앞으로 진행할 단계에서는 더 복잡한 ERP 기능을 추가하고, 이를 관리하는 대규모 시스템을 완성할 예정입니다. 신중한 계획과 단계별 접근을 통해 완성도를 높여가겠습니다.
다음 글에서는 사용자 인증과 권한 관리를 구현하는 방법을 다룰 예정입니다.