반응형 IT/Java394 [Map]getOrDefault 사용법 및 예제 자바에서 Map 에 대해서 설명은 많이 다룬적이 있다. 자세한 사항은 아래 참고 포스팅 참고 바란다. 짧게 설명하면 Map은 중복이 허용 안되고 Key Value로 이루어져있다. 그 특성을 활용해서 특정 리스트에 존재하는 Key 값들의 갯수를 구할때 getOrDefault를 사용한다. 예제는 아래와 같다. public static void main(String arg[]) { String [] alphabet = { "A", "B", "C" ,"A"}; HashMap hm = new HashMap(); for(String key : alphabet){ hm.put(key, hm.getOrDefault(key, 0) + 1); } System.out.println("결과 : " + hm); // 결과 : .. 2023. 5. 12. ACCEPT_SINGLE_VALUE_AS_ARRAY json format 이전 포스팅에서 Jackson annotation 에 대해서 다룬 적이 있다. 자세한 내용은 아래 참고 포스팅 참고 바란다. 이번 포스팅에서는 똑같이 jackson annotation이긴 하지만 다른 사용법으로 사용되는 annotation인 json format 중 하나를 다뤄볼 예정이다. Restapi 를 통해서 json 을 상하차 하다보면 어떨 경우에는 { "index": 1, "value": "one" } 이렇게 json 을 보낼경우가 있고, 상황에 따라 리스트로 { "index": 1, "value": [ "one", "two" ] } 이렇게 보내야 할 경우가 생길수도 있다. 그럴 경우에 dto 에 설정해줄수 있는 annotation 이다. public class Dto { @JsonProper.. 2023. 5. 8. [error] org.springframework.data.mapping.PropertyReferenceException Caused by: org.springframework.data.mapping.PropertyReferenceException: No property 컬럼명 found for type Entity명! Did you mean '컬럼명'? JPA에서 Repository 단에 신규 메소드를 추가할때 위 에러가 발생할 경우 메소드명이 Entity에 존재하지 않기 때문에 사용할 수 없다는 뜻이다. 뒤에 이어서 나오는 Did you mean 컬럼명 의 경우에는 컬럼을 추천해주거나 2개의 컬럼이 나오면 두개의 컬럼이 헷갈리니 정확히 명시 해주면 된다. query 메서드에서는 camel 케이스의 규칙을 잘 맞춰줘야 함을 숙지하면서 jpa 개발을 하는것이 바람직하다. 2023. 5. 7. JPA query Keyword2 (repository) 이전 포스팅에서 jpa 사용하는 query keyword에서 사용하는 메서드들을 정리한 글이 있다. (아래 참고 포스팅 참조) findById부터 시작해서 다양한 메서드가 있었는데 like 문에 대한 내용을 적은적이 없는것 같아서 적으려고 한다. 먼저 Like는 크게 3가지 방법으로 지정할수있다. 1. findByNameLike(String name); repository 에서는 이렇게 사용이 되며 service단에서 호출할때는 List list = repository.findByNameLike("%"+ dto.getName() +"%"); 이렇게 와일드카드를 붙여줘야한다. 이점이 불편해서 나온것이 2. findByNameContains / findByNameContaining / findByNameIs.. 2023. 5. 6. [error] HttpMessageNotReadableException org.springframework.http.converter.HttpMessageNotReadableException restapi 테스트 중에 위와 같은 에러가 났다. 확인해본 결과 아래 내용이다. 원인 HTTP GET 요청의 body 형식을 Text로 보냈기 때문 해결 HTTP GET 요청의 body 형식을 JSON으로 변경하여 해결 2023. 5. 5. [error]Failed to execute goal org.springframework.boot:spring-boot-maven-plugin 포스팅에서 작성한 module project를 생성하다가 에러가 났다. module 프로젝트 관련해서는 아래 참고 포스팅을 참고 바란다. 발생한 에러는 다음과 같다. [ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:3.0.6:repackage (repackage) on project client: Execution repackage of goal org.springframework.boot:spring-boot-maven-plugin:3.0.6:repackage failed: Unable to find main class -> [Help 1] [ERROR] [ERROR] To see the full stack.. 2023. 5. 3. [eclipse] springboot maven module project 구성하기 eclipse 에서 springboot를 활용하여 maven module project를 구성하는 방법에 대해서 다뤄보려고 한다. 먼저 module project에 대한 내용은 아래 참고 포스팅을 참고 바란다. 이클립스에서 구현을 하기 위해선 먼저 maven 프로젝트를 만들어야한다. 그렇게 만들고 나면 프로젝트 내에 src 폴더와 pom.xml 파일이 생기는데 부모 모듈에서는 딱히 관리할게 없고 아래 모듈 생성만이 목적이므로 src폴더는 삭제해주었다. 그리고 나서 프로젝트 우클릭 후 module project 새로 만들기를 하였다. 필자는 이미 client와 component라는 모듈프로젝트를 생성하였기에 이렇게 보이는것이고 따라한다면 이렇게 만들어질것이다. 만약 module project를 만드는데 T.. 2023. 5. 2. module project란? 예를 들어 maven 을 사용중이라고 한다면, maven project를 통해서 프로젝트를 생성할것이고, 기본적으로 src와 pom.xml 을 통해서 프로젝트가 관리가 된다. 요즘처럼 MSA시대에 많은 프로젝트를 관리한다면 여러개의 pom.xml파일을 관리해야한다. 한가지의 dependency library가 있는데 버전 업이 된다면 종속 받는 모든 프로젝트 들의 버전을 pom.xml을 통해서 업그레이드 해줘야한다. 이런 불편함도 있고 귀찮음이 있어서 하나의 pom.xml 로 관리하기 위해 모듈 프로젝트를 사용하게 된다. 먼저 가장 최상위 root project가 존재하며 그 아래 모듈단위로 프로젝트를 붙여주는 개념이다. 혹은 하나의 component 가 있고, 여러개의 client 가 존재한다면 com.. 2023. 5. 1. try catch와 throws, throw의 차이 이전 포스팅에서 try catch 에 대해 다룬 포스팅이 있다. 자세한 내용은 아래 참고 포스팅을 참고하면 된다. 이번 포스팅에서는 예외 처리를 위해서 좀더 try catch throws throw 에 대해 알아볼 것이다. 예외 처리에 대한 내용 역시 참고 포스팅을 참고 바란다. 예외 처리 기법에는 크게 3가지가 있다. 1. try catch 를 통해 예외 처리 2. throw로 그냥 예외 발생 시키기 3. throws 키워드를 통해 예외 처리 위임 먼저 간단하게 설명이 될 부분에서는 2번 throw 로 그냥 예외 발생 경우는 if (true){ throw Exception(); } 이렇게 미리 만들어둔 예외나 기본적인 예외들을 발생 시키면 된다. 1, 3번에 대해서 차이는 3번의 throws의 예외를 .. 2023. 4. 30. 이전 1 ··· 22 23 24 25 26 27 28 ··· 44 다음 반응형