일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Kotlin in action 5장
- 백준 13460 Python
- 자바 ORM 표준 JPA 프로그래밍 7장
- 20055
- Kotlin in action 6장
- 코틀린
- 스프링 핵심 원리
- 13460 구슬탈출 2
- 코틸린인액션
- 20055 컨베이어 벨트 위의 로봇
- 스프링 핵심 원리 이해
- Python
- 기능개발 python
- 싱글톤 컨테이너
- 7장 고급매핑
- Kotlin In Action
- KotlinInAction
- 코틀린인액션
- 백준
- Kotlin in action 3장
- 객체 지향 설계와 스프링
- kotlin in action 정리
- 고급매핑
- Kotlin in action 10장
- spring
- Kotlin
- 백준 20055 컨베이어 벨트 위의 로봇
- 스프링 핵심 원리 - 기본편
- 스프링 컨테이너와 스프링 빈
- 컨베이어 벨트 위의 로봇 Python
- Today
- Total
목록분류 전체보기 (159)
기록하는 습관

** 이 글은 Kotlin In Action을 읽고 정리한 글입니다. ** 10.1 애노테이션 선언과 적용 10.1.1 애노테이션 적용 애노테이션 적용을 위해서는 적용하는 대상 앞에 애노테이션을 붙이면 된다. 애노테이션은 '@'과 애노테이션 이름으로 이루어진다. 예를 들어 JUnit 프레임워크를 사용한다면 테스트 메서드 앞에 '@Test' 애노테이션을 붙이면 된다. class MyTest{ @Test fun testTrue(){ Assert.assertTrue(true) } } 애노테이션의 인자로는 원시 타입의 값, 문자열, enum, 클래스 참조, 다른 애노테이션 클래스, 배열이 들어갈 수 있다. 애노테이션의 인자를 지정하는 문법은 자바와 약간 다르다. 클래스를 애노테이션 인자로 지정할 때는 @MyAn..

** 이 글은 Kotlin In Action을 읽고 정리한 글입니다. ** 1. 널 가능성 fun strLenSafe(s: String?) = s.length() 타입 이름 뒤에 물음표(?)를 붙이면 그 타입의 변수나 프로퍼티에 null 참조를 저장할 수 있다. val x:String? = null val y:String = x 널이 될 수 있는 값을 널이 될 수 없는 타입의 변수에 대입할 수 없다. 안전한 호출 연산자 ?. null 검사와 메서드 호출을 한 번의 연산으로 수행한다. val country = this.company?.address?.country 엘비스 ?:연산자 이항 연산자로 좌항을 계산한 값이 널인지 검사한다. 좌항 값이 널이 아니면 좌항 값을 결과로 하고, 좌항 값이 널이면 우항 값..

** 이 글은 Kotlin In Action을 읽고 정리한 글입니다. ** 1. 람다 식과 멤버 참조 1-3. 람다 식의 문법 { x:Int, y:Int -> x + y } 코틀린 람다 식은 항상 중괄호로 둘러싸여 있다. 화살표(->)가 인자 목록과 람다 본문을 구분한다. 실행 시점에 코틀린 람다 호출에는 부가 비용이 들지 않으며, 프로그램의 기본 구성 요소와 비슷한 성능을 낸다. 1) 함수 호출 시 맨 마지막 인자가 람다식이라면 이를 괄호 밖으로 빼낼 수 있다. people.maxBy() { p -> p.age } 2) 람다가 어떤 함수의 유일한 인자이고 괄호 뒤에 람다를 썼다면 호출 시 빈 괄호를 없애도 된다. people.maxBy { p -> p.age } 3) 람다의 파라미터가 하나뿐이고 컴파일..

** 이 글은 Kotlin In Action을 읽고 정리한 글입니다. ** 1. 클래스 계층 정의 1-1. 코틀린 인터페이스 interface Clickable { fun click() } class Button : Clickable { override fun click() = println("I was clicked") } >>> Button().click() // I was clicked 코틀린에서는 클래스 이름 뒤에 콜론(:)을 붙이고 인터페이스와 클래스 이름을 적는 것으로 클래스 확장과 인터페이스 구현을 모두 처리한다. override 변경자는 상위 클래스나 상위 인터페이스에 있는 프로퍼티나 메서드를 오버라이드 한다는 표시다. 코틀린에서는 override 변경자를 꼭 사용해야 한다. 인터페이스 메..

** 이 글은 Kotlin In Action을 읽고 정리한 글입니다. ** 1. 코틀린에서 컬렉션 만들기 코틀린은 자체 컬렉션을 제공하지 않는다. 표준 자바 컬렉션을 활용하면 자바 코드와 상호작용하기 훨씬 더 쉽기 때문. val set = hashSetOf(1, 7, 53) val list = arrayListOf(1, 7, 53) val map = hashMapOf(1 to "one", 7 to "seven", 53 to "fifty-three") 코틀린 컬렉션은 자바 컬렉션과 똑같은 클래스다. 하지만 코틀린에서는 자바보다 더 많은 기능을 쓸 수 있다. ex) last(), max() val strings = listOf("first", "second", "fourteeth") println(strin..

** 이 글은 Kotlin In Action을 읽고 정리한 글입니다. ** 1. 기본 요소 : 함수와 변수 1-1. 함수 코틀린에서 if 는 식(expression)이지 문(statement)이 아니다. 식 : 값을 만들어내며 다른 식의 하위 요소로 계산에 참여할 수 있다. 문 : 자신을 둘러싸고 있는 가장 안쪽 블록의 최상위 요소로 존재하며 아무런 값을 만들어내지 않는다. 자바에서는 모든 제어 구조가 ‘문’ 인 반면, 코틀린은 루프를 제외한 대부분의 제어 구조가 ‘식’이다. // 블록이 본문인 함수 (본문이 중괄호로 둘러싸인 함수) fun max(a : Int, b : Int) : Int { return if ( a > b ) a else b } // 식이 본문인 함수 (등호와 식으로 이뤄진 함수) f..

** 이 글은 Kotlin In Action을 읽고 정리한 글입니다. ** 0. Kotlin 이란? Java 와의 상호운용성을 고려하고 실용성을 갖춘 언어 서버 개발, 안드로이드 개발 등 Java가 사용중인 곳이면 대부분 Kotlin을 사용할 수 있다. Java보다 더 간결한 코드로 편하게 사용 가능하다. 1. 정적 타입 지정 언어 모든 프로그램 구성 요소의 타입을 컴파일 시점에 알 수 있고 프로그램 안에서 객체의 필드나 메서드를 사용할 때마다 컴파일러가 타입을 검증해줌 참고) 동적 타입 지정 언어란? 타입과 관계없이 모든 값을 변수에 넣을 수 있다. 메서드나 필드 접근에 대한 검증이 실행 시점에 일어난다. 장점 - 코드가 더 짧아지고 데이터 구조를 더 유연하게 생성하고 사용할 수 있다. 단점 - 이름을..
##1. 회복성 패턴 서비스에 장애가 발생했을 때, 문제가 전파되는 것을 막는 구현 방식은 3가지가 있다. Circuit Breaker 서비스 호출을 모니터링 하여 일정 timeout을 넘기면 실패 횟수가 카운팅 되고 조건에 충족되면 회로 차단기가 활성화 되어 다른 서버로의 장애 전파를 막는다. Fall back 회로 차단기에 의해 서비스 호출이 실패하면 대체 코드를 서비스 한다. Bulk head 스레드를 격리된 구획으로 관리하여 특정 스레드에 문제가 발생시 전체 application이 다운될 위험을 방지한다. ##2. 종류 Hytrix Hystrix는 Netflix에서 Circuit Breaker, Fall back, Bulk head 패턴을 구현한 라이브러리. 2018년도에 공식적으로 개발 종료. ..