안녕하세요 Android(안드로이드) 및 Kotlin(코틀린) 개발 완전 정복 강의에 오신 여러분 환영합니다
이 영상에서는 앞으로의 강의에서 배우게 될 내용을 소개해 드리려고 합니다
그럼 시작해 봅시다
먼저 1일차 수업에서는 초기 설정 및 구축하는 시간을 가질 예정입니다
본 강의를 함께 하는 동안 계속 사용하게 될 Android 스튜디오를
설정하는 것입니다
에뮬레이터를 구축하여 Android와 유사한 기기에서 바로 테스트해 볼 수 있고
매번 휴대폰을 연결하여 테스트하지 않아도 되므로 시간 효율적입니다
물론 원하신다면 휴대폰 연결을 통한 테스트 방법도 배워볼 예정입니다
그리고 2일차에는 간단한 첫 애플리케이션을 만들어 볼 것인데 Android 앱이 아닌
Kotlin 앱입니다
Kotlin을 사용해 PC에서 작동할 수 있는 프로그램이며 '가위바위보' 애플리케이션입니다
기초 Kotlin 프로그래밍 언어를 집중적으로 다룰 예정입니다
그리고 일반적인 프로그래밍의 기초에 대해서도 다룰 것입니다
3일차에는 Functions(함수), Object(객체) 그리고 커피 머신을 본격적으로 시작합니다
커피 머신과 관련된 모든 것들을 구축하고 그와 관련된 예시들로
코딩 개념에 대해 익혀보려고 합니다
그 다음엔 List(리스트)와 Object(객체) 수업으로 넘어갑니다
필요한 기초 Kotlin 프로그래밍을 한층 더 살펴볼 예정입니다
Kotlin은 객체 지향 프로그래밍 언어이기 때문에
Object(객체)와 Class(클래스)를 이해하는 것이 매우 중요합니다
그것으로 여러분의 첫 애플리케이션들을 만들기 위한 준비가 될 것입니다
그 전까지는 Android 앱들을 만들지 않을 것인데 그 이유는 간단한 앱에도
너무 많은 양의 코드가 필요하기 때문입니다
앞으로 진행하게 될 것들을 여러분이 제대로 이해하는 것이 중요합니다
그러므로 기초를 먼저 다룬 다음에 5일차부터 Jetpack Compose 등을 사용해
Android 애플리케이션을 구축하는 것을 다뤄볼 예정입니다
그래서 5일차에는 첫 애플리케이션인 Unit Converter(단위 변환기)를 통해
최신 UI 개발을 위한 Jetpack Compose의 사용법을 배우게 됩니다
사용자 인터페이스(UI)에서는 텍스트 필드 및 텍스트와 UI 상태에 관한
composable(컴포저블)을 6일차부터 다룰 것입니다
State(상태)가 무엇인지 이해하고 UI가 앱 내 데이터를 관리하는
애플리케이션을 구축할 수 있도록 합니다
간단하게 말해서 숫자나 텍스트가 화면에 띄워지는 것입니다
매우 중요한 개념입니다
그것이 5일차와 6일차 수업에서 다룰 내용입니다
그 다음부터 본격적으로 Shopping List(쇼핑 리스트) 앱과 같은 멋진 애플리케이션들을 만들어 볼 예정인데
리스트에 데이터를 보관하도록 하는 LazyColumn 등 중요한 UI 기능들을
배우게 될 것입니다
요즘 상용화되어 있는 대부분의 애플리케이션에는 리스트가 포함되어 있습니다
그리고 Button(버튼) 및 AlertDialogue(팝업창) 등을 어떻게 사용하는지도 알아볼 예정입니다
그 다음엔 어떤 데이터 클래스들이 Lambda(람다)인지 map(맵) 키워드인지 혹은 어떤 복사 방법을 사용했는지도 살펴볼 것입니다
심화 과정이지만 저 시점에는 배울 준비가 되어 있을 것입니다
좋습니다
그 다음에는 MVVM 패턴을 시작할 것입니다
Model View ViewModel 구조의 약자이며 Android 개발자로써 이해해야 할
중요한 부분입니다
Android 개발자가 되고 싶다면 이 구조를 이해해야 하고
8일차에 다룰 예정입니다
그리고 Counter(카운터) 앱을 통해
배운 구조를 적용시킴으로 더 깔끔하게 만든다고 할 수 있겠습니다
그리고 9일차에는 JSON, RetroFit, HTTP 요청과 RESTful API와 같은 개념들
Android 개발자로 일하기 위해 꼭 필요한 키워드들을 배워보도록 하겠습니다
그리고 배운 내용들이 Recipe(레시피) 앱을 통해 어떻게 활용되는지 배워보려고 합니다
레시피 앱은 간단히 인터넷에서 레시피들을 불러와 여러분의 애플리케이션 화면에 띄워주는 것입니다
Android 개발자가 되기 위해 중요하고 도움이 될 과정입니다
10일차에는 특히 Android 내 Jetpack Compose의 Navigation(탐색) 기능을 다뤄 보려고 합니다
NavHost와 NavController 등 Serialization(직렬화)와 Deserialization(역직렬화)에 대해 배우고
한 화면에서 다른 화면으로 이동하는 법과 데이터를 전달하여
첫 번째 화면에서 사용자가 입력한 정보를 두 번째 화면도 알게 하는 과정을 배웁니다
예를 들어 11일차에 location(위치)를 다뤄볼 것인데
사용자의 위치를 사용해 앱 내 화면에 띄우는 방법이나
저장하는 방법들에 대해서 살펴봅니다
그러니까 그 정보에 접근할 수 있는 권한을 관리하는 것입니다
개발자로써 Android 운영체제(OS)에 적극적으로 요청해야 하는 부분이라고 할 수 있고
GPS 데이터와 같은 정보에 대한 접근도 얻을 수 있습니다
그리고 그 권한이 있어야만 여러분의 애플리케이션 내에서 사용할 수 있습니다
권한을 관리하는 방법을 아는 것은 굉장히 중요합니다
이 내용을 11일차 수업의 Location(위치) 앱에서 다루게 될 것입니다
Android의 context(콘텍스트)에 대해서도 이해하게 될 것이며 위치와 함께 주소도 화면에 띄우게 될 것입니다
GPS 데이터 뿐만 아니라 경도와 위도 좌표까지도 말입니다
구글이 제공하는 특정 패키지를 통해 얻을 수도 있습니다
Geodecoding(역지오코딩)이라 하여 경도와 위도를 사용해
주소를 알아내는 방법도 있습니다
그 다음 12일차에서는 7일차 때 만든 쇼핑 리스트 앱으로 돌아가 볼 것입니다
그리고 map(맵)과 location(위치)를 추가해 보려고 합니다
그러니까 11일차 수업에서 location(위치) 사용법을 배우고
12일차 수업 때 배운 구글 맵 기능을 적용하여
여러분의 Android 앱에 지도를 띄우는 방법을 다룹니다
예를 들어 사용자가 자신의 위치나 특정 쇼핑 리스트의 아이템을 살 수 있는 위치를
알고 싶다면
사고 싶은 아이템이나 그 아이템들을 판매하는 가게들의
리스트를 생성할 수도 있습니다
이 과정을 통해 여러 외부 코드를 여러분의 프로젝트에 적용하는 방법을
배우게 됩니다
그리고 그건 9일차 수업에서 JSON과 Retrofit을 사용하면서도
다루게 됩니다
외부 패키지들을 사용해 애플리케이션을 활성화하고
어렵지 않은 방법으로 많은 기능들을 사용할 수 있도록 합니다
그것이 코딩의 이점이며 모든 것을 일일히 입력하지 않아도 됩니다
많은 부분들이 이미 구현되어 있습니다
그러면 Wishlist(위시리스트) 애플리케이션으로 넘어가 봅니다
위시리스트 애플리케이션의 목적은 데이터를 영구적으로 보관하는 방법을 알려드리기 위함입니다
Room Database라는 것이 있는데 이는 데이터를
영구적으로 저장하기 위해 사용됩니다
데이터가 유지되어야 하는 애플리케이션을 만들 때 꼭 알아야 하는
내용입니다
예를 들어 설정 내용도 이런 식으로 저장할 수 있고
또는 휴대폰을 재실행하더라도 영구적으로 저장하고 싶은 정보도 저장할 수 있습니다
그러기 위해 CRUD 작업을 배워야 합니다
Create(생성), Read(읽기), Update(업데이트), Delete(삭제)의 약자로 일반적인 데이터베이스에서 중요한
개념입니다
DAO와 Dependency Injection(의존성 주입)에 대해서도 배울 예정입니다
애플리케이션 동작에 필요한 여러 고급진 키워드들을 배우는 것입니다
그 후에는 Floating Action Bar(플로팅 작업 바)나 Top Action Bar(상단 작업 바)와 같은 고급 UI 요소들을
살펴보며 색상을 코딩으로 조정하는 방법도 다뤄보겠습니다
Swipe to Delete(밀어서 삭제)와 같은 기능은
구글 메일 등 자주 사용되는 기능인데
이 기능을 사용하면 이메일을 밀어서 아카이브에 보관하는 용도로 쓰이기도 합니다
바로 여러분이 배우게 될 기능들입니다
기능의 사용 개념과 어떻게 밀기 동작으로 특정 코드를 실행하는지에 대해 알아볼 것입니다
좋습니다
그리고 Music(음악) 앱을 통해 Navigation(탐색)과 Menu(메뉴)를 다뤄볼 예정입니다
15일차와 16일차에 나누어 진행됩니다
이는 완전한 UI 기반 애플리케이션이 될 것입니다
로직은 따로 없지만 메뉴, Drawer(드로어), 팝업 등
사용자 인터페이스(UI)에 관여하는 모든 입출력들을 알려드릴 예정입니다
이는 사용자 인터페이스(UI)를 더 잘 구현할 수 있도록 도와주고
다른 앱에서 보이는 다양한 요소들을 구현하거나
예를 들어 클라이언트의 요구사항 등 특정 조건을 잘 구현할 수 있도록
도와줍니다
좋습니다
그 다음 17일차에서는 메시지 애플리케이션을 추가해 볼 것입니다
아직 만들어지지 않았으며 그 다음 몇 주 간 진행될 예정입니다
그리고 그 메시지 앱은 Firebase를 사용할 수 있도록 할 것입니다
그러니까 데이터가 클라우드에 저장되었을 때 클라우드 스토리지를 사용하는 것이고
WhatsApp의 클론 앱도 만들어 실제로 친구들을 추가하고
그들이 여러분 앱에 가입을 하여 채팅을 하도록 구현할 수 있습니다
이 과정에서 배우게 될 것은 Firebase, Authentication(인증), 서비스에 로그인하는 동작 및
클라우드를 통한 영구적인 데이터 저장법 그리고 동적 반응형 메시지 인터페이스
입니다
좋습니다
그 다음은 강좌의 두 번째 챕터인 XML입니다
여기서 Android 스튜디오에 조금 더 가까워진 것이 보입니다
이전 과정을 건너뛰고 바로 이 단계부터 시작해도 괜찮지만
그럼에도 2, 3, 4일차 Kotlin 기초 강의는 수강하셔야 합니다
XML부터 바로 시작하고 싶다면 1-4일차 강의를 수강한 후
Getting Ready with Android Studio와 Kotlin Fundamentals 강의를 수강하시면 됩니다
그리고 이 Age in Minutes Calculator 강의로 건너뛰는 것입니다
이제 이 시점부터는 여러 XML 애플리케이션들이 보이기 시작합니다
XML은 쉽게 말해서 과거에 사용자 인터페이스를 구축하기 위해 사용했던 방식입니다
그래서 Android 12까지는 그게 가장 흔한 방법이었지만 Android 13부터는
변동이 일어납니다
XML이 과반수의 애플리케이션에서 사용되던 중
Jetpack Compose의 등장으로 입지가 바뀌었으며
Android 14부터는 이것이 중점적으로 사용되고 있습니다
최근 구글은 Jetpack Compose 애플리케이션의 사용을 권장합니다
하지만 이 챕터부터는 XML에 대해 배우게 될 것이고
Age in Minutes Calculator 앱을 통해
XML을 사용한 UI 구축 기초를 다룰 예정입니다
그 이유에 대해 궁금해 하실 수도 있습니다
그건 아직도 많은 애플리케이션들이 XML을 사용하기 때문입니다
그러므로 여러분이 어느 회사에 취직을 했는데 아직 XML을 사용한다면 알아두는 편이
좋습니다
혼자서 전체 애플리케이션을 갈아엎을 수는 없는 노릇입니다
그런 식으로 진행되지 않습니다
그들의 legacy(레거시) 코드에 따라 작업을 하고 그들이 원하는 기능들을
추가해야 합니다
그러므로 이런 상황들을 대비해 XML을 알아두어야 합니다
애플리케이션을 처음부터 만드는 것이라면 XML을 사용하지는 않습니다
요즘은 바로 Jetpack Compose를 사용합니다
하지만 아직 XML을 사용하는 기업의 개발자로 취직을 하고 싶다면
XML을 알아야 한다는 것입니다
그래서 XML을 활용한 다양하고 멋진 애플리케이션들을 준비해 두었습니다
Calculator(계산기) 앱을 통해 XML의 기초와 UI의 개념을 배운 다음
Quiz(퀴즈) 앱을 구축해 볼 것입니다
제가 좋아하는 앱들 중 하나입니다
Drawing(그리기) 앱 또한 굉장히 재밌는 작업이 될 것입니다
캔버스에 그릴 수 있으며 그 이미지를 스크린샷 형태로 여러분의 휴대폰에 영구적으로 저장할 수도
있습니다
재밌는 작업이 될 것입니다
그 다음은 7 Minutes Workout(7분 운동) 앱입니다
이 애플리케이션은 완전히 본격적인 7분 운동 앱인데
앱 스토어나 플레이 스토어에서 비슷한 앱을 찾으실 수 있을 것입니다
간단히 말해서 BMI 계산기가 포함된 운동 앱니다
일곱 가지의 운동 동작을 30초 타이머 시간 동안 따라하는 것이며
운동을 마치고 달라진 몸을 체험하는 것입니다
좋습니다
그 다음은 Happy Places(해피플레이스) 앱입니다
위치, GPS, 구글 맵 등 XML 접근 방식을 배워볼 것입니다
좋습니다
이 애플리케이션들은 같은 개념을 사용한다고 할 수 있지만 다른 접근 방식을 사용하고 있습니다
해피플레이스 앱까지 마치면
Weather(날씨) 앱을 만들어 볼 텐데 날씨 데이터를 다운로드하는 방법을 배우게 됩니다
예를 들어 사용자가
도시를 입력하면 그 도시 이름의 날씨 데이터를 다운 받아 화면에 띄우는 것입니다
특정 도시에 대한 날씨를 알려주도록 합니다
정말 재밌는 작업이 될 것입니다
그리고 JSON을 사용할 것인데 이를 위해 여러 API도 사용될 예정입니다
Application Programming Interface(애플리케이션 프로그래밍 인터페이스)의 약자로 다른 사람이 이미 적어둔 코드를 사용하는 것입니다
개인 앱에서도 사용할 수 있으니 유용합니다
그리고 마지막으로 전체 강좌 중 가장 큰 애플리케이션인 Trello 클론 앱입니다
Firebase 애플리케이션이며 사용자 관리법과 Drag And Drop(드래그 앤 드롭) 및
온라인 저장소를 위한 Firebase 사용법, Authentication(인증), 영구적 클라우드 데이터 저장법 등을 배우게 될 것입니다
만들게 될 애플리케이션 중 가장 규모가 큽니다
이 챕터의 전체적 프로젝트 관리 솔루션이라고 할 수 있습니다
아주 유용한 내용이 될 것입니다
이 강좌의 보너스라고 생각하셔도 좋습니다
사실 전체 과정의 핵심 내용은 이 Android 12 강의에서 어느 정도 마무리가 되고
그 이후 강의들에서는 이전 작업들을 복습하는 것이며
이미 아는 내용이지만 실제 프로젝트들을 예시로
배운 내용들이 어떻게 활용되는지 자세히 알아볼 수 있습니다
좋습니다 여기까지가 앞으로 이 강좌에서 배우게 될 내용에 대한
소개였습니다
Android 애플리케이션을 만들 때 필요한 모든 것들을 배우게 되며
주니어 Android 앱 개발자로 취직할 수 있도록 돕습니다
여러분께 이런 중요한 것들을 알려드릴 생각에 다음 영상이 무척이나
기대가 됩니다
그럼 다음 강의에서 뵙겠습니다