분류 전체보기 1341

함수와 변수

fun main(args: Array) { println("Hello, world"); } 함수를 선언할 때, fun 키워드를 사용한다. 파라미터 이름 뒤에 그 파라미터의 타입을 쓴다. 변수 선언을 할 때도 마찬가지 방식이다. 함수를 최상위 수준에 정의할 수 있다(자바와 다르다.) 꼭 클래스 안에 함수를 넣어야 할 필요 X 배열도 일반적인 클래스와 마찬가지다 코틀린에서 자바와 달리 배열 처리를 위한 문법이 따로 존재하지는 않는다. 출력하기 위해서는 println()을 쓴다. 코틀린 표준 라이브러리는 여러 가지 표준 자바 라이브러리 함수를 간결하게 사용할 수 있게 감싼 래퍼를 제공 최신 프로그래밍 언어 경향과 마찬가지로 줄 끝에 세미콜론이 생략이 가능하다. 함수 void 형식을 경우 위와 같이 사용하면 되..

코틀린 도구 사용

https://kotlinlang.org/docs/home.html Kotlin Docs | Kotlin kotlinlang.org 코틀린 코드 컴파일 코틀린 소스코드를 저장할 때는. kt라는 확장자를 파일에 붙인다. 코틀린 컴파일러는 코틀린 소스코드를 분석해서. class파일을 만들어 낸다. 코틀린 컴파일러로 컴파일한 코드는 코틀린 런타임 라이브러리에 의존한다. 런타임 라이브러리에는 코틀린 자체 표준 라이브러리 클래스와 코틀린에서 자바 API 기능을 확장한 내용이 들어있다. 코틀린으로 컴파일한 애플리케이션을 배포할 때는 런타임 라이브러리로 같이 배포해야 한다. 코틀린은 그래들(gradle), 메이븐(maven), 앤트(ant) 등의 빌드 시스템과 호환된다. IntelliJ와 코틀린 가장 다양한 기능을 ..

코틀린 철학

실용성 코틀린은 실제 문제를 해결하기 위해 만들어진 실용적인 언어이다. 코틀린은 다른 프로그래밍 언어가 채택한 이미 성공적으로 검증된 해법과 기능에 의존한다.(언어의 복잡도가 줄고, 더 쉽게 배울 수 있다) 특정 프로그래밍 스타일이나 패러다임을 사용할 것을 강요하지 않는다. 도구를 강조한다. 좋은 언어만큼이나 편리한 개발환경도 생성성향상에 필수적이다. 코틀린의 경우 intelliJ 아이디어의 개발과 컴파일러의 개발이 맞물려 이뤄져 왔다 간결성 개발자가 코드를 새로 작성하는 시간보다 기존 코드를 읽는 시간이 더 길다. 코드가 더 간단하고 간결할수록 내용을 파악하기 쉽다. 코틀린은 의도를 쉽게 파악할 수 있는 구문구조를 제공하고, 그 의도를 달성하는 방법을 이해할 때 방해가 될 수 있는 부가적인 준비 코드가..

코틀린 응용

코틀린의 서버 프로그래밍 서버 프로그래밍?? 브라우저에 HTML 페이지를 돌려주는 웹 애플리케이션 모바일 애플리케이션에게 HTTP를 통해 JSON API를 제공하는 백엔드 애플리케이션 RPC 프로토콜을 통해 서로 통신하는 작은 서비스들로 이뤄진 마이크로 서비스 위와 같은 서버 프로그램을 하기 위해 꾸준하게 새로운 기술, 프레임워크들이 생기고 발전해 왔다 코틀린은 자바 코드와 매끄럽게 상호 운용할 수 있다는 장점이 있다. 새로운 컴포넌트를 작성하거나, 기존 서비스 코드를 코틀린으로 이식하는 경우에 모두 잘 들어맞는다. 자바 클래스를 코틀린으로 확장해도 아무 문제가 없으며, 코틀린 클래스 안의 메서드나 필드에 특정 애노테이션을 붙여야 하는 경우에도 아무 문제가 없다. 시스템 코드는 더 간결해지고 신뢰성이 높..

코틀린 특성

코틀린의 주요 특성 코틀린의 주목적은 현재 자바가 사용되고 있는 모든 용도에 적합하면서도, 더 간결하고 생산적이며 안전한 대체 언어를 제공하는 것이다. 코틀린의 활용할 수 있는 가장 일반적인 영역 서버상의 코드(웹 애플리케이션의 백엔드) 안드로이드 디바이스에서 실행되는 모바일 애플리케이션 자바뿐 아니라 자바스크립트로도 코틀린을 컴파일할 수 있다. 코틀린 코드를 브라우저, 노드에서 실행할 수 있다. 코틀린은 어느 한 문제 영역만을 해결하거나 소프트웨어 개발이 처한 어려움 중 일부만을 다루기 위한 언어가 아니다. 코틀린은 개발과정에서 수행해야 하는 모든 과업에 있어 폭넓게 생성성을 향상해준다 코틀린은 구체적인 영역의 문제를 해결하거나 특정 프로그래밍 패러다임을 지원하는 여러 라이브러리와 잘 융합된다. 코틀린..

child_process

노드에서 다른 프로그램을 실행하고 싶거나 명령어를 수행하고 싶을 때 사용 현재 노드 프로세스 외에 새로운 프로세스를 띄워서 명령을 수행함. 명령 프롬프트의 명령어인 dir을 노드를 통해 실행(리눅스라면 ls를 대신 적을 것) 파이썬 프로그램 실행하기 파이썬3이 설치되어 있어야 함 assert: 값을 비교하여 프로그램이 제대로 동작하는지 테스트하는 데 사용합니다. dns: 도메인 이름에 대한 IP 주소를 얻어내는 데 사용합니다. net: HTTP보다 로우 레벨인 TCP나 IPC 통신을 할 때 사용합니다. string_decoder: 버퍼 데이터를 문자열로 바꾸는 데 사용합니다. tls: TLS와 SSL에 관련된 작업을 할 때 사용합니다. tty: 터미널과 관련된 작업을 할 때 사용합니다. dgram: UD..

Node/노드 기능 2022.07.24

worker_threads

노드에서 멀티 스레드 방식으로 작업할 수 있음. isMainThread: 현재 코드가 메인 스레드에서 실행되는지, 워커 스레드에서 실행되는지 구분 메인 스레드에서는 new Worker를 통해 현재 파일(__filename)을 워커 스레드에서 실행시킴 worker.postMessage로 부모에서 워커로 데이터를 보냄 parentPort.on(‘message’)로 부모로부터 데이터를 받고, postMessage로 데이터를 보냄 new Worker 호출하는 수만큼 워커 스레드가 생성됨 여러개의 워커 스레드 const {Worker, isMainThread, parentPort, workerData} = require('worker_threads'); if(isMainThread){ //메인스레드 const t..

Node/노드 기능 2022.07.24

crypto와 util

암호화는 멀티 스레드로 돌아간다. 암호화는 가능하지만 복호화는 불가능 암호화: 평문을 암호로 만듦 복호화: 암호를 평문으로 해독 단방향 암호화의 대표 주자는 해시 기법 문자열을 고정된 길이의 다른 문자열로 바꾸는 방식 어떤 문자열을 hash함수를 통해 나온 결과는 항상 같기 때문에, 해시 결과만 저장하면 된다. Hash const crypto = require('crypto'); //헤시는 복호화가 힘들기 때문에 해커들이 복호화하지 않는다 console.log(('base64 = ', crypto.createHash('sha512').update('비밀번호').digest('base64'))); console.log(('hex = ', crypto.createHash('sha512').update('비밀..

Node/노드 기능 2022.07.24