1. MVC (Model, View, Controller) Model 앱에서 사용하는 데이터, 상태, 비즈니스 로직을 포함한다. 데이터 : 사용자의 이름이나 상품의 가격 등과 같은 말 그대로의 데이터를 의미. 상태 : UI 상태. isEnabled와 같은 플래그로 UI의 상태를 나타낼 수도 있고, 데이터의 값이 변경되어 UI가 갱신되어야 한다면 그 또한 상태 변경으로 볼 수 있다. 비즈니스 로직 : 앱에 필요한 동작을 수행하기 위해서 데이터를 처리하기 위한 알고리즘. View 사용자가 보는 화면, 즉 UI요소를 담당한다.. 사용자의 입력에 대해 어떤 동작을 해야하는지는 모른다. 예를 들어 UI에 있는 버튼을 눌렀을 때 처리해야하는 코드를 포함하지 않는다. 안드로이드에서 레이아웃 파일인 activity_m..
전체 글
개발 블로그Android의 코루틴은 비 동기적으로 실행되는 코드를 비교적 효율적으로 구현할 수 있게 해주는 동시 실행 설계 패턴이다. 1. 코루틴에서의 주요 기능은 다음과 같다. Thread 대비 굉장히 가볍다. 기존의 비동기 작업은 Context Switching을 하면 기존 Thread는 차단시키는 것에 반해 코루틴은 실행 중인 Thread를 차단하지 않고 일시 정지할 수 있다. 따라서 Single-Thread에서 많은 코루틴을 실행할 수 있다. 이때, 기존의 Thread를 일시 정지하는 것은 동시에 많은 작업을 할 수 있게 하면서도 차단하는 것보다 메모리를 절약한다. 작업을 간편하게 취소할 수 있다. 코루틴에서는 ".cancle()"을 이용하여 Thread보다 쉽게 취소할 수 있다. 작업 용도에 따라 어떤 T..
1. Thread란 무엇이며, 왜 필요할까? Thread란 컴퓨터 내부에서 하나의 흐름을 의미한다. 작업이 진행되는 하나하나의 흐름을 모두 Thread라고 부른다. 여기서 이러한 흐름이 하나인 경우 Single-Thread, 여러 가지인 경우 Multi-Thread라고 부른다. Single-Thread는 하나의 흐름, 즉 하나의 동작밖에 하지 못하기 때문에 동시에 여러 작업을 하기 쉽지 않다. 우리가 사용하는 앱을 Single-Thread로 구현이야 할 수는 있지만 상당히 비 효율적일 것이다. 왜냐하면 하나의 작업만 가능하기에 다른 작업을 수행하기 위해서는 이전 작업이 완료되어야 가능하다. 예를 들어 카카오톡에서 X에게 동영상을 보내는 상황을 생각해 보자. 우리는 동영상이 다 전송되기 전까지는 다른 작업..
List, Set, Map은 데이터를 저장하는 기본 자료구조들을 한 곳에 모아 관리와 이용을 편하게 하기 위해 제공되는 프레임워크를 구성하고 있다. 이를 컬렉션이라고 하는데, Kotlin에서 컬렉션은 다른 프로그래밍 언어와 달리, 변경 가능한 컬렉션(Mutable)과 변경 불가능한 컬렉션(Immutable)이 있다. 1. List Kotlin의 List는 기본적으로 변경 불가능한, Immutable 한 방식이다. 생성자에 List의 길이와 초기화를 위한 람다식을 넣어주는 것으로 객체를 생성해 줄 수 있다. 변경 불가능한 Immutable List fun main(){ val list: List = List(5, {i -> i}) println(list) } // 실행 결과: [0, 1, 2, 3, 4] ..
● 디자인 패턴(Design Pattern)의 개념 디자인 패턴은 소프트웨어 공학에서 특정 Context에 공통적으로 발생하는 문제에 대해 재사용이 가능하도록 만들어 놓은 해결책이다. 이것은 개발자들이 개발을 하다보면 생기는 '자주', '반복적으로', '공통적으로' 해결해야할 문제가 있을 때 이를 해결하기 위해 쓰인다. 즉, 코드를 효율적으로 작성하기 위한 방법론, 건강한 소프트웨어 개발을 위한 방법론이라고 할 수 있다. ● 디자인 패턴을 이해하고 사용해야하는 이유 코딩을 할 때에는 많은 사람들이 이해할 수 있도록 짜는 것이 좋다. 왜냐하면 어떤 프로젝트를 진행한다고 했을 때에 자신만이 이해할 수 있는 코드로 작성한다면 유지 및 보수에 어려움이 생길 수도 있기 때문이다. 따라서 코딩을 하는 데에 있어서 ..
·Git
저번에는 Github Desktop(깃허브 데스크탑)을 이용하여 내 로컬 컴퓨터의 데이터를 push 하는 방법에 대해서 다루었었다. https://beandeveloper.tistory.com/11 GitHub Desktop 사용법(1) - push 우선 Github Desktop을 다운 받아야 한다. https://desktop.github.com/ GitHub Desktop Simple collaboration from your desktop desktop.github.com 위 사이트에 접속한 후 위와 같이 생긴 다운로드 버튼을 눌.. beandeveloper.tistory.com 이번에는 pull 하는 방법에 대해서 다뤄보겠다. 1. Github에서 파일이 삭제된 경우 위 사진은 현재 깃허브와 내..
1. View View는 앱에서 눈에 가시적으로 보여지는 것을 의미한다. 이러한 View 클래스를 베이스로 두고 각각의 기능을 가진 하위 클래스들이 존재한다. TextView Button ImageView 등등 2. View의 트리 구조 아래 그림에서 알 수 있듯이 모든 View들의 부모클래스는 'View'라는 것을 알 수 있다. View 클래스 밑에 Text, Image, Surface, ProgressBar 등을 포함하고 있는 'View'와 'ViewGroup'으로 나누어 지는데, View 계열의 클래스는 가시적으로 모양이 있는 클래스이고, 'ViewGroup' 계열의 클래스는 눈에는 보이지 않지만 View들을 잘 배치하거나 Grouping을 하는 역할을 한다. 즉, ViewGroup은 View와 V..
·Git
◎ Commit Message 규칙이 필요한 이유! 과거 코드에 대한 코드 추적 이슈 사항 처리 상황 팀원들간의 커뮤니케이션 ◎ 좋은 Commit Message를 작성하기 위한 규칙들 제목과 본문을 빈 행으로 구분하기 제목을 50글자 이내로 제한하기 제목의 첫 글자는 대문자로 작성하기 제목의 끝에는 마침표 넣지 않기 제목은 명령문으로! 과거형 사용하지 않기 본문의 각 행은 72글자 내로 제한하기 본문에서 어떻게 보다는 무엇과 왜를 설명하기 위와 같이 네이밍(Naming)을 명시적이고 규칙적으로 작성해주면 한 눈에 Commit Message를 알아볼 수 있다. 그리고 해당 Commit에 대한 내용을 잘 작성해 준다면 코드를 일일히 분석하지 않아도 해당 커밋의 내용을 알아볼 수 있다. $ (): -- 헤더 ..
·Git
우선 Github Desktop을 다운 받아야 한다. https://desktop.github.com/ GitHub Desktop Simple collaboration from your desktop desktop.github.com 위 사이트에 접속한 후 위와 같이 생긴 다운로드 버튼을 눌러 설치 파일을 다운 받는다. 다운을 받고 설치를 하고 난 뒤에 깃허브 계정으로 로그인을 한다. 이름과 이메일을 입력하여 초기 세팅을 마친다. Github Desktop을 이용해서 파일을 올리면 Github의 Repositories에 올라간다. 이 때 Github에 올리는 방법은 두 가지가 있다. 첫번째 방법! Github에 Repository를 만들고 GitHub Desktop과는 Clone을 통해 commit하기 ..
·Git
Git? Git은 자신의 코드와 그 수정 내역을 기록하고 관리하도록 돕는 '버전 관리 프로그램'이며, 로컬에서 프로젝트의 기록을 스스로 관리할 수 있도록 해준다. Git을 통해 Branch를 생성하고 이전 Branch로 복구, 삭제, 병합이 가능하다. 하지만 로컬 저장소를 사용하기 때문에 프로젝트에 참여하고 있는 다른 개발자와 실시간 소통 & 공유는 불가능하다. 즉, Git은 다음과 같은 특징을 가지고 있다. 오픈소스 버전 관리 시스템(VCS: Version Control System) / 분산소스 버전 관리 시스템 로컬에서 버전 관리 / 서버를 분산시켜 구축할 수 있게 하는 소프트웨어 소프트웨어 개발 및 소스코드 관리에 사용 / 효율적으로 소스코드를 관리할 수 있게 해주는 도구 Github? Githu..