빠른 체험
-
InsCode(快马) 플랫폼 (https://www.inscode.net)에 접속합니다.
-
입력창에 다음 내용을 입력합니다:
Spring Boot와 MyBatis-Plus-Join을 기반으로 한 사원 관리 시스템을 생성하세요. 시스템에는 부서 테이블과 사원 테이블이 포함되어야 하며, 다음 기능을 구현해야 합니다: 1. 기본적인 부서 CRUD 연산 2. 기본적인 사원 CRUD 연산 3. 부서 조회 시 해당 부서의 모든 사원을 연관 조회 4. 사원 조회 시 소속 부서 정보를 연관 조회 5. 페이징 조회 지원 연관 조회는 MyBatis-Plus-Join을 사용하여 구현하고, 프론트엔드는 Vue.js로 데이터를 표시합니다. 데이터베이스는 MySQL을 사용하며, 테이블 구조는 자동으로 생성되도록 하세요. -
'프로젝트 생성' 버튼을 클릭하고, 프로젝트가 완전히 생성될 때까지 기다린 후 결과를 미리 봅니다.

최근에 사원 관리 시스템을 개발하면서 다중 테이블 연관 조회 요구사항을 만났습니다. 전통적인 MyBatis는 복잡한 SQL을 수동으로 작성해야 하지만, MyBatis-Plus-Join 플러그인은 JPA와 유사한 문법으로 연관 조회를 간소화하여 눈에 띄었습니다. InsCode(快马) 플랫폼의 지능형 생성 기능과 결합하여 전체 개발 과정이 매우 효율적이 되었습니다.
코어 기능 구현 핵심
프로젝트 준비 및 환경 설정: 기술 스택으로 Spring Boot 2.7을 기본 프레임워크로, MyBatis-Plus 3.5+를 ORM 계층으로, mybatis-plus-join 1.2.5 플러그인을 연관 조회 처리에 사용합니다. 프론트엔드는 Vue 3 Composition API, 데이터베이스는 MySQL 8.0을 선택했습니다. InsCode 플랫폼에서 새 프로젝트를 생성할 때 이러한 의존성을 빠르게 구성할 수 있어, 수동으로 pom.xml을 수정할 필요가 없습니다.
데이터베이스 설계 자동화: 시스템에는 두 개의 핵심 테이블이 필요합니다. 부서 테이블(department)은 id, name, create_time 필드를 포함하고, 사원 테이블(employee)은 id, name, age, department_id 등의 필드를 포함합니다. 플랫폼은 엔티티 클래스를 기반으로 테이블 구조를 자동 생성하거나, 반대로 기존 데이터베이스에서 엔티티 클래스를 생성할 수 있습니다. 중요한 점은 department_id가 자동으로 외래 키로 인식되어, 이후 연관 조회의 기반이 된다는 것입니다.
핵심 기능 구현:
- 기본 CRUD 기능: MyBatis-Plus의 ServiceImpl을 상속받아 부서와 사원 관리를 위한 단일 테이블 연산을 거의 코딩 없이 구현할 수 있습니다.
- 일대일 조회: 사원 조회 시
@BindEntity어노테이션을 사용하여 부서 정보를 자동으로 연관시킵니다. 이는select employee.*, department.name as deptName과 유사한 효과를 냅니다. - 일대다 조회: 부서 상세 정보를 조회할 때
@BindEntityList를 통해 소속 사원 목록을 로딩합니다. - 페이징 최적화: Page 객체와
@QueryJoin어노테이션을 함께 사용하여 연관 조회 시 페이징 통계의 정확성을 보장합니다.
프론트엔드 상호작용 설계: Vue 컴포넌트는 부서 관리와 사원 관리 두 모듈로 나뉩니다. InsCode 플랫폼은 RESTful 규격에 맞는 API 문서를 자동 생성하여, 프론트엔드에서 해당 문서를 기준으로 바로 연동할 수 있습니다. 사원 테이블에 부서 이름을 표시하거나 부서 상세 페이지에 구성원 목록을 보여주는 등의 기능은 백엔드 명확한 연관 데이터 반환 덕분입니다.
개발 효율성 향상 팁:
- AI 지능형 자동 완성:
@Entity어노테이션 입력 시@BindEntity등의 연관 어노테이션을 자동 제안합니다. - 시각적 디버깅: 연관 조회 인터페이스를 직접 테스트하고 생성된 SQL 문장을 실시간 확인할 수 있습니다.
- 오류 알림: 연관 필드 구성이 잘못되었을 때
@JoinTable어노테이션 누락 등을 명확히 알려줍니다.
문제 해결: 초기에 N+1 조회 문제가 발생했는데, 플랫폼의 SQL 모니터링 기능으로 발견 후 @BatchFetch 어노테이션을 사용하여 연관 객체를 배치 로딩했습니다. 페이징 조회 시에는 joinWrapper의 select()로 필드를 명시하여 SQL 중복을 방지해야 합니다.

가장 인상 깊었던 점은 InsCode(快马) 플랫폼에서 배포 버튼을 클릭하면 시스템이 MySQL 컨테이너 초기화, Spring Boot 애플리케이션 패키징, Nginx 구성 등을 자동으로 완료한다는 것입니다. 원래 반나절 걸리던 환경 설정이 커피 한 잔 마시는 동안 온라인 데모를 볼 수 있게 됩니다. 비즈니스 시나리오를 빠르게 검증해야 하는 개발자에게 코딩부터 배포까지의 이 원활한 경험은 확실히 많은 시간을 절약해줍니다.
빠른 체험
-
InsCode(快马) 플랫폼 (https://www.inscode.net)에 접속합니다.
-
입력창에 다음 내용을 입력합니다:
Spring Boot와 MyBatis-Plus-Join을 기반으로 한 사원 관리 시스템을 생성하세요. 시스템에는 부서 테이블과 사원 테이블이 포함되어야 하며, 다음 기능을 구현해야 합니다: 1. 기본적인 부서 CRUD 연산 2. 기본적인 사원 CRUD 연산 3. 부서 조회 시 해당 부서의 모든 사원을 연관 조회 4. 사원 조회 시 소속 부서 정보를 연관 조회 5. 페이징 조회 지원 연관 조회는 MyBatis-Plus-Join을 사용하여 구현하고, 프론트엔드는 Vue.js로 데이터를 표시합니다. 데이터베이스는 MySQL을 사용하며, 테이블 구조는 자동으로 생성되도록 하세요. -
'프로젝트 생성' 버튼을 클릭하고, 프로젝트가 완전히 생성될 때까지 기다린 후 결과를 미리 봅니다.