.
프로그래밍이란?
.
명령어를 조합하여 프로그램을 제작하고 컴퓨터와 소통하는 행위다.
특정한 목적에 맞게 사용하기 위해 다양한 프로그래밍 언어가 존재한다.
.
프로그래밍 언어와 그 목적
프로그래밍 언어 | 목적 |
---|---|
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
'앱개발 > 안드로이드' 카테고리의 다른 글
[Kotlin] 02-1. 코틀린 프로그래밍 (2) (0) | 2024.03.09 |
---|---|
[Kotlin] 실습. 키오스크 프로그래밍 구현해보자. (0) | 2024.03.09 |