오늘 새로 배운 내용 테스트 코드에서 반복해서 생성되는 객체는 정적 멤버 클래스를 이용해서 중복을 줄이자. 테스트 코드에서 각각의 독립적인 테스트 케이스마다 객체 검증을 위해 반복적으로 객체를 생성해야 할 일이 있을 것이다. 예를 들어 아래와 같이 Post라는 객체를 검증하기 위해서는 각각의 테스트 케이스마다 post를 생성해줘야 한다. @Test void test1() { Post post = new Post(...); ... } @Test void test2() { Post post = new Post(..); ... } 테스트 케이스가 많아질 수록 Post 객체를 생성하는 작업은 귀찮고 코드도 중복되는 문제가 발생한다. 이런 문제를 해결하기 위해서 중첩 클래스의 한 종류인 정적 멤버 클래스를 이용할..
오늘은 제네릭과 와일드카드를 활용해 클래스를 상속해 다형성 특징을 살리는 코드를 작성해 봤다. 오늘 새로 배운 내용 이는 우리가 흔히 알고 있는 와일드카드이다. 와일드카드는 특정 타입을 명시해주지 않고 모든 타입이 올 수 있다는 것을 의미한다. 예를 들어 Set 처럼 선언을 해주면 해당 Set에는 어떤 타입이든지 담을 수 있는 Set이 된다. 와일드카드만 사용해서 모든 타입이 올 수 있도록 명시하는 것보다
Facts (사실, 객관) 회사에서 처음 맡은 업무에 대한 리뷰가 50개가 돌파하면서 어느정도 마무리가 되어간다..! 핑계지만 워크샵을 목,금 다녀왔더니 피곤해서 토요일까지 아무것도 안하고 쉬었다. 결국 학습 진도가 밀렸다. 시간 남을때 틈틈이 빠진 부분 공부하자. Feelings (느낌, 주관) & Findings (배운 점) 진도가 밀리니 해야할게 많아 하기 싫다는 느낌을 받은적이 몇번 있었는데 한번에 하려고 해서 그랬었던것 같다. 하나씩 차근히 해보자. 모르는건 빠르게 물어보고 빠르게 해결하자! (내가 전혀 모르는 부분에 문제가 있어 사수분의 도움을 받아 해결해야 하는 부분이 있다.) 네이밍이 짧다고 가독성이 좋은건 아니다. 좀 더 네이밍에 신경쓰자 (info나 data같은 넓은 범위를 갖는 단어의..
오늘 새로 배운 내용 Map.Entry Map.Entry를 이용하면 Map에 저장된 모든 key-value 쌍을 각각의 key-value를 갖고 있는 하나의 객체로 얻을 수 있다. 간단한 예시를 보면 이해하기 편하다. 기존 Map에 저장된 모든 key-value의 값을 얻으려면 보통 아래와 같이 map.keySet()으로 각각의 key에 대해 value값을 얻으려고 할 것이다. Map hashMap = new HashMap(); for (String key : hashMap.keySet()) { System.out.println("key : " + key); System.out.println("value : " + hashMap.get(key)); } 하지만 Map.entrySet을 사용하면 Map.En..
Facts (사실, 객관) 요즘 평일에 운동이 너무 재미있어 학습하는 시간이 부족했다. 회사에서 배운 내용을 정리해서 개발일지를 작성했다. 퇴근하기 전 간단하게라도 정리하는게 도움이 된다. Feelings (느낌, 주관) 테스트 코드를 작성하는 것은 어느정도 익숙해졌지만 TDD는 아직 많이 부족하다. 업무 시 코드를 작성하는 시간보다 고민하는 시간이 많다는 것을 한번 더 깨닫게 되었다. 운동, 학습 두마리 토끼 다 잡고 싶은데 이번주에는 그러지 못했고 다음주에는 균형있게 시간을 투자해야할 것 같다. 운동하고 나면 피곤해서 공부에 집중이 되지 않으니 다음에는 공부를 다 하고 운동을 하자 다음에 작성해야지 하고 미룬건 다음에 하지 않는다. 할때 제대로 마무리 하자. Findings (배운 점) Spring..
기존 getter 메서드와 생성자로 이루어진 dto 클래스를 record 클래스로 리팩터링 하는데 record클래스가 자동으로 생성해주는 getter 메서드를 인식하지 못해 직렬화가 안되는 문제 발생 → @JsonAutoDetect 어노테이션을 이용해서 필드에 선언된 값들을 직렬화, 역직렬화 하도록 설정해서 해결 오늘 새로 배운 내용 @JsonAutoDetect @JsonAutoDetect이란 Jackson 라이브러리에서 제공하는 어노테이션 중 하나로 Jackson이 객체를 JSON으로 직렬화하거나 JSON을 객체로 역직렬화할 때 어떤 필드를 인식할지 결정할 수 있다. 나의 경우 @JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY)로 설정해줘..