ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Day 12. 스프링부트(Spring boot) / intelliJ / JAVA
    [KT X SeSAC AI+] 2026. 6. 4. 16:08

    1. intelliJ 설치

    https://www.jetbrains.com/idea/download

     

    2. spring 프로젝트 시작

    https://start.spring.io/

    • 언어, 버전, 메타데이터, 의존성 3개 추가 후 GENERATE

     

    3. intelliJ 설정

    1. Project Structure (Ctrl+Alt+Shift+S) 클릭

     

    2. Project - SDK - Download JDK 클릭

     

    3. version 21로 설치

     

    4. Platform Settings > SDKs에서 확인 가능

     

    5. 스프링부트 프로젝트 구조

    my-spring-project/
     │
     ├── src/main/java/
     │    └── com.sesac.aibackend                   // 루트 패키지
     │         │
     │         ├── .controller                      // 컨트롤러 계층 패키지
     │         │    ├── HealthController.java
     │         │    └── ItemController.java
     │         │
     │         ├── .service                         // 서비스 계층 패키지
     │         │    └── GreetingService.java
     │         │
     │         ├── .domain                          // 도메인 (엔티티) 계층 패키지
     │         │    └── Item.java
     │         │
     │         ├── .dto                             // 데이터 전송 객체 패키지
     │         │    ├── ItemRequest.java
     │         │    └── ItemResponse.java
     │         │
     │         ├── .config                          // 설정 패키지
     │         │    └── AppConfig.java
     │         │
     │         ├── .util                            // 유틸리티 패키지
     │         │    └── MessageFormatter.java
     │         │
     │         ├── .error                           // 예외(오류) 처리 패키지
     │         │    ├── NotFoundException.java
     │         │    ├── ErrorResponse.java
     │         │    └── GlobalExceptionHandler.java
     │         │
     │         └── AiBackendApplication.java        // 앱 진입점 (main 메서드)
     │
     ├── src/main/resources/
     │    └── application.yml                       // 서버 설정 뼈대 파일 (포트, DB 연결 등)
     │
     ├── build.gradle                               // 빌드 및 의존성 설정 파일
     └── .env                                       // 비밀키 보관용 (Git 제외)

     

    6. 개별 디렉토리 설명

    패키지 / 디렉터리 주요 역할 및 설명 강의 내 예시 파일
    루트 패키지 프로그램의 시작점입니다. @SpringBootApplication이 붙어있어, 실행 시 이 패키지부터 하위 패키지까지 스캔하여 빈(Bean)으로 등록합니다. AiBackendApplication.java
    controller HTTP 요청(GET, POST 등)을 받아 응답을 돌려주는 '입출구' 역할을 맡습니다. 실제 복잡한 업무 로직은 직접 처리하지 않고 서비스 계층으로 넘깁니다. HealthController.java,
    ItemController.java
    service 실제 업무 규칙(비즈니스 로직)을 처리하는 계층입니다. HTTP 사정과 업무 규칙이 섞이는 것을 막기 위해 컨트롤러와 역할을 분리합니다. GreetingService.java
    domain 시스템에서 다루는 핵심 데이터 객체(POJO)를 담습니다. 데이터베이스와 연결될 엔티티(Entity)가 위치하는 곳입니다. Item.java (id, name, price)
    dto 계층 사이에서 데이터를 실어 나르는 전용 그릇인 DTO(Data Transfer Object)를 둡니다. 내부 엔티티 구조와 외부 API 응답 모양을 따로 진화시키기 위해 분리합니다. ItemRequest.java (요청용),
    ItemResponse.java (응답용)
    config 남이 만든 라이브러리 객체를 스프링 컨테이너에 수동으로 등록(@Bean)하거나, 앱의 전반적인 설정을 담당합니다. AppConfig.java
    util 시스템 전반에서 공통으로 사용되는 자잘한 도구(어노테이션이 없는 평범한 자바 객체)들을 모아둡니다. MessageFormatter.java
    error 여러 컨트롤러에 흩어진 오류 처리를 한곳에 모으는 횡단 관심사(전역 예외 처리기)를 담당합니다. 어떤 오류든 일관된 표준 오류 형식(JSON)으로 변환해 돌려줍니다. GlobalExceptionHandler.java,
    ErrorResponse.java
    resources/ 소스 코드가 아닌 설정 파일들을 둡니다. application.yml은 포트나 DB 연결, 로깅 등을 담는 뼈대입니다. application.yml
    (프로젝트 최상단) build.gradle은 프로젝트의 의존성(라이브러리)과 빌드 설정을 적는 파일입니다. .env는 DB 비밀번호나 시크릿 키 등 깃(Git)에 올리면 안 되는 비밀값을 관리합니다. build.gradle,
    .env

    '[KT X SeSAC AI+]' 카테고리의 다른 글

    Day 14. Security  (0) 2026.06.08
    Day 13. JPA  (0) 2026.06.05
    Day 11. AI Backend - FastAPI (2)  (0) 2026.06.02
    Day 11. AI Backend - FastAPI  (0) 2026.06.02

    댓글

Designed by Tistory.