Home
Jun
Cancel

[Unit Testing] Unit Test Principles

단위테스트 책을 읽고 실습 하며 내용을 정리한 글입니다. 학습 과정에서 작성된 글이기 때문에 잘못된 내용이 있을 수 있으며, 이에 대한 지적이나 피드백은 언제든 환영입니다. 1. 단위 테스트 세 가지 스타일 단위 테스트에서 출력 기반 테스트, 상태 기반 테스트, 통신 기반 테스트 세 가지가 존재합니다. 하나의 테스트에서는 하나 또는 둘, ...

[Unit Testing] Unit Test Anti Pattern

단위테스트 책을 읽고 실습 하며 내용을 정리한 글입니다. 학습 과정에서 작성된 글이기 때문에 잘못된 내용이 있을 수 있으며, 이에 대한 지적이나 피드백은 언제든 환영입니다. 1. 비공개 메서드 단위 테스트 가능한 비공개 메서드를 테스트하면 안 됩니다. 비공개 메서드를 노출하면 테스트가 구현 세부 사항과 결합하고 결과적으로 리팩토링 내성이...

Custom Response

커스텀 응답에 대해 학습하는 과정에서 작성된 글입니다. 학습 과정에서 작성된 글이기 때문에 잘못된 내용이 있을 수 있으며, 이에 대한 지적이나 피드백은 언제든 환영입니다. 1. ResponseEntity의 한계 응답 데이터를 반환할 때 스프링이 제공해주는 ResponseEntity를 사용하면 간단하게 응답을 내려줄 수 있습니다. 내부에 빌...

왜 Wrapper Class를 왜 사용할까?

글을 작성하게 된 계기 스프링 코드를 보다 보면 래퍼 클래스(Wrapper Class)를 사용하는 것을 자주 볼 수 있습니다. 평소 이를 자주 사용하고 있었지만 래퍼 클래스의 장/단점에 대해 한 두 문장으로 요약하지 못했기에, 생각을 정리하고 싶어 글을 작성하게 되었습니다. 1. Wrapper Class 래퍼 클래스(Wrapper Cl...

디미터의 법칙에 대한 오해

글을 작성하게 된 계기 사람들과 스프링 서버를 만들어보는 프로젝트를 진행하며 디미터의 법칙에 대해 질문받았습니다. PR을 달고 보니, 이전에 학습한 내용을 잘못 이해하고 있는 것 같아 이를 다시 한번 정리하고 싶었고, 이에 글을 작성하게 되었습니다. 1. 디미터의 법칙 디미터의 법칙(Law-Of-Demeter)은 최소한의 지식만 노출시...

MySQL 인덱스 컨벤션은 어떻게 정할까?

1. 글을 작성하게 된 계기 프로젝트에서 MySQL 인덱스 컨벤션 을 어떻게 정할지에 대해 고민이 있었습니다. 이 과정에서 스택 오버 플로우에 MySQL의 인덱스 컨벤션에 대해 잘 정리된 글이 있어 이를 정리하기 위해 글을 작성하게 되었습니다. 2. MySQL 인덱스 컨벤션 개인적으로 아래 규칙이 가장 괜찮다는 생각이 들었습니다. 물론...

MySQL FK 컨벤션

글을 작성하게 된 계기 MySQL FK Convention을 어떻게 할 지 고민하던 과정에서 스택 오버 플로우의 한 글을 발견하게 되었고, 이를 정리하기 위해 글을 작성하게 되었습니다. 1. MySQL FK Convention 스택 오버 플로우를 보다가 MySQL의 FK 컨벤션에 대해 잘 정리된 글이 있어 블로그에 정리해야겠다는 생각이 ...

외부 API 목으로 대체하기

외부 API를 목으로 대체하는 것에 대해 학습하며 작성된 글입니다. 학습 과정에서 작성된 글이기 때문에 잘못된 내용이 있을 수 있으며, 이에 대한 지적이나 피드백은 언제든 환영입니다. 1. 외부 API를 사용하는 경우와 문제점 깃허브를 통해 회원가입하는 시나리오를 살펴보겠습니다. 사용자가 회원가입 요청(1)을 보내면 API Gateway(...

[Unit Testing] Integration Test

단위테스트 책을 읽고 실습 하며 내용을 정리한 글입니다. 학습 과정에서 작성된 글이기 때문에 잘못된 내용이 있을 수 있으며, 이에 대한 지적이나 피드백은 언제든 환영입니다. 1. 통합 테스트 통합 테스트는 세 가지 요구사항 중 하나라도 충족하지 못하는 테스트를 말합니다. 실제로 통합 테스트는 대부분 시스템이 프로세스 외부 의존성과 통합해 ...

Named Lock은 무엇이고, 어떻게 사용할까?

글을 작성하게 된 계기 MySQL Named Lock에 대해 정리하기 위해 글을 작성하게 되었습니다. 1. Named Lock 임의의 문자열 에 대한 잠금을 설정하는 락으로, 유저 레벨 락(User Level Lock) 으로도 불립니다. 이는 단순히 사용자가 지정한 문자열에 대해 획득하고 반납하는 잠금으로, 많은 레코드를 복잡한 조건으...