전체 글 121

[Android] LiveData / MutableLiveData / 라이브 데이터 / 사용법 / 예제

이번 포스팅에서는 라이브 데이터에 대해 알아보자. 라이브 데이터란? 공식 문서 ↓ LiveData 개요 | Android 개발자 | Android Developers LiveData를 사용하여 수명 주기를 인식하는 방식으로 데이터를 처리합니다. developer.android.com 라이브 데이터는 Android Jetpack에 포함된 라이브러리이며 관찰 가능한 데이터 홀더 클래스다. 관찰 가능한 다른 클래스도 있지만, 라이브 데이터가 다른 점이 있다면 액티비티 · 프래그먼트의 생명주기를 인식한다. 관찰자로는 Observer 클래스를 사용하며 해당 클래스를 사용하기 위해서는 LifecycleOwner를 지정해줘야 한다. LifecycleOwner에는 액티비티 · 프래그먼트 등이 지정될 것이다. 라이브 데..

[Android] 데이터 바인딩 / DataBinding / 사용법 / 예제

이번엔 데이터 바인딩에 대해 알아보자. 데이터 바인딩이란? 공식 문서 ↓ 데이터 결합 라이브러리 | Android 개발자 | Android Developers 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 데이터 결합 라이브러리 Android Jetpack의 구성요소. 데이터 결합 라이브러리는 프로그래매틱 방식이 아니라 선 developer.android.com Android Jetpack의 구성 요소 중 하나로, 프로그래매틱 방식이 아닌 선언형 방식으로써 UI 구성요소를 앱의 데이터와 결합할 수 있도록 지원하는 라이브러리다. 일반적으로 View에 데이터를 할당하려면 다음과 같은 절차가 필요하다. TextView textView = findViewById(R.id.text..

[Android] ViewBinding / 뷰 바인딩 / 사용법 / 예제

이번 포스팅에서는 안드로이드 뷰 바인딩에 대해 알아보자. 뷰 바인딩이란? 공식 문서 ↓ 뷰 결합 | Android 개발자 | Android Developers 뷰 결합 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 뷰 결합 기능을 사용하면 뷰와 상호작용하는 코드를 쉽게 작성할 수 있습니다. 모듈에서 사용 설정 developer.android.com 공식 문서에서는 View Binding을 뷰 결합이라고 번역한다. 본 포스팅에서는 뷰 바인딩이라 부르겠다. 뷰 바인딩은 findViewById()를 대체할 수 있는 View 참조 방식이다. 왜 findViewById()를 대체하는지는 '기존 View 참조 방식과의 차이점' 탭에서 설명한다. 사용해보자 ✅ build.gradle(..

[Server] DataBase ERD / 데이터베이스 ERD

이번 포스팅에서는 DB ERD에 대해 알아보자. ERD 란? Entity Relationship Diagram의 약어다. *Entity : 실재, 독립체 등 / Relationship : 관계 Entity를 DB 내 하나의 테이블로 놓고 본다면 'DB 내 테이블 관계 다이어그램' 이라 이해할 수 있다. 가끔 ERD 다이어그램이라고 부르는 사람이 있는데, 다이어그램 x2 이기 때문에 부끄럽지 않도록 조심하자. ERD 사용하면 뭐가 좋아요? ● 실제 DB를 구현하기 전, DB 설계의 이해를 높이기 위해 모델링할 수 있다. ● DB 구조를 한 눈에 알아보기 쉽도록 도움을 준다. ● 개발 시작 후에도, 구조화된 다이어그램을 보면서 수월한 작업을 할 수 있다. ERD 표기 방법 이제 엔티티의 관계를 표기하는 방법..

[Server] DataBase Transaction / 데이터베이스 트랜잭션 / 사용법

이번 포스팅에서는 데이터베이스 트랜잭션에 대해 알아본다. 트랜잭션이란? '하나의 작업을 수행하기 위해 필요한 데이터베이스 연산을 모아놓은 것' 'DB의 상태를 변화시키기 위해 수행하는 작업 단위' 라고 정의하기도 한다. 요약하자면, 'DB의 상태를 변화시키는 여러 명령이 묶인 작업의 한 단위' 라고 할 수 있겠다. 트랜잭션의 특징 트랜잭션은 다음과 같은 4가지 특징을 가지고 있다. ✅ 원자성 (Atomicity) 트랜잭션이 DB에 '모두' 반영되거나, '전혀' 반영되지 않아야 한다. 3가지 작업을 한번에 수행했을 때, 2개는 성공하고 1개는 실패했다고 가정한다. 실패한 1개의 작업 때문에 성공한 2개의 작업을 'rollback' 하여 되돌려 놓아야 한다. ✅ 일관성 (Consistency) 작업 처리 결..

[Java] HashMap / 해시맵

이번 포스팅에서는 Map의 한 종류인 HashMap에 대해 알아보자. HashMap ? Map 인터페이스를 상속하는 대표적인 Map의 컬렉션이다. Map은 key - value 로 이루어진 객체를 저장하는 구조이며, HashMap도 Map을 상속하기에 동일한 구조를 사용한다. HashMap은 이름 그대로 Hashing을 통해 데이터를 검색하기 때문에, 많은 양의 데이터를 다룰 때 좋은 성능을 보인다. *Hashing : key 값에 연산을 적용하여 객체의 주소를 계산하여 접근하는 방식. 다른 대부분의 탐색 방법들은 일치하는 key를 찾을 때까지 반복 순회한다. ✅ 특징 ● key는 고유의 값을 가진다. 중복된 key 값이 입력되면 해당 데이터가 덮어 쓴다. ● key, value에 null 값을 저장할 ..

Java (자바) 2024.02.06

[Java] 확장 for문 / Collection

이번 포스팅에서는 확장 for문에 대해 알아보겠다. 확장 for문이란? JDK 1.5 부터 추가된 기능으로, 기존 for문을 축약했다고 볼 수 있다. 기본 문법은 다음과 같다. for (대입할 변수 : Collection) { //TODO } Collection의 타입과 대입할 변수의 타입이 일치해야 하며, 해당 Collection의 길이만큼 반복하여 변수에 대입된다. *Collection에 대한 설명은 아래 'Collection ?' 탭에서 진행한다. 배열을 예시로 들어보겠다. int[] array = {10, 20, 30, 40}; for (int i : array) { System.out.println(i); } 결과) 변수 i에 배열 array 원소의 값이 하나씩 대입되며 출력되었다. 기존 for..

Java (자바) 2024.02.05

[Java] 삼항 연산자

이번 포스팅에서는 삼항 연산자에 대해 알아보자. 삼항 연산자란? if~else문과 동일한 역할을 수행하는 조건 연산자의 일종이다. 대신, 참과 거짓. 딱 2개의 케이스만 구분할 수 있다. if문으로 예시를 들면, else if 를 사용하여 3개 이상의 결과를 구분하는 등의 행위는 삼항 연산자로는 불가하다. 문법 문법은 다음과 같다. // 문법 조건식 ? 참일 때 반환 값 : 거짓일 때 반환 값 // 예시 int i = 0; String result = i > 0 ? "참" : "거짓"; // result == "거짓" i > 0 이 아니기 때문에 "거짓" 이라는 문자열이 대입되었다. 삼항 연산자를 사용하는 이유? if~else문, switch문 이 2개의 조건문으로도 충분히 문제 없이 코딩할 수 있다. ..

Java (자바) 2024.02.04