열거형 - Enum
문자열과 타입 안전성 비즈니스 요구 사항 고객은 3등급으로 나누고, 상품 구매시 등급별로 할인을 적용한다. 할인시 소수점 이하는 버린다. BASIC 10% 할인 GOLD 20% 할인 DIAMOND 30% 할인 public class DiscountService { public int discount(String grade, ...
문자열과 타입 안전성 비즈니스 요구 사항 고객은 3등급으로 나누고, 상품 구매시 등급별로 할인을 적용한다. 할인시 소수점 이하는 버린다. BASIC 10% 할인 GOLD 20% 할인 DIAMOND 30% 할인 public class DiscountService { public int discount(String grade, ...
래퍼 클래스 기본형의 한계 객체가 아님: 객체는 유용한 메서드를 제공할 수 있는데, 기본형은 객체가 아니므로 메서드를 제공할 수 없습니다. 또한, 객체 참조가 필요한 컬렉션 프레임워크, 제네릭도 사용할 수 없습니다. null 일수 없다: 때로는 없음 이라는 상태가 필요할 수 있는데, 기본형 타입은 null 을 가질 수 없습니다. 자바 ...
String의 기본 public class CharArrayMain { public static void main(String[] args) { char[] charArr = new char[]{'h', 'e', 'l', 'l', 'o'}; // 옛날 방식 System.out.println(charArr); String ...
기본형과 참조형의 공유 기본형: 하나의 값을 여러 변수에서 절대로 공유하지 않음 참조형: 하나의 객체를 참조값을 통해 여러 변수에서 공유 할 수 있음 공유 참조와 사이드이펙트 public class Address { private String value; public Address(String value) { this...
모든 객체의 부모 package lang.object; //부모가 없으면 묵시적으로 Object 클래스를 상속받는다. public class Parent { public void parentMethod() { System.out.println("Parent.parentMethod"); } } 모든 클래스는 하나만 상속이 가능하지...
자바가 기본으로 제공하는 라이브러리 중 가장 기본이 되는 패키지입니다. 대표적인 클래스 Object: 모든 자바 객체의 부모 클래스 String: 문자열 Integer, Long, Double: 래퍼 타입, 기본형 데이터 타입을 객체로 만든 것 Class: 클래스 메타 정보 System: 시스템과 관련된 기본 기능들을 제공 ...
JSON으로 Response로 LocalDateTime 혹은 LocalDate처럼 시간 관련 값을 내려줄 때, 각각 format 형식을 적용하여 주는 방법이 있습니다. 기존: yyyy-MM-dd HH:mm:ss 변경: yyyy.MM.dd HH:mm:ss 만약 위 처럼 모든 시간 응답 값 포맷을 변경해야 하면 굉장히 많은 곳을 수정해야 합...
AWS S3 같은 서비스를 이용하고 있다면, 업로드 된 파일의 URL을 통해 파일을 읽어올 수 있습니다. 하지만, AWS S3가 아닌 서버 자체에 파일이 있는 경우 외부에서 직접 접근할 수 없으므로, 요청을 받으면 서버가 로컬에 있는 파일을 읽어 응답을 내려주어야 합니다. Spring Boot에서는 이런 부분을 설정을 통해 간단하게 할 수 있게 해...
작성한 테스트가 어디까지 로직을 얼마나 커버 하는지 지표를 보여주는 것을 테스트 커버리지 라고 합니다. 설정한 테스트 커버지리를 넘지 못하면 빌드에 실패하게 만듦으로써 테스트 작성에 강제성을 부여할 수 있습니다. 자바 진영에는 Jacoco 라이브러리를 이용하면 쉽게 테스트 커버리지를 확인 할 수 있습니다. 전체 코드 build.gradle ...
최근들어 테스트의 중요성을 느끼고 테스트를 열심히 작성하고 있습니다. 그런데 테스트를 하다보니 운영환경 DB는 MySQL인데 테스트용으로는 H2 인메모리 DB를 사용한다는 것이 찝찝했습니다. 물론 대부분의 기능은 문제 없이 테스트가 되었으나 날짜 함수 처럼 특정 DBMS에 종속적인 함수나 트랜잭션 isolation같은 부분에서는 DBMS마다 차이가...