코틀린 프로그래밍 코틀린은 JetBrains에서 개발한 프로그래밍 언어로, 자바 플랫폼에서 동작하는 범용 프로그래밍 언어입니다. 코틀린은 자바와 100% 호환되며, 안드로이드 앱 개발을 비롯한 다양한 프로젝트에서 사용됩니다. 코틀린을 배워야하는 이유는 코틀린은 코드를 간결하게 작성할 수 있도록 다양한 기능을 제공합니다. 기존 라이브러리나 프레임워크의 클래스에 쉽게 새로운 기능을 추가할 수 있습니다. Google이 안드로이드 앱 개발을 위한 공식 언어로 선정한 코틀린은 안드로이드 스튜디오에서 원활하게 지원되며, 자바와의 상호 운용성이 뛰어나 안드로이드 앱 개발자들 사이에서 인기를 얻고 있습니다.
자바 프로그래밍 자바(Java)는 객체지향 프로그래밍 언어로, 다양한 플랫폼에서 동작하는 소프트웨어를 개발하기 위해 만들어진 언어입니다. 자바는 간결하고 이식성이 뛰어나며, 다양한 응용 프로그램을 개발할 수 있는 강력한 기능을 제공합니다. 자바를 배워야하는 이유는 . 한 번 작성한 코드는 다양한 플랫폼에서 동작할 수 있어 개발자가 특정 운영 체제에 구애받지 않으며 객체지향 프로그래밍 언어로 설계되어 있어 코드의 재사용성이 높고 유지보수가 쉽습니다. 객체 지향 프로그래밍의 개념을 익히면 좋은 소프트웨어 디자인을 할 수 있다는 장점과 다양한 라이브러리와 API를 제공하여 개발 과정을 단순화하고 생산성을 향상시킵니다. 이러한 라이브러리들은 데이터베이스 연동, 네트워크 프로그래밍, GUI 개발 등에 도움을 줍니다.
안드로이드 앱 프로그래밍 안드로이드(Android)는 Google에서 개발한 모바일 운영 체제로서, 주로 스마트폰 및 태블릿과 같은 휴대용 디바이스에서 사용됩니다. 안드로이드는 리눅스 기반의 개방형 운영 체제로, 다양한 제조사와 모델의 디바이스에서 동작하며, 많은 사용자들에게 널리 알려진 운영 체제 중 하나입니다. 안드로이드는 오픈 소스로 개발되어 있어, 개발자들이 운영 체제의 소스 코드를 자유롭게 열람하고 수정이 가능하고 안드로이드는 수많은 제조사와 다양한 디바이스에서 사용되므로, 다양한 크기와 해상도의 화면, 하드웨어 기능 등에 대한 지원이 강화되어 있으며 Google Play Store를 통해 수백만 개의 다양한 애플리케이션이 제공되어 안드로이드 사용자들이 다양한 앱을 다운로드가 가능한부분으로 접근성이 좋습니다. 주로 Java나 Kotlin 언어로 개발되며 사용자 인터페이스(UI)를 일관되고 아름답게 디자인하는 데 도움을 주는 가이드라인과 공식 통합 개발 환경으로, 안드로이드 스튜디오는 강력한 기능과 편리한 디버깅 도구를 제공하고 있습니다.
크로스 플랫폼을 위한 플로터 플러터(Flutter)는 Google에서 개발한 오픈 소스 UI 소프트웨어 개발 키트로서, 모바일 앱, 웹 앱, 데스크톱 앱 등을 개발하기 위한 도구입니다. 플러터는 Dart라는 언어를 사용하며, 단일 코드베이스에서 여러 플랫폼을 지원하는 목표를 가지고 있습니다. 플러터는 Google의 Material Design과 Cupertino 디자인을 구현한 강력한 UI 라이브러리를 제공하고, Dart 언어를 사용하며, JIT(Just-In-Time) 및 AOT(Ahead-Of-Time) 컴파일을 지원합니다. Dart는 간결하고 현대적인 언어로, 개발자들이 효과적으로 코드를 작성가능하며, 플러터는 Google의 Firebase와 쉽게 통합할 수 있습니다. Firebase는 데이터베이스, 인증, 푸시 알림 등 다양한 기능을 제공하여 앱 개발을 더욱 편리하게 합니다.
안드로이드 실전 앱 개발 안드로이드 앱 개발의 실전 프로젝트를 통해 다음의 직무 역량을 습득하여 실무 능력을 배양하는 것을 목표로 합니다. UI/UX 디자인 및 구현, 네트워크 통신, 로컬 데이터 저장, Firebase 통합, 사용자 인터페이스 개선, 다양한 디바이스 지원, 디버깅 및 성능 최적화, 앱 보안 강화, 앱 배포, 코드 버전 관리, 지속적 통합 및 배포, 사용자 피드백 처리를 통해 사용자들의 요구사항에 따라 기능을 추가하고 버그를 수정할 수 있습니다.
관계형 데이터베이스 모델링과SQL 관계형 데이터베이스는 테이블이라는 구조를 사용하여 데이터를 저장하고 관리하는 데이터베이스 시스템입니다. 이러한 데이터베이스는 관계형 모델에 기반하며, 테이블 간의 관계를 통해 데이터를 구성합니다. 관계형 데이터베이스는 업계에서 매우 일반적이며, 데이터의 일관성, 무결성, 보안, 효율성을 제공하는 데 강점을 가지고 있습니다.
애플리케이션 리펙토링 및 테스트 애플리케이션 리펙토링 및 테스트에서 TDD에 관해서 배웁니다. TDD는 Test Driven Development 즉, 테스트 주도 개발을 뜻합니다. 매우 짧은 개발 사이클을 반복하는 소프트웨어 개발 방법론으로 테스트를 먼저 작성하고 그다음 실제 코드를 구현하는 형태로 개발이 진행하는 형식입니다. **테스트 코드 작성 → 구현 코드 작성 → 리팩토링** 이 3가지를 짧은 주기를 반복하며 점증적으로 개발합니다.
TDD 도입 전의 개발방법은 **요구사항 분석 → 대략적인 설계 → 코드 작성 → 수동 테스트 OR 테스트 코드 작성**이 었습니다. 이후 문제가 발생하면 발생한 부분의 코드를 확인하고 다시 코드를 수정하는 형태였습니다. 이러한 작업방식은 다양한 문제를 야기하였으며 이를 해결하기위한 개발 방법론으로 테스트 주도 개발(TDD)가 도입되었습니다. 테스트 주도 개발을 하면 좋은점은 다음과 같습니다.
- 어떤 기능을 구현해야 하는지 쉽게 정리할 수 있다. - 개발 사이클이 짧아진다. - 리팩토링 및 유지보수가 편해진다. - 디버깅 시간이 단축된다. - 테스트 케이스가 문서를 대신 할 수 있다. - 버그가 줄어 들어 코드에 대한 자신감이 상승한다.
본 교과에서는 기존의 개발 방법론과 테스트 주도 개발 방법론 두 가지를 모두 실습하고 왜 테스트 주도 개발을 해야하는 것인가에 대한 당위성을 확인하고 이를 실무 프로젝트에 적용하는 방법을 진행하게 됩니다.
|