[개발일지] 230524 제네릭 상속 (with 와일드카드)
·
성장이야기/TIL
오늘은 제네릭과 와일드카드를 활용해 클래스를 상속해 다형성 특징을 살리는 코드를 작성해 봤다. 오늘 새로 배운 내용 이는 우리가 흔히 알고 있는 와일드카드이다. 와일드카드는 특정 타입을 명시해주지 않고 모든 타입이 올 수 있다는 것을 의미한다. 예를 들어 Set 처럼 선언을 해주면 해당 Set에는 어떤 타입이든지 담을 수 있는 Set이 된다. 와일드카드만 사용해서 모든 타입이 올 수 있도록 명시하는 것보다
2023년 5월 3주차 주간회고
·
성장이야기/주간회고
Facts (사실, 객관) 회사에서 처음 맡은 업무에 대한 리뷰가 50개가 돌파하면서 어느정도 마무리가 되어간다..! 핑계지만 워크샵을 목,금 다녀왔더니 피곤해서 토요일까지 아무것도 안하고 쉬었다. 결국 학습 진도가 밀렸다. 시간 남을때 틈틈이 빠진 부분 공부하자. Feelings (느낌, 주관) & Findings (배운 점) 진도가 밀리니 해야할게 많아 하기 싫다는 느낌을 받은적이 몇번 있었는데 한번에 하려고 해서 그랬었던것 같다. 하나씩 차근히 해보자. 모르는건 빠르게 물어보고 빠르게 해결하자! (내가 전혀 모르는 부분에 문제가 있어 사수분의 도움을 받아 해결해야 하는 부분이 있다.) 네이밍이 짧다고 가독성이 좋은건 아니다. 좀 더 네이밍에 신경쓰자 (info나 data같은 넓은 범위를 갖는 단어의..
[개발일지] 230516 Java Map.Entry 사용하기
·
성장이야기/TIL
오늘 새로 배운 내용 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..
2023년 5월 2주차 주간회고
·
성장이야기/주간회고
Facts (사실, 객관) 요즘 평일에 운동이 너무 재미있어 학습하는 시간이 부족했다. 회사에서 배운 내용을 정리해서 개발일지를 작성했다. 퇴근하기 전 간단하게라도 정리하는게 도움이 된다. Feelings (느낌, 주관) 테스트 코드를 작성하는 것은 어느정도 익숙해졌지만 TDD는 아직 많이 부족하다. 업무 시 코드를 작성하는 시간보다 고민하는 시간이 많다는 것을 한번 더 깨닫게 되었다. 운동, 학습 두마리 토끼 다 잡고 싶은데 이번주에는 그러지 못했고 다음주에는 균형있게 시간을 투자해야할 것 같다. 운동하고 나면 피곤해서 공부에 집중이 되지 않으니 다음에는 공부를 다 하고 운동을 하자 다음에 작성해야지 하고 미룬건 다음에 하지 않는다. 할때 제대로 마무리 하자. Findings (배운 점) Spring..
[개발일지] 230511 @JsonAutoDetect을 이용해 직렬화, 역직렬화
·
성장이야기/TIL
기존 getter 메서드와 생성자로 이루어진 dto 클래스를 record 클래스로 리팩터링 하는데 record클래스가 자동으로 생성해주는 getter 메서드를 인식하지 못해 직렬화가 안되는 문제 발생 → @JsonAutoDetect 어노테이션을 이용해서 필드에 선언된 값들을 직렬화, 역직렬화 하도록 설정해서 해결 오늘 새로 배운 내용 @JsonAutoDetect @JsonAutoDetect이란 Jackson 라이브러리에서 제공하는 어노테이션 중 하나로 Jackson이 객체를 JSON으로 직렬화하거나 JSON을 객체로 역직렬화할 때 어떤 필드를 인식할지 결정할 수 있다. 나의 경우 @JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY)로 설정해줘..
[개발일지] 230510 Playtika testcontainers
·
성장이야기/TIL
오늘 새로 배운 내용 기존 개발환경 properties에서 설정해 준 redis 설정을 변경하고 테스트를 돌렸더니 테스트가 실패하는 문제 발생 (bean 생성 실패) → 알고보니 테스트 환경의 properties도 개발환경에서 변경한것처럼 redis 설정값을 변경해줘야 했다. 그런데 test환경의 properties는 개발환경과 다르게 redis의 host와 port번호의 value값이 embedded 되어있었다. 어떤 값이 embedded 된 건지 몰라 사수분께 여쭤봤는데 pom.xml에 설정해 준 redis test-container가 설정되어 있다고 하셨고 이 값은 playtika에서 제공하는 testcontainers 오픈소스를 사용 중이라고 하셨다. 즉, 테스트 환경에서는 실제 사용하는 redi..