본문 바로가기

CleanArchetecture https://academy.realm.io/kr/posts/clean-architecture-in-android/ Presentation 레이어 -> Data-> domain -> entity Presentation layer 로직과 관련된 레이어 Data layer 네트워크, 로컬 db에서 데이터 가져옴 Domain layer 사용자의 유스케이스로 분리 Entity layer 사용자 개념 정의 의존성은 안쪽으로만 발생해야 한다. Entity레이어가 의존성이 낮다 더보기
ComponentArchitecture LiveData liveData는 식별 가능한 수명 주기 인식 데이터 홀더 클래스. UI코드는 LifecycleOwner와 연결된 기본 데이터의 변경사항을 구독하고 수명 주기가 활성상태 인 동안 관찰자가 데이터에 대한 업데이트를 가져옴 LifecycleOwner가 제거될 때 관찰자가 제거됨 LifecycleOwner가 구성변경으로 인해 다시 시작되거나 백스택에서 다시시작되는 경우 관찰자가 최신 데이터를 가져옴 메모리 누수를 일으키는 많은 경로를 제거할 수있음 충돌방지 Lifecycler수명주기 소유자와 연결된 많은 리스너에 의해 관찰가능 ViewModel ViewModel Activity또는 Fragment 에 대한 UI데이터를 포함하는 도우미 클래스 이며, UI컨트롤러 로직과 데이터 보기 소유권을 분리.. 더보기
Repository Pattern 정의 데이터 조희 로직 이 레파지터리에 들어가려는 현상. 문맥: 많은 어플리케이션에서 비즈니스 로직은 데이터베이스, 쉐어포인트, 웹서비스와 같은 데이터저장소의 데이터에 접근합니다. 직접접근은 다음과 같은 부작용을 초래할 수 있습니다. 중복된 코드 프로그래밍 에러가 발생할 높은 잠재성 비즈니스 데이터에 대한 오타 캐싱과 같은 데이터-관계 정책 중심화하기 어려움 외부 의존으로 부터 비즈니스 로직을 분리하기 어려움에 따른 테스트 불가능성 출처: http://vandbt.tistory.com/27 [소프트웨어 디자인- Design Software by vandbt] 목표 복잡한 비즈니스 로직을 단순화 시키기 위해 도메인 모델을 적용하기를 원한다. 출처: http://vandbt.tistory.com/27 [소프.. 더보기
Clean Architecture 번역 DesignPatternClean Architecture 번역nelhwu90 openDatabase 2017.12.26 14:29The Clean Architecture - Uncle Bob Hexagonal Architecture, Onion Architecture , Screaming Architecture, DCI, BCE 같은 아키텍쳐는 다음과 같은 system을 생산한다. 공통점은 소프트웨어를 층으로 나누어 분리 시키는 것. 각각은 비즈니스 규칙을 위한 계층이 하나 이상있고, 인터페이스를 위한 계층도 다르다. 1. 프레임워크의 독립성. 라이브러리나 기능의 의존하지 않고 제한된 제약조건에 따르지않고, 프레임워크의 툴로서 사용된다. 2. 테스트 가능한 비즈니스 규칙은 UI,DB,Web Server .. 더보기
8. 엔터티 정의가 중요하다. 엔터티 모델링이 어려운 이유 데이터 집합을 정의 하기가 쉽지 않다. 데이터의 본질을 볼 줄 알아야 엔터티를 정확하게 정의 할 수 있다. 이게 쉬운일이 아니다. 엔터티의 추상화 수준을 결정하는 것은 대단히 어렵다. 하위의 트랜잭션 데이터만을 보고 부모 역할을 하는 상위의 논리적인 집합을 발견하는 것은 어렵다. 업무의 방대함과 복잡도에 압도되기 쉽다. 다음 장에서 그래서 어떻게 하는것인가 가 나오겠지 더보기
7. 그럼에도 불구하고 정규화 데이터 이상현상 data anomaly 는 속성의 값을 수정할 때나 표에 새로운 개체를 삽입하거나 삭제할 때 의도하지 않은 다른 데이터에 문제가 발생하는 현상이다. 이상현상이 발생하지 않도록 데이터를 담아야 한다. !! 제 1 정규형은 모든 속성이 값을 반드시 하나만 가져야 한다. 여러 개 가지고 있거나 물리적으로는 하나만 갖지만 유사한 형태의 반복 속성이 존재해서 논리적으로는 다수의 값을 갖는 것과 마찬 가지라면 Basis Parent 에서 별도의 엔터티로 분리해야한다. 2정규형에서는 모든 속성이 반드시 주 식별자 전부에 종속되어야 한다. 일부만 종속될 경우에는 엔터티를 분리. 3 정규형에서는 주 식별자가 아닌 모든 속성이 상호 종속 관계 여서는 안된다. 통상 3정규형 이상의 모델은 폭넓게 사용되지 않.. 더보기
6. 데이터모델링은 2차원 표에 데이터를 어떻게 담는것이 최선인지 고민하는 과정 데이터 독립성과 데이터 모델링의 실질적 정의 모델이란 무엇인가 실물을 모방한것 실물은 데이터의 저장구조 파일은 논리적인개념 ANSI/SPARC의 3단계 데이터 독립성 스키마 구조에 대한 개념도 (이건또 모야 … 아 . . ) 1. 개요 가. 3단계 데이터베이스 구조(3-Layer Database Architecture) 정의 - 데이터베이스를 관점(View)를 기준으로 3개의 계층으로 분리 - 데이터베이스의 복잡한 구조를 단수화 하여 표현하였음 나. 필요성 - 각 계층별 매핑을 통한 데이터 독립성 구현 - 각 계층별 영향을 최소화 다. 3단계 스키마 1) 외부 스키마 (External Schema) : - DB 개개 사용자나 응용 프로그래머가 접근하는 계층 - 전체 DB중에서 하나의 논리적인 부분을의미(.. 더보기
5. 범주화와 추상화 엔터티의 본질 고대 그리스 철학자들이 세상을 이해하는 방식이란 사물의 속성 자체에 주의를 기울인다. 그 속성에 근거하여 범주화 한다. 그 범주들을 사용해서 규칙을 만든다. 사물의 특성과 움직임을 그 규칙으로 설명한다. 이 방식은 데이터모델링과도 연관이 깊다. 서로 독립된 개체와 그 관계로 분석하는 것이기 때문에 결국에는 엔터티 모델링 !!!!!!!!을 연습해야한다. 피상적인 현상보다는 근본적인 존재,성질, 모습을 분석하자 - 범주화와 추상화 구체적인 특성을 드러내고 (추상화) 유사한 속성끼리 묶는다 (범주화) 복잡한것을 정형화 하려면 데이터를 관찰, 유형과 관계를 찾아내야 한다. ERD와 같은 형태로 형상화 하기 위해서는 문제영역을 자연스럽게 일정한 크기의 덩어리로 나누게 되는데 이때 필요한 것이 범주화와 추상화 추상.. 더보기
4. 데이터를 모델링한다는것.. 데이터모델링에서 맥락은 중요한 기준정보로서 모델의 구조를 지배하게 된다. ERD : 데이터 모델링 분야에서 개체-관계 모델이란 구조화된 데이터에 대한 일련의 표현이다. 서로 관계된 두 개의 엔티티 "구조"화된 데이터를 저장하기 위해 데이터베이스를 쓴다. 이 데이터의 "구조" 및 그에 수반한 제약 조건들은 다양한 기법에 의해 설계될 수 있다. 그 기법 중 하나가 개체-관계 모델링(Entity-Relationship Modelling)이다. 줄여서 ERM이라고 한다. ERM 프로세스의 산출물을 가리켜 개체-관계 다이어그램(Entity-Relationship Diagram)이라 한다. 줄여서 ERD라 일컫는다. 데이터 모델링 과정은데이터 모델을 그림으로 표현하기 위해 표시법을 필요로 한다. ERD는 개념적 데.. 더보기
퀵정렬 Divide and Conquer paradigm 사용 Partitioning 어떤 pivot이라고 하는 element를 기준으로 왼쪽은 작거나 같은것 오른쪽은 같거나 큰것 이것을 재귀로 호출 퀵 정렬은 pivot을 어떻게 잡느냐에 따라 성능에 영향을 미침. Soudo code QuickSort(A,p,r) If p 더보기