[ 개발자 D-181 ] 멋사 Flutter 5일차 비전공자 개발 일지

Yujin Jee·2025년 7월 16일
2

개발자D-day (멋사)

목록 보기
2/4
post-thumbnail

250716) 개발자 D-181

공부할 것들이 너무 많다. for, while, do while, when, if, else, boolean...
대학교 다닐 때 소프트웨어학과 복수전공 수업 항상 벼락치기만 했는데,
그때 제대로 들었으면...🥹 오늘부터는 회고 시간을 활용한 TIL
Let's Go

(1)

시작부터 모르겠다.

var result : myNumber.toIntorNull()

해당 코드에서 toIntorNull은 뭐고, 마침표는 왜 찍는 건지 파악해야한다.
보통 코딩을 하면서 RUN 했을 때 빨간 에러가 뜨면 프로그램이 죽었다고 봐야함.

NullPointerExeption ERROR 는 해당 메모리 공간으로 찾아갔는데, 값이 없다는 뜻.
heap = 메모리 공간

어저께 회고에서 강제 옵셔널, 암묵적 옵셔널을 언급하고 (!) 느낌표 기호에 대한 공부를 해야겠다고 적었는데, 오늘 강사님께서 느낌표는 쓰지말라고 하셨다. (?:) 이걸로 사용하는 게 좋다고 함.
바로 회신 받다니 완전 럭키비키🍀🍀

(2)

기획서, 기능정의서, 스토리보드, 요구사항정의서 등 강사님께서 가지고 계신 자료들 살펴봐야겠다.🚨
공식 문서를 찾아보는 게 도움이 많이 된다고 한다.

[ Cmd + shift + F ] 파일전체에서 문자를 검색하는 단축키
[ Cmd + A + Delete ] 디버깅 중단점 찍어둔 것들 한 번에 지우기

상수처리는 어떨 때 할까? 고민된다면, 기획자가 값을 바꾸자고 할 것이 뭐가있을까? 를 생각해보자. 하나하나 찾아서 바꾸려면 너무 어려우니, 키값만 바꿀 수 있게 미리 상수처리 할 것.
-> 키값이 이렇게 쓰는 게 맞나? (확인 필요)🚨

while문과 do while문의 차이

while 문은 조건을 먼저 체크한다. '선조건체크'
do while 문은 일단 진행하고, 조건을 체크한다. '일단 한다'
즉, do (실행하고), while (더 진행할지 생각한다) 고 나누어 생각해도 좋다.
그리고 do while문에서 do 뒤에는 '{ 중괄호를 열고, while뒤에는 중괄호를 열지 않는다.

(3)

Any는 아무 자료형이나 받는 것.
-> Any가 변수인가? 뭐라고 부르는지 확인해봐야겠음.🚨
when 은
조건이 T/F가 아니라 여러가지 일 때 활용한다.

continue vs break vs return
continue - 조건문 이외의 값을 제외하고 반복한다.
break - 무한루프에서 빠져나온다.
return - 함수 자체를 탈출한다.

변수를 할당한다의 개념 한 번 더 공부해야할 것 같다.🚨 지금 쓰려고 했는데 기억 안남 이슈..

오늘 내가 쓴 코드에 에러가 있었다
⬇️
이 에러의 원인은?
var userInputNumber 함수가 when문 앞에서 이미 할당되었어야 한다고 한다.
사실 이해를 잘 못했다. 어떤 함수는 안에 var 이 있었던 것 같은데 이 부분은 코드들을 좀 많이 보면서 익숙해져야 할 것 같다. 🚨

Range와 반복은 긴밀하다.
Scope = 범위 ex) 1번째줄 코드부터 19번째 줄까지
Control Flow = 흐름 제어

(계산기 만들기)

오늘의 미션!

[계산기 만들기]
난 개인적으로 점심시간 끝날 때쯤 시작되는 미션이 제일 중요한 것 같다.

우선, 계산기 만들면서 사용해보려고 시도중인 when문
조건은 여러 개인데, 여러 조건의 값들이 바로 변수에 꽂히는 상황에서 사용하면 좋다.

계산기 만들 때,
'숫자나 연산자가 아닌 다른 것이 입력되었을 때 오류 메시지를 출력'하는 단계에서 위와 같은 에러가 났다. (빨간 줄 표시된 부분)
⬇️

해당 부분은 자료형이 매치가 안되는 상황이었다. type 매치가 안된다는 뜻.
type 관련해서 좀 봐야할 것 같다. 🚨

😇 TODO

  • 연애 시뮬레이션 게임 만들기

  • 스무고개 게임 다시 만들기

  • 계산기 만들기

  • for, while, do while, if, else, if else, boolean 등 사용된 코드 예시 외우기

  • 손코딩으로 디스코드에 공유된 다른 분들 코드 작성해보기
    -> 논리흐름 따라가보기 위해

  • 역기획서 작성하기

😡 Weakness

  • toIntorNull , readln, list of, (?:) 등

  • 특히, 널세이프...? 완전 모르겠음. 근데 많이 나옴...;;

  • 그냥 다 약함... 말하는 고구마임... 공부하자!!😨

profile
02년생 스타트업 대표 | <비전공자 개발일지> 저자 | 멋쟁이사자처럼 병아리반

1개의 댓글

comment-user-thumbnail
2025년 7월 16일

정리 잘 하셨네요! 🙌
읽다가 궁금했던 부분 몇 가지 정리해봤어요 😊


1. toIntOrNull() 이 뭘까?
→ 문자열을 Int로 바꾸려 시도하고, 실패하면 null을 반환하는 Kotlin 함수예요.
이름 자체도 그대로 읽을 수 있어요: "to Int or Null" (인트로 바꾸거나, 못 바꾸면 null)

📌 cf. camelCase(카멜케이스)
낙타 등처럼 중간에 대문자로 단어를 구분하는 표기법!
예: userInputNumber, isLoggedIn


2. Any는 자료형(type)일까?
→ 네, Kotlin에서 AnyInt, String처럼 자료형입니다.
좀 더 정확히는 모든 클래스의 최상위 타입(Supertype) 이에요.
즉, String, Int, List, 사용자 정의 클래스 전부 다 Any로 처리 가능하다는 뜻!


3. 널세이프(null-safe)란?
null로 인한 오류(예: NullPointerException)를 사전에 방지하기 위한 Kotlin의 언어적 장치예요.

문법설명
?null 허용 타입 (String?)
?.null-safe 호출 (a?.length)
?:null이면 기본값 (Elvis 연산자)
!!null 아님을 단언 (위험함)

Java에서 자주 발생하던 null 문제를 Kotlin은 문법 수준에서 막아줍니다. 👍


4. userInputNumber 에러 난 이유
when의 조건식에서 userInputNumber를 사용했는데, 그 위에서 선언이 안 되어 있어서예요.
코드는 위에서부터 순차적으로 실행되기 때문에,
userInputNumberwhen보다 먼저 선언되어 있어야 해요!

val userInputNumber = readLine()?.toIntOrNull() ?: 11
when (userInputNumber) {
    ...
}
답글 달기