profile
측정할 수 없으면 관리할 수 없고, 관리할 수 없으면 개선시킬 수도 없다

Coroutine

Kotlin이 도입되면서 Thread로 비동기 처리를 한 것을 좀 더 작은 단위로써 처리할 수 있게 하는 Coroutine여기서 설명하는 Thread에 대한 Dispatchers와 Coroutine에 디테일한 개념에 대해서는 Kotlin 공식문서와 Android 공식문

3일 전
·
0개의 댓글

DI(Dependency Inject) - Hilt

Dependency는 의존성이라고 하는데 이 의존성은 하나의 클래스가 다른 하나의 클래스에 의존하는 것을 의미함A 클래스 객체를 만들기 위해 B를 필요로 한다는 것을 생각해볼 수 있음여기서 Dependency Injection은 쉽게 생각해보면 이러한 의존관계에 있는

3일 전
·
0개의 댓글

Kotlin 마이그레이션

이전에 Java로 개발하는데 있어서 가장 큰 문제는 스파게티 코드와 보일러 플레이트 코드였음서로가 서로를 참조하고 생성자부터해서 필요 이상으로 코드가 늘어지는 현상이 발생했음물론 이 부분을 1차적으로 MVVM 패턴을 적용시켜서 개선을 하였지만 이전에 경험에 빗대어서 이

3일 전
·
0개의 댓글

홈 화면

리사이클러뷰 Data Binding 및 ViewModel 활용한 부분 DiffUtil + ListAdapter 사용 이유 BindingAdapter 적용한 부분

2022년 6월 19일
·
0개의 댓글
post-thumbnail

리팩토링2

추가 개선사항 RxJava 적용 내용 설명 및 콜백 패턴과 비교 + RxJava 적용 사례 보여줌 추후 업데이트 추가 Dagger2 & Hilt 등 DI 패턴 구분 및 보류 Kotlin 보류

2022년 6월 18일
·
0개의 댓글
post-thumbnail

트랜잭션 격리 수준(Transaction Isolation Level)

동시에 여러 트랜잭션이 처리될 때, 트랜잭션끼리 얼마나 서로 고립되어 있는지를 나타내는 것임특정 트랜잭션이 다른 트랜잭션에 변경한 데이터를 볼 수 있도록 허용할지 말지를 결정함데이터베이스는 트랜잭션의 성질과 같이 트랜잭션이 독립적인 수행을 하도록 Locking을 통해,

2022년 6월 1일
·
0개의 댓글
post-thumbnail

트랜잭션(Transaction)

트랜잭션은 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미함상태 변화는 질의어(SQL)를 이용하여 데이터베이스에 접근하는 것, SELECT, INSERT, DELETE, UPDATE

2022년 5월 28일
·
0개의 댓글
post-thumbnail

인덱스(INDEX)

인덱스는 데이터베이스 테이블에 대한 검색 성능의 속도를 높여주는 자료구조임, 특정 컬럼에 인덱스를 생성하면 해당 컬럼의 데이터들을 정렬하여 별도의 메모리 공간에 데이터의 물리적 주소와 함께 저장됨이렇게 인덱스를 생성하였다면 앞으로 쿼리문에 인덱스 생성 컬럼을 Where

2022년 5월 27일
·
0개의 댓글

[아이템 31] 한정적 와일드카드를 사용해 API 유연성을 높이라

매개변수화 타입은 불공변임 서로 다른 타입 Type1 과 Type2 가 있을 때 List<Type1> 은 List<Type2> 의 하위 타입도 상위 타입도 아님즉 List<String> 은 List<Object>의 하위 타입이 아니라는 뜻임따지고

2022년 5월 21일
·
0개의 댓글

[아이템 30] 이왕이면 제네릭 메서드로 만들라

클래스와 마찬가지로, 메서드도 제네릭으로 만들 수 있음, 매개변수화 타입을 받는 정적 유틸리티 메서드는 보통 제네릭임(예컨대 Collections의 알고리즘 메서드는 모두 제네릭임)제네릭 메서드 작성법은 제네릭 타입 작성법과 비슷함위 메서드는 컴파일은 되지만 경고가 두

2022년 5월 21일
·
0개의 댓글

이상(Anomaly)

테이블 내의 데이터들이 불필요하게 중복되어 테이블을 조작할 때 발생되는 불일치 현상임테이블을 잘못 설계하여 삽입, 삭제, 갱신할 때 오류가 발생하게 되는 것임예시 테이블원하지 않는 자료가 삽입된다던지, key가 없어 삽입하지 못하는(불필요한 데이터를 추가해야 삽입할 수

2022년 5월 20일
·
0개의 댓글
post-thumbnail

리팩토링

이전까지 서버 통신을 기준으로 그 생각만 했기 때문에 상당히 러프하게 구현에 초점을 맞춤Package만 나눴지 사실상 Activity가 서로 얽히고 얽힌 상당히 복잡한 구조...Activity가 View 전환, Data 처리 등 상당히 많은 Task를 안고 있음, 지금

2022년 5월 17일
·
0개의 댓글
post-thumbnail

정규화(Normalization)

관계형 데이터베이스의 설계에서 중복을 최소화하게 데이터를 구조화하는 프로세스를 정규화라고 함정규화의 기본 목표는 관련이 없는 함수 종속성은 별개의 릴레이션으로 표현하는 것임정규화된 결과를 정규형이라고 하며, 정규형은 기본 정규형, 고급 정규형으로 나뉨기본 정규형 : 제

2022년 5월 17일
·
0개의 댓글

[아이템 29] 이왕이면 제네릭 타입으로 만들라

위 클래스는 원래 제네릭 타입이어야 마땅함, 여기서 이 클래스를 제네릭으로 바꾼다고 해도 현재 버전을 사용하는 클라이언트에는 해가 없음, 오히려 지금 상태에서의 클라이언트는 스택에서 꺼낸 객체를 형변환해야 하는데 이때 런타임 오류가 날 위험이 있음먼저 일반 클래스를 제

2022년 5월 16일
·
0개의 댓글

[아이템 28] 배열보다는 리스트를 사용하라

배열과 제네릭 타입에는 중요한 차이가 두 가지 있음배열은 공변(Covariant)임, Sub 가 Super 의 하위 타입이라면 배열 Sub\[] 는 Super\[] 의 하위 타입이 되고 함께 변함제네릭은 불공변(invariant)임 서로 다른 타입 Type1 과 Typ

2022년 5월 16일
·
0개의 댓글
post-thumbnail

SQL Injection

보안상의 취약점을 이용하여, 임의의 SQL문을 주입하고 실행되게 하여 DB가 비정상적인 동작을 하도록 조작하는 행위임이용자의 입력값이 SQL 구문의 일부로 사용될 경우, 해커에 의해 조작된 SQL 구문이 데이터베이스에 그대로 전달되어 비정상적인 DB 명령을 실행시키는

2022년 5월 16일
·
0개의 댓글

SQL - JOIN

둘 이상의 테이블을 연결해서 데이터를 검색하는 방법, 연결하려면 테이블들이 적어도 하나의 컬럼을 공유하고 있어야함이 공유하고 있는 컬럼을 PK 또는 FK값으로 사용 예시 테이블A 테이블B 테이블교집합, 공통적인 부분만 SELECT 됨(내부 조인), 두 테이블 조인할 때

2022년 5월 10일
·
0개의 댓글
post-thumbnail

키(Key) 정리

키(Key)는 데이터베이스에서 조건에 맞는 튜플을 찾거나 순서대로 정렬할 때 다른 튜플들과 구별할 수 있는 유일한 기준이 되는 속성(Attribute)임여기서 튜플은 각각의 행, 속성의 모임으로 아래와 같이 표의 형태로 이해하면 됨유일성을 만족하는 키, 예를 들면 {학

2022년 5월 10일
·
0개의 댓글
post-thumbnail

SQL vs NoSQL

SQL, NOSQL을 알아보기 앞서 데이터베이스에 간단히 알아보자면데이터베이스는 데이터의 모음을 말함, 컴퓨터에 저장되는 조직화된 데이터 모음이라고 할 수 있음이렇게 데이터를 조직화하면 데이터에 의미가 생기고 대량의 데이터를 효율적으로 관리할 수 있게됨이런식으로 데이터

2022년 5월 10일
·
0개의 댓글

[아이템 27] 비검사 경고를 제거하라

제네릭을 사용하기 시작하면 수많은 컴파일러 경고를 보게 될 것임비검사 형변환 경고, 비검사 메서드 호출 경고, 비검사 매개변수화 가변인수 타입 경고, 비검사 변환 경고 등대부분의 비검사 경고는 쉽게 제거할 수 있음, 아래의 예시를 볼 수 있음이처럼 할 수 있는 한 모든

2022년 5월 8일
·
0개의 댓글