java에서 exception

주로 문법과 활용방법에관해 다루는 포스트이다.

  • try-catch-final
  • throw, throws
  • checked, unchecked exception
  • custom exception
Read more

온라인 url encoder, decoder ( euc-kr ) / JAVA에서 구현방법

euc-kr

다양한 회사와 협업을 하다보면 그만큼 다양한 요구사항이 있다.
http기반의 api호출이 아닌, socket통신을 하는 회사도 많이있다.

필자가 맡은 서비스의 대부분의 통신이 utf-8로 이루어지고 있다.
euc-kr기반의 url encoding을 요청받아 방법에 대해 메모한다.

Read more

[java] enum 활용법 - 알아두면 좋은 TIP

서론

type이나 상태값을 나타내기위해 많은분들이 enum을 사용합니다.
enum을 활용하는 방법, 사용할때 알아두면 좋은 팁들을 정리해보려합니다.

예제

아래는 설명을 위해 사용할 예제입니다. 본문에 계속 사용될 예정입니다.
주문의 상태를 나타내는 enum입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public enum OrderStatus {
ORDER("주문"),
PAYMENT("결제완료"),
DELIVERY("배송"),
REJECT("거절"),
REFUNDED("환불"),
CANCEL("취소");

private String description;

TicketStatus(String description) {
this.description = description;
}
}
Read more

spring - multiple implements : interface - 인터페이스의 구현체를 동적으로 선택하는 방법

동기

본 글은 interface 란? spring 주입받아 사용하기 에서 이어집니다.

동적으로 구현체를 선택하는 방법을 알아보자

여러 판매자가 판매하는 상품을 장바구니에 담고 결제를 하였다고 가정해보자.
각 판매자에게 구입 요청을 해야할것이다.

이때 판매자에게 할수 있는 행위들이 interface로 정의되어있고, 실제로 요청해야하는 판매자에 따라서 구현체를 바꾸어야한다면?? 어떻게 될까? 예시를 확인해보자

ex)

1
2
3
라면 + 노트북을 장바구니에넣고 한번에 주문 -> 내부적으로는 오뚜기 / LG전자에 구매 요청을 해야야한다
주문, 주문취소, 환불이라는 행위자체는 동일하지만 요청해야하는 도메인정보등 세부정보는 다를것이다
그리고 이공통점을 판매자라는 인터페이스로, 달라지는 세부적인 부분을 오뚜기/LG전자라는 구현체로 구현했다면?

각 판매자에 해당하는 구현체를 선택하여 요청 로직을 실행해야할것이다.

Read more

JMH로 자바 성능측정 비교하기 - java performance

성능측정 과제

  • Map, Set, List, Queue 의 성능은 어떨지 알아보기
  • 실험을 통해 Map / List 성능 측정

JMH 기본적인 사용법 (시작하기)

아래와 같은 명령어를 사용해 maven project를 생성한다

1
2
3
4
5
6
7
mvn archetype:generate \
-DinteractiveMode=false \
-DarchetypeGroupId=org.openjdk.jmh \
-DarchetypeArtifactId=jmh-java-benchmark-archetype \
-DgroupId=org.sample \
-DartifactId=test \
-Dversion=1.0
  • 성능 측정 코드 작성 (아래에서 계속)
  • mvn clean install 로 빌드
  • java -jar target/benchmarks.jar 로 성능측정
Read more