[CS 스터디] 1주차 프로세스와 스레드
·
공부/CS 스터디
CS 스터디 1주차 - 프로세스와 스레드프로세스란프로세스를 간단하게 설명하면, 컴퓨터에서 실행 중인 프로그램 이라고 설명할 수 있다.프로그램을 실행하면 먼저 메모리에 프로그램이 적재되고, CPU가 실행 가능한 상태가 된다.이때 메모리에 올라간 이 프로그램 (혹은 커널에 등록된 프로그램)을 프로세스라고 할 수 있다.프로세스의 구조프로세스는 다음곽 같이 총 4개의 영역으로 구성되어있다.StackHeapDataText아래 표와 같은 순서로 나타낼 수 있으며, 아래로 갈 수록 메모리 주소가 낮아진다.StackHeapDataText그렇다면, 각 구조별 특징에 대해 알아보자Stack임시 데이터 (지역 변수, 함수 호출 등)가 저장되는 영역으로, 가장 높은 메모리 주소를 가진다.함수 호출 시에 생성되며, 함수가 끝나..
Kotlin DSL을 활용한 에러 핸들링 설계
·
개발/안드로이드
과거 코인에서는 ErrorHandler를 이용해 에러를 처리하였다.다만 현재 팀원 중에는 그 구조를 직접 사용해 본 사람이 없고, 따라 Result 기반으로 에러를 명시적으로 다루는 방향으로 정리되었다.Result.failure 분기처리처음에는 아래와 같이 코드를 작성하였다.return runCatching { remoteCall()}.onFailure { exception -> return Result.failure( when (exception) { is HttpException -> { when (exception.code()) { 401 -> UnauthorizedException() ..
25년도 하반기 회고
·
회고
BCSD이번 학기부터 BCSD에 많은 변화가 생겼다. 기존의 팀 체제가 사라지고, PL님이 멘토님에서 회장님으로 바뀌면서, 동아리 전체적으로 방향성을 잡지 못한 학기였다. 거기에 배달 기획으로 인한 동아리 전체의 피로도 누적과 나를 비롯한 수많은 개발자들의 번아웃으로 인해, 저번학기와 같은 활발한 활동을 하지 못한 학기였다. 그럼에도 불구하고, 안드로이드 개발자로서 성장하기 위해 부단히 노력한 학기였다.안드로이드 트랙장가장 큰 변화로, 처음 트랙장을 맡게 되었을 때 부터 주장했던 Compose 리팩토링을 중단하게 되었다. 리소스의 부족도 큰 영향이 있었지만 가장 큰 이유는 레거시에 대한 관점 변화였다.'과연 레거시가 나쁜 것인가?'라는 고민을 정말 많이 했고, 또 레거시를 유지하는 것도 능력이라고 생각이..
Compose contentDescription null과 ""의 차이
·
개발/안드로이드
Compose에서 Image나 Icon과 같이, 이미지를 보여주는 컴포넌트를 사용할 때는 contentDescription을 사용해야 한다.이 contentDescription이 무엇인지 정확하게 알아보기 위해, Image Composable의 주석을 읽어보았다.@param contentDescription text used by accessibility services to describe what this image represents. This should always be provided unless this image is used for decorative purposes, and does not represent a meaningful action that a user can take. Th..