Android 앱개발 공부/TIL(Today I Learned)

[Android] TIL 10일차

bunny code 2024. 6. 3. 18:27

강의 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