본문 바로가기

전체 글97

Kotlin- 문법1 코틀린의 기능 중 가장 혁신적이라고 여겨지는 것 중 하나가 옵셔널(Optional) 개념이다. 코틀린에서 옵셔널이라는 말을 사용하기보단, 자바에서 사용하던 Nullable(널 가능)과 NotNull(널 불가능)이라는 말을 사용한다. 자바에서 Exception의 상담 부분을 차지하던 NullPointerException을 해결하기위해 @Nullable과 @NotNull이라는 Annotation을 만들었었지만, 널리 사용되진 않았었다. 코틀린에서는 변수에 대한 기본 타입을 NotNull로 정하고 널 값을 가질 수 있는 Nullable 타입엔 명시적으로 표시하도록해 Null에 대한 처리에 강제성을 더했다.(스위프트와 동일한 부호인 '?'를 사용함) 예를 들어보자. 자바에 다음과 같은 메서드가 있다. int s.. 2023. 6. 2.
클린 아키텍처(Clean Architecture) 클린 아키텍처는 책 클린 코드를 저술한 로버트 마틴이 제안한 시스템 아키텍처로, 기존의 계층형 아키텍처가 가지던 의존성에서 벗어나도록 하는 설계를 제공한다. 한 줄로 정의하자면, 소프트웨어의 관심사를 계층별로 분리하는 소프트웨어 디자인 철학이다. 그렇다면 클린 아키텍처는 왜 쓸까? 다른 블로그에서 쓴 예시를 가져왔다. [여러분이 A 배달 앱의 개발자이며, 어느 날 A 배달 앱이 B 배달 앱과 통합된다고 가정하겠습니다. 이때 여러분은 다음과 같은 요구를 받게 됩니다. “A 배달 앱 시스템이 잘 되어 있으니 A 앱의 핵심 기능은 유지하고, UI와 DB 쪽만 바꿔 주세요.” 또는 다음과 같은 요구를 받을 수도 있습니다. “A 배달 앱이 너무 잘되니 서비스를 웹으로 확장해 봅시다.” 비즈니스의 로직은 비슷한데,.. 2023. 6. 2.
코틀린 컨벤션 코틀린 컨벤션이란? - 어떤 프로젝트를 접해도 쉽게 이해할 수 있고 다른 외부 개발자도 프로젝트의 코드를 쉽게 이해할 수 있게 하는 것 https://developer.android.com/kotlin/style-guide Kotlin 스타일 가이드 | Android Developers Kotlin 스타일 가이드 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 이 문서에서는 Kotlin 프로그래밍 언어의 소스 코드와 관련된 Google의 Android 코딩 표준을 developer.android.com 위 사이트의 스타일 가이드를 따르면 되는데 외우는 게쉽지 않음 그래서 안드로이드 스튜디오에서 스타일 가이드를 지정할 수 있는 방법을 알아보았음 1. File -> Settin.. 2023. 6. 1.
깡샘의 플러터&다트 프로그래밍 서평단 당첨 후기 이번에 깡샘의 플러터&다트 프로그래밍 서평단에 당첨됐다. 한참 코틀린 공부하다 프로젝트가 끝나서 플러터를 공부할 생각이었는데 마침 서평단을 뽑길래 신청했더니 운좋게 당첨이 되었다. 이 책을 받기전에 먼저 다트 공부를 조금 해보았는데, 환경 설정에서 문제가 생겨서 진행을 하지 못했다. 환경 설정이 안드로이드 스튜디오, xcode 등등 설치해서 flutter doctor를 진행해보는거였는데, 계속 문제가 생겨서 진전이 없었다. 책을 받고 책의 앞부분의 환경설정 부분을 보고 따라해보았는데, 내가 하루동안 해결하지못했던 문제를 바로 해결할 수 있었다. 플러터가 내가 생각했을 때 아직 정보가 많이 없는 언어라고 생각하는데, 이 책을 보니 내가 구글링을 통해 해결하지 못할 문제들을 해결할 수 있을 것 같다. 반 학.. 2023. 2. 22.
UMC project 2주차(23/01/11~) 앞에서 해결 못했던 문제들은 계속 찾아보고 있다. 우선, 이번주차에는 홈화면을 구현하기로 했다. 사진을 보면 BottomNavigationView를 사용하고 각 화면들은 Fragment로 구현해야 한다. BottomNavigationView 사용방법이 잘 기억나지 않아 찾아보았다. BottomNavigationView 사용법 res폴더 Resource type을 Menu로 선택하고 bottom_nav_menu.xml 파일 만들기 bottom_nav_menu.xml 파일에 실제로 표시될 항목들 정의 하나의 아이템이 하나의 버튼 역할 android:id는 해당 버튼의 ID라고 생각하면 됨 android:icon 은 해당 버튼의 아이콘이라고 생각하면 됨 android:title 은 해당 버튼을 나타내는 Tex.. 2023. 1. 12.
UMC project 1주차(23/01/02~23/01/10) UMC 3기 프로젝트를 시작했다. 안드로이드 프론트(코틀린) 팀장으로 참여했고 우리 팀이 개발할 어플은 '강아지 건강 관련 어플'이다. 우선, 내가 한 주간 맡은 부분은 시작화면과 반려견 등록 화면이다. 첫 화면 구현은 어렵지 않게 해결했다. 레이아웃 디자인은 constraintLayout을 사용했다. 문제는 반려견 등록하기 화면에서 나타났다. 화면의 견종, 강아지 성별, 나이 밑을 보면 드롭다운 형식으로 항목들을 선택하게 하는 스피너를 구현해야 한다. 코틀린 공부하면서 스피너를 접한 적이 없어서 스피너에 대해 따로 찾아보았다. 스피너란? 값 집합에서 하나의 값을 선택할 수 있는 빠른 방법을 제공하고 기본 상태의 스피너는 현재 선택된 값을 표시한다. 스피너를 터치하면 기타 모든 사용 가능한 값을 포함하는.. 2023. 1. 11.