8강. lateinit, lazy()class Person( private val name: String) { val isKim: Boolean get() = this.name.startsWith("최") // 홍길동 -> 홍** val maskingName: String get() = name[0] + (1 until name.length).joinToString("") { "*" }}fun main() { val person = Person("홍길동")}클래스 인스턴스화가 이뤄지며 name에 '홍길동'이 들어감만약, 인스턴스화 시점과 프로퍼티 초기화 시점을 분리하고 싶다면?테스트 코드 작성테스트 코드의 특징은 각 테스트 메소드가 Person을 각각 ..
1강 제네릭과 타입 파라미터Cage 클래스동물을 넣거나 꺼낼 수 있음methodsgetFirst() - 첫번째 동물을 가져옴put(animal) - 동물을 넣는다.moveFrom(cage) - 다른 cage에 있는 동물을 모두 가져온다.Codeclass Cage { private val animals: MutableList = mutableListOf() fun getFirst(): Animal { return this.animals.first() } fun put(animal: Animal) { this.animals.add(animal) } fun moveFrom(cage: Cage) { this.animals.addAll(cage..
Iteration Protocol ES6에 도입되어 데이터 컬렉션을 순회하기 위한 규칙 Iteration Protocol을 준수하면 for.. of, Spread 문법을 사용할 수 있음. Iteration Protocol = Iterable Protocol + Iterator Protocol const array = [1, 2, 3]; for (const value of array) { console.log(value); } console.log(...array); Iterable Protocol Symbol.iterator 메소드를 구현한 객체를 의미한다. (나 순회 할수 있어! 라고 알려주는 척도) const array = [1, 2, 3]; // iterator가 배열에 존재하는지 여부 consol..
생소한 Deno에 대한 기본적인 개념을 정리 하고자 한다. 사용법은 어렵지 않으므로 document를 읽어본다. deno 출현 배경 라이언 달(Ryan Dahl)은 JSConf.EU 행사 첫날의 저녁 세션에서 "Things | Regret About Node.js"라는 제목으로 nodejs 설계실수를 발표하며 deno를 소개함. Node.js 사용자는 너무나 많기 때문에 Node.js의 잘못된 것들을 당장 바로잡는 것이 어렵게됨. TypeScript와 같은 파생 프로젝트도 생겨나면서 빌드 시스템과 프로젝트 자체를 관리하는 툴만으로도 굉장히 복잡해졌음. 외부 라이브러리가 꼭 npm 저장소를 통해야만 한다는 것은 웹의 이상적인 방향과도 맞지 않음. NodeJS 설계 실수 1. Promises를 고집하지 않은..
JAR library나 일반 application을 배포하는 형식. 여러개의 자바 클래스 파일과, 클래스들이 이용하는 관련 리소스를 하나의 파일로 모아서 자바 플랫폼에 응용 소프트웨어나 라이브러리를 배포하기 위한 패키지 포맷. WAR web application을 지원하기 위한 압축방식으로 jsp, servlet, gif, html, jar 등을 포함. war는 단독으로 실행이 안되고 서버 컨테이너(was)에 의해 실행되어야하므로 배포디스크립터(web.xml)가 담겨있다. 출처 https://sbell92.tistory.com/39 jar / war 정리 java로 개발한 application을 배포할때는 jar, war 형태롤 배포하게 된다. 이 둘은 완전히 동일한 형식이나 war는 web applic..
WebRTC (Real-Time Communication) WebRTC 란 웹 브라우저만으로 실시간 화상 통신을 구현할 수 있는 API이다. 기존에는 플래시와 같은 서드 파티 소프트웨어를 사용하여 화상 통신을 구현 했으나 WebRTC를 사용하여 서드 파티를 사용하지 않고 웹브라우저로만 와상 통신 서비스가 가능해졌다. 모든 브라우저가 아닌 WebRTC기능을 포함한 브라우저(Chrome)을 사용해야 가능하다. (https://caniuse.com/#search=webrtc) WebRTC API getUserMedia: 사용자 단말기의 미디어 장치를 액세스할 수 있는 방법을 제공한다. 미디어 장치라 함은 마이크와 웹캠을 의미한다. getUserMedia 를 통해 미디어 장치를 액세스 하게 되면 미디어 스트림 ..