전체 글 (16) 썸네일형 리스트형 [Flutter_개발] 영화관 좌석 예매 앱 만들기 1. 학습 목표Flutter의 상태 관리 기초를 이해한다. (StatefulWidget, setState)위젯을 파일 단위로 분리하여 UI 구조를 체계적으로 만든다.사용자 입력에 따라 화면이 동적으로 변경되는 앱을 구현한다.2. StatefulWidget과 StatelessWidget의 차이StatelessWidget은 상태가 없는 위젯으로, 데이터가 바뀌어도 화면이 다시 그려지지 않는다.StatefulWidget은 상태(State)를 가지고 있으며, 데이터가 변경되면 setState()를 통해 화면을 다시 그릴 수 있다.setState()는 “상태가 바뀌었으니 다시 그려달라”는 신호를 Flutter 프레임워크에 보내는 함수이다.이 함수를 호출하지 않으면 변수 값이 바뀌어도 UI에는 변화가 없다. voi.. [Flutter_개발] flutter 기초 1. Flutter 프로젝트 구조 이해플러터 프로젝트는 여러 구성요소로 이루어져 있으며, 각 폴더와 파일은 다음과 같은 역할을 한다.lib 폴더:앱의 주요 로직과 UI를 구현하는 코드가 들어간다.플러터 개발의 대부분은 이 폴더에서 이루어진다.test 폴더:코드가 올바르게 동작하는지 확인하기 위한 테스트 코드를 작성한다.위젯 테스트, 단위 테스트 등을 수행할 수 있다.android / ios / web 등 플랫폼 폴더:네이티브 기능(GPS, 카메라, 알림 등)을 사용하기 위한 코드를 포함한다.pubspec.yaml:외부 패키지 의존성을 추가 및 관리한다.이미지나 폰트 같은 정적 리소스를 등록할 수 있다.기타 구성요소.gitignore: Git에 포함되지 않아야 할 파일을 지정한다.analysis_optio.. [Flutter_개발] 개인 과제 트러블 슈팅 트러블 슈팅 기록 : Dart 프로젝트 실행 환경 설정 및 코드 복구학생 성적 분석 Dart 콘솔 프로그램 개발을 마쳤고, GitHub 공유를 위해 dart run 명령어로 최종 실행을 시도했다. 하지만 시스템 환경 설정 문제로 프로그램 실행이 계속 실패하는 상황이 벌어졌다.배경학생 성적 분석 프로그램 개발을 완료하고 GitHub에 공유하기 위해 dart run 명령어를 통해 최종 실행을 시도했다. 그러나 시스템 환경 설정 문제로 프로그램 실행이 계속 실패했다.발단프로그램 실행의 필수 단계인 dart pub get 명령을 실행하자, 프로젝트의 pubspec.yaml 파일이 요구하는 SDK 버전과 시스템에 설치된 SDK 버전이 달라 버전 불일치 오류가 발생했다. 이로 인해 실행 자체가 원천 봉쇄되었다.전개.. [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_개발] 도전과제 1. 중복 없이 번호를 추첨하여 복권을 발급 기능[ 설명 ]1~45사이의 숫자들 중 6개의 숫자를 중복없이 뽑아 하나의 복권(리스트)으로 만듭니다.[ 조건 ]출력 형태 : 발급한 로또 번호 : [로또 번호 목록 전체]발급한 로또 번호: [3, 11, 15, 29, 35, 42][ 힌트 ]Set 또는 List의 contains() 등을 통해 선택한 번호가 리스트에 포함되어 있는지 여부를 판별할 수 있습니다.숫자를 랜덤으로 뽑는 기능은 dart:math 라이브러리의 Random().nextInt(int nubmer) 를 사용합니다.Random().nextInt(int nubmer) 는 0부터, number-1 사이의 int 값중 하나를 무작위로 골라 반환하는 메서드입니다.2. 발급한 복권의 번호와 당첨 번호.. [Flutter_개발] Git과 GitHub 1. Git이란?파일 변경 내역을 기록하고 추적하는 프로그램. 여러 사람이 동시에 작업할 수 있도록 돕는 분산 버전 관리 시스템(DVCS).중요 개념:스냅샷(Snapshot): Git은 파일 전체를 복사본으로 저장하지 않고, 변경 사항만을 기록해둠. 이 때문에 효율적이고 빠르다.분산 구조: 모든 개발자가 로컬에 전체 저장소를 복제해두기 때문에 인터넷이 없어도 작업 가능.활용 범위: 소스 코드 관리가 주 목적이지만, 문서, 데이터 파일 등 어떤 파일이든 버전 관리 가능.2. Git이 필요한 이유버전 관리파일의 과거 버전으로 쉽게 돌아갈 수 있음.변경 내역을 기록하여, 언제 어떤 변경이 있었는지 확인 가능.실수나 오류 발생 시 되돌리기 가능.협업여러 명이 동시에 작업 가능.브랜치(branch)를 통해 독립적.. 이전 1 2 다음