목록분류 전체보기 (192)
안드로이드 개발자의 창고
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bmMlG7/btsL4NzNZ2P/PJZu9fzEDfnhp90GMNYYn1/img.png)
자소분리란?macOS에서는 유니코드 인코딩 방식을 NFD(조합형)로 채택하고, Windows에서는 NFC(완성형)로 채택하여 서로 다른 인코딩 방식을 사용 중이다. macOS에서 NFD로 작성된 파일을 Windows에서 확인할 경우 한글이 깨지는 문제가 발생한다.macOS에서 채택한 NFD(조합형)한글의 초성, 중성, 종성을 분리된 코드로 저장한다.예시)안녕하세요.txt → ㅇㅏㄴㄴㅕㅇㅎㅏㅅㅔㅇㅛ.txt위 (U+C704) → ᄋ (U+110B) + ᅱ (U+1171) Windows에서 채택한 NFC(완성형)한글의 초성, 중성, 종성이 합쳐져 있는 형태의 코드로 저장한다.예시)안녕하세요.txt → 안녕하세요.txtᄋ (U+110B) + ᅱ (U+1171) → 위 (U+C704)회사에서 일을 하면서 Wind..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/elnCug/btss74GPKEG/mFMbF932gC58jC38BAt7Vk/img.png)
Coroutine, Thread 와의 차이와 그 특징 처음 Kotlin 를 사용하던 중에 비동기 처리를 위해 Coroutine 개념을 마주했었습니다. 동기란 요청을 보낸 후 요청에 대한 반환값을 얻기 이전까지 대기하는걸 의미하고, 비동기는 그 대기시간동안 aaronryu.github.io 📖 Process & Thread Process : 프로그램이 메모리에 적재되어 실행되는 인스턴스(객체) Thread : Process 내에서 실행되는 실행 단위 각 작업에 해당하는 메모리 영역을 할당 OS 레벨에서 각 작업들을 얼만큼씩 분배하여 수행해야지 효율적일지 선점 스케줄링(Preempting Scheduling)을 필요로 함 Task 단위 = Thread 다수의 작업 각각에 Thread를 할당한다. 각 Thre..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bUQGvO/btssUaAuWfW/RSznCJqPbkD1cOhSk6ctDk/img.png)
📖 MVC Model - View - Controller로 이루어진 패턴 Model 앱이 포함해야할 데이터가 무엇인지를 정의 데이터의 상태가 변경되면 일반적으로 View에게 알려주지만 가끔은 Controller에도 알려준다. 가끔 Controller에게 알려주는 경우는 업데이트 된 View를 제어하기 위해 다른 로직이 필요한 경우이다. View 데이터를 보여주는 방식을 정의한다. 표시할 데이터는 Model로 부터 받게 된다. Cotroller 사용자로부터 입력에 대한 응답으로 Model 또는 View를 업데이트하는 로직을 포함한다. 동작 과정 예시 사용자가 to-do 리스트 목록에 있다고 가정하면 사용자가 리스트를 추가하기 위해 내용을 작성하고 추가 버튼을 눌렀다. 이러한 이벤트는 Controller에 ..
데이터 바인딩 및 MVVM - UWP applications 데이터 바인딩은 MVVM(Model-View-ViewModel) UI 아키텍처 디자인 패턴의 핵심이며 UI 및 비 UI 코드 간의 느슨한 결합을 가능하게 합니다. learn.microsoft.com 다른 블로그 글 보다는 공식 문서가 좋을 것 같아 microsoft 공식 문서를 가져왔다. 📖 MVVM이란? UI 및 비 UI 코드를 분리하기 위한 UI 아키텍처 디자인 패턴 Model, View, ViewModel로 분리 Model : 데이터를 관리하는 클래스 View : 화면 UI ViewModel : 화면과 관련된 데이터를 관리하는 클래스 repository : 데이터를 구하는 클래스 MVVM의 장점 단위 테스트 간소화 유지 관리 효율성 향상 ..
🌟 이번 주 목표 🌟 [ V ] 코딩 테스트 일주일 3문제 [ X ] 이번 주 강의 정리하여 블로그 작성 💜 Liked(좋았던 점) MVVM 이해 및 적용 MVVM에 대해서 이론으로만 알고 있었는데 직접 실습해보기에는 어려웠다. Kotlin으로 작성된 코드를 찾아봐도 이해하기 어렵거나 어떤 분이 작성했냐에 따라 많이 달랐기 때문이다. 강사님의 설명을 토대로 LiveData와 ViewModel을 이용해서 MVVM을 사용해볼 수 있어서 좋았다. ✔️ Lacked (아쉬웠던 점) 강의 내용 정리 미흡 MVVM에 대해 이해는 했으나 어떻게 정리를 해야할지 감이 잡히지 않아 미루고 있었다. 여러 기업에서 실제로 사용하거나 면접에서도 자주 물어보는 주제인 만큼 확실하게 정리를 해놔야겠다. 개발자 공식 문서도 많이 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b60cp6/btso11V9SSg/omTOO0D8dtFHb4td4Sbn21/img.png)
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT 📖 XML Parsing eXtensible Markup Language 데이터를 태그라는 것으로 묶어 관리하는 기법 XML 문서에서 추출한 모든 데이터는 문자열이므로 적당한 타입으로 변환하여 사용해야 한다. 예제 코드 파싱에 사용할 XML 문서 MainActivity.kt class MainActivity : AppCompatActivity() { lateinit var activityMainBinding: ActivityMainBinding // XML 파싱을 할 주소 val serverAddress = "https://www.aviationweather.gov/adds/dataserver_current/httpparam?datasource=..
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT 📖 Socket 서버와 클라이언트 간에 연결된 Socket을 통해 통신하는 방법으로 프로그램 종료 시 까지 온라인으로 유지할 수 있는 특징을 가지고 있다. 안드로이드 Socket 네트워크 구현 방법은 일반 자바 프로그램에서 구현하는 방법과 동일하다. 데이터를 주고 받는 부분 뿐만 아니라 접속 관리 등 많은 기능을 구현해야 하기 때문에 서버 구현이 어려운 편이다. 예제 코드 Server.kt fun main() { // 사용할 포트 번호 val portNumber = 50000 // 서버 객체 생성 val serverSocket = ServerSocket(portNumber) // 사용자 접속 대기 println("사용자 접속 대기") val so..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bVspWw/btsoTmxtbde/3hGDuNM3tci2CkN9BBjOJk/img.png)
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT 📖 앨범에서 사진 가져오기 앨범에서 사진을 가져올 때 다른 Activity를 실행시켜서 사진을 가져올 수 있다. Intent.ACTION_PICK 예제 코드 AndroidManifest.xml ... MainActivity.kt 안드로이드는 영상, 음원, 사진 등의 미디어 파일을 단말기 내부에 저장하면 미디어 스캐너라는 것이 자동으로 가동된다. 미디어 스캐너의 역할은 영상, 음원, 사진 등에 관련된 데이터를 추출하여 SQLiteDatabase에 저장한다. 이 정보를 가져다 사용할 수 있는 Content Provider를 이용해 정보를 가져온다. 안드로이드 버전이 10(Q) 이상이면 Content Resolver로 바로 접근 가능하다. 10 버전 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/qkcvR/btsoyrUYKiX/BjKaY3AcjxfrL6B1ssXFcK/img.png)
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT 📖 사진 촬영하기 카메라 기능이 구현되어 있는 Activity를 실행하여 사진을 촬영할 수 있다. 만약 카메라 기능이 구현되어 있는 애플리케이션이 다수 설치되어 있다면 앱을 선택하면 된다. 기본 카메라 사용하는 방법을 사용하면 사진 원본이 아닌 썸네일 이미지를 가져오게 된다. 촬영된 사진의 원본을 가져오려면 촬영된 사진을 파일로 저장한 다음 파일로부터 이미지 데이터를 가져오는 방식으로 개발해야 한다. 예제 코드 AndroidManifest.xml = Build.VERSION_CODES.TIRAMISU) { val bitmap = it.data?.getParcelableExtra("data", Bitmap::class.java)!! activity..
🌟 이번 주 목표 🌟 [ V ] 코딩 테스트 일주일 3문제 [ V ] 강의 정리하여 블로그 작성 [ V ] 오류 해결 과정 글쓰기 💜 Liked(좋았던 점) Kotlin으로 Places API 연동하는 방법을 배웠다 Java로 하는 방법은 알고 있었는데 Kotlin, JSON을 이용하여 연동하는 방법은 생각하지 못했었다. 원래 내가 했던 방식은 Places API를 Android용으로 적용했었는데 이번에는 웹 서비스용으로 적용하여 JSON으로 데이터를 받아 사용했다. 원래 적용했던 방식보다 웹 서비스용 방식이 코드의 가독성이 좀 더 높은 것 같다. 개인 프로젝트에 WebView 적용 원래는 링크를 주고 브라우저 앱에서 해당 주소를 띄우도록 했었는데 WebView를 적용해보는 것이 좋겠다고 생각하게 되었다..