<feed xmlns="http://www.w3.org/2005/Atom"> <id>https://wonhaeseong.github.io/</id><title>원해성의 저장소</title><subtitle>반갑습니다. 원해성의 저장소입니다.</subtitle> <updated>2024-03-13T01:38:45+09:00</updated> <author> <name>wonhaeseong</name> <uri>https://wonhaeseong.github.io/</uri> </author><link rel="self" type="application/atom+xml" href="https://wonhaeseong.github.io/feed.xml"/><link rel="alternate" type="text/html" hreflang="en" href="https://wonhaeseong.github.io/"/> <generator uri="https://jekyllrb.com/" version="4.3.3">Jekyll</generator> <rights> © 2024 wonhaeseong </rights> <icon>/assets/img/favicons/favicon.ico</icon> <logo>/assets/img/favicons/favicon-96x96.png</logo> <entry><title>Android에서 MVC, MVP, MVVM 패턴의 특징과 예제</title><link href="https://wonhaeseong.github.io/posts/MVC-MVP-MVVP-Study/" rel="alternate" type="text/html" title="Android에서 MVC, MVP, MVVM 패턴의 특징과 예제" /><published>2024-03-10T21:00:00+09:00</published> <updated>2024-03-10T21:00:00+09:00</updated> <id>https://wonhaeseong.github.io/posts/MVC-MVP-MVVP-Study/</id> <content src="https://wonhaeseong.github.io/posts/MVC-MVP-MVVP-Study/" /> <author> <name>wonhaeseong</name> </author> <category term="Android" /> <category term="Architecture" /> <summary>   이번 글에서는 안드로이드 개발에서 가장 흔히 쓰이는 MVC, MVP, MVVM 패턴에 관해 공부한 내용을 공유하겠습니다. 왜 설계 패턴이 필요하지?   소프트웨어 개발자는 사용자 혹은 고객의 요구 사항에 맞게 프로그램을 제작합니다. 만약 요구사항이 영원히 변하지 않는다면 프로그램도 수정될 필요가 없습니다. 하지만 서비스를 제공하는 업체의 경우, 급격히 변하는 사용자의 요구사항에 맞추어 프로그램도 자주 변경 해야 합니다. 이 상황에 놓인 개발자들은 유지보수하기 좋은 코드를 작성해야 했습니다. 그리고 “유지보수하기 좋은 코드들은 어떤 패턴을 갖는다.” 해서 여러 설계 패턴이 나타나게 됩니다. 예제 코드 소개 https://github.com/wonhaeseong/MVC-MVP-MVVM-study 가... </summary> </entry> <entry><title>Compose가 등장한 이유</title><link href="https://wonhaeseong.github.io/posts/why-compose-rise/" rel="alternate" type="text/html" title="Compose가 등장한 이유" /><published>2023-10-25T19:00:00+09:00</published> <updated>2023-10-25T19:00:00+09:00</updated> <id>https://wonhaeseong.github.io/posts/why-compose-rise/</id> <content src="https://wonhaeseong.github.io/posts/why-compose-rise/" /> <author> <name>wonhaeseong</name> </author> <category term="Android" /> <category term="Compose" /> <summary> View VS Compose   2008년 안드로이드는 View,ViewGroup 기반 UI 작성 기능(이하 View)을 지금까지 제공하고 있습니다. 하지만 2020년 Compose가 등장합니다. 잘 작동하는 View가 있음에도 Compose가 등장한 배경은 무엇인지 생각해 볼 필요가 있습니다.   글을 시작하기 전 뒤에 나올 내용의 이해를 돕고자 명령형 프로그래밍과 선언형 프로그래밍에 대해 간단히 설명하겠습니다. 명령형(Declarative) fun sumOfEvenNumbers(numbers: List&amp;lt;Int&amp;gt;): Int { var sum = 0 for (number in numbers) { if (number % 2 == 0) { s... </summary> </entry> <entry><title>Compose Custom theme (Dynamic theme)</title><link href="https://wonhaeseong.github.io/posts/compose-custom-theme/" rel="alternate" type="text/html" title="Compose Custom theme (Dynamic theme)" /><published>2023-10-04T00:00:00+09:00</published> <updated>2023-10-04T00:00:00+09:00</updated> <id>https://wonhaeseong.github.io/posts/compose-custom-theme/</id> <content src="https://wonhaeseong.github.io/posts/compose-custom-theme/" /> <author> <name>wonhaeseong</name> </author> <category term="Android" /> <category term="Compose" /> <summary> Compose에서의 커스텀 테마   기존 View 시스템에서는 theme resource를 적절히 조작하여 동적으로 테마를 변경할 수 있었습니다. 반면 Compose에서는 XML이 사용되지 않고 Kotlin으로 대체되었기 때문에 작동 방법이 완전히 다릅니다. 그래서 여러 커스텀 테마를 만들고 그것을 효율적으로 적용하기 위해서 알아야 할 것들이 있는데, 대표적으로 Stability, CompositionLocal이 있습니다. 커스텀 테마 만들기   제가 실제로 작성했던 커스텀 테마를 기반으로 설명하겠습니다. 데이터에 따라 테마가 변경되는 동적 테마도 함께 고려된 예시입니다. 1. 테마 필드 설계   앱의 요구사항은 복잡하지 않습니다. 미세먼지 단계에 따라 배경 색상이 6단계로 변합니다. 그리고 ... </summary> </entry> <entry><title>Android Context에 대한 이해</title><link href="https://wonhaeseong.github.io/posts/android-context/" rel="alternate" type="text/html" title="Android Context에 대한 이해" /><published>2023-10-03T15:00:00+09:00</published> <updated>2023-10-03T15:00:00+09:00</updated> <id>https://wonhaeseong.github.io/posts/android-context/</id> <content src="https://wonhaeseong.github.io/posts/android-context/" /> <author> <name>wonhaeseong</name> </author> <category term="Android" /> <category term="기초" /> <summary> 공식 문서의 Context에 대한 정의  애플리케이션 환경에 관련된 전역 정보를 나타내는 인터페이스이다. 안드로이드 시스템에 의해 구현되는 추상 클래스이고 intent, activity, broadcasting, 리소스 등에 접근 가능하게 해 준다. 왜 굳이 Context가 필요한가?    ‘왜 Context가 필요한가?’에 대해 고민하던 중 한 블로그에서 좋은 글을 발견했습니다. 그 내용을 보고 Context라는 개념에 대해 더 와닿게 되었습니다.   안드로이드 개발팀에서 Context라는 객체를 설계한 배경에 대해 알기 위해, 안드로이드 개발의 특성을 넘어 모바일의 특성을 생각해 보아야 합니다. 우리는 휴대폰으로 책을 읽다가 카톡을 하고 또 은행 업무를 처리합니다. 그리고 다시 책을 ... </summary> </entry> <entry><title>블로그 소개</title><link href="https://wonhaeseong.github.io/posts/blog-intro/" rel="alternate" type="text/html" title="블로그 소개" /><published>2023-10-03T00:00:00+09:00</published> <updated>2023-10-03T00:00:00+09:00</updated> <id>https://wonhaeseong.github.io/posts/blog-intro/</id> <content src="https://wonhaeseong.github.io/posts/blog-intro/" /> <author> <name>wonhaeseong</name> </author> <category term="기타" /> <summary> 안녕하세요. 안드로이드 개발자 원해성입니다. 이 블로그는 제가 공부한 것들을 기록하고 정리하고자 만들었습니다. 기억력이 특출나게 좋은 편이 아닌지라 공부하고 경험한 내용을 오래 기억하지 못합니다. 그래서 블로그에 글을 쓰며 공부한 내용을 한 번 더 정리하고, 기억나지 않는 부분이 있을 때 제가 작성한 글을 보며 빠르게 기억을 떠올리려 합니다. 기존에 티스토리 블로그를 사용해 본 적이 있지만 카테고리 찾기 어려움, Content 목록 기능 없음, 코드 가독성 이슈 등 여러 문제점이 있었습니다. 그래서 블로그 이전을 했고, 전부 개선되었습니다. 공부한 내용을 공유하며 독자들의 의견도 함께 듣고 싶습니다. 잘못된 내용이나 부족한 부분이 있다면 알려주세요. 칭찬과 조언은 언제나 환영입니다. </summary> </entry> </feed>
