JVM

JVM/Spring

[Spring] enum으로 @Secured 권한 관리

😀 서론 @Secured("ROLES_GUEST") 기존 권한 관리방법은 매직리터럴로 처리가 되어 있었습니다. 이는 오타날 가능성도 있고, 나중에 관리하기도 힘들다는 판단을 하였고, 이를 enum 으로 처리한 과정을 정리해봅니다. 🥸 본론 @Secured 애노테이션의 value는 String[] 를 받도록 정의되어 있기 때문에 enum 값을 받지 못합니다. 그러면 어떻게 해야할까? @RequiredArgsConstructor public enum UserGrade { ADMIN(ROLES.ADMIN, null), STAFF(ROLES.STAFF, ROLES.ADMIN), GUEST(ROLES.GUEST, ROLES.STAFF); private final String roleName; private fin..

JVM/Spring

[Spring] @PropertySource yaml 파일 Load 하는 방법

🙂 서론 제가 느끼기엔 properties 보다는 yaml 파일이 더 가독성이 좋아 관리하기 쉽다고 생각합니다. 설정 파일을 불러와 객체를 만들 때 보통 @PropertySource 애노테이션을 사용하지만, default로 yaml을 읽지 못합니다. 그렇다고, yaml과 properties를 같이 사용하는 건 통일성이 없고, 그럴 필요가 없다 생각됩니다. 그렇기 때문에 이를 yaml 파일을 읽을 수 있도록 설정한 방법을 정리해봅니다. 😛 본론 가져올 yml 파일의 설정 값입니다. @Getter @RequiredArgsConstructor @ConstructorBinding @ConfigurationProperties(value = "jwt") @PropertySource(value = "classpath..

JVM/Java

[Java] Gradle, Groovy Gradle, Kotlin Gradle

🙂 서론 이번 Project 에서 코드는 java를 사용하고, 빌드툴은 Kotlin Gradle DSL 을 사용하기로 하였습니다. Gradle에 대해서도 한 번 정리하면 좋을 것 같아서 글을 적어봅니다. 😁 본론 Gradle 이란? https://github.com/gradle/gradle Gradle 은 빌드 자동화 및 다국어 개발 지원에 중점을 둔 빌드 도구입니다. 모든 플랫폼에서 소프트웨어를 Building, Testing, publishing, deploying 하는 경우 Gradle 은 코드 컴파일 및 패키징에서 웹 사이트 게시에 이르기까지 전체 개발 수명 주기를 지원할 수 있는 유연한 모델을 제공합니다. Gradle은 Java, Scala, Android, Kotlin, C/C++ 및 Gro..

JVM/Spring

[SPRING] 스프링 MVC 구조? (DispatcherServlet?)

🙃 서론 스프링은 정말 사용자가 사용하기 편한 기능들을 많이 제공해준다. 그 중에서도 컨트롤러는 정말 다양한 파라미터와 리턴 값을 사용자 뜻대로 이것저것 가져와서 사용할 수 있다. 예를 들어 파라미터로 String이나 Integer 로 받을 수도 있고, 직접 만든 DTO 객체로도 받을 수 있다. 또, 리턴 값으로 String으로 view 경로를 보낼 수도 있고, 진짜 String을 보낼 수도 있고, ModelAndView 를 보낼 수도 있다. 어떻게 Spring은 이렇게 다양하게 사용자 입맛대로 만들 수 있게 해주는지에 대해서 파악해보자. 스프링 MVC에서 받을 수 있는 인수 - 링크 😆 본론 Dispatcher Servlet 일단, 가장 중요한 Dispatcher Servlet에 대해서 개념을 잡고 가..

JVM/Spring

[SPRING] @Valid @Validated 사용하기 - java bean validation

😎서론 이전에는 @Valid 가 어떻게 흘러가는지 알아봤다면 이번에는 사용하는 방법에 대해서 간략하게 적어보려 한다. 이전 글 - [SPRING] @Valid 어떻게 동작할까 - java bean validation 목차 - @Valid 사용법 - Custom Aonntation - @Valid 예외처리 - @Valid 에선 안되는 것들 - @Validated 동작 원리 - @Validated 사용법 - @Validated 예외처리 🙄본론 어노테이션 종류가 어떤 것들이 있는지는 API 공식 문서를 참고해보면 좋을 것 같습니다. API 공식문서 - 링크 @Valid 사용법 의존성 추가 // Gradle implementation 'org.springframework.boot:spring-boot-start..

JVM/Spring

[SPRING] @Valid 어떻게 동작할까 - java bean validation

😐서론 애플리케이션 개발을 진행할 때 검증은 가장 중요한 작업이다. 클라이언트에서 데이터가 제대로 넘어왔는지, 비지니스 로직에서 인수가 제대로 된 값이 넘어왔는지, db에 값이 저장 혹은 수정되기 전에 제대로 된 값이 맞는지 등 정말 다양한 곳에서 데이터 검증이 필요하며 놓쳐서는 안되는 중요한 작업이다. 이 검증을 쉽게 할 수 있는 @Valid 에 대해서 알아보았다. 목차 - @Valid 는 뭐지? - @Valid 왜 사용하는거지? - @Valid 어떻게 사용하는거지? - Jakarta Validation API 살펴보기 - Jakarta Validation API 구현체 찾기 - Hibernate Validator - Spring 에서 @Valid 동작 원리 🙄본론 @Valid 는 뭐지? JSR 303..

JVM/Java

[Java] GC Implementations - 가비지 컬렉션 구현

😎 서론 이전 글을 통해 JVM 내에서 GC가 어떻게 동작하는지를 학습하였다. 하지만, GC도 여러 종류로 구현을 한 것을 알게 되었고, 그 부분에 대해서 다뤄보려 한다. 이전글 - [Java] GC (Garbage Collection) ?? [Java] GC (Garbage Collection) ?? 😎서론 Java가 유명해진 큰 이유 중 하나로는 역시 다른 언어와는 다르게 GC라는 녀석이 있기 때문이다. 그렇기에 Java를 제대로 이해하고 사용하려면 GC가 무엇이고, 어떤 걸 하는지, 어떻게 무엇 kdhyo98.tistory.com 😁 본론 JVM에서 GC 구현은 5가지의 유형이 존재합니다. - Serial Garbage Collector - Parallel Garbage Collector - CMS..

Hyo Kim
'JVM' 카테고리의 글 목록 (4 Page)