Swagger 적용 (feat. Springdoc)
·
java/spring
항상 Swagger 적용이 된 것만 써보다가 이번에 기회가 돼서 공부를 하고 적용해 보았다. 😀0. 버전원래 기본적으로 적용되어 있는 springdoc 2.0.2 버전으로 했으나 버전 호환이 되지않았다.이번에 적용하는 프로젝트의 버전이 Spring boot 3.4.1이라서 2.8.1 버전을 적용했다.꼭 호환되는 버전을 확인하고 적용하자.... 아니면 나처럼 손해를 보는 경험을 하게 될 것이다. Gradle dependecies에 아래처럼 넣어주었다. 1. Swagger의 흐름swagger.yaml 에 설정된 경로로 요청을 시도한다.(default = /spring-ui/)server는 이에 대한 응답으로 springdocs에 내장된 정적파일들을 보내어 응답한다. (index.html, .css, ...
Bean Validation API
·
java/spring
Bean들의 유효성 검증을 위한 APIBean의 유효성 검증은 매우 중요하다. 각 Bean마다 유효성 검증 로직을 구현하기에는 비효율 적이기에 Bean Validation API를 통해서 간단하게 유효성 검증을 하도록 설계할 수 있다.즉, Domain-Model 제약 조건을(Constraints) 선언함으로써 Validation 로직을 여러 레이어에서 분리 시키려는 것이 Bean Validation API의 핵심 목표이다. Bean Validation API 유효성 검증 관련 메커니즘아래의 구성요소를 따르면 보다 직관적으로 유효성 검증을 하는 것을 볼 수 있다. [제약 조건]Domain Model에 Contraint 어노테이션을 부여한다.해당 Constraint 에 명시된 유효성 검증 로직(isValid..
Gradle 파일 뜯어보기
·
java/build
1. gradle-wrapper.properties 쓰임새Gradle Wrapper의 동작방식을 설정하는 파일Gradle Wrapper란 개발자들인 특정 gradle 버전으로 고정하여 동일한 환경에서 작업할 수 있도록 돕는다. 쓰임 예시distributionBase=GRADLE_USER_HOMEdistributionPath=wrapper/distsdistributionUrl=https\\://services.gradle.org/distributions/gradle-8.11.1-bin.zipnetworkTimeout=10000validateDistributionUrl=true/zipStoreBase=GRADLE_USER_HOMEzipStorePath=wrapper/distsdistributionBase=G..
얕은 복사 & 깊은 복사
·
java
1. 얕은 복사 & 깊은 복사란?얕은 복사 (Shallow copy) : 주소 값을 복사하는 행위깊은 복사 (Deep copy) : 해당 주소의 실제 메모리에 저장된 값을 복사하는 행위int[] a = {1,2,3}// 얕은 복사int[] b = a; // 깊은 복사int[] c = a.clone(); orint[] c = new int[3];for(int i = 0; i  2. clone()시 주의할 점clone()은 객체의 주소의 실제 값들을 저장해주는 메서드이나, 메모리안에 주소가 저장된 경우 깊은 복사가 안 된다. 아래 비교 코드를 보면 알 수 있다.public class Main { public static void main(String[] args) { int[][] a = ..