0. 오리엔테이션 1. 코틀린의 기본의 기본을 읽혀요! - 코틀린이란 무엇일까? - 변수와 자료형, 연산자 2. 함수형 프로그래밍 이란? - 마법의 요술상자, 함수의 기본 - 요술상자, 함수 가지고 놀기 3. 프로그램 흐름의 제어 - 프로그램의 흐름을 제어해보자! 4. 코틀린의 표준함수 활용하기 - 코틀린과 표준함수 5. 강좌 마무리 프로젝트 |
[ 코틀린이란 무엇일까? ]
1. 코틀린의 탄생 배경
▶ 안드로이드 계열에서도 자바에 한계가 있기 때문에 보다 간단하고 편리한 언어인 코틀린이 등장
▶ 목표 : 풀스택 웹, Android와 iOS앱, 임베디드 IoT 등 다양한 플랫폼에서 개발하도록 하는 것
▶ 특징
- IDE(Android Studio의 모체)로 유명한 JeTBrains에서 개발 및 보급
* IDE : 코딩, 디버그, 컴파일, 배포 등 프로그램 개발에 관련된 모든 작업을 하나의 프로그램 안에서 처리하는 환경을 제공하는 소프트웨어 (출처: ko.wikipedia.org/wiki/통합_개발_환경)
- 코드 간결, 다양한 기능, 높은 호환성
- 문장 끝에 세미콜론 옵션
- Android Studio에서 안드로이드 공식 언어로 추가
- 변수는 Nullable(널 값 사용 가능)과 NotNull로 나뉘는데, 변수 선언시 '?'를 붙여 Nullable로 가능
2. 다양한 플랫폼
▶ 사용 가능한 플랫폼
1) Kotlin/JVM
- 자바 가상 머신 상에서 동작하는 앱을 만들 수 있다.
2) Kotlin/JS
- 자바스크립트에 의해 브라우저에서 동작하는 앱을 만들 수 있다.
3) Kotlin/Native
- LLVM기반의 네이티브 컴파일을 지원해 여러 타깃의 앱을 만들 수 있다.
▶ Kotlin/Native에서의 타깃
1) iOS (arm32, arm64, emulator x86_64)
2) MacOS (x86_64)
3) Android (arm32, arm64)
4) Windows (mingw x86_64)
5) Linux (x86_64, arm32, MIPS, MIPS little endian)
6) WebAssembly (wasm32)
3. 코틀린의 장점
▶ 자료형에 대한 오류를 미리 잡을 수 있는 정적 언어(Statically typed)
- 정적 언어 : 컴파일러가 타입을 검증해준다.
▶ 널 포인터로 인한 프로그램의 중단을 예방할 수 있다. (=NPE(Null Pointer Exception)에서 자유롭다)
→ 자바로 안드로이드할 때 널 포인트 오류로 골치 아팠는데 몹시 유용할 것 같습니다.
▶ 데이터형 선언 시 널 가능한 형식과 불가능한 형식 지원
▶ 자바와 완벽한 상호 운영 가능
- 자바로 작성하다가 코틀린으로 작성 가능
▶ 간결하고 효율적
▶ 함수형 프로그래밍과 객체 지향 프로그래밍이 모두 가능
▶ 세미콜론을 생략할 수 있다.
4. 자바 JDK 설치 하기
▶ 코틀린을 JVM 상에서 실행 → 기존 자바와 상호작용 + 자바 라이브러리를 이용하기 위해
▶ Oracle JDK : 보안 업데이트를 지속적으로 받으려면 '구독' 방식으로 라이선스 구매 필요
▶ OpenJDK : 제한 없이 사용 가능. 보안 서비스 의무가 없기 때문에 유지보수 어려움
▶ Azul의 Julu : TCK 인증을 통과한 OpenJDK를 묶어서 배포하는 제 3의 벤더
* TCK 인증 : 제작한 JVM을 배포하기 위해 OpenJDK 스펙을 구현한 JVM이 규격에 맞게 제대로 구현되었는지 검증하는 테스트 프로그램과 도구들로 구성된 테스트를 수행
▶ JDK 배포판의 선택 : Red Hat, OpenJDK, AZUL, Java ...
▶ JDK 설치 과정
1) JDK 다운로드
www.azul.com/downloads/zulu-community/?package=jdk
- LTS : 보안 업데이트 오랫동안 지원받을 수 있음
★ 설치 경로 기억 ★
2) 경로 설정
- 내컴퓨터 → 속성 → 고급시스템 설정 → 환경변수 → 시스템 변수
- 새로 만들기 → 변수이름: JAVA_HOME, 변수 값: 기억한 설치 경로→ Path에서 설치 경로 추가 확인
- 윈도우 + R → cmd → java -version 입력 → 자바 설치버전 확인
3) IntelliJ IDEA 설치
https://www.jetbrains.com/idea/download
- 2021년 1월 11일 기준 최신 버전으로 다운 받았습니다.
- 강의와 버전이 달라서 강의에서 설정하는 속성은 왼쪽바에서 설정할 수 있습니다.
4) 코드 작성
5. 폰트 설정 및 실행 방법
▶ File → Setting → font 검색
- D2Coding : github.com/naver/d2codingfont/releases
→ 강사님이 추천해주신 D2Coding Font가 개인적으로 가독성이 좋은 것 같습니다. 다른 코드 프로그램에도 적용해야겠습니다.
▶ fun : function(함수)을 정의하는 키워드
▶ main() : 진입점 역할의 함수
▶ { ... } : 함수의 구현부
6. 디컴파일
▶ 상단메뉴 Tools →Kotlin → Show Kotlin ByteCode → Decompile
→ 코틀린 코드가 훨씬 간결한 것을 확인할 수 있습니다.
6. 외부 인자를 정하는 main()
▶fun main(args: Array<String>) 을 활용한 새로운 코드
fun main(args: Array<String>) {
println(args[0])
println(args[1])
}
- Ctrl + D : 줄 복사
▶ 문자열 내의 변수는 ${식}으로 표현
fun main(args: Array<String>) {
println("args[0] = ${args[0]}") // 외부의 첫번째 인자
println(args[1]) // 외부의 두번째 인자
println(args[2]) // 외부의 세번째 인자
println(args[3]) // 외부의 네번째 인자
}
감사합니다!
'대외활동 > Naver Boostcourse' 카테고리의 다른 글
[부스트코스] 코틀린 프로그래밍 기본 1/2(함수편) - 널과 연산자 (0) | 2021.01.16 |
---|---|
[부스트코스] 코틀린 프로그래밍 기본 1/2(함수편) - 변수와 자료형 (0) | 2021.01.12 |
[부스트코스] 코틀린 프로그래밍 기본 1/2(함수편) - OT, 코틀린이란? (0) | 2021.01.11 |
<부스트 코딩뉴비 챌린지> 최종 후기 (0) | 2020.08.26 |
<부스트 코딩뉴비 챌린지> 중간 후기 (0) | 2020.08.15 |