본문 바로가기
앱개발/안드로이드

[Kotlin] 01. 안드로이드와 코틀린 프로그래밍

by 큌 2024. 3. 9.
반응형

.

프로그래밍이란?

.

명령어를 조합하여 프로그램을 제작하고 컴퓨터와 소통하는 행위다.

특정한 목적에 맞게 사용하기 위해 다양한 프로그래밍 언어가 존재한다.

.

프로그래밍 언어와 그 목적

프로그래밍 언어 목적
Java, Kotlin 안드로이드 앱 개발
Javascript 웹 개발
Python 인공지능(AI), 데이터 분석 프로그램 개발

 

.

코틀린 소개

  • Java와 100% 상호 운용되며 Java와 비슷하지만 더 간결한 문법과 다양한 기능이 추가된 JVM 기반의 언어다.
  • JVM 바이트코드가 기본이지만, Kotlin/Native 컴파일러를 사용해 기계어로 컴파일도 가능하다.
  • 코틀린은 Java의 단점을 개선하였다.
    • 자료형(타입)을 반드시 명시하지 않아도 추론 가능한 기능 제공
    • 직관적이고 간결한 문법 (getter와 setter 배제, switch/case가 when ->으로 대체, in과 Range 사용 가능, data 클래스 사용 시 클래스의 getters/ setters/ equals()/ hashCode()/ toString()/ copy()를 한 줄로 선언 가능)
    • 안정적인 프로그램 (Null 객체를 참조하는 경우를 알아서 보호, 즉 Null 예외 컴파일 시점을 미리 방지)
  • 2017년 구글이 안드로이드의 공식언어로 Kotlin을 채택하였다.

.

코틀린 사용 개발환경

.

대표적으로 IntelliJ IDEA, Android Studio가 있다.

.

단축키

◇ IntelliJ IDEA 단축키

  • 라인 지우기: (Windows) Control + Y, (Mac) Command + delete
  • 주석 처리: (Windows) Control + /, (Mac) Command + /
  • 자동 포커싱: (Windows, Mac) ESC
  • 전체 찾기: (Windows) Control + Shift + F, (Mac) Command + Shift + F

◇ 개발 시 필수적인 단축키

  • 문서 저장: (Windows) Control + S, (Mac) Command + S
  • 복사와 붙여넣기: (Windows) Control + C / Control + V, (Mac) Command + C / Command + V
  • 라인 드래그: (Windows, Mac) Shift + 방향키<상, 하, 좌, 우>
  • 문서 최상단/하단 이동: (Windows, Mac) Home

.

코딩 컨벤션(Coding Conventions)

.

일관적이고 안정적인 프로그램을 만들기 위해 개발자들끼리 정한 코드 작성 규칙이다. 통일된 규칙을 사용하여 가독성이 좋은 코드를 작성하고, 유지보수가 용이하며, 협업을 효율적으로 진행할 수 있다.

.

자주 사용되는 코딩 컨벤션 종류

.

  • camelCase(카멜케이스): 변수, 메소드 이름 지정 시 사용. 첫 단어는 소문자로, 이어지는 단어의 첫 글자는 대문자로 표기. 예) hotelReservation
  • snake_case(스네이크케이스): 상수 이름 지정 시 사용. 모든 단어를 소문자로 표기, 단어 사이에 언더바(_)를 사용하여 연결. 예) hotel_reservation
  • PascalCase(파스칼케이스): 클래스 이름 지정 시 사용. 첫 글자와 이어지는 단어의 첫 글자를 대문자로 표기. 예) HotelReservation

.

입력과 출력(I/O)

.

프로그램과 컴퓨터 내부 또는 외부 장치 간에 데이터를 주고받는 것을 말한다.

  • 입력(Input): 예시 - 키보드를 통해 입력한 것을 불러와서 프로그램에서 확인
  • 출력(Output): 예시 - 프로그램의 결과를 모니터를 통해 출력

스트림(Stream): Queue 구조(FIFO)로 이루어진 입출력(I/O)을 위해 필요한 데이터를 운반하는 연결 통로다.

컴퓨터의 본업은 I/O(Input/Output)이며, OS의 역할은 장치를 제어하고 I/O 작업을 관리하는 것이다.

.

자료형

데이터를 저장할 수 있는 적절한 형태로 어떤 종류의 데이터인지 식별할 수 있다. 비트는 컴퓨터 메모리를 구성하는 방 한칸이라고 생각할 수 있다.

자료형 크기 특징
Long 64비트 정수
Int 32비트 정수
Short 16비트 정수
Byte 8비트 정수
Double 64비트 실수(소수)
Float 32비트 실수(소수)
Char 16비트 하나의 문자
Boolean 8비트 논리(참 또는 거짓)
String X 문자열

.

자료형의 중요성

.

효율적인 메모리 사용하기 위해 컴퓨터 하드웨어는 한정된 메모리를 가지고 있어 자료형을 올바르게 선택해서 메모리 사용을 최적화해야 한다.

예를 들어 작은 크기의 데이터를 저장할 때 8비트(Byte)로 충분한 경우, 그보다 큰 32비트(Int)를 사용하게 되면 필요 이상의 메모리 공간을 차지하게 된다. 이로 인해 메모리 사용이 비효율적이게 되어 성능 저하의 원인이다.

.

변수와 상수

.

변수와 상수는 프로그래밍에서 데이터를 저장하는 데 중요한 역할을 한다.

프로그래머는 데이터의 특성에 따라 적절한 변수나 상수를 선택하여 사용해야 한다.

  • 변수(variable): 변할 수 있는 값을 저장하는 데에 사용. 변수에 저장된 값은 언제든지 변경될 수 있다.
  • 상수(constant): 변하지 않는 값을 저장하는 데에 사용. 상수에 저장된 값은 프로그램 실행 중에 변경할 수 없다.

예를 들어, 프로그램에서 학생의 수강 신청 인원을 저장하고자 할 때, 변수와 상수를 적절히 사용할 수 있다.

.

변수

.

▷ 변수는 var 키워드를 사용하여 선언할 수 있다.

.

숫자를 저장하는 변수:

.

// var 변수이름: 자료형(생략가능) = 값
var itemCount = 50
println("처음 아이템 개수 변수 itemCount에는 ${itemCount}가 들어있어요")
itemCount = 75
println("아이템 개수가 증가하여 수정한 변수 itemCount에는 ${itemCount}가 들어있어요")

.

소수점을 포함하는 숫자를 저장하는 변수:

.

// var 변수이름: 자료형(생략가능) = 값
var temperature = 23.5
println("현재 온도 변수 temperature에는 ${temperature}이 들어있어요")
temperature = 25.0
println("온도가 상승해 수정한 온도 변수 temperature에는 ${temperature}이 들어있어요")

.

문자열을 저장하는 변수:

.

// var 변수이름: 자료형(생략가능) = 값
var city = "서울"
println("처음 도시 변수 city에는 ${city}이 들어있어요") city = "부산"
println("도시를 변경한 변수 city에는 ${city}이 들어있어요")

.

변수 선언과 초기화

.

var name: String = "홍길동"
var age: Int = 30
println("${name}님의 나이는 ${age}살입니다.") // 변수값 변경
name = "이순신"
age = 50
println("${name}님의 나이는 ${age}살입니다.")

.

불리언 값(참/거짓)을 저장하는 변수:

.

// var 변수이름: 자료형(생략가능) = 값
var isRaining = false
println("현재 비 여부 변수 isRaining에는 ${isRaining}이 들어있어요")
isRaining = true
println("비가 오기 시작해 수정한 비 여부 변수 isRaining에는 ${isRaining}이 들어있어요") 

.

상수

.

▷ 상수는 변경이 불가능한 값을 저장할 때 사용한다. 일반적으로 프로그램에서 변하지 않는 고정된 값을 저장할 때 사용한다.

.

상수 예시

.

// 원주율을 상수로 선언하고 값을 저장
val pi = 3.141592
// 원의 반지름을 상수로 선언하고 값을 저장
val radius = 5.0
// 원의 넓이를 계산 및 출력
val area = pi * radius * radius
println("반지름 $radius인 원의 넓이는 $area 입니다.")
// 상수의 값을 변경하려고 하면 에러 발생 (예시만을 위한 주석 처리)
// pi = 3.14
// Error: Val cannot be reassigned

 

반응형