Mockito Framework는 목 객체를 만들어 주는 Framework로 테스트하는 데 유용하게 쓸 수 있다. 목 객체란 테스트를 진행할 때 해당 코드 외의 의존하는 객체를 가짜로 만든 것을 지칭한다. 이러한 목 객체는 테스트하고 싶은 코드에 대해서 정확하게 테스트하기 위해서 사용된다. 1. 해당 코드가 아닌 의존관계에 있는 다른 코드에서 오류가 나거나 없는 경우 2. 네트워크나 DB 연결 등 외부의 요인에 영향을 받는 경우 이제 Mockito에 대한 여러 가지 활용법을 코드로 알아보자 먼저 필요한 라이브러리를 빌드하자. (Maven) org.mockito mockito-all 1.10.19 test junit junit 4.12 test 다음은 verify에 대한 테스트 코드이다. public vo..
JUnit Test를 진행하는데 실제 DB에 있는 데이터를 건들지 않고 테스트를 하고 싶은 마음에 시작한 프로젝트이다. 연습하는 김에 Java로 설정해 보았다. 먼저 Gradle로 라이브러리를 빌드하자 build.gradle compile group: 'org.springframework', name: 'spring-context', version: '4.3.7.RELEASE' compile group: 'commons-dbcp', name: 'commons-dbcp', version: '1.2.2' compile group: 'org.springframework', name: 'spring-jdbc', version: '4.3.7.RELEASE' compile group: 'org.mybatis', n..
hibernate-validator를 이용하여 유효성을 체크하는 방법이다. 먼저 필요한 라이브러리들을 빌드 한다. build.gradle compile 'javax.servlet:jstl:1.2' compile group: 'javax.servlet', name: 'javax.servlet-api', version: '3.0.1' compile group: 'org.hibernate', name: 'hibernate-validator', version: '5.1.3.Final' compile 'org.springframework:spring-webmvc:4.0.0.RELEASE' 만약 Maven을 사용한다면 pom.xml javax.servlet jstl 1.2 javax.servlet javax.ser..
자바스크립트에 있는 기본 타입은 아래와 같다. 1. Number 2. String 3. Null 4. Undefined 5. Boolean 0. 시작 자바스크립트는 느슨한 타입 체크 언어이다. Java처럼 변수의 타입마다 다른 예약어를 사용해야 하는 것이 아닌 var라는 하나의 예약어만으로 변수를 선언하고 어떤 타입의 데이터라도 담을 수 있다. 1. Number 숫자를 적어주면 된다. var int = 1; var float = 0.1; 모든 수는 실수로 처리됨으로 계산을 한다면 실수로 나타난다. 5 / 2 -> 2.5 만약 정수로 표현하고 싶다면 추가로 코딩이 필요하다. Math.floor(5/2) -> 2 2. String 문자를 홑따옴표나 큰따옴표로 감싸주면 된다. var single = 'S'; ..
ArrayList와 LinkedList는 Java에서 제공하는 Collection으로 List 인터페이스를 상속한다. 먼저 둘에 대해 알아보자. ArrayList는 배열을 사용한다고 생각하면 되는데 데이터를 추가하거나 삭제할 때 이미 크기가 정해져 있어 임시 배열을 생성해서 데이터를 복사하는 방법을 사용하고 있다. LinkedList는 각 노드의 앞과 뒤에 있는 노드의 주소로 연결되어 있어서 데이터를 추가하거나 삭제할 때 알고 있는 앞과 뒤쪽 노드의 주소 값만 바꿔주면 된다. 이제 앞에서 본 두 리스트의 차이점을 보자. 1. 검색 ArrayList는 각 데이터의 index를 가지고 있으므로 바로 검색할 수 있어 빠르다. LinkedList는 제일 앞에 있는 데이터부터 차례대로 찾아야 하기 때문에 느리다...
먼저 일차원 배열을 복사해보자 boolean[] bool1 = new boolean[1]; boolean[] bool2 = bool1; bool2[0] = true; 위와 같이 작성했을 때 boo1[0]은 false가 아닌 true를 return 한다. 왜냐하면, 배열 또한 객체이기 때문이다. 즉 bool2에 bool1의 값을 넘겨주는 게 아닌 주솟값을 넘겨준다. 그렇다면 어떻게 복사해야 같은 주솟값을 가지지 않을까? 세 가지 방법이 있다 (boolean 배열은 초기화하지 않아도 false를 담고 있다). 1. 새로운 배열을 만들어 해당 배열에 값을 넣어준다. boolean[] bool1 = { true }; boolean[] bool2 = new boolean[1]; for(int i = 0; i < ..
final 예약어를 예제와 함께 알아보자. - 순서 - 1. 클래스에 final이 붙으면? 2. 메소드에 final이 붙으면? - 변수에 final이 붙을 때 공통 - 3. 클래스 변수에 final이 붙으면? 4. 인스턴스 변수에 final이 붙으면? 5. 지역 변수에 final이 붙으면? 6. 매개 변수에 final이 붙으면? 7. 변수가 참조 자료형일 때 final이 붙으면? -------------------------------------------------------------------------- 1. 클래스에 final이 붙으면? final class SuperClass { } public class SubClass extends SuperClass { // 에러가 난다. } 상속되지 않..
제네릭이란 클래스 내부에서 사용할 데이터 타입을 외부에서 정할 수 있게 하는 기법으로 잘못된 타입이 사용될 수 있는 문제를 컴파일 과정에서 고칠 수 있게 해준다. 주로 Collections에서 많이 쓰이며 Java 5 버전에 추가되었다. 우선 간단하게 사용법을 보자 List list = new ArrayList(); list.add("S"); list.add(1); // 에러 String s = list.get(0); String i = list.get(1); // 에러 나지 않음 위 코드에서