일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- k8s
- 책
- 스레드
- 회고
- Gradle
- 코틀린
- 코루틴
- kotlin강좌
- 커스텀상태
- Compose
- 병렬프로그래밍
- Coroutine
- 병럴프로그래밍
- 안드로이드강좌
- viewmodel
- 자바
- theming
- 테스트
- 알게되는
- 글또
- ReactiveProgramming
- 디자인패턴
- Rxjava
- 안드로이드스튜디오
- mockito
- android
- Kotlin
- 안드로이드
- 알고리즘
- g 단위테스트
- Today
- Total
목록전체 글 (154)
선생님, 개발을 잘하고 싶어요.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/c30iuz/btqBDX2lmhc/ht9oLuCMoOknukfS9HRSbK/img.png)
학지사, 도널드 노먼 저자, 박창호 역 도입 처음 이 책을 구입한 이유는 내가 "나만의 것을 만들어 내는 것”에 관심이 많기 때문이다. 이미 개발을 통해서 만들어 내고 있잖아? 라고 생각할 수 도 있고 실제로 그렇기도 하지만, 지금 실무에서 느끼는 감정으로, 그리고 내가 혼자서 사이드 프로젝트를 하는 감정으로는 개발은 "만들어 내는 것”에 해당하는 것 같다. 여기에는 “나만의 것을”이 결여되어 있는데, 이를 채워줄 무언가가 필요했다. 왜 개발은 “나만의 것”이 결여 되었다고 생각을 했는가? 이유는 개발을 진행함에 있어서 정해진 정답 비슷한 것이 존재하고, 내가 아닌 다른 사람이 같은 작업을 한다 하더라도, 같은 결과를 뽑아낼 수 있어보였다. 심지어 실력적으로 확실히 나보다 뛰어난 개발자는 나의 시행착오 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/pbMDo/btqBuQOtbji/nIUoEBQK3xqHX66BhhqWs0/img.png)
도입 필자는 요즘 Flutter를 공부하고 있는데 이 녀석, 선언적 UI, 멀티 플랫폼 빌드 지원, 구글의 전폭적인 지원을 통한 성장이라는 요소들이 매우 매력적이다. 또한 Flutter 프레임워크와 이 프레임워크에서 사용하는 Dart라는 언어는 공식문서가 어마어마하게 잘되어있더라. 그래서 혼자 공부할 맛이 나는 요즘이다. 그건 그렇고, 결국 프론트엔드 개발을 위한 프레임워크이다 보니 어쩌면 제일 중요한, 리스트를 그리는 방법에 대해서 명확하게 이해하는 게 필요하다. 그래서 정리해보았다. (내가 애니메이션 공부하다가 리스트 그리는 법을 몰라서 작성하는 포스트 이다.) 읽을 대상 Dart 클래스 생성에 대해서 알아야 함. StatelessWidget에 대해서 알아야 함. Flutter에 흥미가 있어야 함. ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/90A8H/btqBc5dEqvd/i3ZF9OGxK0GQEX91MbybBk/img.png)
도입 회원 가입 페이지처럼 많은 입력 필드가 있고, 무결성이 필요한 기능을 개발할 때, 필연적으로 UX를 위해 비어있는 필드로 스크롤이 필요하다. 확인 버튼을 눌렀을 때, 해당 빈 필드로 스크롤이 되는 상황 말이다. 하지만 Android 공식 ScrollView가 제공하는 기능은, ScrollTo처럼 완전 기본적인 기능이다. 따라서 기본적인 기능부터, 우리가 원하는 커스텀 스크롤 기능까지 구현해보면서 한방에 Scroll을 뿌수고 편안하고 손쉽게 UX를 높일 수 있는 개발 생활을 해보자. 시작하자. ScrollTo 오늘 우리가 살펴볼 함수는 ScrollTo 이다. 이 함수는 인자로 x와 y값을 받는데, 이는 scrollView가 스크롤될 픽셀 값을 의미한다. y는 위에서부터 아래로 스크롤되며 0부터 시작한..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/8oRjo/btqAY6Z2pUy/fjUzLff93vhVQkjwpHt8O1/img.png)
서론 지금으로부터 1-2년 전, 간단한 이미지 편집, 뷰어 윈도우 프로그램을 만들어야 하는 일이 생겼다. 오늘 포스팅할 내용은 이때의 삽질 경험이다. 오늘의 프로그램 대략적인 프로그램 구조부터 보고 들어가면 필자의 고민의 흐름을 잘 알 수 있을 거라고 생각된다. 한 번 함께 보자. 크게 프로그램은 3가지 분류로 나눌 수 있다. 1. 이미지를 보여주고 편집하는 이미지부 2. 이미지의 값을 숫자를 사용해서 편집하는 제어부 3. 이미지의 정보를 단순히 보여주는 상태부 그리고 오늘 우리가 구현 할 것은 이미지의 배율을 조정하는 것이다. (배율을 조정하는 코드에 관한 이야기는 아니니 부담 없이 읽어 주시길) 배율 조정에 대한 프로그램의 스팩은 다음과 같다. 1. 이미지부에서 휠을 이용해서 배율을 조정할 수 있다...
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cuEkFf/btqy33JwghT/USBVPpE80dkOkBDJJT4ut0/img.jpg)
도입 세상에는 많은 아키텍처가 있다. MVC, MVP, MVVM 이 외에도 많은 아키텍처가 존재하고, 이 아키텍처 사이에는 미세한 차이만 있다. 그래서 이런 아키텍처를 어떻게 설명하는지는 사람마다 다를 것이다. 그중에서도 나는 이번 포스트를 통해 내가 MVVM을 어떻게 뭐라고 생각하는지 말할 예정이다. 필자가 최근에 합류한 회사앱은 MVVM을 기반으로 작성이 되어 있다. MVVM을 검색하면 항상 나오는 Data Binding을 적용하지 않았지만, 이게 왜 MVVM인지, 뭐가 부족한지 알아보기 위해 기존의 내 생각을 정리해보자. (참고로 코드 한 줄 없는 MVVM 아이디어에 대한 칼럼이라 지루할 수 있다.) 내용 MVVM은 총 3가지의 컴포넌트로 구성되어 있다. Model, View, ViewModel, ..
도입 윈도우 어플리케이션 만드는 회사에서 2년 간 병특 생활을 끝내고, 대학교로 돌아가야지 생각하던 도중 그냥 우연히, 문득, 처음 병특 생활을 하기로 했을 때 마음가짐이 생각났습니다. 소프트웨어 회사 경험을 해보자! 내가 컴퓨터 과학자인지, 개발자인지 함 확인해보자! 근대 곰곰이 생각해보니 "내가 대학교 졸업한 다음 개발자를 하면 좋을까?"라는 질문에 대답을 못하겠더라고요. 순간 내가 뭘 하면 좋을지 고민하던 와중 반년 전 원티드에 작성한 이력서가 떠올랐습니다. 이력서 오래 됐으니 한 번 정리해야지하는 심정으로 원티드에 접속하고 안드로이드 개발로 이력서를 정리하였습니다. 그런데 정리를 하고 보니 괜찮아 보이는 회사들 채용 정보가 올라와 있더군요. 그래서 무작정 원티드에서 이력서 제출 버튼을 여러 군데 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cFZwFH/btqygC0x3Ll/dKJdSTh1MhBd4imbz0c4B1/img.png)
도입 안드로이드 프로그래밍은 매우 번거로운 일들의 모음이다. 이를 단축하기 위해 여러 가지 라이브러리를 사용하고, 안드로이드 스튜디오의 도움을 받고, 코틀린을 이용해 언어적 지원도 서슴없이 받고 있지만, 여전히 번거롭다. 프로그램 개발에서 리스트의 중요성은 말 안해도 아실 것이다. 프로그램 자체가 데이터를 정리해서 보여주는 것이고, 많은 데이터를 하나의 아이템으로 사용자에게 전달할 때 리스트 만 한 것이 없다. 실제로 유튜브의 무한대에 가까운 동영상은 리스트 형태로 사용자에게 보이고, 인스타그램, 페이스북 그리고 트위터의 피드, 카카오톡의 친구 목록, 카톡방들도 생각해보면 똑같은 형태의 리스트로 구성되어 있다. 그만큼 우리가 어플리케이션을 개발할 때 리스트는 자주 작업하게 되는 것이다. 하지만 서두에도 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bLkmVP/btqx4TvQ5if/I3W2rPnpvEna2VPSRKtvk1/img.png)
도입 part2에서는 흐름 제어, 함수 정의, 코틀린만의 클래스에 대해서 알아볼 건데요. java, c#, c++과 차이가 나는 부분만 중점적으로 다룰 예정입니다. 따로 다루지 않은 사용법은 링크된 참고 링크를 참조해 주세요. 코드 작성은 코틀린 플레이그라운드상에서 진행하시거나, 실제 안드로이드 프로젝트를 생성 후 작성해주시면 됩니다. 그리고 해당 포스트는 코틀린 공식 홈페이지와, 커니의 코틀린을 참조해서 만들었다는 점을 말씀드립니다. (+ 필자의 경험 :) ) Kotlin Playground: Edit, Run, Share Kotlin Code Online play.kotlinlang.org 다루는 것 코틀린 문법 선언 (변수, 값 선언) [part1] 자료형 (Nullable) [part1] 리스트 ..