Spring 4

[Spring] AttributeConverter를 사용해 원하는 포맷으로 저장하기

DB에 LocalDate나 LocalTime 혹은 LocalDateTime을 원하는 형식으로 넣을 수는 없을까?LocalTime은 HH:mm:ss 형식으로 저장된다.하지만, 이를 ms 단위까지 저장하고 싶다면? 이를 위해 필요한 AttributeConverter를 소개한다.   AttributeConverterAttributeConverter는 DB에 저장될 때의 형식을 지정할 수 있게 해준다.해당 인터페이스는 2개의 메서드 구현을 요구한다. 1. convertToDatabaseColumn말그대로, DB에 저장할 때를 의미한다.우리가 LocalTime을 HH:mm:ss.SSS방식으로 저장하고자 한다면 아래와 같이 작성할 수 있다. private static final DateTimeFormatter..

Spring 2024.11.20

[Spring] @RequestBody와 @RequestParam

프로젝트를 진행하던 중, form-Data와 json을 서버에서 처리하는 방식에 대한 오류를 다루던 중 알게된 @RequestBody와 @RequestParam의 명확한 차이를 정리해보자. @ReqeustBody 조금 쉽게 설명하면 클라이언트가 전송하는 JSON을 받아오기 위해 특화된 어노테이션이라고 이해해도 좋다. 나는 Body에 있는 데이터 중 JSON이 아닌 바이트나 스트링이여도 알아서 되는 줄 알았던 바보같은 생각을 했던 것이다... 그래서 Multipart와 같이 바이트로 전달되는 것들은 파싱할 수 없다. 만약 클라이언트에서 "/nickname" 경로로 POST 요청을 보낸다고 해보자. body에 아래와 같은 JSON 형태를 전송하게 된다면 { "nickname": "dd", "token": "..

Spring 2024.01.22

[Java/자바] 자바 프로젝트와 mysql을 docker-compose로 묶어보자

안녕하세요! 오늘은 제가 진행 중인 자바 프로젝트를 도커 이미지화 시킨 후에, docker compose로 묶어서 한번에 관리하는 과정을 기록해보려고 합니다. 모든 네이밍과 설정들이 제 프로젝트에 맞춰져있을 수 있지만, 참고만 한다고 생각하고 봐주시면 감사하겠습니다. 우선, 프로젝트를 도커 이미지화하기 위해서는 Dockerfile이 필요합니다. (Dockerfile 작성에 대한 간단한 글은 아래를 참고해주세요.) 2023.08.24 - [Python] - [파이썬/Python] 도커 이미지를 생성하고 배포해보자 Dockerfile의 가장 하단에 CMD나 ENTRYPOINT로 자바 파일을 실행하게 됩니다. 이 과정에서 우리는 .jar 파일이 필요하게 됩니다. 따라서 .jar를 먼저 만들어줍시다. gradl..

Java 2023.08.30

[Java/자바] 싱글톤 패턴? 싱글톤 컨테이너? 그게 뭔데!!

오늘은 싱글톤에 대해서 알아보겠습니다. 우선 싱글톤은 흔히 싱글톤 패턴이라고 알려진 디자인 패턴에서 나왔습니다. 싱글톤 패턴이란, 자바에서 어떤 클래스에 대한 인스턴스를 하나만 유지하도록 도와주는 디자인 패턴을 의미합니다. (디자인 패턴은 자세히 설명할 수는 없지만, 어떠한 용도나 문제점을 해결하는데 좋은 구조...?? 정도로 저는 이해했습니다) 1. 싱글톤 패턴 그럼 우리는 왜 싱글톤 패턴을 사용할까요??? 우리는 프로젝트를 통해서 많은 클라이언트의 요청을 받고 처리합니다. 그러면 이러한 상황을 가정해봅시다. 만약 1,000,000명의 클라이언트가 1초에 한번씩 요청을 하는 상황을 가정합니다. 이 클라이언트는 주문을 요청하며 주문을 요청할 때마다 주문 객체를 생성하여 관리합니다. 그렇다면 우리는 10초..

Java 2023.07.30