본문 바로가기
버킷리스트/앱 만들기

오공완(with 코드팩토리의 플러터 프로그래밍) #1-1 다트 입문하기

by 또또도전 2024. 7. 3.
반응형

// 이곳에 쓴 내용은 앱 만들기라는 버킷리스트를 달성하기 위해 플러터를 공부하면서 정리하고 있는 내용입니다.

플러터에 대해 아는 것이 거의 없기 때문에 정리하면서 오류가 있을 수 있습니다.

오류를 발견하신 분은 댓글 남겨 주시면 감사하겠습니다.

//이 주석 표시가 있는 곳은 책의 내용이 아닌 제 개인적인 생각을 넣은 부분입니다.

 

유튜브 영상을 따라 했으니 이제 계획대로 책으로 돌아왔다. 책이 600페이지가 넘어서 하루에 20쪽씩 하면 넉넉잡아 한 달 넘게 걸릴 듯하다. 뒤로 가면 엄청난 코드들을 입력할 테니 2달을 잡아야겠다. 8월까지 이 책을 끝내보도록 하자.

 

  다트 입문하기(기초문법)

 

시작점인 엔트리 함수 기호로 main(){}을 사용.

void는 아무것도 반환하지 않는다는 뜻.

소괄호 안에는 입력받을 매개변수 지정할 수 있으며, 비어 있으면 아무런 매개변수도 받지 않는다는 뜻.

 

주석은 // 또는 /* */, ///를 사용

 

//변수는 빈 박스라고 개념을 잡고 있다. 박스 안에는 비어 있을 수도 있고, 어떤 물건(값)이 들어 있을 수도 있다. 어떤 것이 들어 있는지 혹은 어떤 것을 넣어야 할지 알려주기 위해서 박스 밖에 매직으로 이름을 적어 놓고, 어떤 값을 넣어야 하는지도 지정해 둔다. 그게 변수 타입으로 이해를 하고 있다.

 

var 변수명 = 값; 으로 변수를 선언함. var는 자동으로 타입을 추론하기 때문에 타입을 선언하지도 않아도 됨.

변수값은 변경 가능하단 변수명 중복은 불가능

 

dynamic 역시 var처럼 변수의 값으로 변수타입을 추론을 함. 단, var는 한 번 추론한 변수 타입을 바꿀 수는 없지만, dynamic은 말 그대로 다이내믹해서 아무 값이나 집어넣어도 됨. 위 예제에서 name=1을 넣으며 오류가 생김. 왜냐하면 문자타입으로 인식을 해놓은 상태인데 정수를 넣었기 때문에..

dynamic은 처음 값을 문자로 넣었고, 다음에는 숫자를 넣었지만, 오류가 발생하지 않는다.

final, const를 쓰면 변수 값을 절대로 변경할 수 없다. 단, final은 런타임, const는 빌드타임 상수, 코드를 실행하지 않은 상태에서 값을 값이 확정되면 const, 실행될 때 값이 확정되면 final을 쓴다고 한다. 이건 동영상에서 자세하게 설명되어 있다.

 

변수타입

  • String: 문자열
  • int: 정수
  • double: 실수(소수)
  • bool: 불리언(true/false, 참과 거짓을 값으로 가짐)

컬렉션

  • List: 여러 값을 순서대로 저장
  • map: 특정 키값을 기반으로 값을 검색
  • set: 중복된 데이터를 제거할 때

list타입은 한 변수에 여러 값을 넣을 수 있으며, 인덱스가 자동으로 부여되고, 인덱스는 0부터 시작. 이 인덱스를 이용해서 값을 불러올 수 있음. '리스트명.length'를 누르면 리스트의 길이(값의 개수)를 알 수 있음. length를 타이핑해도 되지만.(점)을 입력하면 다양한 메뉴가 뜨고 거기에서 length를 선택해도 됨.

 

add() 함수는 list에 값을 추가할 때

where() 함수는 List에서 원하는 값을 필터링해 준다. 책에서 이상한 기호가 있는데, ||(키보드에서 엔터키 위 돈 표시와 시프트를 누른 상태로 입력했다. 느낌상 or인 거 같아서 이렇게 입력했다. 이건 동영상에서도 안 나온 부분인 거 같은데 이해가 잘 되진 않는다.

map() 함수는 리스트를 순회하면서 값을 변경해 준다. where나 map은 리스트 내의 값을 실제로 없애거나 바꾸는 것 같다. 위 코드 맨 마지막을 참고.

 

reduce()는 전혀 이해가 안 간다. 일단, 코드는 입력해 보자.

fold() 함수, reduce와 논리는 같지만, 어떠한 타입이든 반환할 수 있단다.

 

 

오늘은 여기까지.. map, set, enum까지 정리해야 깔끔한 거 같은데..

내일 공부하면서 이 포스팅에 추가해야겠다. 머리가 아파서 오늘은 더 이상은 안 되겠다.

 

어제에 이어..

Map<키의 타입, 값의 타입>

얼마 전 배웠던 기억이 나는 getter와 setter(응.. 뭐였지?)가 나오네..

 

Set 타입(이 녀석은 내용이 낯설다.) 중복 없는 값들의 집합?

보드게임의 Set 개념인가? 값이 중복되어도 한 번만 출력된다. contains는 값이 있는지 확인하는 것이고, 리스트로 변환될 수 있으며 리스트를 Set으로 변환 가능

 

enum(이넘!! 지난번 유튜브 영상을 보면서도 이해가 안 갔던 녀석인데..) 일단, 한 변수의 값을 몇 가지 옵션으로 제한하는 기능이란다.

내가 이해한 바로는 드랍다운 방식이랑 비슷한 거 같다. 

 

이 글은 이렇게 마무리 하면 될 것 같다. 분명 이번 걸 마무리하고 새로운 장으로 넘어가야 하는데 가기 싫으다~

반응형