MINU Framework v3 - Developer Guide Help

신입 개발자를 위한 단디소프트 개발 가이드

1. 시작하기

개발 환경 설정하기

  • 필수 프로그램 설치

    • JDK 17

    • IntelliJ IDEA 또는 Eclipse

    • Git

    • Gradle

  • 프로젝트 설정

    • Git 저장소 클론

    git clone [repository-url]
    • Gradle 빌드

    ./gradlew clean build

프로젝트 구조 이해하기

  • 주요 모듈

    • _minu-code-gen: 코드 생성 도구

    • damda-system: 시스템 관련 모듈

    • damda-domain-data: 도메인 데이터 모듈

    • damda-api-client: API 클라이언트 모듈

    • damda-webapp: 웹 애플리케이션 모듈

2. 기본 개념 이해하기

Spring Boot 기초

  • 의존성 주입(DI)

    • @Autowired, @Resource 사용법

    • 컴포넌트 스캔 이해하기

  • 설정 파일

    • application.yml 구조

    • 프로필 설정 방법

데이터베이스 연동

  • JPA 기초

    • 엔티티 클래스 작성

    • 리포지토리 인터페이스 활용

  • 쿼리 작성

    • JPQL 기본 문법

    • QueryDSL 활용법

코드 생성기 사용법

  • 설정 파일 작성

    code-generator: package: base: io.minu.damda module: sys target-table: [테이블명]
  • 코드 생성 실행

    ./gradlew :_minu-code-gen:bootRun

3. 실전 개발 가이드

REST API 개발

  • Controller 작성

    @RestController @RequestMapping("/api/v1") public class SampleController { // API 메서드 구현 }
  • Service 계층

    • 비즈니스 로직 구현

    • 트랜잭션 관리

  • Repository 활용

    • 데이터 접근 계층

    • 쿼리 메서드 활용

화면 개발

  • Thymeleaf 템플릿

    • 기본 문법

    • 레이아웃 구성

  • 프론트엔드 개발

    • JavaScript 모듈화

    • CSS 스타일링

테스트 코드 작성

  • 단위 테스트

    • JUnit 5 활용

    • Mockito를 이용한 목킹

  • 통합 테스트

    • Spring Boot Test

    • TestContainers 활용

4. 개발 프로세스

Git 활용

  • 브랜치 전략

    • feature/

    • develop

    • main

  • 커밋 메시지

    feat: 새로운 기능 추가 fix: 버그 수정 docs: 문서 수정

코드 리뷰

  • 리뷰 요청하기

    • PR(Pull Request) 작성법

    • 리뷰어 지정

  • 피드백 반영

    • 코드 수정

    • 재검토 요청

배포 프로세스

  • 환경별 배포

    • 개발(dev)

    • 스테이징(stage)

    • 운영(prod)

  • CI/CD

    • Jenkins 파이프라인

    • 자동 배포 설정

5. 문제 해결 가이드

로깅 활용

  • 로그 레벨

    logging: level: root: INFO io.minu.damda: DEBUG
  • 로그 분석

    • 로그 패턴 이해

    • 문제 추적 방법

디버깅 방법

  • IDE 디버거

    • 브레이크포인트 설정

    • 변수 조사

  • 문제 해결 절차

    1. 증상 파악

    2. 로그 확인

    3. 디버깅

    4. 해결 및 검증

일반적인 오류

  • 자주 발생하는 예외

    • NullPointerException

    • IllegalArgumentException

  • 해결 방법

    • 체크리스트

    • 문제 해결 사례

6. 개발 표준 및 규칙

코딩 컨벤션

  • 네이밍 규칙

    • 클래스: PascalCase

    • 메서드/변수: camelCase

  • 코드 포맷팅

    • 들여쓰기: 4칸

    • 최대 줄 길이: 120자

보안 가이드라인

  • 인증/인가

    • Spring Security 설정

    • JWT 토큰 활용

  • 보안 취약점

    • SQL 인젝션 방지

    • XSS 대응

성능 최적화

  • 쿼리 최적화

    • 인덱스 활용

    • N+1 문제 해결

  • 캐시 활용

    • Spring Cache

    • Redis 활용

7. 유용한 도구와 팁

개발 생산성 도구

  • IDE 플러그인

    • Lombok

    • JPA Buddy

  • 단축키 모음

    • 자주 사용하는 단축키 목록

문서화

  • API 문서

    • Swagger 활용

    • REST Docs 작성

  • 기술 문서

    • Confluence 활용

    • 마크다운 작성법

8. 참고 자료

추천 학습 자료

  • Spring 공식 문서

  • JPA 프로그래밍 가이드

  • Clean Code

유용한 링크

  • 프로젝트 위키

  • 기술 블로그

  • 개발 가이드

용어 사전

  • DI (Dependency Injection)

  • ORM (Object-Relational Mapping)

  • JPA (Java Persistence API)

Last modified: 12 March 2025