본문 바로가기

Backend53

API 문서화 : Swagger, Spring REST Docs Swagger (Springfox / Springdoc OpenAPI)API 문서화 도구OpenAPI 표준을 기반으로 동작API 자동 문서화 및 실시간 테스트 가능한 UI 제공Spring Boot에서 쉽게 설정 가능샘플 코드 (Springdoc OpenAPI)// build.gradle 의존성 추가dependencies { implementation 'org.springdoc:springdoc-openapi-ui:1.6.9'}// Spring Boot 애플리케이션 클래스@SpringBootApplicationpublic class DemoApplication { public static void main(String[] args) { SpringApplication.run(Demo.. 2025. 3. 19.
CGLIB 프록시 JDK 동적 프록시 vs CGLIB✔ Spring에서 @Transactional, @Cacheable 같은 AOP 기능을 적용할 때 JDK 동적 프록시와 CGLIB 프록시를 사용함✔ Spring Boot 2.0부터 JDK 동적 프록시가 기본값으로 변경되었으며, 그 이유와 차이를 정리CGLIB 프록시✔ CGLIB(Code Generation Library) 프록시는 바이트코드를 조작하여 클래스 기반으로 프록시 객체를 생성하는 기술✔ Spring에서는 AOP(Aspect-Oriented Programming)와 프록시 패턴에서 사용됨CGLIB 프록시 개념✔ JDK 동적 프록시와 차이점JDK 동적 프록시: 인터페이스 기반 → 인터페이스가 필요함CGLIB 프록시: 클래스 기반 → 인터페이스 없이도 프록시 생성 .. 2025. 3. 1.
[Spring] JAR & WAR JAR와 WAR 공통점JAR와 WAR 모두 Java의 jar 명령어로 생성된 압축 파일애플리케이션 관련 파일(리소스, 속성 파일 등)을 패키징하여 배포와 실행 용이 JAR (Java ARchive)목적: Java 애플리케이션 실행용 압축 파일내용: Java 클래스 파일, 라이브러리, 리소스 파일요구사항: JRE만 있으면 실행 가능 (java -jar 프로젝트명.jar)특징- 독립 실행형 애플리케이션- 내장 서버 포함 가능- 부트에서 가이드하는 표준은 JAR(JSP, 외장톰켓 사용하지 않음) WAR (Web Application ARchive)목적: 웹 애플리케이션 배포용 압축 파일내용: JSP, Servlet, JAR, 클래스 파일, XML, HTML, JavaScript 등요구사항: 웹 서버(WEB) .. 2025. 2. 11.
[Spring Boot/Gradle] spring-dev-tools 추가 1. 의존성 추가build.gradledependencies { implementation 'org.springframework.boot:spring-boot-devtools'} 2. 인텔리제이 설정 세팅Settings > Build, Execution, Deployment > Compiler > ✔️ Build project automatically Settings > Advanced Settings > ✔️ Allow auto-make to start even if developed application is currently running 3. Gradle 변경사항 업데이트 4. 프로젝트 재시작 2025. 1. 20.
[인프런] 김영한의 실전 자바 - 고급 1편 https://www.inflearn.com/course/%EA%B9%80%EC%98%81%ED%95%9C%EC%9D%98-%EC%8B%A4%EC%A0%84-%EC%9E%90%EB%B0%94-%EA%B3%A0%EA%B8%89-1 김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성 강의 | 김영한 - 인프런김영한 | , 국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 실전 자바[사진][임베딩 영상]단순히 자바 문법을 안다? 이걸로는 안됩니다!전 우아한형제들 기술이사, 누적 수강생 40만 명 돌www.inflearn.com목차프로세스와 스레드 소개스레드 생성과 실행스레드 제어와 생명 주기메모리 가시성동기화 - synchronized고급 동기화 - concurrent.Lock생산자 소비자 문제CA.. 2025. 1. 10.
[인프런] 김영한의 실전 자바 - 기본편 https://www.inflearn.com/course/%EA%B9%80%EC%98%81%ED%95%9C%EC%9D%98-%EC%8B%A4%EC%A0%84-%EC%9E%90%EB%B0%94-%EA%B8%B0%EB%B3%B8%ED%8E%B8 김영한의 실전 자바 - 기본편 강의 | 김영한 - 인프런김영한 | , 국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 실전 자바[사진][임베딩 영상]단순히 자바 문법을 안다? 이걸로는 안됩니다!전 우아한형제들 기술이사, 누적 수강생 40만 명 돌www.inflearn.com목차클래스와 데이터기본형과 참조형객체 지향 프로그래밍생성자패키지접근 제어자자바 메모리 구조와 staticfinal상속다형성 정리본 추가 예정 2025. 1. 5.
[인프런] 김영한의 실전 자바 - 중급 2편 https://www.inflearn.com/course/%EA%B9%80%EC%98%81%ED%95%9C%EC%9D%98-%EC%8B%A4%EC%A0%84-%EC%9E%90%EB%B0%94-%EC%A4%91%EA%B8%89-2 김영한의 실전 자바 - 중급 2편 강의 | 김영한 - 인프런김영한 | , 국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 실전 자바[사진][임베딩 영상]단순히 자바 문법을 안다? 이걸로는 안됩니다!전 우아한형제들 기술이사, 누적 수강생 40만 명 돌www.inflearn.com목차제네릭 - Generic컬렉션 프레임워크 ArrayListLinkedListList해시(Hash)HashSetSetMap, Stack, Queue순회, 정렬 정리본 추가 예정 2024. 12. 18.
[인프런] 김영한의 실전 자바 - 중급 1편 https://www.inflearn.com/course/%EA%B9%80%EC%98%81%ED%95%9C%EC%9D%98-%EC%8B%A4%EC%A0%84-%EC%9E%90%EB%B0%94-%EC%A4%91%EA%B8%89-1 김영한의 실전 자바 - 중급 1편 강의 | 김영한 - 인프런김영한 | , 국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 실전 자바[사진][임베딩 영상]단순히 자바 문법을 안다? 이걸로는 안됩니다!전 우아한형제들 기술이사, 누적 수강생 40만 명 돌www.inflearn.com목차Object 클래스불변 객체String 클래스래퍼, Class 클래스열거형 - ENUM날짜와 시간중첩 클래스, 내부 클래스예외 처리 정리본 추가 예정 2024. 12. 17.
[인프런] 김영한의 자바 입문 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8 [지금 무료]스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 강의 | 김영한 - 인프런김영한 | , 스프링 학습 첫 길잡이! 개발 공부의 길을 잃지 않도록 도와드립니다. 📣 확인해주세요!본 강의는 자바 스프링 완전 정복 시리즈의 첫 번째 강의입니다. 우아한형제들 최연소 기술이www.inflearn.com목차변수 연산자 조건문 반복문 스코프, 형변환 배열 메서드 정리본 추가 예정 2024. 12. 17.
자바 리플렉션(Reflection) 리플렉션(Reflection)클래스, 메소드, 필드 등의 정보를 런타임에 동적으로 조회하고 수정할 수 있는 강력한 기능을 제공함이 기능을 통해 컴파일 타임에 알 수 없는 객체의 정보를 다룰 수 있어 유연한 프로그래밍이 가능함예) 클래스 이름으로 객체를 생성하거나 메소드와 필드를 동적으로 호출할 수 있음 리플렉션의 주요 기능클래스 정보 접근 : Class 객체를 통해 클래스의 메타데이터(이름, 메소드, 필드 등)에 접근할 수 있음Class clazz = Class.forName("com.example.MyClass"); 동적 객체 생성 : 생성자 정보와 파라미터를 기반으로 객체를 동적으로 생성할 수 있음Constructor constructor = clazz.getConstructor(String.clas.. 2024. 7. 30.
인스턴스 생성과 정적 팩토리 메서드 인스턴스 생성자바에서 객체를 생성하는 기본적인 방법은 new 키워드를 사용하여 생성자를 호출하는 방식가장 직관적이고 간단한 방법예시public class Car { private String model; private int year; // 생성자 public Car(String model, int year) { this.model = model; this.year = year; } public void displayInfo() { System.out.println("Model: " + model + ", Year: " + year); }}// 인스턴스 생성public class Main { public static void.. 2024. 3. 25.
Java Validation, Spring Validation Java Validation (JSR-303/JSR-380)Java Bean Validation 표준을 따름객체의 필드에 대해 유효성 검사를 선언적으로 설정할 수 있음주요 애노테이션(@NotNull, @Size, @Email 등)을 사용하여 필드의 제약 조건을 정의하고, 이를 Validator를 사용하여 실행할 수 있음주요 특징객체의 각 필드에 유효성 검사를 적용하는 애노테이션 기반의 방법@NotNull, @Size, @Min, @Max, @Email 등 다양한 기본 애노테이션 제공커스텀 유효성 검사 가능Java SE 환경에서도 사용 가능하며, Spring과 같은 다른 프레임워크와 통합 가능Java Validation 샘플 코드import javax.validation.constraints.NotNull.. 2024. 3. 25.