반응형

분류 전체보기 200

안드로이드 스피너(Spinner, Kotlin)

스피너는 위와 같이 여러 개의 값 중에 하나의 값을 선택할 수 있도록 하는 방법 중 하나이다. 스피너는 초기에 기본값으로 설정된 값을 표시하고 있으며, 클릭 시 드롭다운 메뉴를 표시하여 자신이 원하는 값을 선택할 수 있다. 스피너에 제공하는 값들은 SpinnerAdapter를 통해 제공되는데, 값들을 어떠한 자료 구조에서 가져오느냐에 따라 배열의 경우 ArrayAdapter, 데이터베이스 쿼리에서 가져오는 경우 CursorAdapter 등을 사용할 수 있다. 이번 글에서는 ArrayAdapter를 사용하여 배열 구조에서 값들을 가져와보도록 하자. XML 만들기 스피너에 사용할 값들이 사전에 결정된 경우에는 문자열 리소스 파일을 정의하여 사용할 수 있다. 토끼 곰 호랑이 사자 고양이 먼저, res/valu..

안드로이드 커스텀 다이얼로그(CustomDialog, Kotlin)

다이얼로그는 사용자에게 결정을 내리거나 추가 정보를 입력하라는 메시지를 표시하는 창이다. 다이얼로그는 보통 화면을 가득 채우지 않고, 사용자가 다음으로 진행하기 전에 조치를 취해야 하는 이벤트에 사용된다. 이런 다이얼로그를 생성하기 위한 일반적인 방법으로 AlertDialog를 사용하는 방법이 있는데, 이 글에선 AlertDialog가 아니라 사용자가 직접 정의하는 CustomDialog를 만드는 법에 대해서 알아보자. CustomDialog 기본적으로 다이얼로그라는 창을 사용자에게 보여주기 위해선 해당 창을 디자인해야 할 것이다. 그러니 가장 처음으로 우리가 만들 CustomDialog의 레이아웃을 만들어보도록 하자. 여기서 사용할 레이아웃은 위와 같이 아주 간단하게 만들어봤다. 다음으로 CustomD..

안드로이드 AlertDialog(Kotlin)

다이얼로그는 위의 사진처럼 사용자에게 결정을 내리거나 추가 정보를 입력하라는 메시지를 표시하는 창이다. 다이얼로그는 보통 화면을 가득 채우지 않고, 사용자가 다음으로 진행하기 전에 조치를 취해야 하는 이벤트에 사용된다. 이 글에선 간단하게 사용가능한 다이얼로그인 AlertDialog를 사용하는 법에 대해 알아보자. AlertDialog 적당한 프로젝트를 하나 생성하고, layout파일부터 작성해보도록 하자. layout에 버튼 하나를 추가하여 해당 버튼을 누르면 Dialog가 나오도록 코드를 작성해보자. class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding override fun onCreat..

안드로이드에서 네이버 지도 사용 (Kotlin)

안드로이드에서 네이버 지도를 사용하는 법에 대해서 알아보자. 가장 먼저 API 이용을 위해 네이버 클라우드 플랫폼 페이지로 들어가 준다. https://www.ncloud.com/ NAVER CLOUD PLATFORM cloud computing services for corporations, IaaS, PaaS, SaaS, with Global region and Security Technology Certification www.ncloud.com .해당 페이지에서 로그인을 한 뒤 서비스 -> Application Service -> Maps로 들어가 준다. 그러면 위와 같은 화면으로 이동하는데, 여기서 이용 신청하기를 선택한다. 다음으로 이동하는 페이지에서 Application 등록을 선택하여 새로..

JAR, DEX, APK, AAR파일

JAR(Java Acrchive) JAR은 해당 플랫폼에서 JAVA 응용 프로그램을 배포하기 위해 고안된 패키지 파일 형식이다. 여기엔 컴파일된 Java클래스 파일과 MANIFEST와 같은 파일이 포함되어 있다. 기본적으로 일부 제한이 있는 ZIP 아카이브 형태이다. DEX(Dalvik Excutable) DEX는 바이너리 파일 형식으로 컴파일된다. .dex파일은 DVM(Dalvik Virtual Machine)용이며, JVM용 .class파일과 유사하다. DEX파일 형식은 실제로 Android SDK의 Dex 컴파일러에 의해 Java CLASS파일에서 생성된다. 이 컴파일러는 JVM바이트코드를 DVM바이트코드로 변환하고, 모든 클래스 파일을 하나의 Dex파일에 저장한다. APK(Android Appli..

View와 ViewGroup

안드로이드에서 사용자에게 실제로 보여지는 UI요소는 크게 View와 ViewGroup으로 이루어져있다. View View는 안드로이드 화면에 보이는 모든 객체들을 말한다. 예를 들면 Button, TextView, EditText, ImageView등등.. 사용자에게 보이는 모든 것들을 View라고 하며, 이들은 View클래스를 상속받고있다. 또한 각각의 View들은 자신이 어디에 배치되어야 하는지에 대한 정보를 갖고있지않다. 때문에 View만으로는 화면에 나타날 수 없으며, View를 화면에 배치하기 위해선 반드시 ViewGroup이 필요하다. ViewGroup ViewGroup은 Group이라는 단어에서 알 수 있듯이 여러개의 View들을 모아놓은 것이라고 할 수 있으며, n개의 View를 담을 수 ..

ANR(Application Not Responding)

ANR? ANR은 안드로이드에서 발생하는 오류 중 하나로 Application Not Responding의 약자이다. 이 오류는 Android 앱의 메인 스레드(UI 스레드)가 너무 오랫동안 차단되면 발생한다. 주로 오랜 시간을 요구하는 작업의 결과를 UI에 반영하려고 할 때 발생하는데, 네트워크 통신을 수행할 때 시간이 오래 걸리면 ANR오류가 발생할 수 있다. ANR이 발생하는 조건은 다음과 같다. 1. App이 사용자의 Input에 5초 이상 반응하지 않을 때 2. BroadcastReceiver가 10초 이내에 작업을 끝내지 못했을 때 위 조건만 봣을 때 단순히 시간이 오래 걸리면 ANR이 발생한다고 생각할 수도 있지만, 이보다는 메인 스레드가 일정 시간 동안 어떤 Task에 잡혀 있으면 ANR이..

쿠키(Cookie), 세션(Session), 캐시(Cache)

HTTP는 무상태성(Stateless)과, 비연결성(Connectionless)의 특징을 가지고 있다. 즉, 서버와 클라이언트가 통신할 때 서버는 클라이언트의 어떠한 상태 정보도 가지지 않는다. 때문에 서버와 클라이언트가 두 번 통신한다고 했을 때, 첫 번째 통신에서 데이터를 주고받아도 두 번째 통신에서 해당 데이터를 유지하지 않는다. 또한 서버는 클라이언트로부터 Request를 받고, 이에 대한 Response를 전송한 뒤 해당 클라이언트와 연결을 끊게 된다. 하지만 이러한 특징은 실제 통신상황에서 사용자에게 많은 불편함을 줄 수 있다. 예를 들어 홈페이지에 로그인하는 경우 다른 페이지로 이동할 때마다 다시 로그인을 해야 된다면 누가 그런 사이트를 이용할까 이러한 상황에 대비하기 위하여 서버와 클라이언..

Computer Science 2021.12.18

싱글톤 패턴(SingleTon Pattern)

싱글톤 패턴 싱글톤 패턴은 특정 클래스의 인스턴스를 최초 한 번만 생성하여 이후에 다른곳에서 해당 클래스의 생성자를 호출하더라도 새롭게 객체를 생성하는것이 아닌 최초로 생성된 객체를 반환하여 프로그램 전역에서 동일한 하나의 객체에 접근하도록 하는 디자인 형태이다. 장점 ▶ 고정된 메모리 영역을 한 번만 할당하여 사용하여 하나의 객체만 생성하기 때문에 메모리 낭비를 줄일 수 있다. ▶ 싱글톤 패턴으로 만들어진 클래스의 인스턴스는 전역 인스턴스이기 때문에 데이터 공유가 용이하다. ▶ 최초 생성 이후에는 호출시 메모리에 이미 생성된 객체를 가져오기 때문에 객체 로딩 시간이 줄어든다. ▶ 인스턴스가 하나만 생성되는것을 보장한다. 안드로이드 같은 경우 SharedPreference를 사용할 때 이러한 싱글톤 패턴..

프레임워크(Framework)와 라이브러리(Library)

프레임워크와 라이브러리는 프로그래밍 빼놓을 수 없는 요소들이다. 이 글에서는 프레임워크와 라이브러리가 무엇인지에 대해서 확인해보자. 라이브러리(Library) 라이브러리는 특정한 기능들을 모듈화한것이다. 간단하게 말하면 어떤 기능을 수행하기 위한 코드들의 집합이라고 할 수 있다. . 프로그래머는 사전에 만들어진 라이브러리들을 프로그래밍을 할 때 불러와서 자신이 원하는 곳에 적절이 활용하기만 하면 된다. Python에서 사용하는 NumPy, Pandas, Tensorflow등이 라이브러리에 속한다. 프레임워크(Framework) 프레임워크는 프로그래밍에서 틀, 뼈대를 말하며, 어떠한 기능을 완성하기 위한 클래스, 인터페이스들의 집합이라고 할 수 있다. 프레임워크는 말그대로 뼈대이기 때문에 프로그래밍에 있어..

Computer Science 2021.12.15
반응형