개발&TIL(23)
-
스프링 부트 - #1 소개
스프링 부트 소개 스프링의 개발 환경 설정의 어려움을 보완하고자 진행한 프로젝트 환경 설정을 최소화 하고 비즈니스 로직에 집중하도록 도와 생산성을 크게 향상스프링 부트 특징 임베디드 톰캣, 제티, 언더토우를 사용하여 독립 실행 가능 스프링 애플리케이션 개발 통합 스타터를 제공하여 메이븐/그레이들 구성 간소화 스타터를 통한 자동화된 스프링 설정 제공 번거로운 XML 설정 X JAR을 사용하여 자바 옵션만으로 배포 가능 애플리케이션의 모니터링과 관리를 위한 스피링 액츄에이터(Spring Actuator) 제공 스프링 부트는 스프링 프레임워크에 속하는 도구중 하나 스프링 부트 스타터 들여다보기 스프링 부트 스타터를 이용하면 간편하게 설정가능 스타터는 '특정 목적을 달성하기 위한 의존성 그룹' 으..
2020.11.17 -
코틀린학습 - #5 타입 시스템
코틀린의 타입 시스템은 코드의 가독성을 향상시키는데 도움이 되는 몇가지 특성을 제공 널이 될수 있는 타입 읽기 전용 컬렉션 널 가능성 널이 인자로 들어올 수 없다면 다음과 같은 함수 정의 가능 fun strLen(s: String) = s.lengthstrLen() 함수는 String 인스턴스여야 하므로 결코 실행시점에 NullPointException이 발생하지 않는다. 이 함수가 nul과 문자열을 인자로 받을 수 있게 하려면 타입 이름 뒤에 물음표(?)를 명시해야 한다. 모든 타입은 기본적으로 널이 될수 없는 타입이다. Type? = Type 또는 null if 검사를 통해 null 값 다루기 fun strLenSafe(s: String?) : Int = if (s != null) s.length e..
2020.11.17 -
코틀린학습 - #4 람다
람다 식과 멤버 참조 lambda expression - 기본적으로 다름 함수에 넘길 수 있는 작은 코드 조각을 뜻한다. 무명 내부 클래스로 선언해서 사용하던 방식을 함수형 프로그래밍으로 전환하여 함수를 값처럼 다르는 접근 방법을 택하는것 무명 내부 클래스로 리스너 구현하기 button.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { /* TODO */ } }); 람다로 리스너 쿠현하기 button.setOnClickListener { /* TODO */ } 람다와 컬렉션 람다를 사용해 컬렉션 검색하기 (가장 나이 많은 사람 찾기) val people = listOf(Person("Allice", 2..
2020.11.16 -
코틀린학습 - #3 클래스
클래스 계층 정의 인터페이스에 프로퍼티 선언이 들어갈 수 있다. 번잡스러움을 피하기 위해 일부 표준 메소드를 생성해준다. sealed 는 클래스 상속을 제한한다. 클래스 이름 뒤에 콜론을 붙이고 인터페이스와 클래스 이름을 적는 것으로 클래스 확장과 인터페이스를 모두 처리한다. override 변경자는 상위 클래스나 상위 인터페이스에 있는 프로퍼티나 메소드를 오버라이드한다는 표시이다. 상위 타입의 이름을 꺽쇠 괄호 사이에 넣어서 "super"를 지정하면 어떤 상위 타입의 맴버 메소드를 호출할지 지정할 수 있다. 게터와 세터에서 뒷받침하는 필드에 접근 field 라는 특별한 식별자를 통해 뒷받침하는 필드에 접근할 수 있다. open, final, abstract 변경자: 기본적으로 final 코틀린의 클래스..
2020.11.11 -
Spring Tests에서 스케쥴링 제외하기
스프링 배치에서 @Scheduled(fixedDelay = 10 * 1000) 로 선언된 스케쥴링이 테스트 실행시 실행되는 현상을 제거 ConditionalOnProperty 애너테이션을 추가하여 셋팅 설정 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Configuration import org.springframework.scheduling.annotation.EnableScheduling import org.springframework...
2020.11.10