본문 바로가기

Contents168

라이브러리 vs 프레임워크 원래 올릴 생각 없이 그냥 정리한 글이었는데 그냥 올렸다. 라이브러리와 프레임워크의 차이 개발 관련 용어를 구분하는 게 중요하다고 생각하지는 않지만, 은근 사람들이 구분하지 못 하는 것은 라이브러리와 프레임워크이다. framework 는 단어 그대로 번역하면 “뼈대”이다. 하지만 이 뜻만 가지고 구분하기엔 실제 구분 방법과 약간의 차이가 있다. 단어 뜻으로만 해석하면 하나의 프로그램에는 하나의 프레임워크만 사용해야될 것처럼 보인다. 실제로는 하나의 프로그램에 여러 가지 프레임워크를 이용하게 된다. 프레임워크인지 아닌지를 구분하는 기준은 IoC(Inversion of Control, 제어의 역전) 이다. 코드의 제어권이 나에게 있으면 라이브러리, 그렇지 않으면 프레임워크이다. 필요할 때 가져다 사용하면 라.. 2022. 3. 30.
앱센터 14기 센터장 서류 전형 회고 나는 12.5기에 앱센터에 들어왔다. 13기, 13.5기에 안드로이드 파트장으로 신입기수 모집에 참여했고 14기에는 센터장으로 신입기수를 모집한다. 홍보 http://join.inuappcenter.kr/ 💕앱센터 신입멤버 모집💕 요약 💭 지원 링크 : https://forms.gle/A8HXaVhdyGw8ThP76 모집 대상 : 1년이상 활동 가능한 인천대학교 재학생 및 휴학생 주요 활동 : 인천대의 각 분야별 학생들이 모여 애플리케이션 기획 및 개발 모집 join.inuappcenter.kr 다른 학과 단톡방에 홍보를 부탁할 때에는 위와같이 홍보 링크를 만들어 전달해 달라고 했다. 각 학과(정보대학, 디자인) 단톡방, 프로그래밍 관련 단톡방, 인스타그램, 에브리타임에 홍보했다. 위 링크는 노션으로 만.. 2022. 3. 20.
[안드로이드] 커스텀 뷰 만들기 (CustomView) 관련된 글 : [안드로이드] layout 속성 정의 및 이벤트 구현하기 1. CustomView 에 대한 글을 왜 작성하게 되었을까? 1-1. View 의 재사용이 필요하다. CustomView 를 사용하는 이유는 View 의 재사용을 위해서다. 디자인이나 React 같은 프레임워크에서는 이런 개념을 컴포넌트라고 부른다. 디자인과 UX 의 통일성을 유지하기 위해 동일한 형태의 UI 를 여러 군데에서 사용하게 되는데 이런 UI 를 사용하는 곳마다 각각 구현하기에는 코드의 길이도 길어지고, 수정 및 관리하기에도 어렵다. 1-2. CustomView 와 include 를 비교하자면? 완전히 동일하고 글자만 바꿔주면 되는 경우에는 include 로 쉽게 해결할 수 있다. 여기서 조금 복잡해지는 정도도 inclu.. 2022. 2. 28.
[안드로이드] 반응형을 고려한 xml 마크업 (ConstraintLayout) 이 글은 특정 키워드를 검색해서 필요한 내용만 확인하는 글보다는, 가볍게 전체적으로 읽기를 바라며 작성했다. 마크업부터 잘못 작성되는 경우가 있는데, 참고할 만한 글이 되었으면 좋겠다. 특정 코드를 작성하는 방법은 이미 많은 글이 있으므로 코드보다는 의미 위주로 보면 된다. 마크업은 반응형 뿐만 아니라 추가로 나중에 수정될 것까지 고려해야 한다. 추가로 이 글은 다양한 레퍼런스를 참고하기보다는 내 개인적인 의견으로 작성된 글이니 무작정 받아들이기보다 자신의 생각과 비교하며 읽어주길 바란다. 마크업은 일반적으로 성능(View 객체가 가장 적게 생성 됨.)이 가장 좋은 ConstraintLayout 을 기준으로 작성하였다. 왜 마크업을 주의해서 작성해야 할까? 휴대폰마다 해상도, pixel ratio (pi.. 2022. 2. 26.
[RxKotlin] 2. Observable (콜드 옵저버블, 핫 옵저버블, Subject) 간결함을 위해 생략한 내용이 있으니 RxKotlin 을 처음 접한다면 지난 글을 먼저 읽는 것이 좋다. [RxKotlin] 기본 개념 (Observable 과 Observer) [RxKotlin] Observable (콜드 옵저버블, 핫 옵저버블) [RxKotlin] Single, Maybe (작성 예정) [RxKotlin] Flowable, Subscriber, 백프레셔 [RxKotlin] 연산자 [RxKotlin] 스레드 [RxKotlin] 안드로이드에 적용 1. Cold observable 우리가 지난 글에서 다루었던 Observable 은 콜드 옵저버블이다. 핫 옵저버블은 ConnectableObservable 타입을 갖는다. 그렇다면 콜드 옵저버블과 핫 옵저버블의 차이점은 무엇일까? 그것은 이미.. 2022. 2. 20.
[RxKotlin] 1. 기본 개념 (Observable 과 Observer) RxXX 는 ReactiveX 라이브러리의 각 언어별 라이브러리 이름이다. 나는 RxKotlin 을 Intelij 에서 연습하고 있다. 아래와 같이 RxKotlin 과 Coroutine 의존성을 추가하고 있다. implementation("io.reactivex.rxjava2:rxkotlin:2.4.0") implementation('org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.0') RxKotlin 에 관련한 내용은 시리즈로 작성할 예정이다. RxKotlin 에 대한 글은 그래도 조금 있는 편이라 생각하지만 러닝커브가 있는 편이라 양질의 글을 찾아보기 어렵다. 영어로 공부하거나, 여러 한글자료를 읽어보고 종합시켜서 이해하거나 책을 읽어야 한다. 이 시리.. 2022. 2. 11.
[안드로이드] layout <include> 속성 정의 및 이벤트 구현하기 ※ 이 글에서 설명하는 내용은 싱글 Activity 프로젝트에 적절합니다. 22.02.27. 설명 추가 : variable 로 listener 혹은 viewModel 등을 넘겨주는 방식으로도 이벤트를 연결할 수 있다. listener 를 interface 로 만들어 ViewModel 등에서 구현하여 속성값으로 넘겨주면 된다. 하지만 ViewModel 마다 직접 구현해야 하고, 코드 중복이 생기는 것은 불가피하다. View 의 재사용이 안드로이드에서 가장 아쉬운 부분인 것 같다. React 나 Flutter 같은 경우 매우 쉽게 사용중인 ui 의 일부를 떼어내어 컴포넌트화(재사용)할 수 있다. 떼어낸 ui 가 툴바라고 해 보자. 대략 위와 같은 모습일 것이다. 페이지에 따라서 BackButton 이 없을 .. 2022. 2. 10.
[안드로이드] 리사이클러뷰 데이터 바인딩 이벤트 (RecyclerView data binding) 지난 글에서 빼먹은 부분이 있다. 리사이클러뷰에서 이벤트 리스너를 연결하는 방법인데, 지금 상태에서 무지성으로 리스너를 연결한다면 아마 bind 함수에서 하게될 것이다. 이번 글에서는 Adapter 에 ViewModel 을 받아 사용하는 방법을 알아보자. 지난 글에 이어서 설명하겠다. 이번에는 지난 번보다 짧다. 1. 이벤트 함수 구현 class MainViewModel : ViewModel() { // ... fun showToastMessage(view: View, text: String) { Toast.makeText(view.context, text, Toast.LENGTH_SHORT).show() } } 내가 실제로 코딩한 순서는 이것과 다르지만, 글에서는 컴파일 에러가 나지 않는 순서대로 진행.. 2022. 1. 27.
[안드로이드] 애플리케이션 아키텍처 안드로이드 시스템같은 저수준 아키텍처가 아닌 앱 개발 수준의 아키텍처에 관한 글이다. 안드로이드를 시작하는 사람의 프로젝트 구조 안드로이드는 처음 배우고 애플리케이션을 만들면 많은 사람들이 Activity 와 layout 을 담은 xml 파일만을 이용해 코드를 작성한다. 물론 다른 개발 경험이 많다면 그러지 않을 수도 있다. 어쨋든 이렇게 코드를 작성하다 보면 Activity 코드가 걷잡을 수 없이 커진다. ViewModel 의 분리 애플리케이션에서 중요한 것은 무엇일까? 바로 비즈니스 로직이다. 비즈니스 로직은 UI 와는 전혀 관련이 없다. Todo list 애플리케이션으로 예를 들어보자. "할 일을 저장한다." 와 같은 비즈니스 로직에 UI 와 관련된 언급이 있는가? 전혀 없다. View(GUI) 는.. 2022. 1. 23.