728x90 자바7 자바 디자인 패턴(Design Pattern) 개요개발자로서 자바로 코딩을 하다 보면, 효율적이고 유지보수하기 쉬운 코드를 작성하는 것이 중요하다. 그 과정에서 자주 등장하는 것이 디자인 패턴(Design Pattern)이다. 처음에는 디자인 패턴이란 용어가 생소하게 느껴질 수 있지만, 개발 환경에서 마주치는 반복적인 문제들을 해결하는 데 큰 도움이 된다. 이번 글에서는 자바의 디자인 패턴에 대한 기본 개념을 쉽게 풀어 설명하려 한다. 디자인 패턴을 이해하고 나면 코드 작성과 구조화에 훨씬 자신감이 생길 것이다. 디자인 패턴이란 무엇인가? 디자인 패턴은 소프트웨어 개발에서 반복적으로 발생하는 문제를 해결하기 위한 일반화된 해결책이다. 디자인 패턴을 사용하면 코드의 재사용성이 높아지고, 유지보수가 쉬워지며, 다른 개발자와 협업할 때도 일관성을 유지할.. 2024. 10. 6. 결제 동시성 이슈 해결 - 분산락과 Redisson 개요회사 차세대 프로젝트에서 발송 요청 시 가결제 동시성 이슈로 인한 사용자 가결제 금액 - 잔액간 불일치 이슈가 발생했다. 발생한 가결제 이슈 프로세스를 정리하면 아래와 같다. 사용자가 2건의 60원짜리 가결제 요청P1: 가결제 금액 조회 ⇒ 0원P2: 가결제 금액 조회 ⇒ 0원P1: 가결제 처리 후 commit ⇒ 사용자 가결제 금액 60원P2: 가결제 처리 후 commit ⇒ 사용자 가결제 금액 120원보유 금액 100원 이 되어 유저 잔액(-20원) 조회 시 오류 발생위 이슈는 공유 자원인 DB에 동시에 여러 프로세스가 접근하여 값을 수정하다보니 발생한 동시성 이슈인데, 해당 이슈 담당자는 이 이슈를 Redis를 활용한 분산락을 통하여 해결하였다. 이번 글에서는 DB 접근 동시성 이슈를 해결하기 .. 2024. 10. 3. [Java] 버전 별 Map 선언 방법 개요 최근 Java 8로 개발 중에 Map을 선언하고 값을 초기화하는 과정에서 불편함을 느끼게 되었다. 자바 8에서는 Map을 간단하게 초기화할 수 있는 방법이 제한적이었고, 코드가 길어지는 경향이 있었다. 그런데 이후 버전에서는 이 문제를 해결할 수 있는 다양한 방법들이 도입되었다. 그래서 이번 글에서는 Java 버전 별 Map 선언 방식의 차이를 설명하며, 더 효율적으로 Map을 다루는 방법을 정리해 보려고 한다. Java에서 Map 선언 방식의 변화 Map은 키-값 쌍으로 데이터를 저장하는 유용한 자료구조다. 하지만 Java의 초기 버전에서는 Map을 선언하고 데이터를 초기화하는 과정이 다소 번거로웠다. Java 9 이후에는 이러한 단점을 보완하기 위한 새로운 메서드들이 추가되면서, Map .. 2024. 9. 27. [Java] 공통 적용 JsonDeserializer 만들어 보기 개요외부 api와 통신하여 작동하는 기능 개발 시, 외부에서 리턴되는 상태 코드 등을 애플리케이션 내부에서 사용하려고 하면 해당 코드를 활용하는데 어려움을 겪고는 한다. 아래는 카카오톡 비즈메시지 센터 API 중, 알림톡 템플릿 정보 조회 결과에 대한 리턴값 중 일부이다. 위와 같이 검수 결과가 REG, REQ 등과 같은 한 눈에 의미를 알 수 없는 약어로 축약되어 리턴되는데, 이를 애플리케이션 내부에서 원활하게 사용하기 위해서는 Enum을 선언하고 외부 api 결과값을 해당 Enum에 매핑하여 사용할 수 있다. public interface KakaoCommonType { T getCode(); String getTitle();}@RequiredArgsConstructorpublic en.. 2024. 9. 23. 이전 1 2 다음