Spring Boot 15

Chapter 4. Spring Boot 코어 개념

프레임워크목적을 쉽게 달성할 수 있도록 해당 목적과 관련된 코드의 뼈대를 미리 만들어둔 것 Spring IoC 컨테이너객체의 생성, 관리를 개발자가 아닌 Spring 프레임워크가 담당하는 개념 출처 : https://docs.spring.io/spring-framework/reference/core/beans/basics.html 작동방식1. 객체를 class로 정의2. 객체들 간의 연관성 지정 : 설정 파일(Config), 어노테이션으로 의존성 주입 지정3. IoC 컨테이너가 이 정보를 바탕으로 객체 생성, 필요한 곳에 주입 IoC 컨테이너는 POJO 기반의 개발 가능하게 한다( POJO : 복잡한 라이브러리, 프레임워크에 의존하지 않고 순수 자바 객체를 의미)→ Spring은 POJO 기반의 개발을 ..

Spring Boot/UMC 2025.04.09

Chapter 3. API

API(Application Programming Interface)응용 프로그램 간의 통신 도와주는 인터페이스 REST API(Representational State Transfer API)웹에서 자원을 효과적으로 관리하고 클라이언트-서버 간 통신을 원활하게 하기 위한 설계 원칙HTTP를 기반으로 데이터를 주고받는 규칙 RESTful API Endpoint 설계 규칙URL에 동사 포함 XURL에서의 단어 구분 -(하이픈) 사용자원은 복수형으로 표현하나의 자원을 명시적으로 표현하기 위해 식별 값(/users/id) 추가로 사용자원 간 연관 관계가 있을 경우 URL에 표현API EndpointREST API에서 해당 API를 호출하기 위한 HTTP 메서드, URL 포함 HTTP 메소드GET : 조회POS..

Spring Boot/UMC 2025.04.01

Chapter 2. 실전 SQL

Join 두 개 이상의 테이블 연결해서 데이터 조회(기본키, 외래키) 기준으로 결합  INNER JOIN 두 테이블에서 일치하는 데이터만 반환on 사용해서 연결 조건 설정일치하지 않는 데이터 무시됨SELECT FROM INNER JOIN ON [WHERE 검색 조건]SELECT mm.id AS mission_id, m.point_reward, s.name AS store_name, mm.status, mm.finish, mm.complated_atFROM member_mission AS mmINNER JOIN mission AS m ON mm.mission_id = m.id LEFT JOIN왼쪽 테이블의 모든 행 가져온다오른쪽 행은 일치하는 값있으면 가져온다 (데이터 없으면 NULL)RIG..

Spring Boot/UMC 2025.03.27

[Spring Boot] AOP

AOP (Aspect Oriented Rrogramming) : 관점 지향 프로그래밍공통 관심 사황과 핵심 관심 사항 분리 AOP가 필요한 상황- 모든 메서드 호출 시간 측정하고 싶을 때- 공통 관심 사항(cross-cutting concern) VS 핵심 관심 사항 (core concern)   공통 관심 사항 : 시간 측정 로직핵심 관심 사항 : 핵심 비즈니스 로직→ 두 코드가 섞여있기에 유지 보수 어려움  AOP 적용@Around("패키지 이름 or 클래스명...") 공통 관심 사항 타겟팅@Around("execution(* hello.spring_start..*(..))")→ hello.spring_start 하위에 다 적용 → 회원 목록 클릭 후 터미널 스프링의 AOP 동작 방식AOP 적용 전 ..

Spring Boot 2024.12.30

[Spring Boot] 스프링 통합 테스트 에러

회원가입 test 실행 시 발생한 에러 발생원인 Java 9 이상부터 JDK가 Java Agent 로딩 방식에 대해 더 엄격해졌기 때문, Mockito 라이브러리가 내부적으로 사용하는 inline-mock-maker 기능을 사용할 때 발생 해결방법build.gradle 파일에 추가test { jvmArgs += "-javaagent:${configurations.testRuntimeClasspath.find { it.name.contains('mockito-core') }}"}  위 코드 추가 후 발생한 에러 발생원인JDK에서 클래스 공유관련 설정에 대해 발생하는 경고JVM 부트스트랩 클래스 경로가 잘못 설정되었거나, 클래스 공유 기능을 사용할 때 생김 해결방법build.gradle 파일에 추가test ..

Spring Boot 2024.12.29