본문 바로가기

전체 글117

기본적인 Drawable 사용법 - Selector, Shape Drawable이란? Drawable이라는 단어는 '그릴 수 있는'이라는 뜻을 갖고 있는데 말 그대로 화면에 그릴 수 있는 것을 말한다. res 폴더의 drawable 폴더에는 이미지 뿐만 아니라 그래픽을 어떻게 표현할 지를 xml 파일을 통해 만들 수 있는데 이를 drawable이라고 한다. 이 xml 파일 안에는 여러가지 정보를 넣을 수 있는데 예를 들어 이미지 파일을 지정하고 이를 어떻게 보여줄 지 정하거나(BitmapDrawable) 어떤 상태일 때 이미지를 바꾸거나(StateListDrawable) 모양을 직접 그리는(ShapeDrawable) 등의 여러 가지 그래픽 표현이 가능하다. StateListDrawable(상태 드로어블) 상태 드로어블이란 앞서 말했듯 특정한 상황에서의 그래픽을 지정하.. 2019. 7. 18.
기본적인 Widget 사용법 - TextView, Button, EditText, ImageView TextView TextView는 위젯들 중에서도 가장 기본적인 위젯으로 글자를 표현하기 위한 위젯이다. 따라서 이와 관련된 많은 속성들을 지정할 수 있다. android:text="@string/text" android:textSize="20sp" android:textColor="@color/black" android:textStyle="bold" 위와 같이 텍스트의 내용, 크기, 색깔, 스타일 등의 다양한 속성을 지정할 수 있다. 이 때 주의 할 점으로 글자의 크기는 dp가 아니라 sp로 지정하는 것이 바람직하다. 텍스트의 내용은 res/values에 있는 strings.xml에 설정을 해주는 것이 좋다. 그 이유는 하나의 앱으로 여러 개의 언어를 대응할 때 strings에 지정해주면 편하기 때문이.. 2019. 7. 16.
기본적인 Layout 사용법 - Linear, Relative, FrameLayout LinearLayout LinearLayout은 가장 기본적인 레이아웃으로서 view들을 일렬로 배치한다. 따라서 view들을 배치할 방향인 orientation 옵션을 필수적으로 지정해주어야 한다. 왼쪽 이미지가 orientation 값을 horizontal(수평)으로 설정했을 때 오른쪽 이미지가 vertical로 설정했을 때 원하는 view를 가운데로 정렬시키고 싶다면 view에 android:layout_gravity="center_horizontal" 속성을 레이아웃 안의 모든 view를 정렬시키려면 레이아웃에 android:gravity="center_horizontal" 속성을 넣어주면 된다. 그리고 LinearLayout 안의 view들에 weight 값을 주어 레이아웃 공간을 원하는 비율만.. 2019. 7. 15.
ConstraintLayout의 특징 및 사용법 ConstraintLayout이란? ConstraintLayout은 한국어로 번역하면 제약 레이아웃이라 할 수 있다. 이름이 이렇게 붙여진 이유는 View들에 제약 조건을 주어 배치하기 때문이다. 사용법 먼저 버튼을 레이아웃 위에 놓아보면 이와 같이 버튼의 상하좌우로 동그라미가 있는 것을 볼 수 있다. 이 동그라미를 드래그하여 왼쪽과 위쪽 끝에 연결하면 app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" android:layout_marginStart="32dp" android:layout_marginLeft="32dp" android:layout_marginTop="32dp" 이렇게 화살표가 연결되.. 2019. 7. 14.
View, ViewGroup, XML Layout 이란? View란? View란 기본적으로 화면에 보이는 것들을 말하는데 흔히 Widget(Control)이라 불리는 UI 구성 요소들이 View이다. 위의 설명은 구글에서 제공하는 View에 대한 설명인데 직접적인 자식으로 ImageView, TextView, ProgressBar 등이 있는 것이 보인다. 아래에 설명할 ViewGroup 또한 View를 상속받고 있음을 알 수 있다. 더 자세한 속성은 공식 문서를 참고 https://developer.android.com/reference/android/view/View View | Android Developers developer.android.com ViewGroup이란? ViewGroup은 여러 개의 View들은 묶기 위한 요소로서 주로 View의 배치를.. 2019. 7. 13.
Android Studio에서 앱 실행하기 - 가상 머신 / 스마트폰 1. 가상 머신(Virtual Device)으로 실행하기 안드로이드 스튜디오 실행 후 상단 바에서 위와 같은 아이콘을 클릭하여 AVD Manager를 실행한다. AVD Manager를 실행한 후 Create Virtual Device를 클릭 원하는 기종이 있다면 선택하고 없다면 그냥 기본적으로 선택된 기종으로 진행하자. Next 클릭 처음 실행하면 System Image, 즉 안드로이드 OS를 실행할 파일이 없는데 원하는 버전을 Download 받자. 위에 보이는 Q 버전은 아직 정식 출시되지 않은 안드로이드 버전인데 보통 최신 기종들은 그 이전 버전을 사용한다. 그래서 나는 이와 비슷한 환경을 만들기 위해 주로 최신 바로 전 버전을 사용한다. Download를 클릭하여 OS를 다운로드 했다면 해당 OS.. 2019. 7. 13.
Android Studio 설치 및 SDK 설정 1. Android Studio 설치 파일 다운로드 https://developer.android.com/studio Download Android Studio and SDK tools developer.android.com 안드로이드 개발자 홈페이지에 접속해서 DOWNLOAD ANDROID STUDIO를 클릭하여 설치파일을 다운로드한다. 2. 설치파일 실행 설치 창이 켜지면 Next 클릭하여 진행 스튜디오를 처음 설치한다면 Do not import settings를 체크한 상태로 OK 클릭 Next 클릭 일반적으로 처음 설치하는 경우에는 Standard를 선택하고 Next 클릭 어두운 테마로 사용하고 싶을 경우 Darcula, 밝은 테마는 IntelliJ 기본 테마 선택 후 Next (나중에 언제든 변.. 2019. 7. 13.
Data Model / DML, DDL Data Model이란? Data Model이란 데이터베이스를 관리하기 위한 여러가지 방법론으로, 가장 많이 쓰이는 모델로는 Relational Model과 E-R Model이 있다. Relational Model이란? 데이터베이스 관리를 위한 방법론으로, 데이터를 입력, 삭제하거나 검색 등의 기능들을 명령문을 통해 수행한다. 이를 위해서는 데이터를 저장할 구조, 데이터 관리를 위한 언어를 정해놓아야 한다. 이와 같은 Relational Model을 사용하여 만든 데이터베이스를 Relational Database라 한다. Relational Database의 구조 Relational Database는 table의 형태로 데이터를 저장하며, 각 table의 행을 tuple 또는 row라 하며 열을 attr.. 2019. 6. 5.
Advanced Page Table 기존 Page Table의 문제점 32bit 주소체계 / Page 크기 : 16KB 라 가정하자. 이 때 Offset은 페이지 크기인 16*2^10=2^14bit가 필요하다. 따라서 32-14=18bit가 VPN으로 사용 가능하므로 총 2^18개의 VPN을 표현할 수 있다. Page Table은 VPN 수로 크기가 정해지므로, 하나의 Entry가 4byte라면 4*2^18=2^20byte=1MB 크기가 될 것이다. Page Table은 프로세스 하나당 한개씩 생성되므로 프로세스가 100개라면 무려 100MB의 메모리를 차지하게 된다. 따라서 Page Table의 크기를 더 줄여야 할 필요가 있다. Page Table에는 위와 같이 할당받았지만 사용하지 않는 Page들에 대한 Entry들도 모두 저장되어있.. 2019. 4. 23.