전체 글
-
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는..
-
Java - ArrayList.removeAll() 사용법 및 예제Java 2022. 7. 7. 18:22
ArrayList의 removeAll() 메소드 인자로 전달된 Collection 아이템들과 일치하는 객체를 리스트에서 삭제 1. ArrayList.removeAll() public boolean removeAll(Collection c) parameter c는 list에서 삭제할 아이템 Collection 입니다. return value는 list가 변하면 true를 반환합니다. 2. 예제 import java.util.ArrayList; class ArrayListExample { public static void main(String[] args) { ArrayList list1 = new ArrayList(); list1.add("AA"); list1.add("BB"); list1.add("CC"..