진짜 개발자
본문 바로가기

FrameWork (총 119개)

JPA - Entity의 가독성을 높이자(@Embedded, @Embeddable, @AttributeOverride 사용법) @Embedded, @AttributeOverride JPA에서는 Entity안의 값을 조금 더 의미있는 값으로 표현하기 위해 응집된 하나의 객체로 데이터를 표현합니다. 이번 포스팅에서는 이 처럼 JPA의 Entity를 조금 더 확실한 의미로 표현하는 방법과, 그에 따라 발생하는 중복 column에러를 해결하는 방법을 알아보겠습니다. 1. @Embedded , @Embeddable 1.1 시나리오일반적인 회원가입의 경우에 회원을 표현하는 간단한 방법을 알아보고, 이를 좀더 의미있는 객체로 표현하는 방법을 알아보겠습니다. @Entity@Table(name = "user")public class User { @Id @GeneratedValue(strategy = GenerationType.AUTO) priv..
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란 이름 그대로 예외가 발생한 요청을 처리하기 위한 핸들러입니..
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이라는 형식으로 컬럼의 타..