전체 글

I’m currently learning Android, ComputerScience, Algorithm and etc....
Programming Language/Kotlin

[Kotlin In Action] 7장. 연산자 오버로딩과 기타 관례 정리 feat. 내가 정리한 부분만

Kotlin in Action을 공부하며 정리한 내용입니다.저작권에 문제가 될 시, 글을 모두 내리겠습니다.제가 공부한 내용이 더 많은 분들에게도 도움이 되었으면 좋겠습니다. 부족한 부분은 댓글을 통해서 피드백을 주신다면 언제나 반영하겠습니다. 감사합니다.책에 대한 링크는 맨 아래에 있습니다.7.1 ~ 7.4 부분https://github.com/Kotlin-Android-Study-with-SSAFY/Kotlin_In_Action_1/blob/main/7%EC%9E%A5.%20%EC%97%B0%EC%82%B0%EC%9E%90%20%EC%98%A4%EB%B2%84%EB%A1%9C%EB%94%A9%EA%B3%BC%20%EA%B8%B0%ED%83%80%20%EA%B4%80%EB%A1%80/7-1%2C2.md..

Programming Language/Kotlin

[Kotlin In Action] 6장. 코틀린 타입 시스템 정리 feat. 내가 정리한 부분만

Kotlin in Action을 공부하며 정리한 내용입니다.저작권에 문제가 될 시, 글을 모두 내리겠습니다.제가 공부한 내용이 더 많은 분들에게도 도움이 되었으면 좋겠습니다. 부족한 부분은 댓글을 통해서 피드백을 주신다면 언제나 반영하겠습니다. 감사합니다.책에 대한 링크는 맨 아래에 있습니다. https://github.com/Kotlin-Android-Study-with-SSAFY/Kotlin_In_Action_1 GitHub - Kotlin-Android-Study-with-SSAFY/Kotlin_In_Action_1: SSAFY 13기 모바일 트랙 구미 5반 "코틀린 인 액션" 스SSAFY 13기 모바일 트랙 구미 5반 "코틀린 인 액션" 스터디(A). Contribute to Kotlin-Andr..

Computer Science/OperatingSystem

[OS] 뮤텍스(Mutex) & 세마포어(Semaphore) 정리

뮤텍스와 세마포어에 대해서 정리를 해보자.하지만 그 전에 임계 구역과 상호 배제에 대해서 알아보면서 뮤텍스와 세마포어에 대해서 정리를 해보자.임계 구역(Critical Section)임계 구역이란 공유 자원(Shared Resource)에 접근하는 코드 영역을 말한다. 여러 프로세스나 스레드가 동시에 실행되는 환경에서 공유 자원을 동시에 수정하거나 접근할 경우, 데이터의 일관성이 깨지거나 예기치 못한 오류가 발생할 수 있다. 이를 Race Condition(경쟁 상태)라고 하며, 이 문제를 방지하기 위해 임계 구역을 정의한다.임계 구역에서는 한 번에 하나의 프로세스/스레드만 접근할 수 있어야 하며, 이를 보장하는 것이 바로 상호 배제(Mutual Exclusion)이다. 상호 배제(Mutual Exclu..

Android/Study

[Android] Gson vs Moshi vs kotlinx.serialization Deep Dive

세 라이브러리는 모두 JSON ↔ Kotlin/Java 객체 간의 직렬화 및 역직렬화를 지원한다. 이들은 REST API 기반의 안드로이드 개발에서 흔히 사용되며, Retrofit과 함께 활용되는 경우가 많다.1. Gson내부 구조Gson은 런타임 리플렉션(Reflection) 기반으로 객체의 필드 정보를 읽어와 JSON과 매핑한다.Field 클래스의 get()/set()을 사용Getter/Setter 없이도 접근 가능자바 표준 리플렉션 API를 그대로 사용처리 과정val user = gson.fromJson(json, User::class.java)이 구문 실행 시 Gson은 다음과 같은 방식으로 동작한다:User::class.java를 기반으로 Class 객체 추출Class#getDeclaredFie..

Android/Study

[Android] Retrofit의 내부구조와 동작 알아보기

참고 링크가 원문이다. 이번 포스팅은 사실상 내가 보기 좀 더 편하게 정리를 한 것 뿐이다.잘못된 내용은 댓글로 남겨주시면 감사하겠습니다. Retrofit Githubhttps://github.com/square/retrofit GitHub - square/retrofit: A type-safe HTTP client for Android and the JVMA type-safe HTTP client for Android and the JVM. Contribute to square/retrofit development by creating an account on GitHub.github.com Retrofit2Retrofit2는 서버와 클라이언트(Android) 간 HTTP 통신을 간편하게 처리하기 위해..

Programming Language/Kotlin

[Kotlin In Action] 5장. 람다로 프로그래밍 정리

Kotlin in Action을 공부하며 정리한 내용입니다.저작권에 문제가 될 시, 글을 모두 내리겠습니다.제가 공부한 내용이 더 많은 분들에게도 도움이 되었으면 좋겠습니다. 부족한 부분은 댓글을 통해서 피드백을 주신다면 언제나 반영하겠습니다. 감사합니다.책에 대한 링크는 맨 아래에 있습니다.https://github.com/Kotlin-Android-Study-with-SSAFY/Kotlin_In_Action_1 GitHub - Kotlin-Android-Study-with-SSAFY/Kotlin_In_Action_1: SSAFY 13기 모바일 트랙 구미 5반 "코틀린 인 액션" 스SSAFY 13기 모바일 트랙 구미 5반 "코틀린 인 액션" 스터디(A). Contribute to Kotlin-Andro..

Programming Language/Kotlin

[Kotlin In Action] 4장. 클래스 , 객체 , 인터페이스 정리

Kotlin in Action을 공부하며 정리한 내용입니다.저작권에 문제가 될 시, 글을 모두 내리겠습니다.제가 공부한 내용이 더 많은 분들에게도 도움이 되었으면 좋겠습니다. 부족한 부분은 댓글을 통해서 피드백을 주신다면 언제나 반영하겠습니다. 감사합니다.책에 대한 링크는 맨 아래에 있습니다.https://github.com/Kotlin-Android-Study-with-SSAFY/Kotlin_In_Action_1 GitHub - Kotlin-Android-Study-with-SSAFY/Kotlin_In_Action_1: SSAFY 13기 모바일 트랙 구미 5반 "코틀린 인 액션" 스SSAFY 13기 모바일 트랙 구미 5반 "코틀린 인 액션" 스터디(A). Contribute to Kotlin-Andro..

Programming Language/Kotlin

[Kotlin In Action] 3장. 함수 정의와 호출 정리

Kotlin in Action을 공부하며 정리한 내용입니다.저작권에 문제가 될 시, 글을 모두 내리겠습니다.제가 공부한 내용이 더 많은 분들에게도 도움이 되었으면 좋겠습니다. 부족한 부분은 댓글을 통해서 피드백을 주신다면 언제나 반영하겠습니다. 감사합니다.책에 대한 링크는 맨 아래에 있습니다.https://github.com/Kotlin-Android-Study-with-SSAFY/Kotlin_In_Action_1 GitHub - Kotlin-Android-Study-with-SSAFY/Kotlin_In_Action_1: SSAFY 13기 모바일 트랙 구미 5반 "코틀린 인 액션" 스SSAFY 13기 모바일 트랙 구미 5반 "코틀린 인 액션" 스터디(A). Contribute to Kotlin-Andro..

Android/Study

[Android] 코루틴 정리 feat. suspend 키워드까지

우선 Coroutine에 대해서 알아보자. Coroutine이란? Co(함께, 동시에) + routine(작업들의 집합)Coroutine은 비동적인 작업을 효율적으로 처리하기 위한 기술이다. 코루틴은 스레드와 마찬가지로 동시성을 다루지만, 스레드와는 달리 코루틴은 하나의 스레드에서 여러 개의 작업을 처리할 수 있다. 스레드?? 코루틴??Thread (스레드)운영 체제(OS) 수준의 개념이다.Java의 스레드는 "사용자 스레드(user thread)"이지만, 실제로는 커널 스레드(kernel thread)와 매핑되어 동작한다. (즉, Java는 그린 스레드(Green Thread)를 사용하지 않는다.)운영 체제가 스레드의 전환과 스케줄링을 관리한다.스레드는 선점형(preemptive)으로 동작하며, 여러 ..

Computer Science/OperatingSystem

[OS] DeadLock(교착상태)

1. Dining philosophers problem(식사하는 철학자 문제) 5명의 철학자가 원탁에 앉아서 식사를 한다. 철학자들 사이에는 포크가 하나씩 놓여 있고, 철학자들은 다음의 과정을 통해 식사를 한다.1. 일정 시간 생각을 한다.2. 왼쪽 포크가 사용 가능해질 때까지 대기한다. 만약 사용 가능하다면 집어든다.3. 오른쪽 포크가 사용 가능해질 때까지 대기한다. 만약 사용 가능하다면 집어든다.4. 양쪽의 포크를 잡으면 일정 시간만큼 식사를 한다.5. 오른쪽 포크를 내려놓는다.6. 왼쪽 포크를 내려놓는다.7. 다시 1번으로 돌아간다. 간단하게 생각해, 만약 모든 철학자들이 동시에 자신의 왼쪽 포크를 잡는다면, 모든 철학자들이 자기 오른쪽의 포크가 사용 가능해질 때까지 기다려야 한다. 그런데 모든 철..

Computer Science/OperatingSystem

[OS] 운영체제란?

운영체제란 무엇인가운영체제(OS, Operating System)는 컴퓨터 하드웨어와 소프트웨어를 관리하고, 사용자와 컴퓨터 간의 인터페이스를 제공하는 시스템 소프트웨어다. 쉽게 말해, 컴퓨터의 두뇌 역할을 하며 다양한 프로그램이 원활하게 실행될 수 있도록 지원하는 역할을 한다. 운영체제는 사용자에게 편의를 제공하는 목적도 가지고 있다. 운영체제가 없다면 위에서 말한 하드웨어에 관한 모든 관리를 사용자가 해야한다는 점과 같이 컴퓨터를 사용하는데 매우 불편함을 겪을 것이다. 하지만 현재 많은 발전을 거쳐온 운영체제가 설치된 컴퓨터는 사용하기에 매우 편리하다는 것을 느낄 수 있다. 대표적으로 스마트폰이 있다. 스마트폰 역시 컴퓨터의 일종이고 운영체제가 설치되어 있다. 그리고 스마트폰은 남녀노소 누구나 할 것..

Android/Study

[Android] ViewModel이란 무엇이고 그리고 LifeCycle 까지

ViewModel이란 무엇인가?ViewModel은 Android Architecture Component 중 하나로, UI 관련 데이터를 관리하고, 생명주기 변화(Activity/Fragment의 재생성)에도 데이터를 유지할 수 있도록 도와주는 클래스이다.ViewModel은 Life Cycle을 통해 Activity/Fragment의 수명주기를 인지하고 있다.Android의 MVVM(Model-View-ViewModel) 패턴에서 View와 Model 간의 중간 다리 역할을 한다.androidx.lifecycle.ViewModel 클래스를 상속받아 구현하며, 일반적으로 UI에서 필요한 데이터를 LiveData와 함께 사용하여 UI와 데이터를 독립적으로 관리할 수 있도록 돕는다.@HiltViewModelc..