분류 전체보기 37

파일에 저장하기

어제는 파일에 저장된 내용을 읽어오는 방법을 써봤는데 오늘은 파일에 저장하는 방법을 알아봤다.save.writeAsStringSync('파일에 저장할 내용'); 다른 방법이 있을 수도 있지만 위는 어제 쓴 글에 readAsStringSync 방식과 같은 함수를 이용합니다.writeAsStringSync는 사용이 매우 쉽습니다. var save = File('파일 경로')save.writeAsStringSync('저장할 내용'); 먼저 파일 경로를 저장한 후에 경로에 함수를 사용해서 내용을 저장해주면 간단하게 저장하게 된다.

Flutter 2024.11.06

파일 읽기

파일 읽기 //csv형식의 text파일을 불러옴 final file = File('lib/characters.txt'); //텍스트 파일의 정보를 String 형태로 변환 final contents = file.readAsStringSync(); //String으로 저장한 파일을 ,를 기준으로 나눠서 분리하기 final stats = contents.split(','); //이후에 저장한 데이터를 3개로 나눠서 리스트 형식으로 다루기 if (stats.length != 3) throw FormatException('Invalid character data'); int health = int.parse(stats[0]); int a..

Flutter 2024.11.05

예외 vs 오류

예외예외는 예상한 상황과 다른 상황이 진행되는 것을 말한다.예외 상황이 발생하면 프로그램이 비정상적으로 종료가 되기 때문에 예외상황을 예상하고 처리해야 정상적으로 구동되게 된다. try~catch~finally try { //구동되는 코드를 짠다 String invalidNumber = "abc"; int result = int.parse(invalidNumber); print(result); // on은 오류중에서 특정한 형식의 오류만 골라내서 특정한 오류 구문을 사용} on FormatException catch (e) { print(e); // 오류구문이 발생하면 실행되는 부분} catch (e) { print(e); // 예외 구문이 끝난 후 무조건 실행된는 구문} finally ..

Flutter 2024.11.04

24.11.01

문제 해결   첫번째 코드에서 products라는 배열을 구성했고, String Pname, int Pprice로 구성되어있습니다. 저 배열을 이용해서 아래의 코드에서 키보드 입력과 비교해서 배열이 Pname과 같은 것을 찾고 그 물건의 Pprice를 찾고 총가격(totalPrice)에 추가하는 방식을 구성했다. 아래는 완성한 코드의 문제였던 일부를 가져온것이다.List products = [ Product("셔츠", 45000), Product("원피스", 30000), Product("반팔티", 35000), Product("반바지", 38000), Product("양말", 5000), ];String? inumber = stdin.readLineSync()!; ..

Flutter/캠프 2024.11.01

24.10.31

텍스트로 구동하는 간단한 형식의 쇼핑몰을 만드는 프로젝트를 만들고있었다. 쇼핑몰의 상품을 선택하면 물건을 장바구니에 인식을 시켜야하는데 하루종일해도 방법을 찾을 수가 없었다.다른 사람들은 모두 다 만들었는데, 나혼자 못하고 있는게 참 어이가 없기도 했고, 당황 스럽기도 하고 참 한심했다.근데 뭐 못할수도있는거지, 포기하지 않고 더 하다보면 잘하것지. 힘들지만 그래도 하나면 성공하면 다 될 거같은 기분이긴하다.

Flutter/캠프 2024.10.31

무한 루프

텍스트로 구동되는 간단한 형태의 쇼핑몰을 짜면서 첫번째로 마주한 문제가 항상 출력되는 메뉴를 만드는 것이었다.단순하게 반복문을 이용해서 구성하려고 했으나, 반복문은 반복횟수를 처음에 정해놓고 진행하게되어 어느 순간에는 무조건 끝나게 된다는 문제가 있었다. 그래서 'dart 무한 루프'로 검색을 해서 찾아보니 방법이 있었다.  아래의 코드는 검색을 통해서 찾은 방식을 적용한것이다.bool isRun = truewhile (isRun) { int i; print( "----------------------------------------------------------------------"); print(menu); print( "----------------..

Flutter 2024.10.30

함수형 프로그래밍

1함수형 프로그래밍(Functional Programming)함수를 체이닝을 이용해서 사용하는방식. 체이닝은 '.'을 이용해서 체인처럼 연결해서 사용하는 방식을 말한다. int number = -12345var result = number.abs().toString().contains('3');print(result); // true 체이닝 방식은 swift에서도 옵셔널 체이닝 방식으로도 쓰인다. 순수함수를 이용해서 가변적인 데이터 사용을 최소화한다.객체지향 프로그래밍과는 좀 다른 느낌인거같다.인터넷에 검색해보니 객체지향 프로그래밍은 명령형(어떻게 할건지에 대한 방식)이고 함수형 프로그래밍은 선언형(무엇을 할 건지를 설명하는 방식)이라고 한다. 두가지의 개발하는 방향이 다른 것 같지만, Swift의 경험..

Flutter 2024.10.29

24.10.28

문서 주석기본적으로 주석은 코드안에 들어있지만 컴파일할때는 없는 것처럼 인식되어, 개발자들이 코드를 분석할때 필요한 정보를 기록해놓을때 사용한다. 그래야 코드를 빠르게 이해하고 구조를 파악하는데 용이하기 때문이다. 이런 일반적인 주석 말고도 하나가 더있다. 바로 문서 주석이라는것이다. 주석처리가 되면 아예 인식이 안되는 다른것들과는 다르게, 문서주석은/// 또는 /**로 사용한다.  /** * 두 수의 곱을 반환하는 함수입니다. * * 이 함수는 [a]와 [b]를 곱하여 그 결과를 반환합니다. * 예를 들어, multiply(2, 3)은 6을 반환합니다. */int multiply(int a, int b) { return a * b;}위와같은 방식으로 사용한다. 일반주석과 비슷하지만, []를 이용하여 ..

Flutter/캠프 2024.10.28

git 사용해보기

MacBook에서 git을 사용해서 프로젝트를 관리해본적이 있다. Xcode로 했었는데, 이때는 Xcode 안에 있는 기능을 이용해서 버튼을 클릭해서 push, pull, commit등의 기능을 사용했다. Xcode에서 git과의 연동 기능을 제공하기 때문에 로그인만하고 쉽게 사용했었다. 그러나 이번에는 Flutter 프로젝트를 했기때문에 VSCode를 이용했고, Xcode와는 다르게 직접적으로 git과 연동해주는 기능은 없었다. 그래서 터미널을 이용해서 직접 연결을 해주어야했다. 기존에 사용했었기때문에 연동은 쉽게 했다. 그리고 git push, git pull, git commit은 기존에서 사용하던 용어이기에 쉽게 사용했다. 사용법 git 설치MacBook을 사용하면서 Xcode를 설치 할때 자동으..

정보 2024.10.24

firebase 문제(데이터 read관련) 해결편

firebae 연동 이후에 데이터를 쓰고, 데이터를 불러오는 과정에서 문제가 발생해서 해결방법을 찾고 있었다. 어제 하루 종일 혼자 해결하려고 했지만, 실패하고 오늘 다시 오류를 찾기 위해서 튜터 분에서 도움을 받던중, 아래 문장에서 오류가 있어보인다라고 말씀해주셨다.   'Timestamp' firebase에서 데이터 형식을 지정할때 시간 설정을 timestamp로 해놓은게 생각이 나서 찾아봤다. 분명 설정은 timestamp로 했지만 데이터를 입력하는 과정에서 들어간 데이터는 timestamp가 아니라 string타입으로 바뀐 시간 데이터가 들어간 것을 보았다. 그래서 맨처음 데이터를 생성할때 만들었던 timestamp로 만든 데이터를 삭제 해보았다. 삭제하고 새로고침을 눌러보니 불러드린 정보가 잘 ..