Spring Framework (4) 썸네일형 리스트형 자바 Reflection 의 활용, EntityUtil 클래스 만들어 보기 엔티티 멤버변수에 내가 원하는 멤버변수를 제외하고 나머지를 모두 null 처리 하려면? 서로 다른 클래스의 오브젝트지만 데이터타입과 변수명이 동일한 멤버변수의 값을 체크해서 복사시키려면? 위와 같은 문제를 실제로 해결하고자 직접 Reflection 과 제너릭을 이용하여 일반화해서 사용할 수 있는 클래스를 직접 만들어봤다. Entity Object 에서 필요한 기능들을 Reflection 으로 구현 Entity 객체에서 특정 멤버변수만 빼고 모두 null 로 값을 바꾸려면? (가령 user 를 탈퇴시킬 때, user entity의 정보를 날리기 위해 해당 엔티티 오브젝트의 멤버변수를 null 처리, 그리고 특정 필드는 그대로 두도록 하려면?) → setAllNullExceptSpecificFields 메서.. CI 배포 환경에서 테스트 코드 java.lang.OutOfMemoryError 해결 위와 같이 CI 에서 빌드 시 테스트가 돌 때, OutOfMemory 에러가 나는 경우가 종종있다. 할당된 heap을 늘려서 해결하는 방법을 알아보자. 우선 로컬 빌드 환경에서는 항상 테스트가 패스했기 때문에, 로컬에서의 메모리를 확인해봤다. local에서의 java memory status(역시 할당된 heap 이 훨씬 높다...) -> semaphoreci서버의 환경과 다르다고 생각함 semphore ci 서버의 java memory status Max Heap 사이즈가 차이가 남을 볼 수 있음 좀 더 정확한 semaphoreci 서버 상 heap memory allocation을 보기 위해 아래와 같이 확인합니다. https://medium.com/@hwimalasiri/how-to-increase.. 2020년 1분기 회고(작업했던 코드에 대한 복습) 시간에 쫓겨 작업했던 코드 작업들에 대해, 사용되었던 기술들을 쭉 정리해봤다. 주로, spring 및 spring jpa 에 관련된 기반 기술들이다. (코드를 짜면서 내가 사용했던 기술에 한함) www.notion.so/Kit-20-3-f48000e3d092412eb898597d82f206eb 회고 Kit(20년 3월) discover api www.notion.so 내가 궁금했던 것들을 toggle 안에 모두 넣어두고, 공부도 할 겸, 정리하는 형식으로 위 노션에 정리를 해둠 DTO Validation 커스터마이징하기 (List 리스트 길이 제한) 스프링 프레임워크 첫글은 간단한 어노테이션 커스터마이징 부터 시작하겠다. Dto 변수 중에 List 형태의 변수가 있는데, 이것의 list 길이의 갯수를 validate하고 싶을 때는 커스터마이징한 어노테이션으로 간단하게 해결가능하다. public class CreateProjectRewardDto { @Valid @IsValidListSize(min = 0, max = 100) private List items = new ArrayList(); } @IsValidListSize 라는 List의 길이를 제한하는 어노테이션을 새롭게 만들어볼 것이다. 아래는 @IsValidListSize 어노테이션 코드 @Documented @Target({ElementType.FIELD}) @Retention(Retent.. 이전 1 다음