목록전체 글 (54)
훌륭한 개발자가 되기 위하여
운영체제 역할: 자원 할당 및 관리, 프로세스 및 스레드 관리자원 : 프로그램 실행에 필요한 요소-> 실행에 필요한 데이터 [소프트웨어], 실행에 필요한 부품 [하드웨어] CPU관리 : CPU 스케줄링CPU는 한정된 자원이기 때문에 CPU를 할당받아 사용하기 위해서는 다른 프로그램의 CPU 사용이 끝날 때까지 기다려야 한다.이 때, 운영체제는 실행 중인 모든 프로그램들이 공정하고 합리적으로 CPU를 할당받도록 CPU의 할당 순서와 사용 시간을 결정한다. 메모리 관리 : 가상 메모리새롭게 실행하는 프로그램을 메모리에 적재하고, 종료된 프로그램을 메모리에서 삭제한다.실제 물리적인 메모리 크기보다 더 큰 메모리를 이용할 수 있도록 하는 기술 파일 / 디렉터리 관리 : 파일 시스템운영체제는 보조기억장치를 효율적..
작성한 코드는 내부적으로 컴퓨터가 이해할 수 있는 데이터와 명령어의 형태로 변환된 뒤 실행된다.데이터 : 숫자, 문자, 이미지와 같은 정적인 정보 [명령어에 종속적인 정보이며, 명령의 대상 & 명령어의 재료]컴퓨터의 4대 핵심 구성 요소 (CPU, 메모리, 보조기억장치, 입출력장치)CPU (중앙처리장치) [두뇌] : 명령어와 데이터를 읽고 해석하고 실행CPU 구성요소ALU(산술논리연산장치) : 사칙, 논리 연산과 같은 연산을 수행할 회로 (계산기)CU(제어장치) : 명령어를 해석해 제어신호를 내보내는 장치제어장치란? 부품을 작동시키기 위한 신호레지스터 : CPU 내부의 임시 저장장치데이터와 명령어를 처리하는 과정의 중간값을 저장 메모리 (주기억장치)실행 중인 프로그램을 구성하는 데이터와 명령어를 저장하는..
예외 처리(exception handling)란?프로그램 실행 중에 발생하는 비정상적이거나 예외적인 상황에 대응하는 과정이다.예외는 네트워크 오류, 서버 오류, 데이터 파싱 실패 등 개발자가 완전히 통제할 수 없는 상황에서 주로 발생한다.[예외란?] https://jay20033.tistory.com/68 예외 처리가 필요한 이유?프로그램의 비정상 종료를 막고, 오류 상황에 맞는 대응을 할 수 있기 때문이다.예외 처리가 없다면, 앱이 갑자기 종료되거나 개발자만 이해할 수 있는 에러 메시지가 그대로 노출된다.💥기존 방식의 문제점프로젝트에는 이미 클린 아키텍처 구조가 적용되어 있었다.계층 분리는 되어 있었지만, 예외 처리 관점에서는 발생한 Exception을 그대로 UI에 노출하는 방식으로 처리하고 있었..
Jetpack Compose에서 ViewModelCompose에서는 Composable 자체가 ViewModelStoreOwner가 아니므로 ViewModel의 범위를 Composable로 지정할 수 없고 ViewModel의 생명주기를 맞출 수 없다.왜냐하면, ViewModelStoreOwner은 ComponentActivity, Fragment, NavBackStackEntry 만의 SubClass이기 때문이다.ViewModelStoreOwner란?ViewModelStoreOwner는 ViewModel을 저장하고 관리하는 컨테이너 역할을 하는 객체이다.ViewModelStoreOwner가 configuration change로 인해 삭제되고 재생성되었을때 ViewModelStore의 이전 owner를 ..
프로젝트에서 운동 기록을 날짜 단위로 보여주는 캘린더 UI가 필요했다.Jetpack Compose Material3에서 기본으로 제공하는 캘린더 관련 컴포넌트는 DatePicker, TimePicker 두 가지가 있다.이 컴포넌트들은 단순한 날짜 입력에는 적합하지만 월 단위 캘린더 UI나 날짜별 상태 표시(운동 기록 여부)를 표현하기에는 한계가 있었다.추가로 다른 사람들이 만들어놓은 외부 라이브러리가 있었지만 내가 원하는 형태로 커스텀하기에는 제한적인 부분이 있어 Custom Calendar를 직접 구현하기로 결정했다.요구사항 정리월 단위로 좌우 스와이프 가능특정 날짜 선택오늘 날짜 시각적으로 구분현재 달이 아닌 날짜는 흐리게 표시날짜마다 운동 기록 유무 상태 표시전체적인 구조상단에 현재 연도와 월을 표..
