본문 바로가기

java

(5)
IntelliJ 활용법 1부 - 단축키 for Mac 개발하면서 평소 유용하게 사용한 IntelliJ 팁을 정리했습니다. 총 2부로 구성되어 있으며 1부는 단축키, 2부는 활용 팁입니다. (2부는 곧 쓸 예정) 기호 설명 ⌘ : command ⌃ : control ⇧ : shift ⌥ : option Editing ⌥+⌘+L : 포맷팅 ⌥+⌘+O : 사용하지 않는 import 제거 ⌘+N : 코드 생성 (Getter, Setter, toString 등..) Project에서 하면 File 생성 ⌘+O : Override Method ⌥+O : Apply a quick-fix ⌥+⇧+위(아래) : 라인 이동 ⌘+⇧+위(아래) : 구문 이동 ⌘+Delete : 포커스된 라인 삭제 ⌘B, ⌘+마우스 클릭 : 선언문으로 이동 (선언문이면 사용되는 목록 출력) Co.. IDEA 2020. 1. 1. 01:26
JUnit 5 Parameterized Tests 사용하기 혹시 테스트 코드를 작성할 때 아래와 같은 중복되는 코드를 작성하고 계신가요? @Test @DisplayName("User 생성 name 2자 미만 예외처리") void createUserException01() { IllegalArgumentException e = assertThrows(IllegalArgumentException.class, () -> new User(VALID_EMAIL, "q", password)); assertThat(e.getMessage()).isEqualTo(NAME_NOT_MATCH_MESSAGE); } @Test @DisplayName("User 생성 name 10자 초과 예외처리") void createUserException02() { IllegalArgumentE.. Java 2019. 12. 28. 19:33
자바 리플렉션이란? 작년 이맘때 궁금하지만 어려워서 넘어갔던 기술들이 있었습니다. 대표적으로 엘라스틱 서치와 리플렉션이 있었는데 최근에 하나씩 공부하면서 지난번과 달리 비교적 쉽게 체득할 수 있었는데요. 그 이유는 학습 방법의 변화 덕분입니다. 작년에 리플렉션을 공부할 때는 무작정 개념과 사용방법만 익히려고 했는데 이번에는 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
[Java] toString()에 대해서 어느 날 누가 내게 toString()은 언제, 어떻게 써야 하냐고 물었는데 대답할 수가 없었다. 그동안 생각 없이 toString()을 사용했구나! 생각이 들면서 마침 이펙티브 자바에 설명이 잘 되어있어서 정리 + 예제를 작성했다. 모든 하위 클래스에서 toString()을 재정의하라 toString의 규약은 "모든 하위 클래스에서 이 메서드를 재정의하라"고 한다. toString()을 재정의할 경우 이점으로는 아래와 같다. 로깅, 디버깅 또는 문자열로 만나는 모든 객체를 렌더링 할 수 있어야하는 상황에서 유용하다. 직접 호출하지 않더라도 다른 어딘가에서 쓰일 수 있다. 오류 메시지를 로깅할 때 자동으로 호출할 수 있다. (toString을 제대로 재정의하지 않는다면 쓸모없는 메시지만 로그에 남을 것이.. Java 2019. 12. 28. 17:37