본문 바로가기

분류 전체보기188

[Android] 계산기 앱 만들기 안드로이드(Android) 계산기 앱 만들기 2개의 숫자를 입력받아 더하기(+), 빼기(-), 곱하기(*), 나누기(/)를 계산할 수 있는 간편한 계산기를 만들고자 한다. 완성된 안드로이드 유저 인터페이스 activity_main.xml 코드 MainActivity.java 코드 package ex.app.calcaulator; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.MotionEvent; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.wi.. 2022. 10. 5.
[Android] 에디트 텍스트(Edit Text) 속성, 속성 값 에디트 텍스트(EditText)란? 입력가능한 필드로, 텍스트 필드라고도 하는데 EditText는 TextView의 자식 클래스이다. 에디트 텍스트는 사용자가 앱에서 텍스트를 타이핑하여 입력할 수 있다. TextView 클래스에서 상속받은 EditText 속성 속성 설명 android:autoText 자동으로 타이핑 오류를 교정 android:hint 입력 필드에 힌트로 표시되는 메시지 android:inputType 입력의 종류 android:text 표시되는 텍스트 android:singleLine true이면 한 줄만 입력 받음 android:editable 편집 가능 여부 android:drawableBottom 텍스트의 아래에 표시되는 이미지 리소스 android:drawableRight 텍스트.. 2022. 10. 5.
[Android] 이벤트 처리, 이벤트 리스너, 리스너 인터페이스, 콜백 메소드 이벤트 구동 방식(event-driven) vs 폴링 방식(polling) 일반적으로 그래픽 사용자 인터페이스에서 사용자의 입력을 받으려면 반드시 이벤트 구동 방식으로 처리하여야 한다. 이벤트 구동 방식이 아닌, 애플리케이션이 무한 루프를 돌면서 사용자의 입력을 기다리는 폴링(polling) 방식은 CPU의 파워를 엄청나게 낭비를 하기 때문에 최악의 방법이다. 그렇기에 안드로이드에서는 애플리케이션이 다른 작업을 하고 있다가 사용자의 입력이 발생하면 이벤트가 발생되고, 발생된 이벤트를 애플리케이션이 처리하는 이벤트 구동(event-driven) 방식을 사용한다. 안드로이드 이벤트 처리 방식 1. XML 파일에 이벤트 처리 메소드를 등록하는 방법 클릭 이벤트만 처리할 수 있으며, 버튼과 같은 위젯의 경우 간.. 2022. 10. 2.
장고(Django) 설치하기 / 장고란? 웹 프레임워크란? / 파이썬 가상환경 pip 장고(Django)란? '파이썬' 기반으로 만들어진 무료 오픈소스 웹 애플리케이션 프레임워크(web application framework)이다. 웹 사이트를 쉽고, 빠르게 개발할 수 있도록 만들어준다. 파이썬 언어를 기반으로 하기 때문에, '파이썬'의 가장 큰 장점인 비교적 쉬워 익히기가 쉽고 개발속도도 빠르며, 코드 완성도를 높게 유지할 수 있다. 그러나 파이썬의 '단점' 역시 가져온다. 파이썬은 '인터프리터' 언어이기 때문에 코드 실행이 한줄한줄 실행이 되어 그만큼 속도가 느리며, 이미 만들어진 라이브러리를 사용하는 경우가 많기 때문에 커스텀하기 힘들다. 웹 프레임워크(Web Framework, WF)란? 웹 프레임워크는 쉽게 말해 웹 프로그램을 만들기 위한 '키트'라고 생각하면 된다. 조금 더 자.. 2022. 10. 2.
[Android] UI, View, View클래스, id, 크기 단위, margin, padding, visibility, rotation 사용자 인터페이스(UI) 사용자 인터페이스(UI, User Interace)의 요소는 크게 뷰(View)와 뷰 그룹(ViewGroup)으로 나눌 수 있다. 뷰는 화면을 구성하는 요소인 위젯이고, 뷰 그룹은 위젯들을 담는 컨테이너이다. 뷰 그룹은 레이아웃이라고 부른다. 안드로이드의 모든 위젯은 View 클래스를 상속하여 만들어진다. 레이아웃은 ViewGroup 클래스를 상속받는다. 상속의 계층은 아래 사진을 참고하면 된다. UI 작성 절차 1. 레이아웃인 뷰 그룹을 생성 2. 뷰 그룹에 필요한 뷰들을 추가 3. setContentView( )를 호출해 작성된 UI를 액티비티의 화면으로 설정 setContentView( )은 액티비티의 화면을 설정하는 메소드이다. UI를 작성하는 방법 1. XML 을 이용하.. 2022. 10. 2.
[Android] Gradle(그레이들), res(리소스), layout(레이아웃), manifest(매니페스트) 정리 bulid.gradle (:app) 그레이들(Gradle)이란? 그레이들은 안드로이드 앱의 빌드(build)도구이다. 빌드 도구란 실행파일을 만드는 데 사용되는 도구로, 앱을 빌드하는 데 필요한 라이브러리 버전도 자동으로 파악해서 필요한 경우 다운로드까지 한다. 그래이들의 설정 파일은 build.gradle이다. build.gradle(Project)는 전체 프로젝트에 대한 빌드 설정이며, build.gradle(Module)은 앱을 빌드하는 데 중요한 설정이 저장되어 있다. compileSdk 32 안드로이드 SDK 31 버전을 이용해서 컴파일 하라는 의미 defaultConfig { applicationId "ex.app.hello" minSdk 21 targetSdk 32 versionCode 1 .. 2022. 10. 2.
[Android] 안드로이드 스튜디오 프로젝트 폴더와 파일 구성, MainActivity.java 구조 프로젝트 뷰 구성 [ java ] 폴더 자바 소스 파일들이 들어있는 폴더로, 하위에는 패키지(package) 이름의 하위 폴더가 있다. 이는 프로젝트를 생성할 때 입력한 패키지 이름과 동일하다. - 패키지 폴더 안에는 MainActivity.java로 메인 Java 소스가 들어가 있다. 주로 액티비티(화면, activity_main.xml)에 어떤 일을 할 지 프로그래밍 하는 파일이다. [ java (generated) 폴더 ] Android Studio 3.2부터 제공되는 폴더이며 시스템 내부적으로 사용되기 때문에 신경 쓸 필요 없다. [ res ] 폴더 각종 리소스들이 저장되는 폴더로, 앱 개발에 사용되는 이미지, 레이아웃, 문자열 등을 넣는다. - drawable 폴더는 이미지 파일을 넣는 폴더이다.. 2022. 10. 2.
[Android] 안드로이드 애플리케이션 구성 - 컴포넌트, 액티비티, 서비스, 방송 수신자, 컨텐트 제공자, 인텐트 컴포넌트(Component) 안드로이드 애플리케이션은 컴포넌트들로 구성된다. 컴포넌트들은 하나의 독립된 entity로 존재하고, 정해진 역할을 수행한다. 각 컴포넌트는 애플리케이션을 시작하는 진입점을 가질 수 있으며 4가지 종류의 컴포넌트가 있다. 1. Activity ( 액티비티 ) 2. Service ( 서비스 ) 3. Broadcast receiver ( 방송 수신자 ) 4. Content provider ( 컨텐트 제공자 ) 액티비티(activity)란? 액티비티는 사용자 인터페이스 화면을 가지고 하나의 작업을 담당하는 컴포넌트이다. 하나의 애플리케이션은 여러 개의 액티비티를 가지고 있으며, 앱에서 화나의 화면은 하나의 액티비티이다. 모든 액티비티는 Activity 클래스를 상속 받는다. 서비스(.. 2022. 10. 1.
[Android] 안드로이드란? 안드로이드(Android)란 안드로이드(Android)란 구글에 의하여 개발되고 배포되는 운영체제로 리눅스 커널을 이용한다. 리눅스 커널 위에서 자바 코드르 해석해주는 가상 머신이 탑재되어 있어, 모든 자바 라이브러리가 지원된다. 안드로이드는 자바 or 코틀린 언어로 작성된다. 또한 요새 자바의 표준 JVM을 사용하지 않는 이유는 스마트폰이 데스크탑에 비하여 처리 속도와 메모리 측면에서 한참 뒤쳐지기 때문에 자체적인 자바 가상 머신인 'ART 가상 머신'을 사용한다. 안드로이드의 플랫폼 아키텍처(구조) 안드로이드는 단순히 운영체제만을 제공하는 것이 아니라 운영체제, 미들웨어, 핵심 애플리케이션을 모두 포함하는 모바일 플랫폼이다. 구글에서는 안드로이드를 '소프트웨어 스택(Software stack)'이라 .. 2022. 10. 1.