신입 개발자를 위한 단디소프트 개발 가이드
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 디버거
브레이크포인트 설정
변수 조사
문제 해결 절차
증상 파악
로그 확인
디버깅
해결 및 검증
일반적인 오류
자주 발생하는 예외
NullPointerExceptionIllegalArgumentException
해결 방법
체크리스트
문제 해결 사례
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)