Spring Boot 템플리트 프로젝트 생성하기

By | 2023년 2월 25일
Table of Contents

Spring Boot 템플리트 프로젝트 생성하기

프로젝트를 진행하다 보니 Entity-Repository-Service-Controller 생성이 상당히 유사한 패턴으로 이루어지는 것을 알게된다.

예를들어, User 엔터티를 위해 생성하는 클래스들이 아래와 같다고 하자.

User
UserExpression
UserRepository
UserRepositoryCustom
UserRepositoryImpl

UserConverter
UserDto
UserCreateRequestDto
UserModifyRequestDto
UserSearchRequestDto
UserResponseDto
UserService

UserController

또 Store 엔터티를 위해서 동일한 형태의 클래스들을 생성하게 된다.

Store
StoreExpression
StoreRepository
StoreRepositoryCustom
StoreRepositoryImpl

StoreConverter
StoreDto
StoreCreateRequestDto
StoreModifyRequestDto
StoreSearchRequestDto
StoreResponseDto
StoreService

StoreController

자동 생성 스크립트

이에 착안해 클래스 자동생성 스크립트를 생성해 본다.

from shutil import copyfile
import os

class_list = []
replace_list = []
data_type = 'class'

# ======================================
# 데이타 읽기
# ======================================
f = open("generate.txt", 'r', encoding='UTF8')
lines = f.readlines()
for line in lines:
    line = line.strip()
    if line.startswith('#'):
        if 'class' in line:
            data_type = 'class'
        elif 'replace' in line:
            data_type = 'replace'
    else:
        if line.strip() != '':
            if data_type == 'class':
                class_list.append(line.strip())
            elif data_type == 'replace':
                replace_list.append(line.strip())
f.close()

for src_path in class_list:
    dest_path = src_path
    for r in replace_list:
        r = r.split('\t')
        dest_path = dest_path.replace(r[0], r[1])
    os.makedirs(os.path.dirname(dest_path), exist_ok=True)
    copyfile(src_path, dest_path)
    with open(dest_path, 'r') as file:
        file_data = file.read()
        for r in replace_list:
            r = r.split('\t')
            file_data = file_data.replace(r[0], r[1])
    with open(dest_path, 'w') as file:
        file.write(file_data)
# class
src\main\java\com\example\template\domain\partner\Partner.java

# replace
partner test
Partner Test
고객사 테스트

작동방식

class 단에 생성해야 할 소스코드 목록을 추가해 준다.
replace 단에 변경해야할 문자열을 넣어줍니다.

파이선에서 디렉토리 또는 파일명 또는 소스코드에서 변경해야 할 텍스트들을 변경해 준 후 파일을 생성합니다.

답글 남기기