본문 바로가기

dart

(9)
[Flutter_개발] BMI 계산기 앱 만들기 이번 강의에서는 Flutter를 활용해 BMI(Body Mass Index) 계산기 앱을 구현했다.단순히 BMI를 계산하는 기능뿐 아니라, 앱 구조 설계, 테마 적용, 페이지 전환, 위젯 분리 등 실제 앱 개발에 필요한 핵심 개념들을 학습했다.프로젝트 구조 설계앱은 크게 입력 화면(HomePage) 과 결과 화면(ResultPage) 으로 구성된다.HomePage: 사용자가 성별, 키, 몸무게를 입력하는 페이지ResultPage: 계산된 BMI 값을 시각적으로 출력하는 페이지 이렇게 페이지별 폴더를 나누면, 화면이 여러 개인 프로젝트에서도 파일 관리와 유지보수가 쉬워진다.main.dart 기본 세팅main.dart에서는 앱 전체 구조를 관리한다.MaterialApp의 home 속성에 HomePage()를..
[Flutter_개발] 이번 주 총정리 1. 객체 지향 프로그래밍 클래스와 객체클래스는 객체를 만들기 위한 설계도이며, 객체는 그 설계도를 기반으로 생성된 인스턴스이다.속성(데이터)과 메서드(행동)로 구성된다.속성의 종류인스턴스 변수: 객체마다 별도의 값을 가짐.정적 변수(static): 클래스 자체에 속해 모든 객체가 공유.this 키워드로 현재 객체를 참조할 수 있다.생성자기본 생성자, 매개변수 생성자, 네임드 생성자 등 다양한 방식으로 객체 초기화를 지원한다.상속과 다형성자식 클래스는 부모 클래스의 속성과 메서드를 물려받아 사용할 수 있으며, 필요에 따라 재정의(override)할 수 있다.super 키워드를 통해 부모의 기능을 활용하면서 새로운 동작을 추가할 수 있다.final class를 선언하면 더 이상 상속이 불가능하다.이를 통해..
[Flutter_개발] 예외 처리, 라이브러리, 비동기 프로그래밍 1. 예외 처리예외(Exception): 실행 중 발생하는 비정상 상황. 처리하지 않으면 프로그램이 종료되지만, try-catch로 처리하면 정상 실행을 이어갈 수 있다.예외 종류Dart가 미리 정의한 예외 (ex: FormatException, IOException, TimeoutException)사용자가 정의하는 예외 (Exception 클래스를 상속해서 구현)class AgeException implements Exception { final String message; AgeException(this.message); @override String toString() => message; }예외 처리 구문try { int result = int.parse("abc");} ..
[Flutter_개발] 예외처리, enum 예외처리 (Exception Handling)예외란?프로그램 실행 중 예상치 못한 문제 상황을 의미한다. 예를 들어 문자열 "가"를 숫자로 변환하려 하면 null 값이 생기고, 이를 강제로 사용하면 런타임 에러가 발생하여 프로그램이 종료될 수 있다. 또한 존재하지 않는 파일을 열거나, 인터넷 연결이 끊어진 상태에서 네트워크 요청을 보내는 경우도 예외에 해당한다.try-catch 문법try 블록에는 오류가 발생할 수 있는 코드를 작성한다.catch(e) 블록은 예외가 발생했을 때 실행되며, e 객체에 구체적인 에러 정보가 담긴다.이 구조를 통해 프로그램이 강제 종료되지 않고 정상적으로 흐름을 이어갈 수 있다.try { int? value = int.tryParse("가"); print(value!); ..
[Flutter_개발] Git과 GitHub 1. Git이란?파일 변경 내역을 기록하고 추적하는 프로그램. 여러 사람이 동시에 작업할 수 있도록 돕는 분산 버전 관리 시스템(DVCS).중요 개념:스냅샷(Snapshot): Git은 파일 전체를 복사본으로 저장하지 않고, 변경 사항만을 기록해둠. 이 때문에 효율적이고 빠르다.분산 구조: 모든 개발자가 로컬에 전체 저장소를 복제해두기 때문에 인터넷이 없어도 작업 가능.활용 범위: 소스 코드 관리가 주 목적이지만, 문서, 데이터 파일 등 어떤 파일이든 버전 관리 가능.2. Git이 필요한 이유버전 관리파일의 과거 버전으로 쉽게 돌아갈 수 있음.변경 내역을 기록하여, 언제 어떤 변경이 있었는지 확인 가능.실수나 오류 발생 시 되돌리기 가능.협업여러 명이 동시에 작업 가능.브랜치(branch)를 통해 독립적..
[Flutter_개발] 개인 과제 오늘은 개인 과제 1번과 2번 문항을 풀어보았다. 필수 문제 1번 1. 점수에 맞는 등급 출력하기[ 설명 ]제시된 예시 점수에 해당하는 등급을 알맞게 출력하세요![ 조건 ]예시 점수 : 84점점수에 따른 등급 기준90점 ~ 100점 : A등급80점 ~ 89점 : B등급80점 미만은 C등급출력 형태 : 이 학생의 점수는 [점수] 이며, 등급은 [등급]입니다!출력 예시void main() { // 변수선언 int score = 84; String grade; // if문을 이용해서 점수마다 등급 부여 if (score >= 90 && score 100) { grade = "A등급"; } else if (score >= 80 && score 90) { grade = "B등급"; ..
[Flutter_개발] nullable Nullable 을 알아보기 앞서 null 이란 아직 값이 없다는 뜻의 특별한 값이다.Dart 언어 에서는 null-safety가 기본이라서, 명시적으로 nullable로 선언하지 않는다면 null을 넣을 수 없다.위와 같이 오류가 발생하게된다. null을 선언하기 위해서는위에 있는 String 타입의 name에 null을 담고 싶다면 String 뒤에 ?를 붙여 주면 "null 일 수도 있어" 라는 의미를 가지게 된다.String? name;nullable 변수또한 그냥 쓰면 에러가 나게된다. 그래서 이걸 처리 하기 위해서는1. null 체크 먼저하기.void main() { String? name; if (name != null) { print(name.length); }}name이 nul..
[Flutter_개발] 비동기 프로그래밍 비동기 프로그래밍이란? 작업이 완료될 때까지 기다리지 않고, 결과가 준비되면 그때 처리하는 방식이다.방식설명동기주문 후 커피 나올 때까지 가만히 기다림비동기주문 후 진동벨 받은 후, 자리에서 다른 행동을 하며 기다리다 진동벨이 울리면 커피를 받음 flutter를 이용하면 파일 다운로드, 웹 요청, 파일 저장 및 불러오기 작업 등은 시간이 오래 걸린다. 이걸 기다리기만 하면 앱이 멈춘 것처럼 보이기 때문에 다른 작업을 먼저 할 수 있도록 비동기를 사용한다. 이 비동기 프로그래밍을 위해서는 Future함수를 이용해야 하는데FutureString> orderCoffee() { // 비동기 작업(Future)을 일정 시간 뒤에 실행하는 Dart의 내장 함수 return Future.delayed(Durati..