히++;

IT/Angular

[Angular] Pipe 파이프와 사용법 (파일 사이즈 커스텀파이프)

파이프란 보통 애플리케이션이 관리하는 데이터 또는 서버에서 받아오는 데이터는 사용자들에게 실생활에 익숙한 형태가 아닐 수 있다. 예를 들면, 날짜 데이터 같은 경우 Date 함수가 리턴하는 인스턴스를 문자열화하면 아래와 같다. const today = new Date(); console.log(today.toString()); // Thu May 25 2023 14:00:00 GMT+0900 (KST) 딱보기에도 사용자가 읽기 쉬운 형태는 아니다. 이 때 데이터 자체를 변경하는 것은 다른 side effect가 있을 수 있으므로 화면에 표시하는 형식만 변경하고 싶을 때 사용하는 것이 Pipe 이다. 파이프를 사용하면 마치 스타일 정의하듯 HTML에서 바로 출력 변환이 가능하다. 사용법 사용법은 간단하다...

IT/Spring | Java

[Spring] @RequestBody DTO에 null이 들어갈 때

문제상황 { "seq": "01", "postDate": "20230524", "mCodeName": "어쩌고" } 위와 같은 데이터(예시)를 @RequestBody로 요청을 받았는데 DTO에 자꾸 null 값이 들어오는 것을 확인했다. 아래는 DTO @Data @AllArgsConstructor @NoArgsConstructor public class TistoryDTO { String seq; String postDate; String mCodeName; } 문제가 되는 파라미터는 mCodeName이다. 이 데이터가 자꾸 null로 들어와서 날 화나게 만듦;; null 안 보냈다고 ㅡㅡ 반대로 쿼리에서 M_CODE_NAME이라는 컬럼을 select 해 왔을 때도 제대로 맵핑이 안됐다. 카멜 케이스 지..

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..

코-딩/Leetcode

[leetcode] 1331. Rank Transform of an Array

문제 : https://leetcode.com/problems/rank-transform-of-an-array/description/ Rank Transform of an Array - LeetCode Can you solve this real interview question? Rank Transform of an Array - Given an array of integers arr, replace each element with its rank. The rank represents how large the element is. The rank has the following rules: * Rank is an integer starting from leetcode.com 난이도 : Easy 풀이 cl..

IT/Spring | Java

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

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

힞뚜루마뚜루
'분류 전체보기' 카테고리의 글 목록 (2 Page)