1. 코틀린(Kotlin)?
 

  

코틀린은 Andorid Studio 개발사인 Jet Brains에서 2011년에 공개한 언어로 Google I/O 2017 에서 안드로이드의 공식 개발 언어로 채택되며 계속해서 성장하고 있는 언어입니다.



2. 코틀린 사용 범위

 

1) 안드로이드 개발

2) 서버개발

코틀린 공부 전까지는 안드로이드 개발을 위해서만 사용하는 줄 알았으나 서버사이드 개발에서도 사용합니다.




3. 코틀린의 장점


1) 무료 오픈 소스

코틀린 언어와 컴파일러 라이브러리 및 코틀린과 관련된 도구는 모두 오픈소스이며 어떠한 목적에도 무료료 사용 가능합니다.


2) 정적 타입 지정언어

코틀린 컴파일러가 문백으로 타입을 자동으로 유추하기때문에 변수 선언 시 모든 변수의 타입을 명시할 필요가 없습니다. 


fun main(args: Array<String>) { val test =3 println("test >> "+test) println("test type >> "+ test.javaClass.name) }



3) 함수형 프로그래밍 & 객체지향 프로그래밍


코틀린은 자바처럼 객체지향 언어인 동시에 함수형 프로그래밍의 장점을 채택하는 언어입니다.


함수를 인자로 전달 한다던가 함수에서 새로운 함수를 만들어서 반환하는 등 함수형 프로그래밍의 장점을 활용 할 수 있습니다.



출처 및 참고 


코틀린 로고 

https://play.kotlinlang.org/?_ga=2.60276845.192411083.1583667055-667909187.1583667055#eyJ2ZXJzaW9uIjoiMS4zLjcwIiwicGxhdGZvcm0iOiJqYXZhIiwiYXJncyI6IiIsImpzQ29kZSI6IiIsIm5vbmVNYXJrZXJzIjp0cnVlLCJ0aGVtZSI6ImlkZWEiLCJjb2RlIjoiLyoqXG4gKiBZb3UgY2FuIGVkaXQsIHJ1biwgYW5kIHNoYXJlIHRoaXMgY29kZS4gXG4gKiBwbGF5LmtvdGxpbmxhbmcub3JnIFxuICovXG5cbmZ1biBtYWluKCkge1xuICAgIHByaW50bG4oXCJIZWxsbywgd29ybGQhISFcIilcbn0ifQ==


참고

Kotlin IN ACTION





함수형 컴포넌트


함수형 컴포넌트?

지금까지 리액트에서 컴포넌트를 작성할 때 class 문법을 이용해서 정의를 했습니다. 라이프 사이클 API와 State를 사용할 필요가 없을경우, props만 전달받아 뷰를 렌더링 해서 간단하게 정의하는 컴포넌트를 의미합니다.


특징

1) 라이프사이클, State등 불필요한 기능을 제거한 상태이기 때문에 일반 클래스형 컴포넌트보다 메모리 소모량이 적고 성능도 조금 더 빠릅니다.

2) ES6의 화살표, 비구조화 할당 문법도 사용 가능합니다.


비교

일반 컴포넌트


import React, { Component } from 'react';

class test extends Component {
render() {
return (
<div>
TEST {this.props.number}
</div>
);
}
}

export default test;


함수형 컴포넌트


import React from 'react';

function Test(props){
return (
<div>
TEST {props.number}
</div>
);
}

export default Test;


함수형 컴포넌트 - ES6


import React from 'react';

const Test = ({num}) => (
<div>Test {num}</div>
)

export default Test;




참고 : 리액트를 다루는 기술(저:VELOPERT)

'언어 > ReactJS' 카테고리의 다른 글

[React ]리덕스를 사용한 상태 관리  (3) 2019.06.14
[React] 리덕스 개념  (0) 2019.05.24
[React] 라이프 사이클 함수  (0) 2019.05.07
[React] 컴포넌트 반복  (0) 2019.05.05
[React] Ref  (0) 2019.05.02

+ Recent posts