본문 바로가기

전체 글

(94)
5주차 - Flutter 개발 과제, 기초 프로젝트 / 앱 서비스 분석 / 창업 인사이트 Weekly I Learned (250714-250718) 🌼 Flutter 개발 과제 및 프로젝트 진행- 과제: 트레인 앱 ㄴ 위젯 컴포넌트 화 / UX 고려한 기능 / 다크 테마 적용- Flutter 기초 프로젝트 S.A. / 와이어프레임- 협업 GitHub 사용법 (브랜치 / 병합) 🌼 앱 서비스 분석- 아이디어와 관련된 앱 서비스 분석 ㄴ 진입 포인트 / 체류 포인트 / 이탈 요인 분석 ㄴ 무엇을 만들 수 있고, 할 수 있고, 이길 수 있는지 분석 필요 🌼 창업 인사이트 [스타트업 바이블]1. 최종사용자 / 페르소나에 대한 이해(구분) & 구체화2. 총유효시장규모를 바탕으로 시장 조사 / 시장 분석 할 것3. 제품의 최종 이미지 시각화 (제공하는 효용과 고객이 얻는 가치) → 와이어프레..
4주차 - Flutter 개발 입문 / 아이디어 고도화 / 창업 인사이트 Weekly I Learned (250707-250711) 🌱 Flutter 개발 입문- 강의 수강 - 레시피 앱 / 영화관 좌석 앱 / BMI 계산기 앱 ㄴ Flutter 위젯과 UI 그리기, 레이아웃 나누는 방법, 예외처리- Dart 프로그래밍 복습 🌱 아이디어 고도화- 사전 리서치 / 설문 작성 배포- 5whys- 시장 조사 / 설문 분석- 페르소나 선정 🌱 창업 인사이트 [스타트업 바이블]- 실제 단계별 적용을 위해 '스타트업 바이블' 도서로 진행하기로 결정1. 시장 세분화로 하나의 사장만 선택할 것 → 거점 시장2. 거점 시장에서의 지배력 확보 → 인접 시장 공략 기회 / 기업 성장 발판 마련✨ Flutter 강의는 dart 언어 강의보다 재미었던 느낌적인 느낌개발에 대한 자신감이 야..
비동기 프로그래밍과 Dart Today I Learned (250710) 5-3. 동기 프로그래밍 (Synchronous Programming)- 작업이 완료될 때까지 기다렸다가 결과가 나오면 값을 반환void introduce(String name) { print('자기소개 시작 !'); print('안녕 ? 나는 $name ~'); print('자기소개 완료 !');}void main() { introduce('화춘기'); introduce('춘기속');}/*자기소개 시작 !안녕 ? 나는 화춘기 ~자기소개 완료 !자기소개 시작 !안녕 ? 나는 춘기속 ~자기소개 완료 !무조건 introduce(’화춘기’); → introduce(’춘기속’); → introduce(’그다음’);순서로 실행 - 동기 프로그래밍은 결과값이 나올 때까지..
라이브러리를 이용한 확장 Today I Learned (250709) 5-2. 라이브러리 (Library)- 특정 기능이나 작업을 쉽고 빠르게 수행할 수 있도록 미리 작성한 코드의 집합- 작업을 수행할 때 자주 사용하는 코드들을 모아둔 것- 효율성 ㄴ 필요한 기능만 뽑아서 사용 가능 ㄴ 많은 시간이 걸리는 작업을 빠르게 구현 가능 ㄴ 모든 코드를 직접 작성하지 않아도 원하는 기능을 구현할 수 있음- 재사용성: 같은 코드를 여러번 작성하지 않고 코드를 재사용할 수 있음- 코드 가독성: 같은 코드를 여러 번 작성하지 않아 코드가 간단해짐라이브러리 종류 (Dart SDK에 포함되어 있는지에 따라 크게 2가지로 나뉨)1. Dart SDK에 포함되어 있는 라이브러리- Dart SDK 표준 라이브러리 라고도 부름- 프로그래밍에 필요한..
예외 처리로 코드 만들기 - 오류! Today I Learned (250709) 5-1. 오류(Error)- 주로 프로그램 외부의 환경이나 시스템 레벨에서 발생하는 심각한 문제- 모든 종류의 오류는 Error 클래스를 상속 받아서 구성됨- 오류가 발생하면 프로그램이 정상적으로 실행되기 어렵기 때문에 발생되지 않도록 해야 함- 오류 발생은 예상하거나 처리할 수 없어서 프로그램을 종료하는 것이 가장 최선의 방법이기도 함오류의 종류 (정의하는 주체에 따라 2가지로 나뉨)Dart가 미리 정의해 둔 오류사용자가 직접 정의한 오류1. Dart가 미리 정의해 둔 오류ArgumentError- 허용되지 않는 인자를 함수에 전달했을 때 발생 AssertionError- assert() 문의 매개변수에 전달하는 조건문이 거짓일 때 발생assert()?- 매..
예외 처리로 코드 만들기 Today I Learned (250709) 5.예외 (Exception)- 프로그램이 실행되는 동안 발생할 수 있는 예외적인 상황- 예외를 처리해주지 않으면 프로그램이 종료되지만, 처리해주면 프로그램이 정상적으로 실행됨- 모든 종류의 예외는 Exception 클래스를 상속 받아서 구성됨- Exception 클래스를 상속 받지 않고 Exception 클래스로 객체를 생성해줘도 되지만, 그렇게하면 그 예외가 어떤 타입의 예외인지 알기 어렵기 때문에 예외의 타입을 명확히 하기 위해서 Exception 클래스를 상속 받은 클래스로 객체를 생성해 주는 것이 좋음var exception = Exception("무슨 예외일까요 ?")// 이렇게 Exception 클래스를 직접 써서 예외 객체를 만들어도 되지만예..
객체 지향 프로그래밍과 Dart (4) - 객체 지향과 상속 Today I Learned (250708) 4-3.상속(Inheritance)- 기존 클래스의 기능을 확장하여 새로운 클래스를 만드는 것- 하나의 클래스가 다른 클래스의 속성과 메서드를 물려받는 것 ㄴ 물려주는 클래스는 부모 클래스 (Parent Class, Superclass), 물려받는 클래스는 자식 클래스 (Child Class, Subclass) 라고도 함 class [자식클래스이름] extends [부모 클래스 이름] {...}class Person { void eat() { print('냠냠 !'); }}class Student extends Person { void study() { print('열공 !'); }}/* 부모 클래스를 확장한다는 의미에서 exten..
객체 지향 프로그래밍과 Dart (3) - 생성자 / 제네릭 Today I Learned (250707) 4-2. 생성자(Constructor)- 객체를 생성하고 초기화하기 위해 사용하는 특수한 메서드- 생성자는 클래스와 이름이 같음- 반환값이 없기 때문에 void 타입임- 클래스를 통해 객체가 생성될 때 자동으로 호출됨- 생성자의 생성할 수 있는 객체의 수에는 제한이 없음class Person { String name; int age; Person(this.name, this.age);}void main() { Person paul = Person('Paul', 25); Person mark = Person('Mark', 30);}/* paul 과 mark 모두 Person 클래스로 생성한 객체 매개변수 생성자로 생성해준 객체 - 생성자의 생성한 객체들은..