본문 바로가기

기타107

[Spock] Spock Framework 이용하기 - 개론편 [Spock] Spock Framework 이용하기 - 개론편 [Spock] Spock Framework 이용하기 - 실습편 [Spock] Spock Framework 이용하기 - Mock [Spock] Spock Framework 이용하기 - Where 안녕하세요. 이전에 유닛테스트의 중요성 및 JUnit5에 대해서 포스팅을 했었습니다. 다들 도움이 되셨었나요? 오늘은 Spring에서 JUnit과 함께 많이 사용되는 Spock Framework에 대해서 알아보는 시간을 가지도록 해보겠습니다. 오늘은 Specification까지 알아보며 실제 사용은 다음 포스팅의 Block편에서 다루도록 하겠습니다. Spock Framework Spock은 java와 groovy application을 테스팅하기 위한 .. 2020. 8. 20.
[gradle] gradle을 이용하여 java 프로젝트 만들기 안녕하세요. 오늘은 gradle 빌드 도구에 대해서 알아보는 첫번째 시간입니다. 여러분들과 함께 진행해볼 내용은 gradle을 이용하여 java 프로젝트를 만드는 것입니다. gradle로 java 프로젝트를 만든다? 어떤거라고 생각하시나요? 일반적으로 프로젝트를 만든다면 IDE를 이용하여 만듭니다. intellij나 STS로 project를 gradle로 생성해서 만듭니다. 하지만 프로젝트 생성은 gradle의 명령어 만으로도 만들 수 있다는 사실 알고 계셨나요? 오늘은 gradle을 이용해서 java project를 생성해보도록 하겠습니다. 오늘 진행하는 프로젝트에서 제가 사용한 환경은 MAC입니다. windows환경은 다를 수 있음을 알려드립니다. gradle 설치 gradle 명령어를 이용하려면 먼.. 2020. 5. 17.
빌드 도구가 뭐에요 ? 안녕하세요. 저는 현재 Back-End 개발자로써 Java를 메인 언어로 삼으며 개발을 해오고 있습니다. Java 개발자라면 일반적으로 Spring 프레임워크를 쓸것이고 중요한건 Java 문법에 대한 이해와 Spring 프레임워크에 대한 이해 일거라고 생각합니다. 사실 이렇게 2개만 잘 사용하더라도 아무런 지장이 없습니다. Spring 프레임워크로 개발을 한다. 그러면 우리는 Java만 알면 될까요? 문제는 없습니다만 또 사용하는게 하나 있습니다. maven, gradle과 같은 빌드 도구들입니다. 오늘은 빌드 도구에 대해서 알아보겠습니다. 빌드 도구란? 빌드 도구는 빌드 자동화를 시켜주는 실행가능한 프로그램만들어 주는 프로그램을 말합니다. 여기서 빌드 자동화란 단어가 나옵니다. 빌드 자동화라는 말은 위.. 2020. 5. 15.
[UML] 시퀀스 다이어그램 이해하기 [UML] 클래스 다이어그램 이해하기 [UML] 시퀀스 다이어그램 이해하기 안녕하세요. 우리는 이전 포스팅에서 클래스 다이어그램에 대해서 이야기 해본적이 있습니다. 구조 다이어그램(Structural Diagram)의 대표로써 이야기 했었지요. 이어서 오늘은 동적 다이어그램(Behavioral Diagram)의 대표격인 시퀀스 다이어그램에 대해서 알아보는 시간을 가져보도록 하겠습니다. 정의와 목적 시퀀스 다이어그램(Sequence Diagram)은 어떠한 순서로 어떤 객체들과 어떻게 생호작용했는지를 표현하는 다이어그램입니다.이 다이어그램은 현재 존재하는 시스템이 이떠한 시나리오로 움직이고 있는지를 나타내는데 장점을 가지고 있습니다. 시퀀스 다이어그램을 이용하면 API 등의 유즈케이스를 디테일하게 알 수 .. 2020. 5. 15.
[Junit5] Assertions과 Assumptions - Assumptions편 안녕하세요. 오늘은 JUnit5의 3번째 시간입니다. 이번 포스트에서는 Assertions와 Assumption중 Assumptions에 대해서 좀 더 자세히 알아보는 시간을 가지도록 하겠습니다. Assumptions Assumption 구문은 테스트 메서드가 특정한 조건에 대해서 실행하고자 할 때 사용하는 구문입니다. JUnit5에서는 org.junit.jupiter.api.assumptions 패키지의 내용물로 사용할 수 있습니다. 사전조건 테스트를 위한 사전 조건으로 사용하는 Class는 아래와 같습니다. 해당 Class는 사칙연산을 담당하는 클래스로 add, multiply, divide를 메서드로 가지고 있습니다. private final Calculator calculator = new Cal.. 2020. 5. 7.
[Junit5] Assertions과 Assumptions - Assertions편 안녕하세요. 오늘은 저번 포스팅에 이어서 JUnit5에서 제공하는 Assertions과 Assumptions에 대해서 조금더 디테일하게 알아보는 시간을 가져보도록 하겠습니다. 내용은 JUnit5 Guide에 나오는 내용을 기본으로 제 나름대로의 필요한 내용을 추가하는 식으로 진행하도록 하겠습니다. Assertions는 번역하면 단정문이라고 합니다. assertions는 만약 성공하지 않으면 테스트를 실패처리를 하기 위해서 사용합니다. Assumption은 번역하면 가정문이라고 합니다. assumptions는 특정 상황에서만 test문을 실행하고자 할때, 반대로 특정 상황에서만 실행하지 않고자할 때 사용하는 키워드입니다. 여기서 말하는 특정 상황이라는 것은 local환경 등을 들 수 있습니다. Assert.. 2020. 5. 3.
[Junit5] Junit4에서 Junit5으로 안녕하세요. Spring Boot 2.2.x는 Junit5를 기본으로 제공하고 있습니다. 메이저 버전이 바뀌게 되었습니다. 과연 Junit4에서 Junit5로 변화하면서 어떤 부분이 변경되었을까요? 오늘은 Junit5를 사용하는 방법과 추가된 점에 대해서 알아보도록 하겠습니다. JUnit5 JUnit5는 차세대 Java Test 프레임워크로 3가지의 서브 패키지로 구성되어 있습니다. JUnit5 = JUnit Platform + JUnit Jupiter + JUnit Vintage JUnit Platform : JUnit Platform은 JVM에서 테스트 프레임워크를 시작하기 위한 기초적인 역할을 수행합니다. 또한 테스트 개발을 위한 API를 제공합니다. JUnit Jupiter : JUnit5에서 테.. 2020. 5. 1.
[git] git을 이용한 버전관리 - 기본편 (remote, push, pull, fetch, clone) with github 안녕하세요. git에 대해서 이야기하는 3번째 시간입니다. 오늘은 원격 저장소(remote repository)과 이를 이용하는 명령어인 push, pull, fetch, clone에 대해서 알아보도록 하겠습니다.git의 component 구조이전 시간까지는 혼자서 작업하는 내용의 버전을 관리하는 방법이 었다면 이번시간부터 배우는 원격저장소를 이용하면 공동으로 협업할 수 있는 시스템 아키텍처가 그려지게됩니다. 원격저장소를 포함하면 2가지의 관점에서 구조적인 이미지를 그려볼 수 있습니다. 첫번째는 개인 관점에서의 git 이용 flow, 또 다른 한 관점은 다른 사람과의 공동으로 원격저장소의 사용입니다.첫번째 git에 관한 포스팅에서 git의 3가지 컴포넌트에 대해서 이야기 했던 적이있습니다. 아래 이미지와.. 2020. 4. 18.
[git] git을 이용한 버전관리 - 기본편 (tag, alias) 안녕하세요. 오늘은 저번 포스터에 이어서 git의 명령어에 대해서 추가적으로 알아보는 시간을 가지도록 하겠습니다. 이전에 보았던 명령어들이 git으로 버전관리를 하는 아주 기본적인 부분이라고 한다면 이번 포스팅에서 알아볼 명령어들은 조금은 더 고급진(?) 명령어들이라 할 수 있을 것 같습니다. alias alias는 git 명령어에 별명을 붙여주는 명령어입니다. 우리가 git 명령어를 쓰다보면 명령어 자체가 길다고 느껴질 때가 있습니다. 예를 들어 git commit -m ""라는 명령어가 있습니다. git add 와 함께 많이 사용하는 명령어지요. 이 명령어를 commit 하고싶을때 마다 풀로 입력한다면 귀찮다고 생각되어질 수 있습니다. 이때 alias 명령어를 사용한다면 좀 더 줄여서 사용할 수 있습.. 2020. 4. 10.
[UML] 클래스 다이어그램 이해하기 [UML] 클래스 다이어그램 이해하기[UML] 시퀀스 다이어그램 이해하기안녕하세요. 오늘은 클래스 다이어그램에 대해서 이야기 해보고자 합니다. 최근 레거시 시스템의 구조개선을 조금씩 하고 있습니다. 그러면서 객체의 구성 및 도메인 모델을 어떻게 가져가야할지 고민을 하게 되었습니다. DDD 관련된 책이라던지 찾아보는데 이때 기본이 되는게 UML, 특히 클래스 다이어그램 이라는 것을 알 수 있었습니다. 지끔까지는 막연한 지식은 있지만 이번 기회에 명확하게 이를 이해하고자 UML, 그 중에서도 클래스 다이어그램에 대해서 정리해보고자 합니다.UML 이란먼저 UML이란 Unified Modeling Language의 약자로 도메인(해결하고자 하는 목표, ex) 결재시스템 등)을 모델로 표현해주는 대표적인 모델링 .. 2020. 3. 29.
[git] git을 이용한 버전관리 - 기본편(add, commit, status, log, reset) work-flow git은 3가지의 컴포넌트를 가지고 있습니다. work-tree work-tree는 working diredtory라고도 불리며 현재 작업중인 디렉토리에 들어있는 수정가능하며 읽을 수 있는 모든 파일이 들어있는 컴포넌트라고 생각하시면 됩니다. index index는 staging area라고 불리며 commit 되기전 준비단계가 보존되는 컴포넌트입니다. index는 work-tree에 있는 file중 변경되어져 commit 되어질 파일들이 모여있는 컴포넌트입니다. work-tree에 있는 file중 한 파일을 변경 한다면 index 컴포넌트에서 수정되었다는 마크처리를 해둡니다. repository 레포지토리는 컨테이너라고도 불립니다. 해당 컴포넌트는 프로젝트 파일들의 변화를 축적합니다... 2020. 3. 26.
[Unit-Test] 하고 계신가요? 개발자 단위 테스트 안녕하세요. 많은 개발자들이 중요성은 알지만 하지 않거나 못하는 것이 있습니다. 바로 단위 테스트입니다. 하지 않는 이유로는 많은 이유를 듭니다. 비즈니스 로직에 집중하는 시간도 부족한데 무슨 테스트를 작성하는가? 이것도 나중에 유지보수가 되어져야하니 부담스럽다 귀찮다 저 또한 마찬가지로 막연하게 테스트를 작성하라고 했을 때는 귀찮음을 많이 느꼈습니다. 하지만 요즘은 스스로 테스트 코드 작성의 룰을 세우고 테스트 코드를 작성하고 있습니다. 오늘은 단위 테스트를 해야하는 이유에 대해서 공유드리도록하겠습니다. 테스트의 범위 테스트는 위의 이미지와 같이 5개의 범위로 나눌 수 있습니다. 단위 테스트를 제외한 나머지는 아래와 같이 정의되어집니다. 통합 테스트 : 여러 작업 단위가 연계된 워크플로우를 테스트 하기.. 2020. 3. 3.