본문 바로가기

전체 글33

Coroutine 이란? 이번 글에서는 비동기 처리할 때 많이 사용하는 Coroutine에 대해서 알아보도록 하겠습니다. Coroutine? 실행의 지연과 재개를 허용함으로써 비선점적 멀티태스킹을 위한 서브 루틴을 일반화한 컴퓨터 프로그램 구성요소입니다. Co(협동) + routine(루틴)의 합성어입니다. 비선점적 멀티태스킹 이란? 비선점형 : 하나의 프로세스가 CPU를 할당받으면 종료되기 전까지 다른 프로세스가 CPU를 강제로 차지할 수 없습니다. 선점형 : 하나의 프로세스가 다른 프로세스 대신에 프로세서(CPU)를 강제로 차지할 수 있습니다. 즉 비선점적 멀티태스킹은 하나의 프로세스가 CPU를 차지할 수 없다는 것을 의미합니다. Coroutine과 쓰레드의 차이점 Thread Thread는 각 작업에 해당하는 메모리 영역인.. 2024. 2. 7.
Hilt 란? 저번글에서 DI (Dependency Injection)에 대해 알아보았는데 이번엔 요새 많이 쓰이고 있는 Hilt에 대해 소개해보도록 하겠습니다. DI가 무엇인지 모른다면 제 블로그 전 게시글을 확인하고 오면 이해하기 더 편할 거 같습니다! 이제 본론으로 넘어가 Hilt가 무엇인지 알아보도록 하겠습니다. Hilt 란? Hilt는 Dagger를 기반으로 Dagger를 좀 더 쉽게 사용할 수 있게 도와주는 DI 라이브러리입니다. 그럼 Dagger를 쓰면 안되는것일까? Dagger에 무슨 문제가 있길래 Hilt로 바뀐것일까?를 말씀 드리기 전에 간단히 Dagger 가 무엇인지 설명드리겠습니다. Dagger란? Dagger는 자바와 안드로이드에서 의존성 주입을 구현하기 위해 사용하는 프레임 워크입니다. 지금은.. 2024. 2. 6.
AWS EC2에 APM 설치하기 오늘은 Apache2 + PHP + Mysql을 EC2 Ubuntu에 설치하는 방법에 대해 알아보도록 하겠습니다. SSH 연결을 해 터미널을 연다음에 설치를 하겠습니다 먼저 SSH 연결 한 후 다음 명령어들을 순서대로 작성하시면 될것 같습니다. 연결 한 후 아파치를 설치하기 전에 사용해야 할 명령어가 있습니다. sudo apt update && sudo apt upgrade apt 업데이트를 먼저 해주고 아파치를 설치하도록 하겠습니다. 앞에 sudo 라고 적혀있는데 이건 따로 한번 찾아보시는것을 추천드립니다. Apache 설치 sudo apt install apache2 명령어를 작성하시면 아파치가 설치되는데 설치가 끝나고 인스턴스 퍼블릭 아이피로 접속해보시면 정상적으로 설치되었는지 확인할 수 있습니다... 2024. 1. 19.
Play Console 1 버전 코드는 이미 사용되었습니다. 다른 버전 코드를 사용해 보세요. 오류 해결 오늘은 앱 게시를 하는중 버전 수정을 하려고 수정 하고 Bundle을 새로 게시하려고 했는데 1 버전 코드는 이미 사용되었습니다. 다른 버전 코드를 사용해 보세요. 오류를 확인했다. 이 오류는 어떻게 해결하냐면 Build.Gradle 에 Version Code 만 바꿔주면 해결됩니다. 위 사진을 보면 versionCode가 1로 되어있고 versionName 이 1.0 으로 되어있는 것을 확인 할 수 있는데 이걸 2,2.0 으로 바꿔주고 Sync Now를 눌러 싱크를 맞춰주고 Bundle 을 추출하면 해결 됩니다. 2024. 1. 16.
DI(Dependency Injection)이 뭘까? 이번 글에서 DI(Dependency Injection) 의존성 주입에 대해 설명하도록 하겠습니다. DI란? DI는 Dependency Injection에 줄임말로 의존성 주입이란 뜻을 가지고 있습니다. 의존성 주입을 알기 전에 의존성이 무엇인지에 대한 개념을 먼저 짚고 넘어가야 합니다. Depencency(의존성) 이란 A 가 B에 의존하면 B 가 변경되었을 때 A에게 영향을 미친다. 예시를 들자면 요리사가 레시피에 의존하고 있을 때 레시피가 변경되면 요리사에게 영향을 끼친다는 것을 생각하면 이해하기 쉬울 것 같습니다. 코드적 관점으로 보면 A 클래스에서 B 클래스를 의존하고 있다면 B 클래스의 기능 혹은 변경사항이 있다면 그 영향이 A 클래스에게 미친다고 이해할 수 있습니다. 코드를 보면서 설명하도록.. 2024. 1. 10.
MVC,MVP,MVVM 디자인 패턴 이번엔 디자인 패턴 중 MVC, MVP, MVVM에 대해서 알아보려 합니다. 일단 먼저 디자인 패턴이 무엇 인지에 대해 알아보도록 하겠습니다. 디자인 패턴이란? 소프트웨어 개발 과정에서 발견된 설계의 노하우를 축적하여 그 방법에 이름을 붙여서 이후에 재사용하기 좋은 형태로 특정 규약을 만들어서 정리한 것입니다. 표준화된 방법을 사용하다 보니 개발자들간의 협업 또한 수월해지고 각 역할을 나누어놨기 때문에 유지보수하기도 수월하다는 장점이 있습니다. Presentation Logic 화면상의 디자인 구성을위한 로직을 일컫는 말입니다. Business Logic 원하는 값은 얻기 위해 사용자 눈에 보이지 않는 내부 로직을 일컫는 말입니다. MVC (Model View Controller) 패턴 MVC 디자인 패.. 2023. 8. 18.