파닥파닥 Flutter (빠르고 가볍게 Flutter 흔들기)
    • 01
      PREFACE
    • 구름MEDIA 추천사
      책 소개
    • 02
      What is Flutter
    • Flutter?
      크로스 플랫폼이란?
      Flutter vs React Native
      Flutter로 만들어진 앱들
    • 03
      환경 구축하기
    • Flutter 개발을 위한 환경
      Mac OS에서 환경 구축하기
      Windows에서 환경 구축하기
      Git 설치
    • 04
      Dart 기초 다지기
    • Hello, Flutter
      자료형
      변수
      조건문
      반복문 (for)
      반복문 (for-in)
      조건문 (while)
      함수란?
      객체로서의 함수
      함수의 인자
      주석
      임포트
      클래스
      상속
      추상 클래스
      인터페이스
      정리
    • 05
      Let's Toy Project - Part1
    • 무엇을 만들까요?
      starter 프로젝트 가져오기
      코드 분석
      화면(UI) 구축 시작하기
      상단 화면 개발
      탭 화면 개발
      Widget의 생명주기
      리스트 화면 (일반) 개발
      리스트 화면 (Grid) 개발
      상세 화면 연결
      상세 화면 개발
      포스터와 간략 정보 화면 개발
      줄거리 화면 개발
      감독 및 출연진 정보 화면 개발
      한줄평 화면 개발
      댓글 입력 화면 개발
      기타 마무리 작업
    • 06
      Let's Toy Project - Part2
    • HTTP 알아보기
      데이터 연동 준비
      영화 목록 데이터 요청
      팝업 항목 선택에 따른 영화 목록 호출
      영화 상세 데이터 요청
      영화 한줄평 데이터 요청
      영화 한줄평 입력 요청
      프로젝트를 마무리하며
    • 07
      맺음말
    • 맺음말
    크로스 플랫폼이란?
    02 What is Flutter
    크로스 플랫폼이란?

    Flutter는 크로스 플랫폼으로서 Android , iOS 두 모바일 플랫폼에서 모두 동작합니다.

    default

    크로스 플랫폼은 특정 소스를 플랫폼(ex. Android, Windows, Linux 등)에 묶이지 않고 자유롭게 사용할 수 있도록 서포트하는 역할을 합니다.

    예를 들어 C언어는 소스코드를 실행하기 위해서 운영체제마다 별도의 컴파일러로 컴파일을 해야 합니다.
    따라서 서로 다른 3개의 운영체제에서 C로 짜여진 코드를 수행하고 싶다면 3번의 컴파일을 별도로 해주어야 합니다.

    반면 Java의 경우 JVM, 즉 Java Virtual Machine이라는 중개자를 두어 플랫폼 호환성을 높입니다.
    운영체제에 맞는 JVM이 있다면 컴파일된 Java 소스를 JVM 위에서 동일하게 수행할 수 있습니다.

    이 외에도 게임 개발에 사용되는 유니티, 언리얼 엔진, 게임메이커 스튜디오 등이 크로스 플랫폼을 활용하여 다양한 플랫폼에서 제약 없이 사용할 수 있는 대표적인 예시입니다.

    Flutter에서는 Flutter SDK를 JVM 처럼 사용하여 크로스 플랫폼을 구현하고 있으며, 이처럼 다양한 플랫폼 지원을 위한 노력은 Flutter 뿐만 아니라 모든 개발 분야에서 이루어지고 있습니다.

    default

    크로스 플랫폼의 장점

    동일한 코드로 서비스를 개발함으로서 유지 보수 및 기능 개발 인력을 효율적으로 활용 가능한 것이 크로스 플랫폼을 사용하는 가장 큰 이유입니다.

    "모바일 어플리케이션 서비스를 운영한다." 라고 하면 우리는 Android, iOS 두 플랫폼에 대한 개발 인력이 모두 필요합니다.
    코드 베이스가 달라 서로 다른 플랫폼을 동시에 소화할 수 있는 개발자는 드물며, 회사 입장에서는 인력을 채용하는 데 많은 비용이 소모됩니다.
    뿐만 아니라 서비스의 특정 UI에 대해서 의견 충돌이 발생할 수도 있습니다. 두 플랫폼의 철학이 달라 UI를 구성하는 방식까지 다르기 때문입니다.

    default

    이러한 문제점들을 해소할 수 있는 키가 바로 크로스 플랫폼입니다.
    단일 코드로 작업하기 때문에 개발 인력을 절반으로 줄일 수 있고, 개발 초기 단계 뿐만 아니라 유지보수를 하는 과정에서도 두 플랫폼에 대해 동일한 팀 인력으로 대응하기에 속도가 빠르며 산출물이 동일합니다. 이는 개발 비용을 줄이는 것으로 이어집니다.

    default

    이러한 장점을 가진 크로스 플랫폼 지원 언어 중에서도 Flutter는 어떠한 매력으로 빠르게 시장 점유율을 넓혀나가고 있는 것일까요?

    질문하기