본문 바로가기

반응형

JAVA/Spring Boot

(10)
스웨거 (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로 가능 !성능 측정: 메소드 실행 전후의 시간을 측정하여 성능 최적화에 도움...
Filter와 Interceptor Filter (필터)Filter는 서블릿 컨텍스트(톰캣 등) 영역에서 동작하며, 클라이언트 요청이 가장 먼저 지나가는 단계특징 및 역할:가장 원시적인 요청 데이터 처리:HTTP 요청 데이터를 가공하거나 수정할 수 있는 첫 번째 단계입니다.예: 요청의 헤더 추가, 특정 조건에 따라 요청 차단.JSON Body 재사용:요청의 바디 데이터를 미리 읽어두고, 이를 다른 컴포넌트에서도 재사용할 수 있게 처리.변환 역할:요청 데이터를 다른 형식으로 변환하거나, 보안 검사를 추가적으로 수행.종속성 없음:Spring의 Bean 관리 시스템에 영향을 받지 않고, 서블릿 스펙에 기반해 동작합니다.주요 활용 사례:요청 로깅CORS 처리데이터 인코딩 변환  Interceptor (인터셉터)Spring에서 관리되는 Bean으로..
맥북 톰켓 설치 톰켓 사이트 Apache Tomcat® - Apache Tomcat 10 Software DownloadsWelcome to the Apache Tomcat® 10.x software download page. This page provides download links for obtaining the latest version of Tomcat 10.1.x software, as well as links to the archives of older releases. Unsure which version you need? Specification versitomcat.apache.org 톰켓 사이트 들어가서 원하는 버전 선택 mac 사용자는 Core에 zip 이나 tar.gz 아무거나 설치  그럼 Dow..