728x90 전체 글520 안드로이드 Notification Notification은 애플리케이션과 별도로 관리되는 메시지 이다. Notification 메시지를 OS에게 요청하면 OS는 알림 창 영역에 알림 메시지를 표시한다. 화면을 가지지 않는 실행단위에서 메시지를 표시할 때 주로 사용한다. 특징 사용자가 메시지를 확인하거나 제거하기 전까지 메시지를 유지한다. 메시지를 터치하면 지정된 Activity가 실행되어 애플리케이션 실행을 유도할 수 있다. Channel 안드로이드 8.0 부터 새롭게 추가된 기능 이전에는 사용자가 설정에서 알림 메시지를 비활성화 하면 모든 메시지가 비활성화 되었다. 8.0 부터는 Notification Channel을 이용하애 알림 메시지를 채널이라는 그룹으로 묶어 관리할 수 있으며 사용사는 채널 별로 메시지 활성화 여부를 설정할 수 .. 2022. 6. 13. 안드로이드 항목 선택 Dialog 단일 선택 Dialog 라디오 버튼 형태를 제공하는 다이얼로그이다. AlertDialogBuilder의 setSingleChoiceItems 메서드를 통해 구현한다. AlertDialog에서 ListView를 추출하고 ListView의 checkedItemPosition 프로퍼티를 이용해 선택한 항목의 인덱스 번호를 파악할 수 있다. 다중 선택 Dialog 체크박스 형태를 제공하는 다이얼로그이다 AlertDialogBuilder의 setMultiChoiceItems 메서드를 통해 구현한다. AlertDialogBuilder에서 ListView를 추출하고 ListView의 checkedItemPositions 프로퍼티를 이용해 현재 선택된 항목들을 파악할 수 있다. 이 때, 선택 상태가 변경된 항목의 인덱.. 2022. 6. 13. 안드로이드 ListDialog Dialog에 ListView를 표시할 수 있는 다이얼로그 Dialog는 Button을 총 3개까지 배치할 수 있는데 그 이상이 필요할 경우 List Dialog를 사용하면 된다. package com.example.listdialog import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.SimpleAdapter import androidx.appcompat.app.AlertDialog import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { val data1 = arrayO.. 2022. 6. 13. 안드로이드 Dialog 개발자가 필요할 때 사용자에게 메시지를 전달하는 용도로 사용하며 다이얼로그가 나타나 있을 때는 주변의 View를 사용할 수 없다. 메시지 전달이나 입력 등의 용도로 사용한다. 기본 다이올로그 기본 다이얼로그는 메시지와 최대 3개의 버튼을 제공할 수 있다. 커스텀 다이올로그 기본 다이얼로그에 View를 설정하면 다이얼로그에 표시되는 모양을 자유롭게 구성할 수 있다. DatePicker 다이얼로그를 통해 날짜를 선택할 수 있도록 제공되는 다이얼로그이다. TimePicker 다이얼로그를 통해 시간을 선택할 수 있도록 제공되는 다이얼로그이다. package com.example.dialog import android.app.DatePickerDialog import android.app.TimePickerDia.. 2022. 6. 13. 안드로이드 SnackBar Toast의 업그레이드 버전이라고 불리기도 하는 메시징 도구이다. Activity 위에 표시되며 하단에 나타나는 메시지이다. 안드로이드 11버전 부터 기본 Toast는 계속 사용 가능하고 커스터마이징 부분은 SnackBar를 이용하는 것을 권장한다. 기본 구성 SnackBar.make 메서드를 통해 SnackBar를 구성하고 show 메서드로 표시하면된다. setTextColor : 표시되는 메시지의 색상을 설정한다. setBackgroundTint : 배경 색상을 지정한다. animationMode : 나타나고 사라지는 애니메이션을 설정한다. setAction : 클릭하면 이벤트를 처리할 수 있는 요소를 설정한다. CallBack val callback = object : BaseTransientBot.. 2022. 6. 13. k8s jenkins 설치 최신 이미지 정보 https://hub.docker.com/r/jenkins/jenkins Docker Hub hub.docker.com kubectl create deploy jk --image=jenkins/jenkins:lts-jdk11 kubectl expose deploy jk --type=LoadBalancer --port=80 --target-port=8080 2022. 6. 10. k8s 명령어 모음 nginx 설치 kubectl create deployment http-go --image=linexy/http-go nginx 노출 kubectl expose deployment nginx --type=LoadBalancer --port=80 --target-port=8080 pod 삭제 kubectl delete pod NAME deployment 삭제 kubectl delete deployment NAME service 삭제 kubectl delete service NAME 수평 스케일링 kubectl scale deploy http-go --replicas=3 포드와 관련된 서비스 지우기 kubectl delete all --all 2022. 6. 10. k8s 클러스터 구성 마스터 노드에서 kubeadm init 마스터 노드에 필요한 기능 셋팅 kubeadm init 위 명령어 3줄 실행 후 토큰 명령어 복사해서 node에서 실행 node0에서 실행 마스터에서 pod 연결됐는지 확인 kubectl get nodes 포드 네트워크 구성(Weave Net 설치) 포드 네트워크 리스트 참고 https://kubernetes.io/ko/docs/concepts/cluster-administration/addons/ 애드온 설치 참고: 이 섹션은 쿠버네티스에 필요한 기능을 제공하는 써드파티 프로젝트와 관련이 있다. 쿠버네티스 프로젝트 작성자는 써드파티 프로젝트에 책임이 없다. 이 페이지는 CNCF 웹사이트 가이드 kubernetes.io Weave Net 설정 참고 자료 https:.. 2022. 6. 10. kubeadm reset k8s 설정파일 삭제 후 리셋 sudo rm -rf $HOME/.kube/config kubeadm reset kubeadm init 2022. 6. 10. hostname 변경 쿠버네티스 노드에서 hostname이 같으면 안됨 명령어 hostnamectl set-hostname master0[호스트 이름] /etc/hosts 파일도 변경 변경확인 2022. 6. 10. k8s docker cgroup driver 이름 systemd로 변경 쿠버네티스 kubelet에서는 systemd 이름으로 Cgroup(container group)을 사용 쿠버네티스에서 도커 컨테이너 사용할때 이름이 같아야 사용할 수 있다. 파일 생성 vim /etc/docker/daemon.json 작성 { "exec-opts": ["native.cgroupdriver=systemd"] } docker 재시작 sudo systemctl daemon-reload sudo service docker restart 결과 확인 2022. 6. 10. k8s swap off 재부팅시 다시 켜짐 sudo swapoff -a 재부팅해도 계속 설정 sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab https://askubuntu.com/questions/214805/how-do-i-disable-swap 2022. 6. 10. 안드로이드 Toast 안드로이드에서 간단하게 메시지를 표시할 때 사용한다. 화면과 관련 없이 안드로이드 OS에게 메시지 출력을 요청하고 안드로이드 OS에 의해 나타나는 메시지이다. 단말기내의 모든 애플리케이션, 모든 구성요소가 요청할 수 있으며 애플리케이션에 관계없이 요청된 순서대로 메시지가 나타난다. 주요 메서드, 프로퍼티 makeText : Toast 메시지 객체를 만든다. 화면 모양, 글자 크기 및 색상 등은 기본 설정되어 있는 것을 사용한다. setGravity : Toast 메시지가 표시될 위치를 설정한다. view : Toast 메시지를 통해 보여줄 View를 설정한다. 이를 이용해 커스터마이징이 가능하다. view 프로퍼티를 이용해 Toast를 커스터 마이징 하는 것은 안드로이드 11(API 30) 부터 Depr.. 2022. 6. 9. 안드로이드 Activity Action 안드로이드에서 제공되는 기본 애플리케이션 중 다른 애플리케이션이 사용할 수 있도록 제공되는 Activity들이 있다. 이들은 모두 공개되어 있는 이름이 제공되며 이를 통해 실행할 수 있다. package com.example.activityaction import android.Manifest import android.content.Intent import android.net.Uri import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { val permis.. 2022. 6. 9. 안드로이드 다른 애플리케이션의 액티비티 실행 안드로이드의 4대 구성요소는 모두 AndroidManifest.xml 파일에 기록되어야 한다. 이 때 다른 애플리케이션이 실행할 수 있도록 하고자 한다면 Intent filter를 이용해 이름을 설정해주면 된다. 애플리케이션이 단말기에 설치되면 안드로이드 OS는 지정된 IntentFilter의 이름을 확인하여 정리하고 실행 요청을 받으면 이를 실행할 수 있다. 보조앱 생성 package com.example.activityapp2 import android.content.Intent import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import kotlinx.android.synthetic.main.activity_secon.. 2022. 6. 9. 안드로이드 객체 전달 Parcelabel Intent 를 통해 객체를 전달 할 때는 객체 직렬화를 해야 하는데 안드로이드는 Parcelable 인터페이스를 사용한다. Parcelable 인터페이스는 전달 받은 쪽에서 객체를 복원할 때 필요한 정보를 가진 부분을 의미한다. 메인 액티비티 package com.example.activityobject import android.content.Intent import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.activity_second.* cl.. 2022. 6. 9. 안드로이드 activity 데이터 전달 intent에 데이터 셋팅하기 Activity를 실행하기 위해 사용하는 Intent 객체에 데이터를 저장할 수 있다. putExtra 메서드를 통해 데이터 저장이 가능하며 데이터가 저장된 Intent는 실행되는 Activity까지 전달된다. 이를 통해 Intent에 저장된 데이터를 추출할 수 있다. Intent는 Activity를 종료하고 돌아갈 때도 전달 할 수 있다. intent에 데이터 가져오기 전달된 Intent 에 저장된 데이터는 getXXXExtra 메서드를 통해 추출할 수 있다. 이 메서드는 자료형 별로 이름이 다르므로 자료형에 맞는 메서드를 사용해야 한다 메인 액티비티 package com.example.activitydata import android.content.Intent impor.. 2022. 6. 9. 안드로이드 OnActivityResult startActivityForResult Activity에서 다른 Activity를 실행하고 다시 돌아왔을 때 어떤 처리가 필요하다면 Activity를 실행할 때 startActivity가 아닌 startActivityForResult 메서드를 사용한다. onActivityResult startActivityForResult 메서드를 이용해 Activity를 실행하고 돌아오면 자동으로 onActivityResult 메서드가 호출된다. 여기에서 필요한 작업을 처리한다. 메인 액티비티 package com.example.onactivityresult import android.app.Activity import android.content.Intent import androidx.appcompat.app.A.. 2022. 6. 9. 안드로이드 Activity 실행하기 intent 안드로이드 4대 구성 요소들을 실행하기 위해서는 Intent 라는 객체가 필요하다. Intent는 실행하고자 하는 4대 구성 요소와 관련된 정보를 가지고 이다. 개발자는 실행하고자 하는 4대 구성 요소의 정보를 Intent에 담고 이를 안드로이드 OS에게 전달하면 안드로이드 OS에 의해 해당 구성 요소가 실행된다. Back Stack startActivity : 지정된 Intent에 담긴 정보를 토대로 Activity를 샐힝한다. finish : 현재 실행되어 있는 Activity를 종료한다. 메인 액티비티 package com.example.startactivity import android.content.Intent import androidx.appcompat.app.AppCompatA.. 2022. 6. 9. 안드로이드 Activity 생명주기 •현재 보이는 화면을 관리하는 실행 단위 •애플리케이션을 실행하면 Activity가 실행되고 Activity가 관리하는 화면이 나타나게 된다. package com.example.activitylifcycle import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log class MainActivity : AppCompatActivity() { // Activity가 생성될 때 자동으로 호출된다. // 화면 전환이 발생할 때 자동으로 호출된다. override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceSta.. 2022. 6. 9. 안드로이드 Popup Menu Popup Menu는 개발자가 원할 때 원하는 곳에 띄울 수 있는 메뉴이다. 주요 프로퍼티 menu : Popup Menu의 메뉴를 관리하는 객체를 반환한다. 이를 통해 메뉴를 구성한다. 주요 리스너 OnMenuItemClickListener : 메뉴의 항목을 눌렀을 때 반응하는 리스너 package com.example.popupmenu import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.PopupMenu import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { overr.. 2022. 6. 8. 안드로이드 Context Menu 화면에 배치된 View에 설정할 수 있는 메뉴 메뉴가 설정된 View를 길게 누르면 메뉴가 나타난다. 주요 메서드 registerForContext Context Menu를 등록하는 메서드 메서드의 매개 변수로 넣어준 View 객체에 메뉴가 설정된다. onCreateContextMenu View를 길게 누르면 호출되는 메서드 여기에서 메뉴를 구성한다. package com.example.contextmenu import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.view.ContextMenu import android.view.MenuItem import android.view.View import an.. 2022. 6. 8. 안드로이드 Option Menu 안드로이드에서 화면 하나당 하나씩 가질 수 있는 메뉴를 의미하며 현재 보이는 화면(Activity)의 메인 메뉴가 된다. onCreateOptionsMenu 화면을 관리하는 객체인 Activity 객체가 만들어 질 때 자동으로 호출되는 메서드이며 여기에서 메뉴를 생성하게 된다. 메서드가 true를 반환하면 메뉴가 나타난다. OnOptionsItemSelected 사용자가 메뉴를 선택했을 때 자동으로 호출되는 메서드이다. package com.example.optionmenu import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.view.Menu import android.view.MenuItem imp.. 2022. 6. 8. 안드로이드 권한 안드로이드는 개인 정보, 센서, 카메라, 저장소 등 개인 정보와 관련된 기능을 사용하기 위해서는 권한을 등록해야 한다. 권한 등록은 사용자가 애플리케이션을 다운로드 받거나 설치 후 애플리케이션 정보에서 확인이 가능하다. 권한 등록의 목적은 사용자에게 애플리케이션이 어떠한 기능을 사용하는지 알려주는 목적으로 사용한다. 권한 등록을 필요로 하는 기능을 사용할 때 권한을 등록하지 않으면 오류가 발생하여 개발자는 반드시 권한을 등록해야 하고 등록된 권한은 사용자에게 고지된다. 안드로이드 6.0 (마시멜로우) 버전 부터 개인 정보와 관련된 권한은 애플리케이션 내부에서 고지하고 사용 허가를 받아야 한다. 권한 사용시 반드시 사용자에게 고지하고 이를 승인 받는 작업이 필요하다. 사용 허가를 받을 필요 없는 권한은 사.. 2022. 6. 8. 안드로이드 RecyclerView Android 5.0 때 추가된 View 이다. ListView와 GridView의 구현이 비슷한 부분이 많이 이를 통합한 View이다. RecyclerView는Adapter를 직접 구현해 줘야 하며 이를 통해 항목을 자유롭게 구성할 수 있다. RecyclerView는 반드시 항목들을 어떠한 형태로 보여줄 것인가를 설정해야 한다. ViewHoler 만들기 ViewHolder 클래스는 항목 하나를 구성하는 View 들의 주소 값을 가지고 있는 클래스이다. 이 클래스는 RecyclerView의 Adapter 클래스 내부에 구현하여 준다. inner class ViewHolderClass(itemView : View) : RecyclerView.ViewHolder(itemView) { val rowImageV.. 2022. 6. 7. 안드로이드 MultiChoiceListView 다수의 항목을 제공하고 항목 중 다수를 선택할 수 있는 ListView 이다. ListView의 Mode를 변경하여 설정한다. Mode 설정 구현 방법은 ListView와 동일하며 ListView를 MultiChoice로 설정해준다. list1.choiceMode = ListView.CHOICE_MODE_MULTIPLE 코드처리 사용자가 선택한 항목이 무엇인지 파악해야 할 때 ListView의 checkedItemPositions 프로퍼티를 활용한다. 이 프로퍼티는 SparseBooleanArray라는 클래스의 객체가 담겨져 있는데 이 객체에는 true가 설정된 항목과 체크 상태가 변경된적이 있는 항목의 인덱스 번화 체크 상태 값을 가지고 있다. package com.example.multichoicel.. 2022. 6. 7. 안드로이드 SingleChoiceListView 다수의 항목을 제공하고 항목 중 하나를 선택할 수 있는 ListView 이다. ListView의 Mode를 변경하여 설정한다. Mode 설정 구현 방법은 ListView와 동일하며 ListView를 SingleChoice로 설정해준다. list1.choiceMode = ListView.CHOICE_MODE_SINGLE 코드처리 사용자가 선택한 항목이 무엇인지 파악해야 할 때 ListView의 checkedItemPosition 프로퍼티를 이용해 현재 선택된 항목이 무엇인지 파악한다. package com.example.singlechoicelistview import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import andr.. 2022. 6. 7. 안드로이드 MultiAutoCompleteTextView AutoCompleteTextView와 거의 동일하며 구분자를 활용해 여러 문자열을 동시에 입력 받을 수 있는 AdapterView이다. 주요속성 completionThreshold : 몇 글자를 입력했을 때 자동완성 리스트가 나타날지 설정한다. 주요 메서드 setTokenizer : 구문자를 설정한다. 본 강좌에서는 기본으로 제공되는 구분자를 사용한다. setAdapter : AutoCompleteTextView는 Adapter를 메서드를 통해 설정한다. 주요 프로퍼티 text : 사용자가 입력한 문자열 값 주요 이벤트 ItemClick : 제공되는 자동완성 리스트의 항목을 클릭할 경우 발생한다. package com.example.multiautocompletetextview import androi.. 2022. 6. 7. 안드로이드 AutoCompleteTextView EditText에 자동완성 기능을 추가한 View 이다. 사용자가 문자열을 입력하면 설정한 문자열 항목을 통해 자동완성 리스트를 제공한다. 주요 속성 completionThreshold : 몇 글자를 입력했을 때 자동완성 리스트가 나타날지 설정한다. 주요 메서드 setAdapter : AutoCompleteTextView는 Adapter를 메서드를 통해 설정한다. 주요 프로퍼티 text : 사용자가 입력한 문자열 값 주요 이벤트 ItemClick : 제공되는 자동완성 리스트의 항목을 클릭할 경우 발생한다. package com.example.autocompletetextview import androidx.appcompat.app.AppCompatActivity import android.os.Bundl.. 2022. 6. 7. 안드로이드 에뮬레이터 저장공간 정리 안드로이드 개발을 공부하고 있는데 아래와 같은 오류가 계속해서 떳다. 뭔가 나의 소스가 잘못되었나하여 이것저것 지워봤지만 아무런 효과가 없었다. 심지어 아예 새로운 프로젝트를 만들어서 실행하여 봤지만 아래와 같은 문제가 계속 발생하였다. The device needs more free storage to install the application (extra space is needed in addtion to APK size). 도대체 무엇일까.. 자세히 읽어보니까 용량부족의 문제가 생긴듯 하다. 그래서 emulator를 다시 지웠다 깔기는 뭐해서 초기화 하는 방법을 찾아보다가 다음과 같이 초기화를 할 수 있음을 알아냈다. C:\Users\[사용자]\.android\avd\Pixel_2_API_28.a.. 2022. 6. 7. 이전 1 ··· 3 4 5 6 7 8 9 ··· 18 다음 728x90