본문 바로가기

dart

(20)
[Flutter_개발] GitHub를 이용한 팀 프로젝트 협업 오늘은 팀프로젝트에 앞서 팀원들과 역할분담을 하고GitHub를 이용한 팀 프로젝트 협업 방식을 학습했다.단순히 코드를 저장하는 용도에서 벗어나, 여러 명이 동시에 작업할 때 효율적으로 관리하는 방법을 중심으로 이해했다. 먼저 프로젝트를 시작할 때, 팀장은 GitHub에서 원격 저장소를 만들고 팀원을 collaborator로 초대한다.팀원은 저장소를 자신의 컴퓨터로 복제하기 위해 다음 명령어를 사용한다.git clone 이후 작업을 구분하기 위해 새로운 브랜치를 생성한다.각 기능별로 브랜치를 만드는 것이 협업의 기본이다. 예를 들어 로그인 기능을 담당한다면 다음과 같이 작성한다.git checkout -b feature/login브랜치를 만든 후, 기능 구현이나 수정 작업을 진행한다.작업이 완료되면 변경..
[Flutter_개발] flutter입문 강의 전체요약 1. 학습 개요이번 학습에서는 Flutter의 기본 구조부터 실제 앱 구현까지 이어지는 전 과정을 통해, 하나의 프로젝트가 어떤 구조로 만들어지고 작동하는지를 전체적으로 이해했다.단순히 위젯을 나열하는 수준이 아니라, 위젯들이 어떻게 상호작용하며 화면을 구성하고 상태를 반영하는지를 구체적으로 익힌 시간이었다.2. Flutter 프로젝트 구조 이해Flutter 프로젝트는 여러 폴더로 나뉘어 있으며, 각 폴더가 명확한 역할을 가진다.lib 폴더는 앱의 핵심 로직과 UI를 담고, pubspec.yaml은 사용하는 패키지와 리소스를 정의한다.android, ios, web 폴더는 플랫폼별 실행 환경을 담당하고, test 폴더에서는 코드 동작을 검증할 수 있다.이 구조를 이해한 덕분에 이후 패키지 추가나 경로 인..
[Flutter_개발] 투두앱 개발 및 트러블슈팅 배경Flutter를 이용해 ToDo 앱을 완성하고, 프로젝트를 GitHub에 업로드하기 위해 실행 테스트를 진행했다.하지만 실행 도중 환경 변수 인식, GitHub 인증, 코드 빌드 등에서 여러 문제가 발생했다.코드 관련 실수를 포함하여 그 해결 과정을 정리했다.발단프로젝트를 로컬 환경에서 실행하려 했으나, 앱이 화면에 표시되지 않거나 콘솔에 에러 메시지만 출력되었다.이 과정에서 몇 가지 실수들이 함께 드러났다.전개1. pubspec.yaml 구조 오류문제:flutter pub get 실행 시 다음과 같은 에러 발생 Error on line 90, column 1: Duplicate mapping key. 원인:dependencies: 나 flutter: 블록이 중복 작성되었다.YAML 문법은 들여쓰기 ..
[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)를 통해 독립적..