
부트캠프라 실시간이어서 다시보기나 보강이 제공되지 않기 때문에..!
항상 아날로그로 메모를 해두는 편,, 그래서 페이지별 리뷰 Let's Go

Activity = 화면단위를 말한다.
No Activity = 화면이 없는 것.
Activity가 1개만 있는 어플 = Single Activity 어플
-> 존재할 수 있다.
안드로이드는 최소 1개 이상의 Activity를 가진다.
'?' = 옵셔널
앞에서 선언된 자료형일수도 null 일수도 있다는 뜻
fun main () {
var inPut : String = 2 // 값이 무조건 문자형이어야 함.
var inPut1 : String? = 2 // 값이 문자형이거나 null
즉, '?' 기호가 붙어있지 않은 자료형은 무조건 값이 존재해야함.
int = 정수형
String = 문자형 (기본적으로 null 이 안되는 자료형)
에러 = 익셉션 = 예외처리 같은 맥락으로 사용됨.

자료형을 코드줄에 명시하는 것은 필수는 아님.
코틀린은 똑똑해서, 입력된 값을 바탕으로 자료형을 자동으로 추측함.
'=' 기호는 자료값을 직접 할당할 때 사용됨.
'?:' 기호는 옵셔널 언래핑
-> 만약 값이 존재하지 않으면 바로 '?:' 뒤에 나오는 값을 넣겠다는 뜻
옵셔널 언래핑 나만의 정의 세우기
옵셔널로서 명시된 자료형이 아닌 null 값을 가질 수 있었지만, 언래핑을 통해서 null 값이 되지않도록 함. 따라서 자료형은 '~옵셔널 -> ~ 자료형'이 됨.
옵셔널 언래핑이란? (Google official)
옵셔널은 값이 있을 수도 있고 없을 수도 있는(nil) 타입을 나타내는데, 이 옵셔널 값을 직접 사용하려면, 즉 nil이 아님을 확인하고 내부의 값을 꺼내는 과정이 필요합니다. 이 과정을 옵셔널 언래핑이라고 합니다.
찾아보니 강제 언래핑, 암묵적 언래핑에 '!' 느낌표 기호를 사용하는 방법도 있는 것 같다. 추가 공부 진행해야겠다.
fun main () {
var userInput2 = userInput ?: "옛다 이거다"
// userInput2의 자료형은 String
엇 잠깐... 항상 형태는
[ 변수명 : 자료형 = 값 ] 이라고 하셨는데 쓰다보니 뭔가 이상하다.
확인해봐야지. 이것이 바로 TIL의 순기능 ❤️🔥
'==' 는 일치한다.
'!=' 는 일치하지 않는다.
':' 자료형 선언 ( : ~ 여기가 자료형입니다.)
'=' 값 대입 ( = ~ 여기가 값입니다. )
아 너무 어렵다. 언더바도 출력값이 자기 멋대로고 물결기호도 여러개 쓰니까 삭선됨...

일단 cmd + D가 코드 한줄을 복사하는 단축키
예외처리를 최상단에서 해결하는 것이 좋다.
익셉션, 에러, 예외의 상황은 앞에서 체크할 것. OK인 상황을 맨 아래에서 처리.
해당 페이지는
의 기능을 가진 미니 프로젝트를 구현하기 위한 기능정의이다.
지금 바로 도전해보겠다!!
fun main () {
코드를 입력하세요

위에서 예외처리를 통해서 처리한 부분이라면,
아래에서는 또 확인하는 로직을 추가하지 않아도 된다. (아직 잘 이해하지 못해서 계속 인지한 상태에서 학습해야할듯)
안내문구는 상수로 처리 가능하다.
다국어 지원할 때도 상수로 처리 가능하다. (이 부분도 이해못함)
반복처리와 디버깅에 관한 내용 시작.
반복 : while 문
-> 조건이 참일 동안에 ~
컴퓨터 성능에 영향을 미치는 두 놈.
1) CPU
2) RAM 메모리
While문이 무한 반복되는 경우, CPU를 괴롭힌다.
무한 '연산'이기 때문에 CPU에 과부하
'break'는 'While'문에서 break 위의 것들로부터 탈출시킨다.
즉, '무한굴레'만 벗어나는 것
반면, 'return'은 함수자체에서 탈출하는 것이다. 즉시 종료될 수 있음.
로그찍기 (이 부분은 어떤 기준으로 로그를 찍고 디버깅하는지 1도 감을 못잡았다.
println ([test 8])이런식으로 하나하나 로그찍어서 버그 해결하시던데....
체크해뒀다가 공부해야지!

자료형은
1) 원시형
2) 참조형
fun main () {
var someValue1: Int = 111
var someBalue2: String = "dddd"
var someValue3: Boolean = true
var someValue4: Any = "dlskjlk"
var someValue5: String? = null
var someValue6: Any? = null
var someObject : Any = Any()
var otherObject = someObject
var someArray = arrayListOf(1,2,3)
println("Hello World!")
}
이게 예시였는데, 설명해주시다가 다들 너무 어려워하는 것 같다고 멈추셔서 개인 학습 해야할 것 같다.
노션이 레퍼런스 방식이라고도 하셨다.
레퍼런스 방식 나만의 정의 세우기
권한이 여러 사람에게 있어서 공유 문서의 수정이 모든 곳에 적용되는 것처럼,
A와 B가 있을 때, A를 수정하면 B도 똑같이 변경되는 것을 말한다.
즉, A와 B는 다른 놈처럼 보이지만 결국 A==B가 되는 것
참조형이기 때문에 (같은 포인터, 같은 주소값)을 가지고 있어서 그렇다고 한다.


한국어로 논리 로직 먼저 작성
-> 작성한 한국어 로직 주석처리
-> 해당 로직들을 따라가면서 코드 작성
-> 예외 처리 먼저 하고, OK 상황은 마지막에 처리
'()' 이렇게 붙어있는 소괄호를 쓰는 두가지 경우
1) 함수호출 및 정의
-> CPU 사용은 '로직'
2) 무언가를 생성할 때 (메모리에 올릴 때)
-> 메모리 사용은 '자료구조 알고리즘'
var userInput2 = userInput ?: "옛다 이거다"
-> [ 변수 : 자료형 = 값 ]형태 안맞는 것 같아서 확인 필요
미니 프로젝트 재현
연애 시뮬레이션 프로그램 만들어보기
스무고개 게임 재현
역기획 해보기
조건문 예시코드 많이 살펴보고 외우기
디버깅 쪽 이해 못했음
상수 선언, 변수 선언 이해 못함
중괄호 쓰는 거 아직 약함
상수 처리 하는 부분 연습 많이 필요함
조건문 전반적으로 약함
정리 잘 하셨네요! 🙌
읽다가 Kotlin 관점에서 몇 가지 추가로 정리해봤어요 😊
1. 디버깅 – 로그는 어디에 찍어야 할까?
→ "지금 이 변수에 뭐 들어있는지 보고 싶다!" 싶은 줄에 로그를 찍으면 됩니다.
2. 변수 vs 상수 선언
→ 바뀌는 값은
var, 고정된 값은val로 선언해요.예를 들어 사용자 이름은
var, 인사말 메시지는val로!다국어 지원할 때도 이렇게 고정 메시지를 상수로 선언해요:
3. 중괄호는 언제 쓸까?
→ 중괄호
{}는 코드 블럭(덩어리)을 만드는 용도예요.함수, 조건문, 반복문 등에서 사용됩니다.
4. 상수 처리는 언제 필요할까?
→ 처음엔 어렵지만, "이 값은 고정이고 자주 쓰이네?" 싶으면 상수로 빼두는 습관이 생깁니다.
하다 보면 자연스럽게 감이 잡혀요 😄
5. 조건문 – 어렵지 않아요!
→ 분기 처리할 때 쓰이며, 기본적인 if-else 패턴은 금방 익숙해져요.
🔥 Kotlin은 null 안정성과 문법 간결성이 강점이라, 익숙해지면 코딩이 한결 편해집니다!
화이팅입니다 💪