전체 글

꾸준하게 열심히..
🌻 JAVA/자바 ORM 표준 JPA 프로그래밍

CascadeType.DELETE, orphanRemoval 차이점

CascadeType.DELETE, orphanRemoval 차이점 목표 CASCADE.REMOVE 와 orphanRemoval의 차이점에 대해서 알아보겠습니다. 테스트용 엔티티 public class Parent { @OneToMany(mappedBy = "parent") private List children = new ArrayList(); } public class Child { @ManyToOne @JoinColumn(name = "PARENT_ID") private Parent parent; } CASCADE.REMOVE @OneToMany(mappedBy = "parent", cascade = CascadeType.REMOVE) private List children = new ArrayLi..

⚙️ Devops/🐳 Docker

도커 이미지 빌드시 플랫폼 변경하기 (feat. M1 Mac)

M1 맥을 사용중인데 문제는 M1이 arm 기반 칩셋이라 도커 이미지를 만들면, arm 플랫폼 전용 이미지로 생성이 됩니다. 근데 이미지를 배포할 환경은 Ubuntu 이므로 해당 이미지가 제대로 동작하지 않거나 성능이 저하될 수 있다고 경고창을 띄웁니다. 그래서 이미지 빌드 시 아래 플랫폼 옵션을 붙여서 빌드를 해주면 해결이 됩니다. $ docker build --platform amd64 -t [이미지명] . 다른 플랫폼으로 빌드하고 싶을 때 도커 이미지를 만들 때, 보통 alpine 처럼 가벼운 이미지를 Base 이미지로 사용하곤 합니다. 빌드할 때 지원되는 Arch도 Base 이미지를 따라가게 되는데요. openjdk 공식 이미지를 예로 들면, 여러 OS Arch를 제공합니다. 여러분이 이미지를 생..

🌻 JAVA/정리정리정리

Jackson ObjectMapper 비직렬화 과정

ObjectMapper? Jackson 라이브러리 클래스 중 하나인 ObjectMapper 통해 JSON → Object(역직렬화), Object → JSON(직렬화)를 간단하게 파싱할 수 있는 라이브러리 입니다. readValue() test.json { "name" : "john", "age" : 20 } json → Object 비직렬화 코드 People people = objectMapper.readValue(new File("static/test.json"), People.class); people의 각 값을 찍어보면 잘 출력됩니다. System.out.println(people.getName() + ", " + people.getAge()); // john, 20 그런데 말입니다.. Peopl..

⚙️ Devops/🐳 Docker

[Docker] Spring boot 프로젝트를 도커 이미지화 해보기

Spring boot 프로젝트를 docker image로 만들어 보겠습니다. 간단한 spring boot 프로젝트 생성 HomeController import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HomeController { @GetMapping("/hello") public String hello(@Value("${test.customName}") String name) { ret..

💐 Spring

Spring-Boot REST Docs 적용기 (with. Gradle, Maven)

실행 환경 Spring Boot 2.7.1 Gradle 7.4.1 Maven 3.8.5 빌드 시스템 설정 Gradle 더보기 plugins { id 'org.springframework.boot' version '2.7.1' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' id 'org.asciidoctor.jvm.convert' version '3.3.2' // (1) } group = 'com.example' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' configurations { compileOnly { extendsFrom annotationProcessor } }..

🌻 JAVA/JUnit

@WebMvcTest 작성 시 의존성 에러

환경 Spring boot 2.7.1 Spring Security JUnit 5 Controller 테스트를 하기위해 불필요한 의존성들은 걷어내고 WebMvcTest 어노테이션을 붙여서 컨트롤러 레이어만 가볍고 빠르게 테스트를 진행할 수 있습니다. WebMvcTest 어노테이션을 붙이게 되면, MVC 테스트를 위한 의존성들이 Spring Contetxt에 올라가게 됩니다. Using this annotation will disable full auto-configuration and instead apply only configuration relevant to MVC tests (i.e. @Controller, @ControllerAdvice, @JsonComponent, Converter/Generi..

iseunghan
iseunghan