JVM

· JVM/Java
🎯 Goals WildCard 가 왜 필요한지 안다. 언제 Generic 을 쓸지 안다. 언제 wildcard 를 쓸지 안다. Java 의 다양한 컬렉션을 사용하거나 라이브러리를 만들다보면 제네릭을 자주 사용하게 된다. 이 때 `?` 로 표현되는 와일드카드도 심심치 않게 보게 되는데, 이 두녀석의 역할과 용례를 알아보자. WildCard 예제: 와일드 카드는 왜 나왔나? class ShapeTest { void drawAll(List shapeList) { for (Shape shape : shapeList) { shape.draw(); } } @DisplayName("Could not print all shapes with collection type hierarchy") @Test void drawA..
· JVM/Java
거짓 중복 발생 사례 상품의 정가를 나타내는 Regular Price 를 정의해봅시다. public class RegularPrice { private static final int MIN_AMOUNT = 0; private final int value; RegularPrice(final int amount) { if (amount < MIN_AMOUNT) throw new IllegalArgumentException("가격은 0원 이상이어야 합니다."); this.value = amount; } } 일반 할인, 여름 할인을 책임지는 클래스를 정의해봅시다. @Getter public class RegularDiscountedPrice { private static final int MIN_AMOUNT =..
· JVM/Java
TL;DR; 무적권 .eqauls() 대신 ==을 써라. Pizza.java @Getter @NoArgsConstructor @AllArgsConstructor public class Pizza { // == 을 쓰면 좋은 이유 // getStatus() 랑 PizzaStatus 값(평가값)이 실제로 같다 하더라도 타입은 다르기 때문에 // compile error 가 발생해야한다. // 이를 피하기위해 .equals() 대신 == 을 쓴다. // Q. enum 에 string 값을 삽입할 수 있는가? private PizzaStatus status; private PizzaColor color; public enum PizzaColor { GREEN, RED, BLUE } public enum Pizz..
· JVM/Spring
환경 분리가 왜 필요한가? 애플리케이션은 로컬, 개발, 운영, 테스트 등 다양한 환경을 지원하고 싶을 수 있다. 각 환경마다 다른 자원, 스팩을 사용하는 일은 생각보다 자주 마주친다. SpringBoot 는 이를 지원하기 위한 매커니즘으로 Profile 을 제공한다. yaml 파일로 환경 분리하기 사전 준비 SpringBoot 앱이 로드되자마자 Yaml 파일을 읽어 로깅하도록 지정했다. 어노테이션은 주석을 참고하자. (1) 하나의 application.yaml 에 때려박기 (2) 환경별 yaml 파일 분리하기 profile 을 환경별로 분리하여 정의하고 `application.yaml` 에서 `spring.profiles.active` 값만 지정해줘야한다. 해당 값 미지정시 어느 프로파일로 실행할지 결정..
· JVM
build.gradle 이란? groovy 언어 기반의 패키지 관리 파일 gradle 은 총 3단계로 되어있다. 1. Initialization settings.gradle 설정에 따라 여러 프로젝트 모듈 초기화 2. Configuration Dependency graph 를 생성한다. property 등 속성 값을 미리 지정한다. 3. Execution 사전에 정의된 속성값과 Configuration 에서 생성된 DAG 에 따라 각각의 Task 실행 build.gradle 주요 명령어 테스크 목록 출력 # 실행 가능한 테스크 목록 출력 $ gradle tasks gradle 명령어는 task 단위로 실행된다. 빌드 - 실행 - 삭제 # 빌드 $ gradle build # application 실행파일 ..
· JVM/Error
Kafka Broker 서버 구동 방법 (1) Zookeeper 구동 (2) Broker 구동 문제 상황 아래와 같은 에러가 발생하면서 카프카 브로커 시작 실패 해결 방법 zookeper 와 서버 삭제 References Apache Kafka Apache Kafka: A Distributed Streaming Platform. kafka.apache.org
M_Falcon
'JVM' 카테고리의 글 목록