분류 전체보기 53

[boostcourse] 4. 화면 내비게이션

해당 포스트는 부스트코스의 "안드로이드 앱 프로그래밍"을 수강하며 학습한 내용을 토대로 작성되었습니다. 목차 프래그먼트 이해하기 프래그먼트 사용하기 액션바 사용하기 탭 만들기 뷰페이저 사용하지 바로가기 메뉴 만들기 프래그먼트 이해하기 안드로이드에서 화면은 액티비티로 만들어진다. 화면 제작 중에 부분 화면을 제작해야 하는 상황이 발생할 수 있다. 부분 화면을 액티비티(뷰)로 반복해 만들어 간다면, 코드를 지속적으로 새로 작성해야 하는 불편함뿐만 아니라 액티비티를 관리하는 시스템에 부담이 커진다. 시스템이 액티비티를 관리하는 것처럼, 부분 화면을 독립적으로 제작하는 방식을 통해 만들어진 것이 ‘프래그먼트’ 이다. 프래그먼트는 액티비티가 시스템의 역할을 대신하기 때문에, 액티비티보다 가볍게 화면을 전환할 수 ..

[boostcourse] 3. 화면 여러 개 만들기

해당 포스트는 부스트코스의 "안드로이드 앱 프로그래밍"을 수강하며 학습한 내용을 토대로 작성되었습니다. 목차 화면 전환하기 인텐트 살펴보기 수명주기 이해하기 서비스 사용하기 브로드캐스트 수신자 사용하기 화면 전환하기 시스템이 관리하는 애플리케이션 구성요소는 4가지, 액티비티(Acitity) / 서비스(Service) / 브로드캐스트 리시버(Broadcast Receiver) / 내용 제공자(Content Provider) 이다. 각 클래스들은 안드로이드 SDK가 제공하며, 매니페스트 파일을 통해 어떤 애플리케이션 구성요소가 포함되어 있는 지 확인할 수 있다. 애플리케이션 구성요소 중 액티비티(Activity)는 안드로이드 앱에서 하나의 화면을 만든다. 하나의 액티비티가 또 다른 액티비티로, 즉 화면이 전..

[boostcourse] 2. 이벤트와 리스트뷰

해당 포스트는 부스트코스의 "안드로이드 앱 프로그래밍"을 수강하며 학습한 내용을 토대로 작성되었습니다. 목차 스크롤뷰 사용하기 이벤트 이해하기 토스트와 대화상자 비트맵 버튼 만들기 인플레이션 이해하기 리스트뷰 만들기 스크롤뷰 사용하기 스크롤뷰는 말그대로 스크롤 기능을 위해 사용한다. 글자가 이지미가 들어간 뷰가 화면 영역을 벗어나면 보이지 않는 경우에 대비할 수 있다. 해당 뷰는 원하는 영역을 태그로 감싸면 된다. 이벤트 이해하기 화면을 터치했을 때는 ‘이벤트’가 발생한다. 해당 이벤트는 화면의 어느 부분에 어떻게 클릭하거나 터치했는지에 대한 정보를 담았으며, 리스너를 이용해 다룰 수 있다. 예시로, 버튼에 리스너를 등록해두면 버튼이 클릭될 때마다 리스너의 메소드가 자동으로 호출되게 된다. 그 외에도 터..

[boostcourse] 1. 레이아웃 만들기

해당 포스트는 부스트코스의 "안드로이드 앱 프로그래밍"을 수강하며 학습한 내용을 토대로 작성되었습니다. 목차 첫번째 앱 만들기 도구 사용하기 레이아웃 종류 기본 위젯들 드로어블 만들기 첫번째 앱 만들기 안드로이드 모바일 앱은 '안드로이드 스튜디오'라는 도구를 사용해 만들 수 있다. 해당 도구는 안드로이드 개발자 사이트에서 다운로드 받을 수 있다. http://developer.android.com/studio/index.html

[백준/Java] 1924 2007년

문제 오늘은 2007년 1월 1일 월요일이다. 그렇다면 2007년 x월 y일은 무슨 요일일까? 이를 알아내는 프로그램을 작성하시오. # 입력 첫째 줄에 빈 칸을 사이에 두고 x(1 ≤ x ≤ 12)와 y(1 ≤ y ≤ 31)이 주어진다. 참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다. # 출력 첫째 줄에 x월 y일이 무슨 요일인지에 따라 SUN, MON, TUE, WED, THU, FRI, SAT 중 하나를 출력한다. 풀이 import java.util.*; public class NewClass { public static void main(String[] args){ Scanner sc = new Scanner..

Study/algorithm 2021.08.09

[백준/Java] 11720 숫자의 합

문제 N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오. # 입력 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. # 출력 입력으로 주어진 숫자 N개의 합을 출력한다. 풀이 import java.util.*; public class NewClass{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int sum = 0; int count = sc.nextInt(); String num = sc.next(); if(num.length() == count) { for(int i = 0;i < count;i++) { sum ..

Study/algorithm 2021.08.09

[백준/Java] 11718 그대로 출력하기

문제 입력 받은 대로 출력하는 프로그램을 작성하시오. # 입력 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시작하지 않고, 공백으로 끝나지 않는다. # 출력 입력받은 그대로 출력한다. 풀이 import java.util.*; public class NewClass{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); StringBuffer buffer = new StringBuffer(); while(sc.hasNextLine()) { buffer.append(sc...

Study/algorithm 2021.08.09

[Android] 안드로이드 레이아웃과 속성

안드로이드 UI 프로그램에서 화면 구성을 위한 뷰 클래스도 중요하지만, 해당 뷰들을 화면에 어떻게 배치할 것인가도 중요하다. 뷰를 적절하게 배치하는 데 사용하는 레이아웃 클래스를 살펴보자. 레이아웃 클래스는 화면에 출력되는 대상이지만, 자체 UI는 갖지 않는다. 레이아웃 클래스는 Button 같은 뷰들을 자신에게 포함(Add)하고 적절하게 배치해 화면에 한꺼번에 출력한다. 레이아웃 클래스마다 포함된 뷰의 정렬 규칙이 다른 것이지, 특정 화면을 특정 레이아웃으로만 구성할 수 있는 건 아니다. 화면을 작성할 때 무조건 특정 레이아웃을 사용해야 완성할 수 있는 경우도 있지만, 대부분 개발자의 선택에 따른다. 레이아웃 이란? (명) 책이나 신문, 잡지 따위에서 글이나 그림을 효과적으로 정리하고 배치하는 일 ⇒ ..

Android/study 2021.08.08

[Android] 안드로이드 액티비티 생명주기와 상태 (+ 호출 예제)

안드로이드에서 화면이 아닌 액티비티 자체가 어떤 원리로 수행되는지 살펴보자. 액티비티 실행 주체는 "안드로이드 시스템"이므로 시스템에서 액티비티 생명주기를 어떻게 관리하며, 그때 개발자 코드에서 신경 써야 하는 부분은 무엇인지 알아본다. 액티비티 생명주기란? ⇒ 사용자가 앱을 탐색하고, 앱에서 나가고, 앱으로 다시 돌아가면, 앱의 Activity 인스턴스는 수명 주기 안에서 서로 다른 상태를 통해 전환된다. Activity 클래스는 활동이 상태 변화를 알아차릴 수 있는 여러 콜백을 제공한다. 그렇기에 안드로이드 생명주기를 액티비티 생명주기라 지칭하며, 이는 액티비티가 생성되고 정지되고 재생되고 종료되는 등의 상태 변화와 그에 따른 콜백 메서드를 총칭한다. 액티비티 상태 활성 상태(activity runn..

Android/study 2021.08.08

[점프 투 자바] Self Number

문제 넥슨의 입사 문제였다는 "Self Number" 찾기를 해 보자. 문제는 다음과 같다. 어떤 자연수 n이 있을 때, d(n)을 n의 각 자릿수 숫자들과 n 자신을 더한 숫자라고 정의하자. 예를 들어 d(91) = 9 + 1 + 91 = 101 이 때, n을 d(n)의 제네레이터(generator)라고 한다. 위의 예에서 91은 101의 제네레이터이다. 어떤 숫자들은 하나 이상의 제네레이터를 가지고 있는데, 101의 제네레이터는 91 뿐 아니라 100도 있다. 그런데 반대로, 제네레이터가 없는 숫자들도 있으며, 이런 숫자를 인도의 수학자 Kaprekar가 셀프 넘버(self-number)라 이름 붙였다. 예를 들어 1, 3, 5, 7, 9, 20, 31 은 셀프 넘버 들이다. 1 이상이고 5000 보..

Study/algorithm 2021.08.06