분류 전체보기 17

Compose에서 접근성 제공하기(1) - semantics, contentDescription

컴포즈의 Semantics는 컴포저블 컴포넌트에 대해서 접근성, 자동 완성, 테스트를 위한 추가적인 맥락을 제공한다.짧게 접근성과 Talkback 이해하기일반적으로 시각장애인에게 접근성 서비스를 제공하기 위해 사용한다.@Composableprivate fun PostMetadata(metadata: Metadata) { Row() { Image( imageVector = Icons.Filled.AccountCircle, contentDescription = "프로필 사진" // 이 부분! ) Column { Text(metadata.author.name) Text("${metadata..

레벨 2 회고

두 달 동안 겪었던 일들이 다 작년에 겪었던 일처럼 느껴진다. 원래 여기 사람이였던 것처럼, 원래 했던 일인 것 처럼, 그리고 시간이 정말 오래 지난 것 처럼 느껴진다. 이게 마치 군대와 비슷한 감정처럼 느껴지기도 한다.어떻게 레벨 1보다 더 바쁘지? 라는 생각으로 레벨 2를 맞았는데, 레벨 2는 시작부터 신나게 달렸다. 어쩌면 두 번째 달에 미니 프로젝트가 껴있지 않았다면 정말 크게 꺾여 있었을 수도 있을 것 같다.레벨 1 기간 동안은 코틀린, 객체 지향, 선언형 UI, 함수형 프로그래밍 이런 내용들이 주였다면, 레벨 2 에서는 안드로이드 위주의 프레임워크였다. 안드로이드 기술 자체도 많이 배웠지만, 사용자와의 상호작용 방식, UIUX와 기술 간 트레이드 오프 등을 많이 고민해보게 된 것 같다.레벨 2..

우테코 8기 2026.07.05

원시값 포장

레벨 1 미션을 진행하면서 객체 지향 생활 체조 원칙을 지킬수 있으면 지키라는 프로그래밍 요구사항이 있었다. 객체 지향 생활 체조 원칙한 메서드에 오직 한 단계의 들여쓰기만 한다else 표현을 사용하지 않는다모든 원시 값과 문자열을 포장한다한 줄에 점을 하나만 사용한다이름을 줄여 쓰지 않는다(축약 금지)모든 엔티티를 작게 유지한다3개 이상의 스위프트 기본 데이터타입(Int, String, Double 등) 프로퍼티를 가진 타입을 구현하지 않는다일급 콜렉션을 사용한다getter/setter를 구현하지 않는다이 중 원시값 포장에 관한 내용을 다루려고 한다. 원시값을 포장한다는 것의 의미는, Primitive 한 타입, Kotlin에서는 Byte, Short, Int, Long, Float, Double, C..

우테코 8기 2026.06.21

Android Context

안드로이드 개발을 하다보면 Context라는 말을 정말 많이 듣는다. Activity 전환, Service, 등등 정말 안쓰이는 곳이 없는데, 정작 이 Context를 넣어주는건 둘째 치고 이게 뭔지도 몰랐다. 눈치상 대충 맥락이라고 생각했는데, 앱에서의 맥락은 뭔지 좀 알기 어려웠다.생각해보면 "맥락" 이라는 단어가 참 추상적인 것 같다. Tmi이지만, 나도 사실 문맥, 맥락이라는 말을 어머니께 여쭤봤던 기억이 있는데, 직접 경험해보고 이해해보는게 좋다고 생각한다. 중간 정도만 이해해도 다행인걸로.. 공식 문서공식문서에서는 Context를 아래와 같이 설명한다. 앱 환경에 대한 전역적인 정보에 접근하는 인터페이스이다.안드로이드 시스템에서 구현체가 제공되는 추상클래스이다.어플리케이션별 리소스와 객체에 접..

Annotation과 Annotation Target

Kotlin 에서 어노테이션의 정의는 아래와 같다.코드에 있는 요소에 메타데이터를 부착하기 위해 사용하는 태그이다.툴이나 프레임워크가 이 메타데이터를 확인하고 컴파일타임이나 런타임에 그 어노테이션에 따라 다른 행동을 하게 된다.어렵다…………………영어도 어렵고 한글도 어렵고annotate는 주석을 달다라는 뜻이다.메타데이터는 단순히 정보를 붙이는데 끝나는 게 아니라, 그 정보를 바탕으로 컴파일러나 프레임워크 같은 도구들이 실제로 코드를 자동 생성 하거나, 동작을 제어하는 등의 작업을 처리한다.코드 요소는 클래스, 함수, 프로퍼티 등에 해당한다.따라서 정의를 조금 내 입맛대로 바꿔보자면 아래와 같다.클래스, 함수, 프로퍼티 등의 코드 요소에 부가 정보를 붙여 툴이나 컴파일러, 프레임워크 등에게 특별한 동작을..

우테코 8기 합격 후기(안드로이드)

왜 지원했는지 보다 내가 어떻게 우테코를 준비했는지만 알고싶다면 아래의 구분선 부터 읽으면 된다.슬 전역할 시기가 다가올 때 쯤, 예전에 지원을 했던 우테코에서 8기를 모집한다는 글을 봤다. 군대에서 복학하기 전에 내가 어느정도 되는지 가늠 해보자! 라는 뜻도 있고, 이전부터 계속 궁금하고 하고싶었던 거였어서 지원하게 되었다.이전에 1, 2학년을 지내면서 나는 교내 개발 동아리에서 많은 것들을 했다고 생각했다. 임원진도 해보고, 소통하는 방법, 조직에 대한 고민, 프로젝트, 스터디, 공모전 나가서 상도 타보고 했던 것 같다. 정말 좋은 시간이였다고 생각했고, 좋은 사람들도 많이 만났다.그렇지만 나는 개발 동아리에 있으면서, 개발의 실력이 늘었을까? 라는 생각을 했을 때, 전혀 아니였다. 다른 사람들이 말..

우테코 8기 2026.04.24

C언어 복습

1. stdio.h (표준 입출력) - scanf, printf 2. 배열 int main() { int arr[5][5]; int i, j; for(i = 0; i = j) arr[i][j] = i + 1; else arr[i][j] = 0; } } for(i = 0; i < 5; i++){ for(j = 0; j < 5; j++){ printf("%d ", arr[i][j]); } printf("\n"); } return 0; } /* 1 0 0 0 0 2 2 0 0 0 3 3 3 0 0 4 4 4 4 0 5 5 5 5 5 */ 3. 포인터 - 어떤 변수를 저장한 메모리 주소 프로그램에서의 메모리 구조 다음과 같이, 데이터 영역..

0주차_ 책 소개 및 파트

이것이 자료구조+알고리즘이다 with C 언어 : 러닝메이트 (naver.com) ​ 자료구조 공부의 필요성에 대해....조금씩 느끼면서 YES24에 모바일 도서관을 통해서 책 대여가 가능하길래 한번 봤는데 내용도 괜찮아서 한번 읽으면서 공부 해보려고 한다.! ​ 가장 먼저 C언어 복습들을 한다. 기초문법 다 뛰어넘고 포인터 부터 시작하고 순서대로 포인터, 구조체 등등 순서대로 책이 적혀져 있다. 다음은 가장 기초적인 리스트부터 시작해서 스택, 큐, 트리 부터 시작해서 본격적으로 알고리즘으로 넘어가는데 순서대로 정렬, 탐색, 우선순위큐와 힙, 해시 테이블, 그래프, 문자열 탐색으로 이어지고, 가장 마지막으로 알고리즘 설계 기법 짜기 순서대로 진행된다. 알고리즘 설계 기법으로는 성능 분석, 분할 정복, d..

백준 9465 스티커

스티커 다국어 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 53155 24760 16954 47.012% 문제 상근이의 여동생 상냥이는 문방구에서 스티커 2n개를 구매했다. 스티커는 그림 (a)와 같이 2행 n열로 배치되어 있다. 상냥이는 스티커를 이용해 책상을 꾸미려고 한다. 상냥이가 구매한 스티커의 품질은 매우 좋지 않다. 스티커 한 장을 떼면, 그 스티커와 변을 공유하는 스티커는 모두 찢어져서 사용할 수 없게 된다. 즉, 뗀 스티커의 왼쪽, 오른쪽, 위, 아래에 있는 스티커는 사용할 수 없게 된다. 모든 스티커를 붙일 수 없게된 상냥이는 각 스티커에 점수를 매기고, 점수의 합이 최대가 되게 스티커를 떼어내려고 한다. 먼저, 그림 (b)와 같이 각 스티커에 점수를 매겼다..

백준 18405 C++

경쟁적 전염 성공 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 16623 5236 3427 29.271% 문제 NxN 크기의 시험관이 있다. 시험관은 1x1 크기의 칸으로 나누어지며, 특정한 위치에는 바이러스가 존재할 수 있다. 모든 바이러스는 1번부터 K번까지의 바이러스 종류 중 하나에 속한다. 시험관에 존재하는 모든 바이러스는 1초마다 상, 하, 좌, 우의 방향으로 증식해 나간다. 단, 매 초마다 번호가 낮은 종류의 바이러스부터 먼저 증식한다. 또한 증식 과정에서 특정한 칸에 이미 어떠한 바이러스가 존재한다면, 그 곳에는 다른 바이러스가 들어갈 수 없다. 시험관의 크기와 바이러스의 위치 정보가 주어졌을 때, S초가 지난 후에 (X,Y)에 존재하는 바이러스의 종류를 출력하..