JAVA
API 공통 응답 형식 정하기
API 공통 응답 형식 정하기
2023.10.23들어가기 앞서 API는 web FrontEnd, IOS, Android 등 어떠한 클라이언트도 이용할 수 있는 상황이다. 응답에 대해서 유연하고, 클라이언트에게 필요한 데이터를 유연하게 변경할 수 있어야 한다. 이런 조건을 만족시키는 공통 응답 형식을 만들어보자. 조건 살펴보기 응답 형식에는 다양한 조건이 있을 수 있다. 임의의 로 조건을 설정하고 필요한 이유에 대해서 알아보자. 1. HttpStatus가 포함 클라이언트의 보낸 요청에 대한 서버의 응답 코드이다. 이것을 통해서 클라이언트 측에서는 성공대인 200, 클라이언트 오류인 400대 등을 알 수 있으므로 포함돼야 한다. 2. 응답 메시지 HttpStatus만으로는 모든 상태를 설명할 수 없다. 그래서 메시지를 통해서 명확한 요청의 상태를 전달한다..
Java Null 처리에 대한 여정
Java Null 처리에 대한 여정
2023.10.16개요 개발을 하다 보면, null인 데이터를 처리해야 할 때가 있다. 반환만 한다면, 문제없지만 데이터를 가공한다면, NullPointerException을 마주치게 될 것이다. 따라서 null일 수 있는 데이터 판별과 어떻게 처리해야 할 지에 대한 고민을 적어보려고 한다. 지극히 개인적인 생각이 많으므로 자유롭게 댓글 달아주셔도 됩니다. 예시 객체 @AllArgsConstructor(access = AccessLevel.PROTECTED) @Builder @Getter public class Member { private String name; private LocalDateTime serviceStartTime; private Integer age; } 고민의 시작 위의 객체 데이터를 반환할 때 아래..
Java 8 -> 11 변경점
Java 8 -> 11 변경점
2022.12.07Java 11 변경점 java x -> java 8로 변경된 것처럼 많은 변화는 있지 않습니다. 개발을 하며 사용할만한 변경점들에 대해서 알아보겠습니다. 1. String class java 8에서는 문자열 다루는 관련 메서드가 적었습니다. 추가된 것들을 알아보겠습니다. 1-1. isBlank() 문자열이 비었거나, 공백인 경우를 판별해주는 메서드 String str1 = ""; String str2 = " "; String str3 = " str"; System.out.println(str1.isBlank()); // true System.out.println(str2.isBlank()); // true System.out.println(str3.isBlank()); // false 1-2. lines..
Java Garbage Collection
Java Garbage Collection
2022.05.301. Java Garbage Collection이란? 애플리케이션을 개발하면, 유효하지 않은 메모리 즉 필요 없는 Garbage가 발생합니다. Java는 JVM의 Garbage Collector(GC)는 임의로 불필요한 메모리를 정리해줍니다. 간단한 코드를 보겠습니다. Animal이란 인터페이스를 상속받은 Dog과 Cat이 있습니다. 처음 animal 객체는 Dog을 구현체로 가집니다. 하지만 null로 참조를 해제함으로써 유요 하지 않은 Garbage가 됩니다. 이러한 것을 GC가 메모리를 청소해줍니다. 하지만 정확한 시점은 개발자가 알 수 없습니다. Animal animal = new Dog(); // garbage 발생 animal = null; animal = new Cat(); 물론 사용자가 S..
이펙티브 자바
이펙티브 자바
2022.04.22Chapter 1 1. 정적 팩터리 메서드의 장점1 class Order{ private boolean prime; private boolean urgent; private String product; public Order(String product, boolean prime){ this.product=product; this.prime=prime; this.urgent=false; } /* 같은 파라미터 타입으로 오버로딩 사용불가 public Order(String product, boolean urgent){ this.product=product; this.urgent=urgent; this.prime=false; } */ // 정적 팩토리 메서드 사용해서 해결 // 정적 메서드 이름으로 좀더 시그..
JAVA Overloading & Overriding
JAVA Overloading & Overriding
2022.02.26Overloading이란? 한 클래스 내에 동일한 이름의 메서드를 둘 이상 정의하는 것은 허용되지 않습니다. 하지만 매개변수가 다르다면 선언이 가능합니다. 이것을 오버 로딩이라고 합니다. Overloading조건 1. 메서드의 이름 같음 2. 메서드의 매개변수 다름 (주의 반환형이 다른 것은 오버 로딩으로 볼 수 없습니다.) Overloading 이점 1. 하나의 이름으로 메서드의 같은 기능을 정의할 수 있습니다. System.out.println 에서 볼 수 있습니다. Sytem.out.println()의 함수들을 살펴보겠습니다. public void println(boolean x) { synchronized (this) { print(x); newLine(); } } public void print..