전체 글
-
Java - Map getOrDefault 사용 방법, 예제Java 2022. 7. 18. 18:17
Java Map에서 찾는 키의 값을 가져올 때 보통은 get()을 호출합니다. Map에 키가 없는 경우에 null을 return하는데 null 처리가 필요하거나 디폴트값이 필요한 경우가 있습니다. 이럴 때 사용하는 함수가 getOrDefault()입니다. getOrDefault - 찾는 키의 값이 있으면 값을 반환하고 없으면 기본값을 반환하는 메서드 default V getOrDefault(Object key, V defaultValue) key: 값을 가져와야 하는 요소의 키 defaultValue: 지정된 키로 매핑된 값이 없을 때 반환하는 기본값 예제 import java.util.HashMap; import java.util.Map; class MapExample { public static vo..
-
Java - Map 순회하는 방법 (iteration)Java 2022. 7. 15. 21:04
자바에서 Map으로 어떻게 반복문을 구현하는지 알아보겠습니다. 1. entrySet() import java.util.Map; import java.util.HashMap; class Example { public static void main(String[] args) { Map players = new HashMap(); players.put(30, "Curry"); players.put(35, "Durant"); players.put(1, "Harden"); for (Map.Entry entry : players.entrySet()) { System.out.println(entry.getKey() + " | " + entry.getValue()); } } } 2. keySet() import jav..
-
Java - String을 int로 변환하기Java 2022. 7. 15. 20:41
String 문자열을 int(Integer)로 바꾸는 방법입니다. 1. Integer.parseInt() class StringToInt { public static void main(String[] args) { String str = "123"; int num = Integer.parseInt(str); System.out.println(num); } } 결과 123 2. Integer.valueOf() class StringToInt { public static void main(String[] args) { String str = "123"; int num = Integer.valueOf(str); System.out.println(num); } } 결과 123 3. Exception 처리 cla..
-
좋은 추상화를 만드는 요소는?설계·방법론 2022. 7. 15. 18:43
좋은 추상화는 다음과 같은 속성이 있다. - 배우기 쉽다 - 문서가 없어도 사용하기 쉽다. - 잘못 사용하기 어렵다. - 요구 조건을 충족시킬 정도로 충분히 강력하다. - 확장하기 쉽다. - 대상 사용자에게 적합하다. 좋은 추상화는 복잡하게 꼬인 개념을 단순하게 풀어낸다. 단순한 추상화는 여러 개념을 서로 얽지 않으므로 의도치 않게 여러 개념을 동시에 고려할 필요 없이 각 개념에 대해 독립적으로 추론할 수 있다. 소프트웨어를 만들 때 복잡성을 줄이는 방법 - 가변 상태 피하기 - 명령형 프로그래밍보다 함수형 프로그래밍 사용하기 - 상속보다 합성 선호하기 - 명령형보다 선언형으로 데이터 조작 표현하기 추상화를 처음 설계할 때 도움이 되는 몇가지 아이디어 1. 회사의 코드베이스나 깃허브 저장소에서 인기 있는..
-
Java - byte[]를 String으로 변환Java 2022. 7. 15. 18:10
자바에서 String을 byte[] 로 변환하여 파일에 저장하거나, 데이터로부터 byte[]를 읽어와서 String으로 변환할 수 있습니다. 1. String to byte[], byte[] to String class BytesToString { public static void main(String[] args) { String str = "string to bytes\n"; byte[] bytes = str.getBytes(); System.out.println("str: " + str); String bytesToStr = new String(bytes); System.out.println("bytes to str: " + bytesToStr); } } str.getBytes()를 이용해서 byt..
-
Java - base64 인코딩, 디코딩하기Java 2022. 7. 14. 18:57
java.util.Base64 클래스를 사용하면 base64로 인코딩, 디코딩을 쉽게 할 수 있습니다. 1. Base64 encoding 예제 "test" 라는 스트링을 base64로 인코딩하는 예제입니다. import java.util.Base64; class Base64Test { public static void main(String[] args) { String str = "test"; String encodedStr = Base64.getEncoder().encodeToString(str.getBytes()); System.out.println("encoded string: " + encodedStr); } } 결과 encoded string: dGVzdA== 2. Base64 decoding ..
-
Spring - InvalidDataAccessApiUsageException: No enum constant 에러Spring 2022. 7. 13. 18:43
nested exception is org.springframework.dao.InvalidDataAccessApiUsageException: No enum constant JPA에서 query 호출 시에 No enum constant enum 에러가 발생하는 경우 원인은 enum에 존재하지 않는 값이 DB에 있기 때문입니다. DB에서 읽어와서 Object로 변환하는 중 enum에 없는 값이 있기 때문에 에러가 발생합니다. @Entity @Table(name = "person") public class PersonEntity { @Column(name = "name") private String name; @Column(name = "job") @Enumerated(value = EnumType.STRI..
-
Spring - Lombok @Data 사용시 boolean 주의할 점Spring 2022. 7. 7. 18:41
스프링에서 어노테에션만 붙여서 getter, setter를 자동생성해서 사용하는 경우에 Lombok을 사용합니다. Lombok @Data 어노테이션 사용 시 boolean 타입은 생성되는 getter의 모습이 다릅니다. import lombok.Data; @Data public class Person { private String name; private boolean male; public void test() { this.getName(); this.isMale(); this.setMale(true); } } primitive type boolean을 사용한 경우에는 getter가 getXX()로 생성되지 않고 isXX() 로 생성됩니다. 위의 코드에서 boolean male로 선언해서 getter는..