분류 전체보기 121

[Android] 뷰 / 위젯 / View / View 크기 조정 / match_parent / wrap_content

사용자 입장에서만 본다면, 앱은 View 로만 이루어져 있다고 해도 과언이 아니다. 앱에서 눈으로 볼 수 있는 모든 요소는 View 이다. 텍스트로 이루어진 요소는 TextView 그림으로 이루어진 요소는 ImageView 등 앱에서 모든 요소는 뷰로 이루어져 있다. 요소 이름에 View가 없다 하더라도 View 이다. Button, EditText, CheckBox 등 모두 View 이다. 그리고 View 는 일반적으로 위젯으로 불린다. 여러개의 View 로 이루어진 View Group 또한 존재한다. View Group 은 일반적으로 레이아웃으로 통한다. 레이아웃에 대한 자세한 내용은 다음 포스팅에서 다뤄보겠다. View 의 기본 구조 일반적으로 View 는 다음과 같은 구조를 가져야 한다. 대부분의..

[Android] 로그 Log / Logcat 사용하기

이클립스로 자바 공부를 할 때는, 출력문을 사용하여 데이터를 바로바로 확인할 수 있었다. 하지만, 안드로이드 스튜디오에서는 스캐너가 아닌 Log를 사용하여 데이터를 확인할 것이다. 이번 포스팅에서는 로그(Log) 에 대해 알아보겠다. Log 란 무엇일까? 사전적 의미로는 다음과 같이 정의한다. '소프트웨어에서 있었던 일을 기록한 파일' 시스템 자체적으로 기록을 남기는 로그가 있는 반면, 우리가 직접 확인하고 싶은 데이터를 로그로 남길 수도 있다. android.util.Log 클래스로 로그를 사용하며, Logcat 으로 기록을 확인한다. 우리는 로그를 사용함으로써 디바이스에서는 보이지 않는 데이터를 확인할 수 있다. Log의 종류 일반적으로 5개의 종류를 메서드로 사용하며, 우선 순위가 가장 높은 것 &..

[Android] 액티비티 수명주기 / Activity LifeCycle

지난 포스팅에서 알아보았던 4대 컴포넌트 中, 액티비티 부분에서 수명 주기를 언급했었다. 모든 액티비티는 수명 주기를 가진다. 말 그대로 액티비티가 태어나서 죽을 때까지의 과정이다. Activity Life Cycle 이라는 이름은 정말 잘 지은 것 같다. 이번 포스팅에서는 액티비티 수명 주기에 대해 알아보자. 액티비티의 생명주기를 그림으로 표현하면 다음과 같다. 위와 같이, 액티비티의 상태는 다양하다. 그리고 우리는 액티비티의 상태를 메서드로서 만나볼 수 있다. 곧, 액티비티의 상태 변화를 확인할 수 있는 콜백이다. 새로운 프로젝트를 생성하면, 액티비티 생성과 동시에 자동으로 onCreate() 메서드가 생성된다. 자동으로 추가되었다는 말은, 필수적으로 존재해야 된다는 말과 같다. 이외에도 필수적으로 ..

[Android] 앱의 구성요소 Components / 4대 컴포넌트 - 액티비티(Activity), 서비스(Service), 컨텐트 프로바이더(Contents Provider), 브로드캐스트 리시버(Broadcast Receiver)

지난 포스팅에서 매니페스트에 대해 알아보았다. 이번 포스팅에서는 매니페스트가 담고 있는 정보 中, 앱의 구성요소 (Components) 에 대해 더욱 자세히 알아보자. 앱은 4가지 요소로 구성되어 있다고 볼 수 있다. 흔히 앱의 4대 구성요소, 또는 4대 컴포넌트 라고 불린다. · 액티비티 (Activity) · 서비스 (Service) · 컨텐트 프로바이더 (Contents Provider) · 브로드캐스트 리시버 (Broadcast Receiver) 액티비티 (Activity) 사용자와 상호작용하기 위한 요소이며, UI 화면을 담당한다. *UI : user interface 의 줄임말이며, 사용자 환경을 뜻한다. 모든 앱은 하나 이상의 액티비티를 포함하여 구성된다. (당연히 앱에는 사용자가 볼 수 있..

[Android] 매니페스트 Manifest / 매니페스트 파일

안드로이드 스튜디오로 안드로이드 공부를 시작한다. 안드로이드 공부에 앞서, 모든 앱의 필수 요소인 매니페스트를 짚고 넘어가려 한다. 이번 포스팅에서는 매니페스트가 무엇인지 알아보자. Manifest 사전적 의미로는 '명백한', '나타내다', '선박, 항공기에 적재된 화물의 총괄 목록' 등 과 같다. 안드로이드에서 매니페스트란 ? 공식 문서에서는 다음과 같이 설명한다. 매니페스트 파일은 Android 빌드 도구, Android 운영체제 및 Google Play에 앱에 관한 필수 정보를 설명합니다. 공식 문서에서는 '매니페스트 파일' 이라 표현하였다. 안드로이드에서 매니페스트란, 모든 앱에 반드시 존재하는 앱의 각종 정보를 담고 있는 파일이다. 그리고 그 파일은, 앱의 신분증과 같은 역할을 한다고 생각하면 ..

[Java] 접근 제한자 - public/protected/default/private

이번 포스팅에서는 자바의 접근 제한자에 대해 공부해보자. 코드의 제일 첫 부분으로 시작하는 녀석이고, 자바의 제일 기초적인 내용 중 하나인데 그동안 제대로 모른채 사용하고 있었을지도 모른다. 접근 제한자란? 말 그대로, 접근을 제한해 주는 역할을 한다. 클래스를 다른 패키지에서 사용하지 못하게 하거나, 생성자를 호출하지 못하게 하는 등 적절한 기준에 부합하도록 접근을 제한한다. '접근 제어자' 또는 '접근 지정자' 라고 불리기도 한다. 클래스, 생성자, 메서드, 변수 등 모든 요소에 사용한다. (지역 변수에는 사용할 수 없다) 어느 기준까지 접근을 제한할 것인지 정해주며, 각각의 접근 제한자마다 그 기준이 상이하다. 접근 제한자를 왜 사용하는가? 자바, 즉 객체 지향 언어의 핵심 요소 중 하나인 '캡슐화..

Java (자바) 2022.07.09

[Java] Thread (3) - 스레드 정지, 멈춤, 제어 / stop(), interrupt()

지난 포스팅에서, 스레드의 개념과 멀티 스레드의 사용법까지 공부해 보았다. 이번 시간에는, 동작 중인 스레드를 정지시키는 방법에 대해 포스팅한다. 짧은 시간 진행되는 스레드가 아닌, 특정 조건이 이루어질 때까지 지속되는 스레드의 경우가 있을 것이다. 특정 조건에 부합할 때마다, 스레드를 죽였다 살렸다 할 줄 알아야 된다는 말이다. 자신이 작성한 코드를 제어할 줄 모른다는 게, 얼마나 부끄러운 일인가. 그렇기에 우리는 스레드를 통제할 수 있어야 한다. stop() 메서드 지난 포스팅에서 사용하였던 예제를 그대로 사용하겠다. Play.java 코드를 간단하게 요약하자면, 1을 입력하면 스레드가 stop() 되도록 작성하였다. 하지만..? 코드에 줄이 그어져 있는 것을 확인할 수 있다. 그렇다... stop(..

Java (자바) 2022.07.08

[Java] Thread (2) - 스레드 사용 예제 : 타이머 구현 / isAlive() 메서드

지난 포스팅에 이어서 이번 시간에는, 멀티 스레드를 직접 사용해보며 공부해 볼 것이다. 자바에서 스레드를 생성하는 방법에는 2가지가 있다. 1. Thread 클래스를 상속받아서 사용 2. Runnable 인터페이스를 구현해서 사용 · 왜 2가지 방식으로 나눠서 사용할까? 자바에서는 단일 상속만을 허용하기 때문이다. 이미 다른 클래스를 상속받고 있는 클래스에서는 Thread 클래스를 상속받지 못한다. 그럴 때에는 Runnable 인터페이스에서 스레드를 구현해야 할 것이다. 두 가지 방식이지만, 스레드를 작성하는 방법은 동일하다. 스레드를 사용하고 싶은 내용을 run() 메서드 안에 작성해야 한다. 본인은 Thread 클래스를 상속받아서 타이머 기능을 하는 스레드를 만들어 보겠다. 먼저 두개의 클래스를 생성..

Java (자바) 2022.07.08