본문 바로가기

java12

[Java] WebClient queryParam uri 인코딩 문제 WebClient를 사용하여 Get Method를 요청할때 사용하는 QueryParam에 인코딩 문제 다음과 같은 데이터 포맷이 있을때 private static final DateTimeFormatter OUTPUT_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSXXX"); public static RequsetDto of(String start) { // start = 2024-10-15 RequsetDto dto = new RequsetDto(); // Parse start and end dates LocalDate startDate = LocalDate.parse(s.. 2024. 10. 17.
[Java] Java에서 List를 Array로 변경하기 Java에서 List를 Array로 변경하는 과정에서 배운 것을 기록합니다. https://www.baeldung.com/java-collection-toarray-methods 를 참고해서 작성했습니다. List 인터페이스의 toArray() Java에서는 List 인터페이스의 경우아래와 같은 toArray() 메서드를 지원합니다. Object[] toArray(); T[] toArray(T[] a); toArray() method 사용법 toArray()의 경우 List의 사이즈를 기반으로 자동으로 배열 사이즈를 만들어줍니다. 결과는 Object[]로 반환되며, 단순하게 타입 캐스팅을 할 수 없습니다. 만약 다음과 같이 코드를 작성하면 java.lang.ClassCastException가 발생합니다... 2023. 12. 20.
[JPA] MySQL smallint Java Integer에 매핑하기 MySQL의 smallint를 Java에 Entity Column과 mapping 하는 방법 다음과 같이 columnDefinition에 smallint를 추가해주시면 됩니다. @Column(name = "year", columnDefinition = "smallint") private Integer year; columnDefinition이란? columnDefinition은 엔티티의 클래스의 필드가 데이터베이스의 컬럼으로 매핑될 때 사용하는 어노테이션입니다. 주된 목적은 데이터베이스의 고유한 타입이나 제약 조건을 지정할 때 유용합니다. 위에 작성한 예제처럼 Java의 Integer를 smallint과 매핑하는 경우도 가능하고 아래처럼 제약사항을 걸 수도 있습니다. @Column(name = "exam.. 2023. 11. 16.
인텔리제이 사용하지 않는 import 자동정리 Intellij에서 사용하지 않는 import를 제거하려면 Ctrl+Alt+o를 매번 눌러줘야 한다. 하지만 설정을 통해 내가 작성한 File을 저장할때마다 자동으로 해당 기능을 동작시킬 수 있다. File - Settings에 들어가서 save action 이라고 검색하면, Tools 밑에 Actions on Save가 있다. 여기서 Optimize imports를 클릭하면 파일을 저장할때마다 안쓰는 import가 자동으로 삭제돼서 매우 편하다. 그 외에 다양한게 있는데 Reformat code는 코드 컨밴션 파일과 함께 사용하면, 개인 또는 회사에서 지정한 코드 컨밴션에 맞게 수정해 준다. 이것역시 Ctrl+Alt+L을 통해서 매번 수동으로 했었는데, 이젠 자동변환 해준다. 코드 컨벤션을 지정하는 방.. 2023. 11. 15.
서블릿 필터 & 스프링 인터셉터 필터는 서블릿 기능, 인터셉터는 스프링 기능이다. 애플리케이션에서 공통으로 관심이 있는 관심사를 공통 관심사(cross-cutting concern)이라고 한다. 공통관심사는 AOP나 서블릿 필터, 스프링 인터셉터 등 다양한 방법으로 해결할 수 있다. ex) 모든 메서드의 동작 시간, 가장 많이 호출되는 메서드 저장 그 중 웹과 관련된 공통 관심사는 필터나 인터셉터로 해결하는것이 좋다. (ex 로그인 여부 체크) 필터 흐름 [HTTP 요청 -> 웹서버 -> 필터 -> 서블릿 -> 컨트롤러] 필터를 적용하면 필터가 호출 된 다음에 서블릿(디스패처 서블릿) 호출 필터 체인 [HTTP 요청 -> 웹서버 -> 필터1 -> 필터2 ... -> 서블릿 -> 컨트롤러] 필터를 여러개로 구성 가능 필터 인터페이스 기본.. 2022. 10. 4.
Java 객체, 클래스, 인스턴스의 차이 객체(Object)란? - 현실를 모방하여 소프트웨어로 꾸며낼 대상, 결과물 - 클래스의 인스턴스를 객체라고도 한다. 클래스(Class)란? - 객체를 만들기 위한 코드다. 인스턴스(Instance) - 클래스가 메모리에 적재되면 인스턴스가 된다. - 메모리에 할당된 객체 포커카드를 소프트웨어로 만든다고 가정해보자. (현실을 소프트웨어로 만들 대상 = 객체 = 포커카드) 포커카드는 기본적인 정보(카드의 크기, 색갈, 숫자, 문양)가 존재한다. 카드의 기본적인 정보를 받을 수 있는 코드 = 클래스 (카드라는 객체를 만들기 위한 설계도) 카드의 기본적인 정보를 입력받아 완성된 카드 = 클래스의 인스턴스 (입력받아 완성되다 = 메모리 할당) 카드라는 객체를 만들기 위한 클래스에 메모리가 할당되면 인스턴스가 된.. 2022. 7. 18.