JAVA/Spring Boot (12) 썸네일형 리스트형 스프링 gemini 연결 나는 학생이라서 유료 버전을 무료로 사용하고 있는 gemini ai를 사용해 보기로 했다. 1. 먼저 여기서 api key를 받아준다.Get API key | Google AI Studio 로그인 - Google 계정이메일 또는 휴대전화accounts.google.com 2. application.yml 파일 설정 # Gemini API 설정gemini: api: key: ${GEMINI_API_KEY} 3. 키 등록디버그 옆에 점 세개를 눌러준다 -> Edit...을 눌러준다. Environment variables 칸에다가 아까 받은 gemini 키를 넣어 주면 됩니다. 혹시 이 칸이 보이지 않으신 분들은 Modify options를 눌러 추가하시면 됩니다. 작성하실 때는 아까 적은 키 이.. Spring Security : 스프링 시큐리티 원리 스프링 시큐리티란 ?API 실행시 사용자 인증 구현한 것인증과 권한, 인가 등 스프링 기반의 보안을 담당하는 하위 프레임워크 인증(Authenticate, 누구인가) 인가(Authorize, 어떤 것을 할 수 있는지)를 담당 스프링 시큐리티에서는 주로 서블릿 필터(filter)와 이들로 구성된 필터체인으로 구성된 위임 모델 사용+ 보안 관련 체계적인 옵션 제공해줘서 개발자 입장에서 일일이 보안 관련 로직 작성하지 않아도 된다. 기본용어- 접근 주체 (Principal) : 보호된 대상에 접근 하는 유저- 인증(Authentication) 인증은 "증명하다"라는 의미 -> 로그인 하는 과정- 인가(Authorization) : "권한 부여" or "허가" 즉 어떤 대상이 특정 목적 실행을 허용(Ace.. 스웨거 (Swagger) APi 문서화, 디자인, 빌드, 테스트 사용 편리하게 한 프레임 워크 -> 스웨거는 RESTful API 서비스 개발하고 문서화 하는 데 도움을 주는 도구 모음 1. API 문서화 📄컨트롤러, 요청/응답 객체를 기반으로 API 문서를 자동 생성한다.명세서를 수동으로 관리할 필요가 없다. 2. Swagger UI 💻웹 브라우저에서 API 명세를 시각화해 보여준다.각 API에 직접 요청을 보내고 응답을 확인할 수 있어 테스트 용도로도 유용하다. 3. 코드 생성 ⚙️OpenAPI 스펙을 기반으로 클라이언트 SDK나 서버 스텁 코드를 생성할 수 있다.일관된 API 호출 구조가 필요한 팀에 적합하다. 4. API 테스트 🧪Swagger UI를 통해 다양한 파라미터와 헤더 조합으로 실시간 테스트가 가능하다... Spring Boot 멀티 프로젝트 생성하기(3) Spring Boot 멀티 프로젝트 생성하기(2)Spring Boot 멀티 프로젝트 생성하기멀티 프로젝트를 왜 해야 하는가 영상을 보고 연습 삼아 멀티 프로젝트를 만들어 보고자 한다. 프로젝트 생성하기 프로젝트 이름은 delivery-service자바버전은 21로ha-yeong.tistory.com Spring Boot 멀티 프로젝트 생성하기멀티 프로젝트를 왜 해야 하는가 영상을 보고 연습 삼아 멀티 프로젝트를 만들어 보고자 한다. 프로젝트 생성하기 프로젝트 이름은 delivery-service자바버전은 21로 설정별도의 설정 없이 프로젝트ha-yeong.tistory.com build.gradle(:db) 는 lombok, jpa, mysql을 추가했다.group = 'org.delivery'v.. Spring Boot 멀티 프로젝트 생성하기(2) Spring Boot 멀티 프로젝트 생성하기멀티 프로젝트를 왜 해야 하는가 영상을 보고 연습 삼아 멀티 프로젝트를 만들어 보고자 한다. 프로젝트 생성하기 프로젝트 이름은 delivery-service자바버전은 21로 설정별도의 설정 없이 프로젝트ha-yeong.tistory.com이전 버전의 세팅 다음을 적어 보겠다. api의 build.gradle의 파일에 lombok과 springweb을 추가해 주었다. group = 'org.delivery'version = 'unspecified'configurations { compileOnly { extendsFrom annotationProcessor }}repositories { mavenCentral()}dependencies.. Spring Boot 멀티 프로젝트 생성하기 멀티 프로젝트를 왜 해야 하는가 영상을 보고 연습 삼아 멀티 프로젝트를 만들어 보고자 한다. 프로젝트 생성하기 프로젝트 이름은 delivery-service자바버전은 21로 설정별도의 설정 없이 프로젝트 생성 이제 루트에 있는 src를 삭제 다음으로 build.gradle의 파일을 열어서 아래와 같이 세팅plugins { id 'java' id 'org.springframework.boot' version '3.5.3' id 'io.spring.dependency-management' version '1.1.7'}bootJar.enabled = false // 루트 모듈은 실행 가능한 jar 생성 Xrepositories { mavenCentral()}subprojects {.. Spring Security 이해 1. 스프링과 톰캣의 관계Tomcat: 웹 서버 역할 (HTTP 요청 처리)Spring Boot 앱은 실행될 때:Bean을 넣을 수 있는 컨테이너(Root/Web ApplicationContext) 생성요청을 처리할 DispatcherServlet을 만들어 Tomcat에 등록요청 → Tomcat → DispatcherServlet → Controller Bean이 뭔데 ⬇️더보기 ✔️ 일반 자바 객체 vs Spring Bean그냥 new로 만든 객체는 우리가 직접 관리해야 합니다.하지만 Spring Bean으로 등록하면, Spring이 대신 생성하고, 주입하고, 관리해줍니다. @Component // 또는 @Service, @Repository, @Controllerpublic class MyServic.. AOP (관점지향 프로그래밍) 비즈니스 로직을 건드리지 않고도 부가적인 기능(로깅, 보안, 트랜잭션 관리 등)을 쉽게 구현할 수 있는 방법 1. 특징 관심사의 분리: 비즈니스 로직과 부가적인 기능을 분리하여 코드의 가독성과 유지보수성을 높인다.적용 범위: Web Layer, Business Layer, Data Layer 어디서든 활용 가능.재활용성: 특정 시점(Pointcut)에서 원하는 동작(Advice)을 재활용할 수 있다. 2. 활용사례 로깅: 여러 로직에서 로그를 남기고 싶을 때, 각 메소드마다 추가하지 않고 AOP로 한 번에 처리 가능 ex ) 아래 사진처럼 a로직, b로직, c로직이 있을때 각각에 메소드 안추가하고 한번에 aop로 가능 !성능 측정: 메소드 실행 전후의 시간을 측정하여 성능 최적화에 도움... 이전 1 2 다음