목록전체 글 (50)
운기의 블로그
저번에 이어서 saveMemoActivity를 만들어 보겠습니다. mainActivity에서 현재 저장되어있는 메모 상태를 본 다면, saveMemoActivity에서는 메모를 작성하고 안드로이드 로컬 database에 작성한 메모를 넣어 줄려고합니다. 기존에 SQLite에 대한 추상화 레이어를 제공하여 보다 원할하게 사용할 수 있도록 도와줍니다. 사용자는 DAO (Data Access Objects ) 인터페이스를 통해서 데이터베이스에 값을 저장하기도하고 저장된 값을 불러와서 사용 할 수 있습니다. Room 사용하기 Room을 사용할 때, 보통 LiveData를 사용해서 mvvm 패턴에서 옵저버패턴을 이용하여 사용 하지만.. 아직 저는 부족한 관계로.. 디자인패턴없이 사용했습니다 종속성 추가 https..
우선 어려웠다.... UI를 만드는 건 어렵지 않았지만.. 설계가 끝나고 안드로이드 내장 DB인 SQLite 대신 ROOM 라이브러리를 사용해서 보다 쉽게 구현하고 싶어서 공부를 해봤는데, 공부 도중 AAC, MVVM을 이용하여 구현돼있는 예제들을 보고 MVVM 디자인 패턴에 맞춰서 만들어 보려고 했지만 아직인 거 같았다. 디자인 패턴은 좀 더 안드로이드에 익숙해지고 코틀린도 공부하고 넘어가야지 처음부터 욕심부리다가 이도 저도 아니게 될 거 같은 생각이 들었다. 좀 더 열심히 하자...ㅠ 오늘은 메모가 저장될 공간과 메모를 작성할 공간의 초기 UI를 잡아준 거 까지 포스팅할 예정이다. 중간에 데이터 바인딩 부분은 디자인 패턴 사용하려고 시도했다가 실패하고 코드 수정 안 하고 그대로 사용한 거 이기 때문에..
한 동안 이런저런일로 포스팅을 하지 못 했던 나를 반성하면서... 새롭게 안드로이드 포스팅을 하려고한다. 주제는 나만의 메모장 1. DB를 이용해 작성한 메모를 저장하고, 저장된 내용을 리사이클러뷰를 이용하여 뿌려 준다. 2. 작성하는 메모에는 제목, 내용, 이미지로 구성되어있고, 이미지는 사진첩을 이용하거나 URL을 이용하여 여러개를 저장한다. 3. 불러오기 화면에는 메모의 제목과 내용의 일부, 그리고 여러개의 사진 중 하나의 사진이 보여진다. 구성은 크게 이렇게 할 생각이고, 기간은 일주일 정도 잡고 해볼 생각이다. 중간중에 더 필요한 내용이 있다면 추가하면서 진행하려고한다.
메모리관리배경 메모리관리하는 방법에 대해 알기전에 " 왜 메모리관리를 해야하는가? " 에 대해 알아보려고 한다. 다수의 프로세스들을 사용하면서 메모리 관리의 중요성은 대두되었다. 멀티 프로세스 환경에서는 보다 좋은 성능을 위해서 다수의 프로그램을 주 메모리에 올려놓아야 한다. 이때 메모리에 어느곳에 프로그램을 넣어주고, 다시 하드디스크로 보내는 역할을 운영체제에서 담당한다. 그렇기 때문에 적절한 메모리 위치에 프로그램을 적재하지 못할 경우 문제가 발생하게된다. 이 뿐만 아니라 메모리가 변경될 때 어떻게 하면 더 효율적이고 메모리 낭비를 방지 할 수 있는가에 대한 문제를 해결하기 위해 메모리 관리를 해야한다. 메모리 계층 우선 현재 컴퓨터에사 사용되는 메모리 계층에 대해서 먼저 알아 보겠습니다. 보조기억장..
동기와 비동기 1. 동기식 처리 모델 동기식 처리 모델은 직렬적으로 태스크를 수행한다. 예를 들면 우리는 집안일을 해야한다. 집안일에는 빨래, 설거지, 청소가 있다. 동기식 방법이라면 우리는 빨래를 하고 설거지를 하고 청소를 하는 순서로 하나의 업무가 끝나야지 다른업무를 할 수 있는 것이다. 각각의 색들은 하나의 스레드 (=task) 라고 보자. 그리고 파란색 스레드에서 하얗게 빈 공간은 파란색 스레드가 진행하고 있다가, 외부에서 데이터를 가져오는 부분이다. 다시 말하면, 하나의 스레드가 진행하고 있다가 외부에서 데이터를 요청하고 데이터 응답을 기다릴 때 까지 파란색 스레드는 작업을 중단하게 된다. 즉, 파란색 스레드가 실행되고 외부에서 값이 반환될 때 까지 스레드는 작업중단( Blocking ) 되어있..
프로세스의 상태 프로세스의 상태에는 생성 / 준비 / 실행 / 대기 / 종료 총 5개의 단계로 나누어져있다. 맨 처음 프로세스가 create 상태가 됩니다. 그 후 사용자가 프로그램을 실행시키면 프로그램을 메모리에 load 시키면서 프로세스는 ready상태로 변화하게 됩니다. 메모리에 올라온 프로그램( = 프로세스 )중 어떤 프로세스를 먼저 실행시킬 것인가에 대해 cpu는 고민하게 되고, 이것은 cpu의 스케쥴링에 의해 결정되게 됩니다. (실제로는 dispatcher가 한다고 합니다.) 그렇게 running 상태에 있는 프로세스는 I/O 작업 요청이 오게 되면 block(=대기) 상태로 빠지게 됩니다. 그렇게 I/O 작업이 끝나면 바로 running상태로 가는것이 아닌 ready 상태로 돌아가게 됩니다...