본문 바로가기

전체 글

(25)
[디자인패턴] Repository 패턴 Repository 패턴 비즈니스 로직에서 데이터의 출처에 관계없이 동일한 인터페이스를 통해 데이터에 접근할 수 있는 패턴 장점 1. 데이터 레이어와 비즈니스 로직을 분리할 수 있다. 2. 동일한 인터페이스를 통해 데이터에 접근할 수 있다. 3. 단위테스트에 용이하다 4. 데이터저장소에 대한 추상화를 통해 확장성에 용이하다
[안드로이드] 참고한 좋은사이트들 1. 키 값을 숨겨보자. properties, manifest https://medium.com/affirmativedev/%EC%A4%91%EC%9A%94%ED%95%9C-%EA%B0%92%EB%93%A4%EC%9D%84-%EC%88%A8%EA%B2%A8%EB%B4%85%EC%8B%9C%EB%8B%A4-e5be00d2e921
[안드로이드] 뷰모델을 알아보자 자주 사용하는 아키텍쳐 패턴이 여러가지가 있다. MVC: 역할에 따라 구분해서 프로그램을 나눠보자 MVP: 화면과 로직을 분리하자 (그래야 유닛테스트를 할 수 있지) MVVM: 화면알아서 그리렴. 나는 데이터만 바꿀테니. 뷰모델이란?? ViewModel 클래스는 수명 주기를 고려하여 UI 관련 데이터를 저장하고 관리하도록 설계되었습니다. ViewModel 클래스를 사용하면 화면 회전과 같이 구성을 변경할 때도 데이터를 유지할 수 있습니다. ** 뷰모델이란 UI의 변경이나 Activity의 생명주기에 관계없이 데이터를 보존해주는 클래스! 뷰모델이 왜필요한가?? 기본적으로 Activity에 데이터를 보관할 경우 화면을 회전하면 destory -> create 되기때문에 데이터가 초기화된다. Activity ..
[안드로이드] 얄팍한 지식을 정리해보자 1. Task 앱에서 생성된 액티비티의 각종 정보를 저장하는 공간. 액티비티들을 생성, 관리, 제어하기 위해 사용된다. 2. Bundle HashMap 형태의 자료구조. 데이터 묶음. 보통 Activity 간의 데이터 전달에 사용한다. 3. 안드로이드 4대 구성요소 (컴포넌트) 액티비티: UI 작업 콘텐트 프로바이더: App 간 데이터 공유를 위한 인터페이스를 제공 서비스: 백그라운드 작업 브로드캐스트리시버: 배터리부족, 언어변경 등 안드로이드 시스템에서 주는 정보를 수신해줌. 4. Intent 컴포넌트를 제어하기 위해 안드로이드 시스템에 전달하는 메시지(데이터)를 담는 클래스. 기능을 수행하는 함수가 아니라, 데이터를 담는 클래스. 5. 어노테이션 하위 소스(데이터)를 설명해주기 위한 특수한 주석
[운영체제] 프로세스, 스레드 프로세스(Process) '프로그램'은 기본적으로 하드디스크에 저장되는 실행코드를 의미합니다. '프로세스'는 이 프로그램이 메모리 위에 적재되고, CPU를 점유할 수 있는 상태입니다. 프로세스제어블록 (PCB) 프로세스의 정보가 저장되는 운영체제의 자료구조입니다. 주로 커널스택에 저장되며 커널이 이 PCB를 이용하여 프로세스를 관리합니다. 많이 들어본 컨텍스트 스위칭의 컨텍스트가 이놈을 지칭하기도 합니다. 주요 구성요소 1) PID : 프로세스의 식별자 2) Process State : 프로세스의 상태 3) PC : 다음에실행할 명령어의 주소 4) 레지스터 5) 스케쥴링정보 : 우선순위 등 프로세스의 메모리 영역 프로세스가 메모리 위에 적재되면 그 영역을 크게 다음과같이 나눌 수 있습니다. 여러 프로세스..
[운영체제] 컨텍스트스위칭 개요 프로그램은 컴퓨터(프로세서)가 처리할 수 있는 일련의 코드이다 (이거 지난글 링크어케거냐) 프로세스는 프로그램을 프로세서가 읽어 메모리위에 올린 상태이다. 프로세서가 프로세스를 처리하는 방식은 여러가지가 있다. 멀티프로그래밍, 멀티프로세싱 컨텍스트 스위칭은, 하나의 프로세서가 여러개의 프로세스를 처리할때 적용되는 이론이다. 컨텍스트(Context) 란? 프로세서가 프로세스를 처리하기 위해 사용되는 리소스를 총칭한다. 적은 범위에서는 PCB(cpu의 레지스터, pid, pc 등) 를 컨텍스트로 보기도 하고, 메모리위에 적재된 프로세스가 가진 독립적인 영역(코드, 힙, 스택) 을 포함하는 넓은 범위를 컨텍스트로 보기도 한다. 컨텍스트 스위칭 (Context Switching) 이란? 프로세서가 A 프로..
[운영체제] 세마포어, 뮤텍스 임계구역 (Critical Section) 세마포어, 뮤텍스를 정리하기에 앞서 임계구역에 대한 개념이 필수적입니다. 다수의 프로세스가 처리되는 환경에서, 프로세스들은 일부 자원을 공유하게 됩니다. 이때 프로세스가 공유자원에 접근하게 되는 부분(영역)이 Critical Section(CS)입니다. 동기화(Synchronization) 여러개의 프로세스, 혹은 여러개의 스레드가 공유자원에 접근하게 되면 데이터가 마구잡이로 변할수도있습니다. 데이터가 무질서하게 수정되지 않고, 프로세스와 스레드의 접근을 제어하여 데이터의 정합성이 지켜지는 것을 동기화 라고 합니다. 공유자원에 대한 접근이 제어되면서 데드락이 발생하기도 하는데, 다음번에 알아보도록 합니다. 세마포어 (Semaphore) 공유자원의 동기화 방법 중..
[안드로이드] 리사이클러뷰를 만들어보자 리사이클러뷰 : 용도 구성요소 어댑터 : 리사이클러뷰의 속성을 관리한다 뷰홀더 모델 장단점 사용예제 리사이클러뷰 dependency build.gradle에 dependency를 추가해준다 https://developer.android.com/jetpack/androidx/releases/recyclerview#kts dependencies { implementation("androidx.recyclerview:recyclerview:1.2.1") // For control over item selection of both touch and mouse driven selection implementation("androidx.recyclerview:recyclerview-selection:1.1.0") ..