728x90

Kotlin 7

[Spring] Spring에서 @Value 어노테이션 사용 시 주의할 점 정리

스프링에서 설정값 주입할 때 가장 직관적인 방법 중 하나가 @Value다. application.properties나 application.yml에 있는 값을 ${}로 꺼내서 바로 필드에 넣을 수 있어서 간단하고 편하기 때문. 근데 실무에서 무심코 쓰다가 에러를 겪거나, 나중에 유지보수하다가 “이게 왜 이렇게 되어 있지?” 싶을 때가 은근 많다. 그래서 이번엔 @Value 어노테이션 쓸 때 주의해야 할 점들만 쏙쏙 뽑아서 정리해봤다. ✅ 기본 사용법부터 간단히 보자@Value("${myapp.name}")private String appName; application.properties에 아래처럼 설정해두면,myapp.name=MySpringApp Spring이 자동으로 appName에 "MyS..

[JPA] Spring Data JPA에서 새로운 Entity인지 판단하는 방법 (2)

기존 포스팅이 있지만 한번 더 작성해보았다. [JPA] Spring Data JPA에서 새로운 Entity 판단하는 방법 [JPA] Spring Data JPA에서 새로운 Entity 판단하는 방법Spring Data JPA에서 새로운 Entity를 저장할 때 public interface SaveTestRepository extends JpaRepository {} save @Transactional @Override public S save(S entity) { Assert.notNull(entity, "Entity must not be null."); if (entityInformation.isNew(edevhooney.tistory.com save()를 썼는데 insert가 안 돼요! upda..

[Spring] OSIV(Open Session In View) 옵션

✅ OSIV란?Open Session In View (OSIV)는 JPA에서 HTTP 요청이 끝날 때까지 영속성 컨텍스트(EntityManager)를 열어두는 전략이다. 이 설정이 true(기본값)면, Controller나 View(Rendering) 단계에서도 Lazy Loading이 가능하다. Spring Boot에서는 기본적으로 spring.jpa.open-in-view=true 로 켜져 있다. ✅ 왜 등장했을까?JPA는 기본적으로 지연 로딩(Lazy Loading)을 많이 쓴다. 예를 들어,@GetMapping("/users/{id}")public UserDto getUser(@PathVariable Long id) { User user = userRepository.findById(..

[Kotlin] 코틀린 + 스프링부트로 단숨에 완성하는 초강력 JWT 인증 시스템!💡 보안과 성능을 모두 잡아라!🔥(2)

지난번에 예외발생 DTO를 생성까지 작성했다. [Kotlin] 코틀린 + 스프링부트로 단숨에 완성하는 초강력 JWT 인증 시스템!💡 보안과 성능을 모두 잡아라!🔥  1. validation 추가컨트롤러를 다시 보면 @RequestBody 옆에 @validated가 있었다. 이는 필요한 값이 안왔을 경우 예외를 발생시킨다. @PostMapping("/signup") fun signup( request: HttpServletRequest, @RequestBody @Validated(SignUpValidation::class) reqAuthDto: ReqAuthDto, result: BindingResult ): ResponseEntity { ..

[Kotlin] 코틀린 + 스프링부트로 단숨에 완성하는 초강력 JWT 인증 시스템!💡 보안과 성능을 모두 잡아라!🔥

코틀린 스프링부트로 JWT구현해봤다. 제목은 어그로 ㅎㅎ GPT가 만들어준..   1. 코틀린으로 프로젝트 생성한다.라이브러리는dependencies { implementation("org.springframework.boot:spring-boot-starter-data-jpa") implementation("org.springframework.boot:spring-boot-starter-web") implementation("org.springframework.boot:spring-boot-starter-security") implementation("org.springframework.boot:spring-boot-starter-validation") implementati..

[Kotlin] 코틀린 + 스프링부트 + JPA 사용해보기

코틀린 + 스프링부트 + JPA 사용해보기 코틀린과 스프링부트 JPA를 사용해서 기본적인 Create, Read를 만들어보았다. 1. 프로젝트 생성 코틀린, gradle-kotlin 선택하고 java도 11로 선택 후 다음 선택 라이브러리 선택 Thymeleaf는 넣어도되고 빼도 된다. 2. 컨트롤러 @Controller class TodoController { @GetMapping("/") fun home(model: Model): String { model["title"] = "Todo List" return "todo" } } 화면은 Controller에서 만들어준다. - RestController @RestController @RequestMapping("/api/v1") class TodoRes..

[Kotlin] 코틀린 기초 살펴보기

코틀린 기초 나는 Java + Spring boot를 주로 사용하는 개발자 이지만, Kotlin은 같은 JVM 환경에서 돌아가고, Java를 공부한 사람이 접근하기 쉽다고 하여 한번 겉핥기 식으로 공부해보려한다. 기본적 특징 기존 자바 언어와 완벽한 호환성을 제공 안전성: NPE 방지, Immutable 자료구조 제공 간결성: 코드는 작성되는 시간보다 읽히는 데 훨씬 많은 시간이 소모(간결한 코드는 가독성과 유지보수성을 향상시킴) 코루틴 라이브러리를 통한 비동기 프로그래밍 OOP와 FP 구조를 함께 사용할 수 있음 코틀린 기본 문법 // java int a = 10; // Kotlin val a: Int = 10 var a = 15 - 변수 선언 방식이 Go나 TS와 비슷하다. - Go 처럼 ";"를 생..

728x90