강의 1주 차 내용 정리
프로그래밍이란? 프로그램 제작하는 것, 컴퓨터와 소통
사람과 컴퓨터 간의 소통을 목적으로 함, 특정한 목적에 적절하게 사용하기 위해 분야마다 사용하는 언어가 다름
Kotlin : 안드로이드 앱 개발 언어로 채택됨
* Java 단점을 개선함(3가지)
- 자료형(타입)을 꼭 명시하지 않아도 추론할 수 있다.
- 보다 간결하게 코드를 작성할 수 있다.
- Null 예외를 컴파일 시점에 미리 방지할 수 있어 더욱 안정적인 프로그램을 만들 수 있다
-> Null 예외에 대해서 자바보다 코틀린이 더 안전하다
* kotiln 특징
- JVM언어와 100% 호환되는 프로그래밍 언어입니다.
- 직관적이고 간결한 문법
- Null처리에 높은 안정성을 가진다.
JVM이란? 간단하게 말하면 소스코드를 작성하고 JVM이라는 단계를 거쳐서 JVM에 맞는 명령어를 수행하게 되는 것
* 안드로이드와 kotlin
안드로이드에서 kotlin을 사용하는 이유?
- 적은 노력으로 많은 작업을 할 수 있어요
- (Java보다) 더욱 높은 품질의 프로그램을 제작할 수 있어요
- 간결하고 안전하게 비동기 처리를 수행할 수 있어요 ->
심화과정에서 자세히 다룸
+ 슬랙, 당근도 kotlin 기반
* IntellieJ에 유용한 단축키
- 라인 지우기(command + del)
- 주석 처리(command + /) -> 한 번 더 입력 시 주석 해제
- 자동 포커싱(esc)
- 전체 찾기(command + shift + f)
* 개발에 유용한 단축키
- 문서 저장(command + s)
- 복사, 붙여 넣기(com + c, com + v)
- 라인 드래그(shift + 방향키)
- 문장 최상단, 최하단 이동(command + 방향키 <좌, 우>)
강의 2주 차 내용 정리
* 코딩 컨벤션(coding convention)
- 다른 사람들도 이해하기 쉽게 코드를 작성하는 규칙
장점
- 가독성 증가
- 유지보수 용이
- 효율적인 협업 가능
자주 사용하는 표기법
- camelCase : 주로 변수와 메서드 이름 지정 시 사용 ex) seoulfood -> seoulFood와 같이 작성
- snake_case : 주로 상수 이름 지정 시 사용 ex) seoulfood -> seoul_food와 같이 작성
- PascalCase : 주로 클래스 이름 지정 시 사용 ex) seoulfood -> SeoulFood와 같이 작성
* 출력과 입력
출력이란?
- 프로그램에서 다른 장치로 데이터를 전송하는 행위
- Output이라고 함
입력이란?
- 다른 장치로부터 데이터를 불러와서 프로그램에서 확인하는 행위
- Input이라고 함
* 자료형
프로그램의 모든 정보를 자료(Data)라고 함
자료를 저장할 수 있는 적절한 형태를 자료형이라고 함
비트는 컴퓨터 메모리를 구성하는 방 한 칸이라고 생각하면 됨
크기 | 특징 | |
Long | 64비트 | 정수 |
Int | 32비트 | 정수 |
Short | 16비트 | 정수 |
Byte | 8비트 | 정수 |
Double | 64비트 | 실수(소수) |
Float | 32비트 | 실수(소수) |
Char | 16비트 | 하나의 문자 |
Boolean | 8비트 | 논리(참 또는 거짓) |
String | X | 문자열 |
8bit = 1Byte
자료형이 중요한 이유? 컴퓨터 사양이 한정적임 + 적절한 자료형을 사용해야 보다 더 효율적으로 사용 가능
* 변수와 상수
변수
- var를 이용 (값이 변함)
- 변수는 재할당 했을 경우 전에 썼던 값이 지워진다.
// var num1:Int = 1
// var 변수이름:자료형(생략가능) = 값
// 값을 특정 자료형을 저장할 수 있는 변수이름에 대입한다
var num1 = 1
println("내 첫변수 num1 변수에는 ${num1}이 들어있어")
num1 = 5
println("변경한 변수 num1 변수에는 ${num1}이 들어있어")
-> 이처럼 실습을 통해 kotlin은 자료형 명시를 생략해도 알아서 추론해서 적용해 주는 걸 알 수 있었다.
상수
- val를 사용 (값이 변하지 않음)
val num1 = 1
println("내 첫변수 num1 변수에는 ${num1}이 들어있어")
-> 상수는 변수와 달리 값이 변하지 않기 때문에 추가적으로 지정이 불가능
num1 = 5
println("변경한 변수 num1 변수에는 ${num1}이 들어있어")
-> 만약 위와 같은 내용을 추가적으로 입력한다면 Val cannot be reassigned 에러가 발생
* 연산자의 종류
산술연산자 : +(더하기), -(빼기), *(곱하기), /(몫), %(나머지)
=(대입연산자) : 우측에 있는 값을 좌측의 변수명 또는 상수명에 대입
복합대입연산자 : 산술연산자 + 대입연산자 복합 (+=, -=, *=, /=, %=)
-> num += 10과 num = num + 10 동일한 의미
증감연산자 : 1을 더하거나 빼는 특수한 경우에 사용
- 전위, 후위연산자 두 가지 경우로 나뉨
- 전위 ex) ++num1, --num1 후위 ex) num1++, num1--
- 전위는 다른 연산 실행 전에 증감, 후위는 실행 후에 증감
var num1 = 10
var num2 = 20
var num3 = 30
// 후위연산자는 println연산을 실행후에 증감해요
println(num1++)
println(num1)
// 전위연산자는 println연산 실행전에 증감해요
println(++num2)
println(num2)
num3++
println(num3)
++num3
println(num3)
-> 증감연산자를 단독적으로 사용하면 결괏값이 동일하지만 이처럼 다른 연산과 같이 사용할 경우 차이가 발생
비교 연산자(로직 연산자)
- 두 개의 변수 또는 상수의 관계나 값을 비교할 때 사용(true 혹은 false 결괏값을 보여줌)
- 결과는 참 또는 거짓으로 Boolean연산자와 같이 사용
- >,>=,<, <=,==,!=
* 조건식의 사용
- 조건에 따라 프로그램을 사용하기 위해서 사용하는 문법, 식
- If, else, when 활용
- else if가 많아질 때는 when을 사용하는 게 가독성 좋음
- if는 최악의 경우에 모든 조건을 비교한다는 단점 -> if는 맨 위에서부터 전부 조건을 따지면서 내려오지만 when은 해당 변수의 값이 어디에 해당하는지 맞는 곳에 바로 들어가기 때문
If문 구조
// 조건식은 앞서배운 비교 연산자를 사용합니다
// 즉, 조건식 자리에는 true 또는 false의 결과가 들어갑니다
// 조건식이 true일때 중괄호 안의 코드를 실행합니다
if(조건식) {
// 실행할 코드
}
// 둘 중 한개의 코드만 실행됩니다
if(조건식) {
// 조건식이 true일때 실행할 코드
} else {
// 조건식이 false일때 실행할 코드
}
when문 구조
when(변수 또는 상수) {
값1 -> {
// 실행할 코드
}
값2 -> {
// 실행할 코드
}
else -> {
// 실행할 코드
}
}
* 반복문의 사용
- 논리에 맞게 반복해서 실행하는 문법, 식
- For, while 활용
- For에서 until 대신.. 을 사용해도 (차이점 : until은 ~이상 ~미만,.. 은 ~이상 ~이하)
- break는 가장 가까운 반복문에서 탈출하고 다음 블록으로 넘어감
- continue는 이후의 코드를 실행하지 않음
For문 구조
// 코틀린의 for 반복문은 다양한 형태가 존재합니다.
// 리스트(묶음)에서 하나의 요소들을 반복해서 가져오는 경우입니다
for(요소 in 리스트) {
소스코드 (로직)
}
// 숫자의 범위를 기준으로 반복하는 경우입니다
// 시작값이 0이고, 마지막값이 5라면 인덱스는 0,1,2,3,4이므로 총 5번 반복해요
// until을 생략해서 시작값..마지막값으로 사용할수도 있어요
for(인덱스 in 시작값 until 마지막값) {
소스코드 (로직)
}
while문 구조
// 코틀린의 while 반복문은 조건식, 증감식을 이용합니다
while(조건식) {
소스코드 (로직)
증감식
}
배우면서 느낀 점
1주차 강의 : 들으면서 자료형 이름을 생략해도 된다는 부분이 kotlin의 큰 장점이라고 느끼게 되었다. 난이도가 올라갈수록 코드의 양이 많아지고 복잡해지는데 그럴수록 이 장점이 더 돋보이지 않을까 생각이 든다.
2주차 강의 : 문법 기초 내용들이라 대체적으로 간단하지만 조건문(if,else,when)과 반복문(for,while)은 아직 완전히 이해하지 못한 느낌이 든다. 아무래도 예제를 많이 풀어보면서 익숙해져야 할 거 같다.
'Android 앱개발 공부 > TIL(Today I Learned)' 카테고리의 다른 글
[Android] TIL 12일차 (0) | 2024.06.05 |
---|---|
[Android] TIL 11일차 (2) | 2024.06.04 |
[Android] TIL 9일차 (0) | 2024.05.31 |
[Android] TIL 8일차 (0) | 2024.05.30 |
[Android] TIL 7일차 (0) | 2024.05.29 |