코틀린의 장점
- 정적언어 : 컴파일시 자료형 검사 및 오류 발견이 가능
- NullPointerException을 방지함
- 함수형 프로그래밍, 객체지향 프로그래밍이 가능
- 세미콜론을 생략가능하다
- 간결하다!
메모리 구조 정리
- 코드 영역 : 명령어들이 적재됨
- 데이터 영역 : 문자열, 정적변수등이 적재됨
- 힙 : 프로그램 실행 중 동적으로 생성되는 객체가 적재됨
- 스택 : 코드블록 (aka.중괄호{}) 에서 사용한 변수등이 임시로 적재되며, 코드블록이 끝나면 스택에서 제거됨
메모리 공간 이상 적재시
힙은 Out of Memory 오류가 발생한다 (반복문 내의 메모리 할당 등)
스택은 Stack Overflow 오류가 발생한다. (반복적인 재귀적 함수 호출 등)
JVM을 사용하면 객체가 사용된 뒤 아무 참조가 없을 경우 가비지컬랙터(GC)가 동작하여 제거해준다.
힙과 스택은 그림의 화살표 방향 순으로 데이터가 적재된다.
관계 정리
- 프로젝트 ⊃ 모듈 ⊃ 패키지 ⊃ 파일
- 대형 프로젝트에서는 기능을 모듈 단위로 개발함.
코틀린 파일
- 코틀린 파일은 .kt 확장자를 가진다
- 일반적으로 코틀린 파일의 가장 위쪽에 그 파일이 속해있는 패키지를 정의한다
- 코틀린 파일에 클래스를 한개만 정의하고 파일명과 같을 경우 IntelliJ에서 .kt확장자는 기본적으로 숨겨진다.
- DoubleClass.kt처럼 하나의 파일에 여러 클래스를 정의할 수 있으며, 이 경우 파일은 클래스들을 묶는 역할을 한다.
패키지
- 패키지를 선언하지 않으면 자동으로 default 패키지에 포함된다.
- 패키지 이름은 웹사이트 주소처럼 .으로 구분해서 짓는다
- 예시) 네트워크 기능 구현시 net 과 같은 단어로 구분함 (com.meda.net.upload)
- meda.com이라는 웹사이트 도메인 사용시 "com.meda"과 같이 반대로 작성하는게 관례이다
- 패키지를 만드는 이유
- 협업이나 외부 코드를 import할 경우 클래스명이 충돌하는 경우가 발생할 수 있음, 하지만 패키지가 다르면 충돌이 발생하지 않음.
'스터디 > 코틀린' 카테고리의 다른 글
[Kotlin] 컬렉션(List, Set등)으로 문자열 Split하기 (0) | 2024.10.18 |
---|---|
[Kotlin] String 문자열을 구분자로 분할하기 (Split) (0) | 2024.10.18 |
[Kotlin] 02. 배열, 반복문, Nullable, 앨비스?:, 더블 뱅!! (0) | 2024.10.15 |
[Kotlin] 01. 함수, 문자열, When, If, 상수, 변수 (0) | 2024.10.15 |