자바
(4)
자바 리플렉션이란?
작년 이맘때 궁금하지만 어려워서 넘어갔던 기술들이 있었습니다. 대표적으로 엘라스틱 서치와 리플렉션이 있었는데 최근에 하나씩 공부하면서 지난번과 달리 비교적 쉽게 체득할 수 있었는데요. 그 이유는 학습 방법의 변화 덕분입니다. 작년에 리플렉션을 공부할 때는 무작정 개념과 사용방법만 익히려고 했는데 이번에는 Why 에 초점을 맞춰서 공부했더니 더 쉽게 이해하고 활용을 잘할 수 있게 되었습니다. '이 기술은 왜 나왔을까? 왜 사용할까?' 를 이해하는 것은 중요합니다. 그래서 작년의 저와 같은 사람에게 도움이 되었으면 해서 리플렉션이 무엇인지 정리를 해보기로 했습니다. 리플렉션의 사용방법은 다루지 않습니다. 사용 방법은 아래 링크를 추천합니다 https://www.baeldung.com/java-reflecti..
Java
2019. 12. 28. 19:06
Service Layer Testing in Spring Boot (feat. Mockito)
이번에 서비스 레이어 테스트 코드를 작성하면서 겪었던 고민과 해결 과정을 작성해보려고 합니다. 주의 저도 아직 배우는 과정으로 잘못된 부분이 있을 수 있습니다. 혹시라도 잘못된 부분을 발견하시면 피드백 부탁드립니다. 서비스 레이어 역할 먼저 제가 생각하는 서비스 레이어의 역할을 간단하게 정리해봤습니다. 컨트롤러에 대한 프로바이더 도메인을 연결, 협업 및 흐름 제어 실제 비즈니스 로직은 도메인에 위임 리포지터리로부터 도메인 객체를 구한다 트랜잭션 관리 주체 과연 서비스 레이어는 어디까지, 얼마나 테스트해야 할까? 고민이 되었습니다. '블로그 보니까 Mockito를 사용하라는데?' '음.. 이거 짜인 시나리오대로 테스트가 진행되니까 성공이 당연한 거 아냐?' 'Mockito 잘 모르겠고 그냥 아는 방식으로 ..
Spring
2019. 12. 28. 18:24
[객체지향] if-else의 문제점
글의 순서 if-else의 문제점 OCP (Open Close Principle) 전략 패턴 (Strategy Pattern) 이번에 OCP와 전략패턴에 대해서 설명하려고 합니다. 자세한 이론적인 이야기 보다는 코드와 함께 가볍게 설명하면서 대충 이런거구나 느낄 수 있는 정도로만 소개하겠습니다. 자세한 이론은 참고할만한 링크를 남기겠습니다. 왜 OCP인가? 이해하기 위해서 먼저 if-else의 문제점을 파악하고 가겠습니다. 프로그래밍을 하다 보면 if 문을 많이 사용합니다. 하지만 if 문을 사용하면 몇 가지 문제점이 있습니다. 1. If-else의 문제점 변경, 확장이 될 수록 코드가 복잡해져서 수정할 위치를 찾기가 어렵다. 실수로 추가하지 않고 누락하는 경우가 생긴다. 즉, 유지보수가 점점 어려워집니..
Java
2019. 12. 28. 17:45
[Java] toString()에 대해서
어느 날 누가 내게 toString()은 언제, 어떻게 써야 하냐고 물었는데 대답할 수가 없었다. 그동안 생각 없이 toString()을 사용했구나! 생각이 들면서 마침 이펙티브 자바에 설명이 잘 되어있어서 정리 + 예제를 작성했다. 모든 하위 클래스에서 toString()을 재정의하라 toString의 규약은 "모든 하위 클래스에서 이 메서드를 재정의하라"고 한다. toString()을 재정의할 경우 이점으로는 아래와 같다. 로깅, 디버깅 또는 문자열로 만나는 모든 객체를 렌더링 할 수 있어야하는 상황에서 유용하다. 직접 호출하지 않더라도 다른 어딘가에서 쓰일 수 있다. 오류 메시지를 로깅할 때 자동으로 호출할 수 있다. (toString을 제대로 재정의하지 않는다면 쓸모없는 메시지만 로그에 남을 것이..
Java
2019. 12. 28. 17:37