Flutter 9기 창업/📚 Today I Learned

[Flutter 9기 창업반] 앱 개발 창업 부트캠프 12일차

히니미니마니모✦🇸​​🇹​​🇴​​🇷​​🇾​✦ 2025. 12. 9. 21:41

음.. 오늘부터 본격적으로 튜터님과 공부하는 시간을 갖는데, 
실습문제나 예제들 정리해주셔서 너무 좋다.
문제 푸는것도 재밌고 풀면서 따로 내가 필요한 난이도로 gpt랑 이것저것 써보는 것도 좋다.

아직은 어려운 부분도 많지만, 후퇴하지 않고, 포기하지 않는 선에서 공부를 하자고 마음 먹었다.

저번주 너무 달린 느낌이라 그렇게 하다보면 지칠수도 있으니 ㅎㅎ

재미를 놓치지 않으면서도 집중할 때는 빡!!! 하고 집중하기로...

🟦 오늘 실습한 목록 (코드로 직접 작성·풀이한 것)

✔ 조건문 함수 만들기

  • 점수를 입력하면 “굿굿 / 낫밷 / 투밷” 반환하는 함수 직접 작성
  • return 분기 구조 성공적으로 작성

✔ 리스트(List) 생성 및 add()

  • List<String> feels = [];
  • feels.add(todayFeel(score));
  • 리스트에 함수 결과 저장 실습

✔ 리스트 반복 출력

  • for(int i = 0; i < feels.length; i++) { print(feels[i]); }
  • 리스트 전체 출력 성공 (for문 직접 작성)

✔ while 기본 반복문 연습

  • 숫자 증가 while
  • 숫자 감소 while
  • 조건 맞추기 (>=, <=) 직접 조정
  • 짝수/홀수 필터링 실습

✔ for문 연습

  • 1~20 중 3의 배수 출력
  • 중첩 조건문 포함된 for문 문제 풀이

✔ for + while 조합 문제

  • 숫자 출력 후 숫자만큼 이모지 출력하는 패턴 연습

✔ enum 선언

  • enum Mood { good, normal, bad } 직접 작성
  • 다른 enum 문제도 작성해봄 (Animal 등)

✔ switch문 연습

  • switch 기본 구조
  • enum과 switch 조합 실습
  • 잘못된 위치(변수 선언 위치 오류)도 직접 경험하고 이해

✔ 미니 프로젝트 코드 작성

  • score 변수
  • todayFeel 함수
  • 리스트 저장
  • 반복문 출력
  • 전체 흐름을 직접 구성한 코드 작성
  • 마지막엔 내가 준 리팩토링 버전과 비교하며 구조 파악

🟩 오늘 공부한 내용 (개념 정리)

✔ return의 개념 복습

  • return은 함수의 종료
  • 여러 return 써도 실행은 하나

✔ if / else if / else 분기 구조 복습

  • 조건 순서 중요성
  • 가드 패턴 구조 자연스럽게 사용

✔ for문 기본 흐름

  • 초기값 → 조건 → 증가
  • 리스트를 길이로 순회하는 방식 공부

✔ while문 기본 원리

  • 조건이 true일 동안 반복
  • 증가/감소가 없으면 무한루프되는 이유 이해
  • while 시작값이 조건과 맞아야 하는 이유 학습

✔ 리스트(List)

  • 생성 방법
  • add()로 값 추가
  • length로 길이 확인
  • 반복문으로 순회

✔ enum

  • 정해진 선택지를 묶는 타입
  • enum의 장점: 오타 방지, 명확한 상태 표현
  • enum과 switch의 궁합 학습

✔ switch 문법

  • case + break 구조
  • enum 값으로 분기하는 방식
  • 변수 선언은 switch 바깥에서 해야 한다는 규칙 이해
  • 값이 먼저 있어야 switch가 실행되는 원리 이해

✔ 함수 분리(역할 분리) 개념

  • 한 함수는 한 개의 역할만
  • score → Mood
  • Mood → 문자열
  • main에서는 흐름만 구성하는 구조 이해

✔ 클린 코드 감각

  • 코드가 “이야기처럼” 읽혀야 한다는 개념 이해
  • 삼항연산자와 if문의 가독성 차이
  • 너가 직접 "더 깔끔한 코드"를 구별해냄

실습 1)

 

//프로그램은 명령어들의 나열이다.

void main(){

print(“Dart 시작!!”);}

 

---------------------------------------------------------------------------------------------------------

 

실습 2)

Q1.

String name = 이지은;

int age = 53;

bool isStudent = false;

 

Q2.

final = 런타임 중 결정되는 값

런타임(Runtime) -> 값이 ‘언제’ 결정되느냐 -> 프로그램이 실행되는 순간! 지금 이순간~

 

final now = DateTime.now();

 

const = 컴파일 타임에 결정되있는 값(변경X)

그니까 코드 쓰기도 전에 이미 결정 되어있는 것들. 

 

const myroot = “경주 김씨 계림공파 34대손”;

 

------------------------------------------------------------------------------------

 

실습3)

void main(){

var a = 17;

var b = 3;

 

print(a / b);

print(a ~/ b);

print(a % b);}

 

---------------------클래스 연습도 좀... 

 

class Calculate{

void num(int a, int b){

 

print(a / b);

print(a ~/ b);

print(a % b);}}

 

void main(){

var c = Calculate();

 

c.num(17, 3);}

 

------------------------------------------------------------------------------------

 

실습 4)

 

String score(int a){

if (a < 0 || a >= 100 ) return “잘못된 점수입니다”;

if (a >= 90) return “당신의 점수는 ${a}이며 등급은 A”;

if (a >= 80) return “당신의 점수는 ${a}이며 등급은 B”;

if (a >= 70) return “당신의 점수는 ${a}이며 등급은 C”;

return “당신의 점수는 ${a}이며 등급은 D”;}

 

void main(){

print(score(86));}

 

우와.... 스위치 짱...

 

return switch (a) {

  <0 || >100 => "잘못된 점수입니다",

  >=90 => "A 등급입니다",

  >=80 => "B 등급입니다",

  >=70 => "C 등급입니다",

  _ => "D 등급입니다",

};

 

이거 연습해봐야징 히

; 말고 , 로 구분해야한다는 점을 유의!

 

---------------------------------------------------------------------------------------------------------

 

실습 5)

Q1.

if(var i = 0 ; i < 3 ; i++){

print(“안녕!!”);}

 

Q2.

int sum = 0

int n = 1

while(n <= 5){

sum += n;

n++;}

print(sum);}

 

--------------------------------------------------------------

 

for문 문제

1부터 20까지 숫자 중 3의 배수만 출력하라.

 

for(int i = 1 ; i <= 20 ; i++){

if(i % 3 == 0){

print(i);}}

--------------------------------------------------------------

while문 문제

10부터 1까지 숫자를 출력하되, 짝수만 출력하라.

 

int n = 10;

while(n > 0){

if(n % 2 == 0){

print(n);}

n--;}

 

---------------------------------------------------------------------------------------------------------

 

실습 6)

Q1.

void main(){

List<String>fruits = [“골드키위”, “망고”, “감홍사과”];

print(fruits[0]);}

 

Q2.

void main(){

List<int>num = [1,1,2,3,4,4,3,5,6];

Set<int>num2 = num.toSet();

print(num2);}

 

---------------------------------------------------------------------------------------------------------

 

실습 7)

Q1, Q2 묶어서...

 

enum Weather {sunny, cloudy, rainy}

 

void main(){

Weather today = Weather.rainy;

 

switch (today) {

case Weather.sunny:

print(“맑음”);

break;

 

case Weather.cloudy:

print(“흐림”);

break;

 

case Weather.rainy:

print(“비”);

break;}}

 

---------------------------------------------------------------------------------------------------------

 

실습 8)

Q1.

int add (int a, int b){

return a + b;}

 

void main(){

print(add(3, 7));}

 

Q2.

String hello(String name){

return “안녕, ${name}”}

 

void main(){

print(hello(“얌얌씨”));}

 

---------------------------------------------------------------------------------------------------------

실습 9)

 

//1. 기분 상태 

 

enum Mood {good, soso, bad};

 

//2. 기분 점수 

 

Mood scoreMood(int score){

if (score > 0) return Mood.good;

if (score == 0) return Mood.soso;

return Mood.bad; }

 

//3. 기분 상태 -> 말로 표현하기

 

String feelcheck(Mood feel){

switch (feel) {

case Mood.good:

return “굿굿”;

case Mood.soso:

return “쏘쏘”;

case Mood.bad:

return “shit!!!!”;}

}

 

//4. 메인

 

void main(){

//오늘 점수

int score = 3;

 

//점수

Mood today = scoreMood(score);

 

//기분 리스트

List<Mood>feelHistory = [];

feelHistory.add(today);

 

//출력

 

print(“오늘 점수 : ${score}”);

print(“오늘 기분 : ${feelcheck(today)}”);}

 

 

 

 

 

으아아아아아아!!!!!! 머리가 아프다 정말 ㅋㅋㅋㅋ 다음엔 문제 조금 쉽게 내주시라요.....엉엉😫💦