DEV ℧ Developer Diary

[EffectiveJava] item52 - 다중정의(Overloading)는 신중히 사용하라

다중정의(Overloading)란 매개변수를 다르게 한다면 메소드의 이름을 같게하여 정의하는것을 말한다.

다중정의(Overloading)

먼저 예시를 살펴보자.

public class CollectionClassifier { public static String classify(Set<?> s) { return <span...

[EffectiveJava] item51 - 메서드 시그니처를 신중히 설계하라

이번 아이템에서는 API 설계 요령들을 정리한 회차이다. 이 요령들을 잘 활용하면 배우기 쉽고, 쓰기 쉬우며, 오류 가능성이 적은 API를 만들 수 있다.

메서드 이름을 신중이 짓자.

항상 표준 명명 규칙을 따라야 한다. 이해할수 있고, 같고 패키지에 속한 다른 이름들과 일관되게 짓는게 최우선 목표다.

그다음...

[Java] Spring의 역직렬화(deserialize) 이야기

Java에서의 직렬화/역직렬화를 알아봤다면 이번엔 Spring에서의 직렬화/역직렬화에 대해 알아보도록 하자.

먼저 Spring의 역직렬화를 정리하게된 계기가 있다면 ClassCastException 에러를 만나고 나서 였다.

원인

ClassCastException가 발생했을까?

간단한 예시를 들어보자면, FeignClient를 이용해 MemberDto의 객체를 데이터를 A프로젝트에서 B프로젝트로 가져오는 중

ResponseData

[Java] Java의 직렬화(serialize)/역직렬화(deserialize)

자바에서 직렬화(serialize)와 역직렬화(deserialize)에 대해 간단하게 톺아보고 가도록 하자.

직렬화 (serialize)

직렬화란 자바의 객체(Object)의 상태를 바이트 형태의 데이터 스트림으로 변환하는 것을 말한다.

데이터 스트림은 흔히 우리가 자주 쓰는 json 형식이 될 수 있고 또는 xml 과 같은 다양한 형태로 변환이 가능하다.

[Java] 분산 락(Distributed Lock)을 이용해 동시성 제어하기

분산 락(Distributed Lock)을 이용해 동시성 제어하기

분산 락

기존 이전 포스트에서 설명한 Datebase Lock과는 다른 방식으로 작동을 한다.

락을 거는 것은 같으나, 자원에 직접 락을 거는 것이 아닌 공통된 저장소에 락을 걸어 자원이 사용중인지를 체크하고, 사용 뮤무에 따라 프로세스를 진행하는 방식이다.

<h2…