IT

IT/Spring | Java

[Spring] MyBatis CamelCase 적용 (+대소문자 오류)

대부분의 DB 컬럼들은 SnakeCase(스네이크 케이스)를 사용한다. LAST_NAME와 같이 언더바(_)를 붙여서 사용하는 것을 스네이크 케이스이다. 하지만 보통 변수명을 지을 때 CamelCase(카멜 케이스)를 사용하기 때문에 MyBatis 쿼리 조회 후 스네이크케이스를 카멜케이스로 자동 변환하는 것이 편리할 것이다. 즉 LAST_NAME -> lastName으로 바꿔주는 과정이 필요하다. 1. 예시 예를 들어, 다음과 같은 카멜케이스로 작성된 DTO 클래스가 있다고 하자. @Getter @NoArgsConstructor @AllArgsConstructor @Build public class UserDTO { private String userId; private String userNm; pri..

IT/Spring | Java

[Spring] 객체와 String 문자열 null 체크 (==, isEmpty, hasText)

1. String 타입 null 체크 문자열 데이터의 유효성을 체크하기 위해 다음과 같은 방법을 사용할 수 있다. 여기서 유효성은 데이터가 빈 문자열 또는 null 인지 확인한다. equals() 와 == 연산자 if("".equals(map.get("stringData")) || map.get("stringData") == null) { ... } "".equals(비교데이터)를 통해 해당 값이 빈 값인가, 비교데이터 == null을 통해 해당 값이 null인가를 판단할 수 있다. 이 때, (비교데이터).equals("") 방식은 exception이 발생할 수 있기 때문에 불가하다. 더보기 여기서 자세히 설명하면, equals()는 실제 값을 비교하고 == 연산자는 두 개의 주소값을 비교한다. Stri..

IT/Spring | Java

[Spring] @RestControllerAdvice를 이용한 간단한 ExceptionHandler 구현

Spring에서 예외처리를 하는 건 중요하다. 여러가지 이유가 있겠지만 예외처리가 필요한 이유 중 하나는 서버에서 오류가 발생했을 때 클라이언트에서 아래와 같이 너무 많은 정보가 노출되는 것을 볼 수 있다. 그럼 보안에도 좋지 않다. 그래서 익셉션이 발생했을 경우 그에 맞는 에러 응답을 처리하는 방식으로 수정하기로 했다. 사용자는 자신의 상황에 맞게 다양하게 예외처리 방법을 구현할 수 있다. 그 중 하나가 @RestControllerAdvice 어노테이션을 이용하는 방법이다. 나는 다른 블로그(하단에 링크)를 참고하여 내 입맛에 맞게 수정했다. 필요한 파일들은 다음과 같다. 1. 에러코드 정의 원래 인터페이스를 이용하여 추상화한 ErrorCode를 정의한 후 사용자 상황에 맞게 구현하는 방식으로 많이 구..

IT/Spring | Java

[Spring] 롬복(Lombok) 어노테이션 @Builder

우선 빌더패턴(builder pattern)을 이해해야 한다. 빌더 패턴이란? 객체를 생성하고 필드 값을 설정하기 위해 사용되는 디자인 패턴이다. 보통 인자를 많이 가지는 생성자에서 사용하면 가독성이 좋고 유연한 객체 생성이 가능하다. 생성자를 사용하여 객체를 생성할 때는 순서를 정확히 지켜줘야 한다. 하지만 만약 인자가 많다면 기억하기도 불편하고 수정하기도 힘듦;; 그리고 어느 자리(정보)에 들어가는지도 헷갈린다. 또한, 필수, 선택적 인자를 위한 각각의 생성자도 많이 필요로 한다. public class Account { private String name; private String nickName; private int age; private String address; } //어디에 어떤 타입과..

IT/Spring | Java

[Spring] 롬복(Lombok) 생성자 어노테이션 @NoArgsConstructor @AllArgsConstructor

이름에서 알 수 있듯 생성자 역할을 하는 롬복 어노테이션으로 필수로 알고 있어야 한다. 다음과 같이 사용한다. @NoArgsConstructor @AllArgsConstructor @RequiredConstructor public class Account { @NonNull private String name; private String password; private int age; } @AllArgsConstructor 모든 필드를 인자로 받는 생성자를 생성한다. 이 때 순서는 클래스에 선언된 순서와 동일해야 한다. Account account = new Account('hee', '비밀', 20); @NoArgsConstructor 파라미터가 아무것도 없는 기본생성자를 생성한다. 모든 필드를 초기화..

IT/Spring | Java

[Spring] 롬복(Lombok) 어노테이션 @Data

Lombok이란? 개발자들을 위한 자바 라이브러리로 IDE나 빌드 툴에 추가하여 사용할 수 있다. 코드 가독성을 높이고 생산성 향상에 도움을 준다. 나는 주로 DTO 같은 모델 작성에 많이 사용한다. 다음과 메일 모델이 있다고 가정해보자. public class Mail { private String userId; private String userNm; private String content; private String sendDate; public String getUserId() { return this.userId; } public void setUserId(String id) { this.userId = id; } public String getUserNm() { return this.user..

힞뚜루마뚜루
'IT' 카테고리의 글 목록 (2 Page)