본문 바로가기

전체 글115

[Android] Compose Compiler Metrics로 성능 측정하기 RecompositionJetpack Compose로 안드로이드를 개발하다보면 Recomposition을 경험하게 된다.Recomposition이란, 상태가 변경될 때마다 Composable을 다시 그리는 현상을 의미한다. 만약 컴포즈가 stable한 상태가 아니라면 컴포즈는 불필요한 Recomposition을 자주 발생시킨다.이를 방지하고자 나는 현재 상태가 stable인지 혹은 unstable인지 알 수 있는 방법을 찾아보았다.그러다 Compose Compiler Metrics를 알게 되어 이에 대해 설명해보고자 한다.Compose Compiler Metrics컴포즈 컴파일러는 composable 함수를 컴파일할 때 function(함수)과 type(타입)에 대해 몇몇 태그를 작성한다.이 태그를 통해.. 2024. 12. 27.
[인공지능] Ch17 MDPs II 지난 포스트에서 공부한 MDP에 이어 작성한다. The Bellman EquationsOptimal한 policy를 찾는 방법은 위와 같다고 한다.- Step1: 올바른 첫 번째 행동하기- Step2: 최적화 상태 유지하기 그럼 어떻게 being optimal할 수 있는지 알아보자.상태 가치 함수 V(s)상태 s에서 시작하여 최적의 정책을 따를 때 얻을 수 있는 기대 보상의 총합이다.T(s, a, s')은 상태 s에서 행동 a를 통해 s'으로 전이될 확률을 의미한다.R(s, a, s')은 상태 전이에 따른 보상이다.V(s')은 다음 상태의 가치이다.Q 값 함수 Q(s, a)상태 s에서 행동 a를 취했을 때 이후 최적의 정책을 따를 경우 얻을 수 있는 기대 보상의 총합이다.Policy EvaluationP.. 2024. 12. 4.
[데이터베이스] Ch11 RDB design 11.1 Good Schema and Bad Schema나쁜 테이블의 기준은 무엇일까?나쁜 테이블은 갱신 이상(update anomaly), 삭제 이상(delete anomaly), 입력 이상(insert anomaly)를 가지고 있다.우선 위의 mybadtable1 테이블을 보자. chairman, building, budget 속성 값이 deptName 속성에 의존하고 있는 것을 볼 수 있다.즉, deptName이 변경되면 나머지 속성들도 같이 바뀌게 되는 것이다. 예를 들어서 설명을 해보면CS학과의 경우, Databases 과목 및 Java 과목이 삭제되는 경우에는 삭제 이상이 발생하지 않는다.그러나, 남아있는 마지막 과목인 Data Structure가 삭제되면 CS학과에 대한 정보도 영원히 삭제되.. 2024. 11. 27.
[데이터베이스] Ch10 ER model 10.1 Entity and Relationship- 개체(entity): 구별이 가능한 객체를 의미* 개체는 ER 데이터 모델에서 사용한 용어이고, 객체는 객체지향 패러다임에서 사용한 용어이다.위 그림은 개체 집합(entity set)을 나타낸다. Student 개체 집합에 속성이 동일한 다수의 Student 개체가 있고, Course 개체 집합에도 다수의 Course 개체가 있는 것이다.만약 이 둘이 관계가 있다면?위는 관계성 집합 takes의 예제이다.Student 개체 집합에 속한 개체가 Course 개체 집합에 속한 개체와 연관이 있음을 나타낼 수 있다. 개체가 , , 과 연관이 있음을 알 . 수 있고, 여기서 의미는 "수강하다"이다. 관계성 집합은 속성을 가질 수 있다.예를 들어, 위의 예제에.. 2024. 11. 27.
[데이터베이스] Ch6 RDB functionalities 6.1 Views 뷰(VIew)란, 특정 사용자로부터 특정 속성을 숨기는 기능이다.Create view myProfessor asselect pID, name, deptNamefrom professor;위처럼 Create view문장으로 뷰를 만들 수 있다. - 뷰는 일반 테이블과 다르게 터플을 실제 뷰 내부에 저장하지 않는다.- 뷰 테이블이 터플을 실제로 가지지 않기에 가상관계라고도 한다.(데이터베이스 시스템은 뷰에 대한 정의를 저장하고 있으며 이를 이용하여 뷰에 대한 질의를 작성하는 것)- 그렇기에 가장 최신의 데이터를 가지고 있을 수밖에 없다. ✅뷰의 확장 예시를 알아보자.Create view myFaculty as select pID, name, deptName from professor .. 2024. 11. 27.
[인공지능] Ch16 MDPs MDPMDP에 대해 알알보기 위해 우선 미로 탐색 인공지능의 예시를 먼저 살펴보자.왼쪽 그림은 우리가 지금까지 봐온 Deterministic하게 움직이고 있는 것이다.agent가 정해준 방향으로만 움직이고 있는 것을 확인할 수 있다. 그러나 현실에선 다른 방향으로도 agent가 움직이는 것이 자연스럽다.이렇게 확률적으로 움직이는 걸 오른쪽 그림에서 나오는 Stochastic이라고 한다.Stochastic은 "확률적" 또는 "비결정적"이라는 의미이다. 미로에서 길을 지날 때 여태까지 지나온 길에 대해서는 생각하지 않아도 된다. 이렇게 오로지 현재의 상태에만 기반해서 행동하는 것을 Markov Transition Model이라고 한다. MDP는 다음과 같이 구성되어 있다.상태(State, S): 환경의 가능.. 2024. 11. 27.
[인공지능] Ch14 Adversarial Search Adcersarial Search적대적 탐색이란, 두 개 이상의 agent가 서로 적대적인 관계를 가졌을 때의 탐색 방법을 의미한다.여러 agent가 서로의 이득을 취하기 위해 움직이는 상황을 '게임'이라고 하며 해당 강의에서는 여러 게임들을 소개한다. Deterministric GamesDeterministric 게임을 formalize 하는 방법은 다양한데 그 중 아래와 같은 방법이 있다.하나씩 설명해보자면, States (𝑆)는 게임의 모든 가능한 상태를 나타낸다.게임은 특정 상태 𝑠0에서 시작한다. 이후의 상태는 플레이어의 행동과 상태 전이 함수에 의해 결정된다. Players (𝑃)는 플레이어 집합을 나타낸다.일반적으로 플레이어는 턴을 번갈아가며 진행하며, 보통 𝑃 = {1, 2} 또는 .. 2024. 11. 27.
[인공지능] Ch13 Informed Search Search Heuristics휴리스틱이란, 목표에 얼마나 가까운 상태인지 추정하는 함수를 의미한다.ex) 맨해튼 거리, 경로를 위한 유클리드 거리팩맨을 예시로 들자면,팩맨의 위치에서 목표까지의 거리는 위의 빨간색 선과 달리 벽을 뚫지 않고 구불하게 이동해야 할 것이다. 그렇다면 추정값은 유클리드 거리를 이용해서 구할 수 있다. 그게 바로 빨간색 선이다.목표까지의 유클리드 커리를 반환하는 함수가 휴리스틱인 것이다. Greedy Searchgreedy search는 목표와 가까워 보이는 노드부터 확장해 나가는 방법이다. Optimal하냐고 물어본다면 그렇지는 않다. 당장 현재 노드로부터 가까워 보이는 노드들을 선택해 나가기 때문에 최적해가 될 수 없는 건 어찌보면 당연하다. 여기서 휴리스틱은 각 상태에 대.. 2024. 11. 27.
[인공지능] Ch12 Search Agent인공지능에서 agent란 독자적으로 행동하는 하나하나의 주체를 의미한다.decision-maker == AI model어떤 조치를 취할 것인지 결정하는 구성 요소1) Reflex Agentsagent의 종류의 첫 번째로 Reflex Agent가 있다.이 agent는 현재 인식(및 기억력)에 따라 작업을 선택한다.위 그림을 보자. 로봇(agent)은 사과만을 보고 사과에 닿기 위해 점프를 하지만 그 이후에 떨어질 것은 예측하지 못하고 있다.즉, 향후 행동의 결과를 고려하지 않는다. 2) Planning Agents두 번째 종류로는 Planning Agents가 있다.이 agent는 "만약에"를 물으며 행동의 (가설화된)결과에 따라 결정한다.위 로봇은 처음에 보았던 로봇과는 반대로 도구를 이용하고 .. 2024. 11. 27.
[Android] 단어 단위의 개행하기 (Compose) 지난번 나는 Jetpack Compose로 단어 단위의 개행을 하기 위해 LineBreak 속성에 대해 알아보았었다.정리한 내용: https://comyou.tistory.com/131 [Android] LineBreak 속성 알아보기Compose의 Text에 있는 LineBreak 속성에 대해 알아보자! Text( text = "터닝에서 내 계획에 딱 맞는 대학생 인턴 찾기를 도와드릴게요", style = TerningTheme.typography.title1, modifier = Modifier .padding(bottom = 36.dp) .bacomyou.tistory.com 그러나, LineBreak의 경우, 한국어는 제대로 반영이 되지 않았다.LineBreak의 Simple, Paragraph .. 2024. 11. 22.
[데보션영] 전문가 인터뷰 후기 안녕하세요! 이번 11월에는 데보션영에서 전문가 인터뷰를 진행했어요:)🤔전문가 인터뷰란?여러 데보션 프로님들 중 인터뷰 하고 싶은 분을 선택하여 궁금한 점들을 자유롭게 물어볼 수 있는 행사입니다! 💡프로님 소개저는 홍태희 프로님을 인터뷰 하였습니다! [홍태희 프로님]Text2SQL 챗봇 서비스 개발AWS Cloud 의 데이터웨어하우스 및 분석환경 개발 및 운영하둡 에코시스템 중심의 Data Warehouse 구축 개발 및 운영현 SK텔레콤 매니저 (2013~)삼성SDS 정보통신기술연구소 선임연구원 (2011~2013년)전 한국생명공학원 유전체정보센터 연구원 (2002~2011년)📍후기준비 과정데보션 영분들과 인터뷰할 시간을 정했을 때, 비대면으로밖에 시간이 안 돼서 저희는 일요일 밤 비대면으로 진행.. 2024. 11. 12.
[데보션영] Tech 세미나 후기: Docker를 활용한 효율적 개발 및 보안전략 안녕하세요! 저는 이번에 9월에 열린 테크 세미나에 참여하였습니다:)주제는 "Docker를 활용한 효율적 개발 및 보안전략"인데요!그 후기에 대해 남겨보도록 하겠습니다!  목차는 아래와 같습니다Inner Loop 개발자 워크플로우이미지 빌드 & Best PracticesDocker 커뮤니티 소개발표자님 소개염근철- 현) 당근 SRE팀 소속- 현) Docker Captain- 프로젝트SKHynix : 사내 머신러닝 대회 플랫폼(If-Kaggle) 개발우리은행 : AI서비스 허브 개발 내용 정리개발자들은 코드 작성, 테스트, 피드백을 반복하는 이너 루프를 통해 작업을 지속합니다. Docker는 이 과정을 효율화하는 다양한 도구들을 제공하여 반복 작업을 빠르고 간편하게 만듭니다. 특히 docker init, .. 2024. 11. 12.