전체 글(78)
-
[Spring] @Valid 와 @Validated 의 사용 방법
개요프로젝트를 진행을 하면서 Code Rabbit 이 프로젝트에서 지적을 해준 부분이 @Validated에 대해서 지적을 해주었다.이번 기회에 @Valid와 @Validated에 대해서 자세하게 비교를 해보고자 한다. @Valid와 @Validated의 단순 비교 어노테이션클래스 레벨 (@RestController 등)파라미터 레벨 (@RequestBody 등)@Validated(O) 동작함: 클래스 내 메소드의 개별 파라미터(@RequestParam 등) 검증 기능을 활성화시킴.(O) 동작함: DTO 검증 + 그룹 기능 사용 가능.@Valid(X) 동작 안 함: 아무런 효과 없음.(O) 동작함: DTO에 대한 기본 유효성 검사 수행 (그룹 기능 없음). 단순한 비교는 이러하다이제 예시를 보면서 사용 방..
2025.09.02 -
[Spring] @JsonCreator 와 @JsonProperty 을 사용해야하나?
개요프로젝트 중 RequestDto 에 @RequiredArgsConstructor 을 사용하고 있었다. Code Rabbit 이 Request DTO 문제를 지적을 하면서"Lombok의 @RequiredArgsConstructor로 만든 생성자는 Jackson(JSON 라이브러리)이 인식하지 못할 수 있으니, Jackson이 확실하게 알아볼 수 있도록 @JsonCreator와 @JsonProperty를 사용한 명시적인 생성자를 만들어야 합니다." 하지만 로컬 환경에서는 API 가 동작이 잘되었고, 실제 테스트 시 문제가 없었다. 재미니에게 물어보니"동작이 잘 되는데, 왜 이런 지적이 맞을까요?"이것이 가장 중요한 포인트입니다. 사용자님께서 "로컬에서 테스트해보니 잘 동작했다"고 생각하시는 것은 매우 자..
2025.08.28 -
[Synology] rsync로 리눅스 전체를 백업 해보자.
개요 집에서 나스로 시놀로지를 사용하고 있는데, 백업을 할 때 Synology Drive Client 를 사용을 하고 있었다.하지만 속도가 너무 느려서 다른 방법을 찾고 있었는데, 리눅스에서 사용할 수 있는 rsync 명령어를 찾아서 속도를 개선을 하였고, 사용법을 소개해보려고 한다. 사용방법SSH 암호화 포트를 22번 말고 다른 포트를 사용하길 권장한다. 메인으로 사용하는 관리자 계정이기 때문에 모든 권한이 다 있지만, rsync 를 사용할 거면 NetBackup 만 가지고 있으면 된다.후 저장을 하면 시놀로지의 설정은 끝났다. 이제 리눅스에서 명령어를 사용하면된다.sudo rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*",..
2025.08.08 -
[AWS] IAM 으로 계정 생성해서 협업을 해보자
개요프로젝트를 진행을 하면서 코드 짜고, 인프라 만들고, 보안 챙기고, 수정하고 하느라 몸이 부족해서 같이 일할 친구를 한명 구했다.그래서 그 친구에게 인프라를 맡겨야하니 IAM 계정을 만들어서 프로젝트 공유를 진행을 해보도록 하겠다. 진행방법검색하는 곳에 IAM 이라고 검색을 하면 바로 위에 나오는 것을 눌러서 들어간다. 여기서 사용자를 누른다. 사용자 생성을 누른다. 사용자가 원하는 이름으로 이름을 넣고암호는 모르는 것이 서로 이롭기 때문에 자동 생성된 암호로 하고 접속하자마자 새 암호 생성하도록 체크 다음에 권한 설정을 해야하는데 이러면 안좋은 것을 알고 있지만 소스코드가 어느정도 될 때까지 진행을 해야되기 때문에모든 권한을 주기로 한다.다음으로 가면 이렇게 정보가 나오는 것을 확인 할 수..
2025.07.30 -
[백준] 단어 정렬
문제https://www.acmicpc.net/problem/1181 백준 문제 1181번 solved.ac 기준 실버 5문제이다. 접근 방식시간을 2초씩 준 것 널널하다고 생각을 하였다.일단 한번 Arrays.sort() 을 진행을 해보았다. 1차 소스코드더보기import java.util.Arrays;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); sc.nextLine(); String[] str = new String[n]; for( int i = 0; i ..
2025.07.29 -
[Plugin] Google java Formatter PlugIn 을 설정하자.
개요현재 프로젝트는 Google Java Style Guide 기준으로 코드를 작성하고 있다.Google Style Guide는 구글 오픈소스 프로젝트에서 사용하는 공식 스타일 가이드다.IDE에서도 이 스타일을 맞추려고 Google에서 제공하는 XML 코드 스타일 파일을 적용했는데,문제는 GitHub Actions에서 사용하는 Google Java Formatter랑 포맷 기준이 조금 다르다는 점이다.그래서 어떤 일이 생기냐면,로컬에서 코드를 포맷팅하고 커밋해도GitHub Actions가 다시 스타일을 바꿔버린다결국 push할 때마다 코드가 수정되고, 로컬이랑 원격 브랜치가 계속 차이 나게 된다이유를 찾아보니, XML 설정만으로는 구글 스타일을 완전히 맞출 수 없다는 게 원인이었다.이걸 완벽히 맞추려면 ..
2025.07.29