목록Develop/💜Java (4)
infinity : 무한한 성장가능성

ModelMapper 에 대해 알아보자modelMapper을 알아보게 된 배경에 대해 설명하자면 어느 날 주말에 갑자기 잘 돌아가던 배치에서 실패메시지가 왔다.해당 부분에 변경사항이 없을 텐데 왜 실패가 되었지? 싶어 로그를 확인해 보infinitecoding.tistory.comMapStruct에 대해 알아보는 이유는 윗글에 나와있습니다.이 글을 읽전에 위 글을 읽고 오는 것을 추천드립니다. 🏃♀️🏃♀️🏃♀️🏃♀️🏃♀️🏃♀️🏃♀️🏃♀️🏃♀️🏃♀️🏃♀️🏃♀️🏃♀️🏃♀️🏃♀️🏃♀️MapStruct 알아보기 시작합니다. 🏃♀️🏃♀️🏃♀️🏃♀️🏃♀️🏃♀️🏃♀️🏃♀️🏃♀️🏃♀️🏃♀️🏃♀️🏃♀️🏃♀️ M..

modelMapper을 알아보게 된 배경에 대해 설명하자면 어느 날 주말에 갑자기 잘 돌아가던 배치에서 실패메시지가 왔다.해당 부분에 변경사항이 없을 텐데 왜 실패가 되었지? 싶어 로그를 확인해 보니 500 에러가 있었다... 🤔500 에러를 넘겨준 api 서버에 가서 확인해보니 해당 요청에 대한 처리는 정상적으로 된 것을 확인할 수 있었다.그래서 해당 배치에서 처리되어야 하는 주문의 상태값을 보니 500 에러로 처리되지 않았다고 뜬 주문번호에 대한 주문상태도 잘 처리된 것을 확인할 수 있었다. 위 현상을 기반으로 왜 500에러가 발생했는지 생각해 보았고, 처음 예측한 원인은 아래와 같다.DB 세션 수를 줄이기위해 was 서버 몇 개를 반납하여 배포 스크립트 수정을 하는 pr을 봤었고, was 서버를..

저번 편에 이은 자바 제네릭 완전정복 뽀개기 두 번째 글입니다..! 제네릭 메서드와 와일드카드의 개념을 학습하기 전 제네릭 클래스의 타입 인자를 제한하는 법부터 정리해 보겠습니다. 제네릭 클래스의 타입 인자 제한하기 public class Box { } 위처럼 extends 키워드를 사용해 T extends Number이라는 Box 클래스를 정의할 경우 타입 인자로 Number or Number을 상속하는 클래스만 올 수 있게 됩니다. 타입인자를 제한하는데 올 수 있는 것으로는 클래스, 인터페이스가 있습니다. 제네릭 메서드 선언부에 제네릭으로 리턴 타입, 파라미터의 타입이 정해지는 메서드이다. 제네릭에 대한 예를 보면서 제네릭 메서드에 대해 이해해 보자. 먼저 제네릭을 static 필드변수에 사용한다면?..

자바 제네릭을 다루게 된 이유? 스프링 배치를 개발하던 중 MyBatisItemWriterBuilder을 사용해서 MyBatisBatchItemWriter 객체를 만들 때 파라미터의 값을 기본 Item 값에서 추가해야 하는 경우가 있었다. MyBatisWriterBuilder의 itemToParameterConverter 을 통해 파라미터를 수정할 수 있었는데, 해당 메서드의 내부를 살펴보니 public MyBatisBatchItemWriterBuilder itemToParameterConverter(Converter itemToParameterConverter) { this.itemToParameterConverter = itemToParameterConverter; return this; } 제네릭..