9장 제네릭스 실체화한 타입 파라미터를 사용하면 인라인 함수 호출에서 타입 인자로 쓰인 구체적인 타입을 실행시점에 알 수 있다. 선언 지점 변성을 사용하면 기저 타입은 같지만, 타입 인자가 다른 두 제네릭 타입 Type와 Type가 있을 때 타입 인자 A와 B의 상위/하위 타입 관계에 따라 두 제네릭 타입의 상위/하위 타입 관계가 어떻게 되는지 지정할 수 있다. List를 인자로 받는 함수가 있다고 했을 때, List타입의 값을 전달할 수 있는지 여부를 선언 지점 변성을 통해 지정할수 있음. 사용 지점 변성은 같은 목표(제네릭 타입 값 사이의 상위/하위 타입 관계 지정)를 제네릭 타입 값을 사용하는 위치에서 파라미터 타입에 대한 제약을 표시하는 방식으로 달성 제네릭 타입 파라미터 제네릭 타입의 인스턴스를..
Reactive Programming 데이터가 통지되면 이에 반응하여 데이터를 처리 하는 방식의 프로그래밍 모델. 즉, 프로그램에서 필요한 데이터를 직접 가지고와서 처리하는 방식(pull)이 아닌 데이터를 받은 시점에 처리하는 방식(push). 이를 구현하기 위해 데이터를 만들어내는 생산자와 이를 소비하게 되는 소비자로 역할을 나눠 처리하는 프로세스를 가지게 된다. 소비자와 생산자의 역할이 분리되어 있으므로, 생산자는 데이터를 생산하여 전달하는 역할까지 수행하며, 소비자는 데이터를 받아서 처리하는 역할만을 수행한다. 즉, 생산자와 소비자는 각각의 역할만 충실하게 수행하면 되고, 반대편에서 어떤 처리를 하는지에 대해서는 관심 밖의 일이다. 이처럼, 역할이 분리됨에 따라 쉽게 비동기 구현이 가능 Reacti..
같이 근무했던 시니어 개발자분께서 내용이 좋다면서 추천해주셔서 링크를 통하여 동영상을 시청했다. 분량은 대충 1시간 가량 되는데, JPA를 사용하면서도 하이버네이트에 대한 충분한 학습을 하지 못해서 겪었던 지난 1년간의 많은 시행착오들이 생각이 났고, Kotlin을 메인으로 사용했을때의 다양한 선택지에 대해서 고민을 해볼 수 있었던거 같아서 매우 유익했다고 할 수 있다. Alternatives to JPA 데이터를 표현하는 관점에 따라 달라 질 수 있다. Relational OOP 두 가지 관점 중 어디를 중점으로 설계 하느냐에 따라 방향이 크게 달라질 수 있다. 데이터 중심(data-centric)의 경우, OOP적인 설계가 크게 맞지 않을 수 있고, 요즘 ORM을 사용하는 것이 유행인것 마냥 흘러가고..
본 글은 How to make sense of Kotlin coroutines을 읽고 발번역(?)한 내용입니다. 영어에 유창한 분들은 링크를 참고해주세요.코루틴은 완벽하게 읽고 유지 보수가 가능한 비동기 코드를 작성하는 좋은 방법이다. Kotlin은 단일 언어 구문으로 비동기 프로그래밍의 기본 요소를 제공하는데, 바로 suspend 키워드이다. 이 키워드와 함께 라이브러리 함수가 빛을 발합니다.What is a coroutine?Kotlin팀은 Coroutine을 경량 스레드: Light-Weighted-Thread로 정의했습니다. 그것들은 실제 스레드가 실행 할 수 있는 일종의 작업입니다. Kotlinlang.org의 배너는 다음과 같습니다.가장 흥미로운 점은 스레드가 특정 "정지 지점"에서 코루틴 실..
현재 재직중인 회사에서 코틀린을 주력으로 사용하고 있는데, 지난 1년 정도 코틀린과 스프링부트를 사용해보면서 겪었던 삽질이나 좋았던 점을 스터디를 통하여 한 번 정리하면 좋겠다하는 마음에서 정리하게 됬다.시작하기 어렵지 않다. Spring Intializer에서 Kotlin 프로젝트를 쉽게 생성 할 수 있으며, 물론 버젼의 제약이 있긴 하겠지만 기존 자바 기반으로 운영하고 있더라도 쉽게 Koltin을 통한 추가 기능 개발이 가능하다.현재 코틀린은 1.3.21 버젼까지 사용할 수 있으며 SpringFramework 5.X, SpringBoot 2.X부터는 공식적으로 코틀린에 대한 지원을 시작했다.SpringFramework 5.2 부터는 코틀린의 협력적 멀티테스킹을 수행할 수 있는 코루틴에 대한 지원이 들..
- Total
- Today
- Yesterday
- Spring MVC
- WebFlux
- ecma
- Package Control
- Squelize.js
- Handlebars
- EJS
- Sublime Text 2
- Prototype
- Spring
- 스프링
- HTTP
- Spring Boot
- cluster
- Kotlin
- maven
- package.js
- implicit prototype chain
- jade
- Express.js
- RestTemplate
- springboot
- http method
- tomcat
- node.js
- pm2
- SideBarEnhancements
- Til
- Sublime Text 3
- HttpClient
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |