본문 바로가기

전체 글

(60)
1. Node.js를 배워보자 2021-09-23 요새 안드로이드 공부를 하면서 웹 쪽도 공부해 보고 싶어서 사이드로 공부해보고 있습니다. 혹시 잘못된 개념이나 잘못 인용된 부분이 있다면 무한 지적 환영합니다 ㅎㅎ Node.js란? Chrome V8 JavaScript엔진으로 빌드된 JavaScript 런타임을 의미합니다. (런타임 : 프로그래밍 언어가 동작하는 환경 이라는 의미) JavaScript가 동작하는 환경에는 2가지가 있습니다. (js : Javascript) 1. 컴퓨터 (Node.js가 설치된.) 2. 웹 브라우저 따라서 프론트엔드 개발자는 웹 브라우저에서 동작하는 javascript도 이해해야 하고 웹 브라우저에서 동작하는 웹 페이지를 만들어내는 컴퓨터 환경도 이해해야 합니다. 결국 javsscript를 배워야 하는데 node.js를 왜..
간단하게 ViewModel을 알아보자 - Incorporate Lifecycle-Aware Components 2021-07-01 해당 게시글은 코드랩 예제를 참고하였습니다. 먼저 step1의 경우 chronometer를 그대로 실행하여 타이머를 구성하였기에 따로 바꿀 필요 없이 앱 코드만 다운로드해서 실행만 하면 됩니다:) (밑에는 샘플코드를 다운로드 할 수 있는 링크입니다.) https://developer.android.com/codelabs/android-lifecycles?hl=ko#1 Incorporate Lifecycle-Aware Components | Android 개발자 In this codelab, you'll learn about lifecycle-aware architecture components and how to incorporate LiveData and ViewModels into your app. ..
코틀린 컬렉션과 멤버 메서드(Kotlin-Collection) 해당 글은 코틀린 개발문서의 play example을 참고하였습니다. :) List package kotlincontents.collections /* List는 정렬된 콜렉션의 아이템입니다. List는 Mutable(변하는 List)되거나 읽기 전용(List)중 하나가 될 수 있습니다. 리스트를 생성할 때, std lib함수 listOf()는 읽기 전용의 리스트이며, mutableListOf()는 변경 가능한 리스트입니다. 원치 않은 수정을 방지하려면 변경 가능한 List로 캐스팅하여 읽기 전용으로 가져옵니다. */ val systemUsers: MutableList = mutableListOf(1, 2, 3) // 1 val sudoers: List = systemUsers // 2 fun addSy..
뷰페이저2와 탭으로 스와이프 뷰 만들기(FragmentStateAdapter) 2021-06-09 탭 레이아웃과 뷰페이저2를 사용하는 방법에 대해 포스팅하겠습니다 :) 해당 예제는 안드로이드 개발 문서를 참조하였습니다. [build.gradle(Module:app)] implementation("androidx.fragment:fragment-ktx:1.3.4") implementation "androidx.viewpager2:viewpager2:1.0.0" [activity_main.xml] [layout_collection_demo.xml] [fragment_collection_object.xml] [MainActivity.kt] package com.devjamesp.viewpager2activity import android.os.Bundle import androidx.appcompat.ap..
개발자 가이드(소개) - 데이터 접근 결정 2021-06-09 주관적인 견해와 해석이 들어가 있습니다 :) 혹시 잘못된 부분이 있다면 밑에 댓글을 남겨주시면 반영하겠습니다. :) Determine sensitive data access needs App 권한들은 임의의 접근을 보호함으로써 사용자의 Privacy를 보호합니다. - Restricted data(제한된 데이터), 사용자의 정보나 시스템 상태와 같은 데이터들 - Restricted actions(제한된 동작), 단말기(장치, 기기)를 공유하거나 오디오를 녹음하는 것과 같은 동작들 이 페이지는 어떻게 안드로이드에 권한들이 작용하고, 높은 수준의 권한 사용을 위한 workflow와 다양한 타입의 권한들이 작성된 descriptions, APP에서 권한을 사용하는 좋은 방법들을 제시합니다. 다른 페이지에는 어떻..
#07-3. 연산자 오버로딩 2021-05-16 07-3 연산자 오버로딩 코틀린에서 특정 연산자의 역할을 함수로 정의하고 있습니다. 이를 일종의 협약(Convension)이라고 하는데 수학에서 곱하기 연산이 더하기 연산보다 우선하듯이 연산자 역시 우선순위(Precedence)를 갖고 있습니다. 우선순위 분류 심볼 높음 낮음 접미사(Postfix) ++, --, ., ?., ? 접두사(Prefix) -, ++, --, !, 라벨선언(이름@) 오른쪽 형식(Type RHS)` :, as, as? 배수(Multiplicative) *, /, % 첨가(Additive) +, - 범위(Range) .. 중위 함수(Infix Function) SimpleName 엘비스(Elvis) ?: 이름 검사(Name Checks) in, !in, is, !is 비교(Comp..
#07-2. 애노테이션 클래스 2021-05-16 애노테이션 위치 @Fancy class MyClass { @Fancy fun myMethod(@Fancy myProperty: Int): Int { return (@Fancy 1) } } 앞에서 정의한 @Fancy라는 애노테이션을 클래스의 앞, 메서드 앞, 프로퍼티 앞에 사용할 수 있고, 반환할 때에는 값 앞에 표기하거나 소괄호로 감쌉니다. :) class Foo @Fancy constructor(dependency: MyDependency) { ... } 생성자 앞에 사용 시 constructor생력 불가!! class Foo { var x: MyDependency? = null @Fancy set } 프로퍼티의 게터/세터에도 사용 가능합니다 :) 애노테이션의 매개변수와 생성자 annotation cl..
#07-2. 데이터 클래스와 기타 클래스 2021-05-15 07-2 데이터 클래스와 기타 클래스 데이터 전달을 위한 데이터 클래스 보통 데이터 전달을 위한 객체를 DTO(Data Transfer Object)라고 부릅니다. 자바에서는 POJO(Plain Old Java Object)라고 부르기도 했습니다. DTO는 구현 로직을 가지고 있지 않고 순수한 데이터 객체를 표현하기 때문에 보통 속성과 속성을 접근하고자 하는 게터/세터를 가집니다. 추가적으로 toString(), equals() 등과 같은 데이터를 표현하거나 비교하는 메서드도 가지고 있습니다. 데이터 클래스에서 내부적으로 자동 생성되는 메서드 - 프로퍼티를 위한 게터/세터 - 비교를 위한 equals()와 키 사용을 위한 hashCode() - 프로퍼티를 문자열로 변환해 순서대로 보여주는 toString..