테스트 코드 필요성, 역할에 대한 글 1. 기존 동작에 대한 검증 애플리케이션 발전 모습 위 그림은 애플리케이션이 발전됨에 따라 소스코드의 모습을 도식화한 모습이다. v0.0.1에 새로운 기능이 추가되고 나면 v0.0.2가 되고, 또 그 v0.0.2기반의 소스코드에 신규 기능이 추가되면 v0.0.3이 된다. 신규 기능을 추가하면서 반드시 확인해...
테스트 코드의 역할과 필요성
Controller 통합 테스트
스프링 웹 애플리케이션에서 Controller 계층 통합 테스트 Controller 계층의 역할 layered architecture에서 controller 계층은 presentation 계층으로도 불린다. 수신한 client의 요청을 하위 계층인 service 계층에게 위임하는 역할을 한다. controller 계층에서의 통합 테스트는 실제 Sp...
Controller 단위 테스트
스프링 웹 애플리케이션에서 Controller 계층 단위 테스트 Controller 계층의 역할 layered architecture에서 controller 계층은 presentation 계층으로도 불린다. 수신한 client의 요청을 하위 계층인 service 계층에게 위임하는 역할을 한다. controller 계층에서의 단위 테스트는 수신한 c...
Serivce 테스트
스프링 웹 애플리케이션에서 Service 계층 테스트 Service 계층의 역할 layered architecture에서 service 계층은 business 계층으로도 불린다. 상위 계층인 controller(presentation) 계층으로 부터 요청 받은 동작을 수행하는 역할을 한다. service 계층은 하위 계층인 repository 계...
Repository 테스트
스프링 웹 애플리케이션에서 Repository 계층 테스트 Repository 계층의 역할 layered architecture에서 repository 계층은 persistent 계층으로도 불린다. 데이터베이스로부터 원하는 데이터를 읽어서 상위 계층인 service(business) 계층으로 올리거나, 상위 계층으로 부터 요청 받은 데이터를 쓰는 역...
mysql 유저 생성 및 권한 부여
MySQL에서 외부 접근을 위한 유저 생성 및 권한 부여에 대한 간단한 사용법 정리 계정 및 권한 MySQL을 설치하면 기본적으로 root 계정이 생성된다. root 계정은 모든 데이터베이스에 대해 접근 가능하고, 변경 권한이 있다. 따라서 root 계정을 공유해서 사용하거나, 계정 정보가 노출이 되었을 경우 임의의 사용자가 모든 데이터베이스의 내용...
Gradle
Gradle docs 1를 보고 정리한 내용 Gradle이란? JVM에서 실행되는 오픈소스 빌드 자동화 도구이다. JVM에서 실행되기 때문에 build 과정에서 standard Java API를 사용할 수 있다. 따라서 Java, Kotlin 사용자에게 유리하고 자연스럽게 JVM기반 언어진영에서 많이 사용되고 있다. Gradle에서 사용되는 용어...
JUnit
JUnit4 Wiki 1 , JUnit 5 User Guide Document 2 를 보고 정리한 내용 JUnit 이란 JUnit은 테스트코드를 편리하게 반복 가능하게 실행할 수 있도록 도와주는 테스팅 관련 오픈소스 프레임워크다. 주요 기능은 다음과 같다. AssertThat과 같은 Assertions 3 함수 제공 @Before, @Af...
익명 클래스
익명 클래스와 익명 클래스를 람다 표현식으로 치환하는 방법과 함수형 인터페이스에 대한 글 익명 클래스란 익명 클래스(Anonymous Class)는 내부 클래스의 일종이면서, 단 하나의 객체만을 위한 일회용 클래스이다. 클래스의 선언과 객체 생성을 동시에 한다. 익명 클래스를 통해서 단일 클래스 상속, 단일 인터페이스 구현한 객체를 일회성으로 생성할 ...
Gihub issue, pr template 등록하기
Github에서 issue, pull request template 등록하기 개요 오픈소스소 내 소스코드를 github에 공개하거나, 여러명이서 github를 이용해 프로젝트를 진행하다보면, 여러사람이 issue를 등록한다거나, PR을 요청하게 된다. 이때 특정한 양식이 없다면 서로 다른 포맷으로 작성이 되므로 일관성있게 관리하기가 어렵다. 사전에 t...