2025년 7월 31일 목요일(47일차)

Jeonghoon·2025년 7월 31일

jeonghoon's Study

목록 보기
49/128

🌱 Spring · Annotation · Team Project 정리


⚙️ [ Spring 환경 구축 ]

스프링 부트 프로젝트를 시작하기 위한 기본 환경 설정 정리

항목설명
🧩 시스템 빌드Gradle (Groovy)
JDK 버전17
🚀 프로젝트 실행 절차1️⃣ 클래스 상단에 @SpringBootApplication 작성
2️⃣ 메소드 내 SpringApplication.run(클래스명.class) 작성
3️⃣ http://localhost:8080/ 접속으로 실행 확인
🧱 정상 화면Whitelabel Error Page (Spring 서버 정상 구동)
⚠️ 비정상 화면“사이트에 연결할 수 없음” → 서버 실행 실패

☕ [ Spring과 Gradle ]

항목설명
🧠 Spring자바 기반 엔터프라이즈급 애플리케이션 개발 프레임워크
🏛️ 전자정부프레임워크대한민국 공공 프로젝트 개발 표준 (Spring 기반)
⚙️ Spring 주요 특징- IOC / DI (의존성 주입)
- AOP (로직 분리 및 모듈화)
- MVC2 3-Tier 구조 필수
- 확장성 우수
🚀 Spring Boot스프링을 빠르게 사용할 수 있도록 자동 설정 기반의 스타터 프레임워크
- 복잡한 설정 자동 제공
- 내장 Tomcat 포함
🧱 Tomcat자바 기반 웹 개발용 내장 서버 (HTTP 요청/응답 처리 포함)
🔧 Gradle자바 기반 빌드 자동화 도구
- 의존성 관리, 배포, 패키징 자동 처리

🏷️ [ Annotation (어노테이션) ]

코드에 메타데이터를 부여하여 동작을 정의하거나 관리하는 기능

항목설명
📘 정의Java 및 Spring에서 코드에 메타데이터를 추가하는 문법
🎯 목적코드 간소화, 가독성 향상, 메타데이터 제공
💬 예시@Override, @Deprecated 등 — 코드 설명서 역할

🧩 어노테이션 종류

분류설명예시
🧱 표준 어노테이션자바에서 기본 제공@Override, @Deprecated
⚙️ 메타 어노테이션코드의 동작이나 정의를 제어Spring, Servlet 관련

🧠 어노테이션 생성

@interface 어노테이션명 { }
어노테이션설명
🔁 @Retention어노테이션 유지 기간 지정
➡️ RetentionPolicy.RUNTIME런타임까지 유지
➡️ RetentionPolicy.CLASS.class 파일까지 유지 (실행 전 포함)
➡️ RetentionPolicy.SOURCE컴파일 후 삭제
🎯 @Target어노테이션 적용 위치 지정
➡️ ElementType.METHOD메소드
➡️ ElementType.TYPE클래스, 인터페이스 등
➡️ ElementType.FIELD멤버변수
➡️ ElementType.PARAMETER매개변수
➡️ ElementType.CONSTRUCTOR생성자

🧩 [ Annotation 활용 ]

어노테이션설명
🎯 @Controller컨트롤러 클래스에 선언
@Component 포함 (자동 싱글톤 객체 생성)
🌍 @RestController@Controller + @ResponseBody + @Component 결합형
💬 @ResponseBody자바 객체를 HTTP가 이해할 수 있는 JSON으로 자동 변환
⚙️ @SpringBootApplication스프링 기본 설정 + 컴포넌트 스캔 + 내장 톰캣 실행

🌐 [ REST 구조 ]

REST는 CRUD 기능을 HTTP 메소드로 구현하는 웹 통신 구조

기능설명어노테이션
🟢 등록 (CREATE)자원 생성@PostMapping
🔵 조회 (READ)자원 조회@GetMapping
🟠 수정 (UPDATE)자원 수정@PutMapping
🔴 삭제 (DELETE)자원 삭제@DeleteMapping

💡 Tip:

  • 반환 타입이 있는 REST 컨트롤러는 반드시 @ResponseBody 필요
  • HTTP는 Java 타입을 모르기 때문에 변환 작업이 필요함

👥 [ 팀프로젝트 회고 ]

프로젝트 수행 중 얻은 인사이트 및 개선점 정리

항목내용
💡 프로토타입의 한계초기 완성 후에도 다음 단계로 갈수록 수정사항이 계속 발생
🧠 개선 접근법완벽한 설계보다 직접 구현하며 피드백을 받는 것이 효과적
🔗 DB 설계 중요성PK-FK 관계와 기능 간 연결 구조를 명확히 설계해야 함
⚙️ 실무적 차이점예상보다 훨씬 다양한 예외 상황과 구체적인 구현 요구 발생

0개의 댓글