진짜 개발자
본문 바로가기

전체 글 (총 582개)

JPA - Enum을 이용해 Column 저장하기 JPA 에서 Enum 값 사용하기 DDD를 공부하며 jpa를 사용하던 도중 User의 authority값을 정하기 위해서 Enum을 사용하면 조금더 직관적이겠다 싶어서 Enum을 사용하게 되었습니다. 이때 사용했던 것들에 대해 간단히 정리해보도록 하겠습니다. 1. 예제에 사용될 Entity 와 Enum우선 예제에 사용될 Entity와 Enum클래스들을 살펴보겠습니다. 바로 위에 보이는 클래스가 Entity클래스 입니다. JPA에 대한 사용법을 알려드리는 포스팅이 아니므로 자세한 설명은 넘어가도록 하겠습니다. 하나 짚고 넘어갈 것은, JPA에서 Entity 내부에 Column으로 Java Class를 추가 하기 위해서는 @Embedded 어노테이션을 사용해야하지만, Enum의 경우에는 해당 어노테이션이 필..
SpringBoot - Controller에서 return 하는 Object의 field 이름변경 (@JsonProperty) 제목 없음 Spring Boot를 이용해서 REST API를 작성하는 도중 REST API의 문서에는 다음과 같이 return field를 원한다는 요구사항을 발견했습니다. 간단한 것이지만 이를 만족시킬 방법을 찾고 글을 남기려합니다. ​x@Setter@Getter@AllArgsConstructor@NoArgsConstructor(access = AccessLevel.PROTECTED)public class TicketImageUrl { private String ticketImageUrl;}다들 아시다시피 Java에서는 언더스코어가 아닌 카멜케이스를 이용하는 것이 관습입니다. 따라서 java에서 프로그래밍할 때에는 카멜케이스로 작성하되, 사용자의 요청에 따른 응답시에는 언더스코어를 이용한 키값을 가지는..
SpringMVC - 핸들러 메소드 9 (Exception 처리 Handler(개발자 정의)) Spring MVC - 개발자 정의 Exception 처리 Handler 이번 시간에는 개발자가 발생시키는 Exception을 다루는 방법에 대해서 알아보도록 하겠습니다. DDD 라는 책을 읽고 DDD를 진행하면서 도메인로직을 구현하며 올바르지 않은 접근에 대해서는 Exception을 발생시키도록 했습니다. 하지만 이러한 Exception을 클라이언트 측 프로그램에 그대로 전달할 수만은 없을 것 이며, Spring MVC에서 Exception을 다루는 방법이 존재할 것 같아 찾아본 결과 Exception을 다룰 수 있는 ExceptionHandler라는 것을 발견하게 되었습니다. 1. @ExceptionHandlerExceptionHandler란 이름 그대로 예외가 발생한 요청을 처리하기 위한 핸들러입니..
Mysql - group by, having, max(count), inner query 예제 (가장 많이 조회된 글의 번호 구하기) 가장 많이 조회된 글 번호 구하기 쿼리 예제 이번 포스팅에는 가장 많이 조회된 글의 번호를 구하는 쿼리를 알아보도록 하겠습니다. 1. Table사용할 테이블의 스키마 입니다. no는 외래키이며 post(게시판) 테이블의 기본키로 글 번호를 뜻합니다. post_statistic테이블의 기본키는 no, access_date(합성키) 입니다. 이런식으로 글 번호마다 언제 조회를 했는지를 저장하는 테이블입니다. 2. 가장 많은 조회수를 가지는 글번호(no) 구하기2.1 no별 조회수 구하기 (Group by)우선 각 no 별 조회수를 구하기 위해 group by 를 이용하여 쿼리를 작성합니다. ( group by를 사용해야 하는 경우 - https://wkdtjsgur100.github.io/groupby-ha..
SpringMVC - Spring JDBC에서 Mysql에 날짜/시간 데이터 입력 Spring JDBC에서 Mysql 테이블에 날짜시간 형식으로 저장하기 간단히 Spring MVC를 통해 게시판을 만드는 도중 시간에 따라 조회수를 측정하여 인기게시글을 파악해야 하는 상황이 생겼었습니다. 때문에 Table의 primary key를 int형 데이터와 시간/날짜를 합성키로 사용하게 되었습니다. 이때 발생한 문제점들을 정리 및 공유하려고 합니다. Spring JDBC에 시간/날짜 입력1. Mysql 의 Date 형식처음 테이블을 만들때 date의 형식으로 date를 사용했습니다. 당연하게도 테이블에 insert된 데이터를 확인해보니, 날짜 (yyyy-mm-dd) 형식으로만 데이터가 입력이 되어 있었습니다. 시간/날짜 형식으로 데이터를 입력하기 위해서는 datetime이라는 형식으로 컬럼의 타..
SpringMVC - 핸들러 메소드 - 7 (파일업로드 매개변수 : MultipartFile) SpringMVC - 핸들러 메소드 - 7 (파일업로드 매개변수 MultiFile) 이번 시간에는 파일 업로드 요청을 처리하는 핸들러를 작성하는 방법을 알아보도록 하겠습니다. 1. MultipartFile1.1 MultipartFile 란?MultipartFile이란 사용자가 업로드한 File을 핸들러에서 손쉽게 다룰 수 있도록 도와주는 Handler의 매개변수중 하나입니다. *MultipartFile 매개변수를 사용하기 위해서는 MultipartResolver Bean이 등록되어있어야 합니다. 이전 포스팅에서 다루었던 https://galid1.tistory.com/528에서 말씀드렸듯이, DispatcherServlet은 처음 초기화 되는 과정에서 Web서비스를 위해 필요한 기본적인 Bean들을 개발..