Development

    [토비의 스프링 3.1] 2장 테스트

    테스트란 무엇인가? 애플리케이션이 복잡해질 수록 변경을 어떻게 대응할지 전략을 짜는게 매우 중요해집니다. 이전 챕터에서는 변경에 조금 더 쉽게 대응할 수 있도록하는 객체지향 설계의 중요성과 그 방법에 대해 다루었는데요. 이번 챕터에서는 테스트 기술에 대해서 다루려고 합니다. 테스트는 왜 필요할까요? 만들어진 코드에 확신을 가질 수 있게 해줍니다. 변화에 유연하게 대처할 수 있는 자신감을 갖게 해줍니다. 테스트가 잘 구성되어 있다면 기존 코드에 변경이 발생하더라도 기존 기능이 여전히 잘 동작하는지 쉽게 검증할 수 있습니다. 그럼 테스트는 어떻게 해야 좋을까요? 테스트 설계 내 계좌에서 다른 사람에게 돈을 보내는 송금 서비스가 있다고 생각 해보겠습니다. 실제로는 이것보다 훨씬 복잡한 아키텍처를 가지겠지만 간..

    [토비의 스프링 3.1] 1장 오브젝트와 의존관계

    Reflection, Default Constructor Reflection을 이용해 오브젝트를 생성하기 때문에 Default Constructor가 필요하다고 이야기 함. 코드가 어떤식으로 작성되기 때문에 그런걸까? val someClass = SomeClass::class.java val constructors = someClass.getDeclaredConstructor() constructors.isAccessible = true val instance = constructors.newInstance() Class에 대한 Reference 획득 → 해당 Class의 생성자 획득 → 생성자를 사용할 수 있게끔 접근 지정자 public 으로 변경 → 생성자를 이용해 인스턴스 생성 이와 같이 Defau..

    코틀린 기초: 함수 정의와 호출

    코틀린에서 컬렉션 만들기 코틀린은 자체적인 컬렉션 클래스를 제공하진 않으나 자바보다 더 풍부한 API를 지원합니다. val set = hashSetOf(1, 7, 53) // class java.util.HashSet val list = arrayListOf(1, 7, 53) // class java.util.ArrayList val map = hashMapOf(1 to "one", 7 to "seven", 53 to "fifty-three") // class java.util.HashMap 함수를 호출하기 쉽게 만들기 Named Parameter 이름 붙인 파라미터를 사용하면 함수의 파라미터가 많을 때 함수 호출의 가독성을 향상시킬 수 있습니다. joinToString(collection, separa..

    코틀린 기초: 변수, 함수, 반복문 개요

    변수 타입 추론 (Type Inference) /* 컴파일러가 컴파일 타임에 타입 추론을 통해 타입을 알아낸다 */ val i = 10 // Int val s = "str" // String val l1 = 10L val l2: Long = 10 // 타입을 명시할 수도 있음 변경 가능한 변수 (mutable) var(variable) 키워드로 선언된 변수는 참조값을 변경할 수 있습니다. 다른 데이터 타입으로의 변경은 불가능합니다. var x = 10 x = 20 // ok // 같은 데이터 타입 값만 세팅이 가능하다 x = "test" // (x) compile error 변경 불가능한 변수( immutable ) val(value) 키워드로 선언된 변수에는 단 한 번만 참조값을 세팅할 수 있습니다. ..

    코틀린이란 무엇이며, 왜 필요한가?

    코틀린의 등장 배경 코틀린은 자바의 대체제로 자주 언급되는데요. 하지만 처음 개발될 당시엔 자바를 대체 하는것이 목표는 아니었습니다. 코틀린의 개발사 Jetbrains에서 개발을 주도하던 드미트리(Dmitry Jemerov)는 코틀린을 개발할 당시 스칼라를 제외한 언어들에는 찾고자 하는 기능이 존재하지 않았고, 스칼라는 컴파일 시간이 매우 느렸기때문에 아쉬움이 있었다고 말했습니다. 결국 코틀린을 통해 원하는 기능을 모두 지원하면서 자바만큼 빠르게 컴파일하는 것이 주요 목적이었던 것입니다. 그러다보니 코틀린은 다수의 유용한 기능을 제공하며, 아직 자바 만큼은 아니지만 빠른 컴파일 타임을 가진 언어로 개발되었습니다. 코틀린의 주요 장점 그럼 코틀린은 어떤 장점을 지니고 있을까요? 1. 간결한 구문 언어의 표..