본문 바로가기

전체 글115

[Android] LineBreak 속성 알아보기 Jetpack Compose의 Text에 있는 LineBreak 속성에 대해 알아보자! Text( text = "터닝에서 내 계획에 딱 맞는 대학생 인턴 찾기를 도와드릴게요", style = TerningTheme.typography.title1, modifier = Modifier .padding(bottom = 36.dp) .background(Color.LightGray),) 위처럼 작성 시 나오는 기본 화면은 아래와 같다. 기본적으로 텍스트가 한 글자씩 잘려 줄바꿈 되는 것을 볼 수 있다. 하지만 나는 내가 원하는대로 개행을 하고 싶었고, 이를 위해 Text의 속성 중 하나인 LineBreak에 대해 알아보았다.LineBreak와 관련된 공식문서도 같이 첨.. 2024. 11. 8.
[Android] 스와이프 이벤트 AnchoredDraggable로 처리하기 (Compose) 디자인 시스템을 개발하던 중, 내가 구현한 스와이프 기능에 대해 소개해보고자 한다.AnchoredDraggable스와이프 기능이 들어가는 컴포넌트는 스낵바이다.화면에 띄워진 스낵바를 아래로 스와이프 했을 때 사라지도록 해야 하는 것이다. 처음에 나는 Modifier에서 제공하는 swipeable 속성을 사용하고 싶었다.하지만 이는 Deprecated 되었다고 한다ㅜㅜ그래서 찾아보니, swipeable을 대신해줄 AnchoredDraggable라는 속성이 있어서 이를 활용해주고자 했다.  아래는 AnchoredDraggable에 대해 설명하는 공식문서 링크이다!https://developer.android.com/develop/ui/compose/touch-input/pointer-input/migrate.. 2024. 10. 31.
[운영체제] xv6 구조 및 동작 원리 운영체제 설계 과제를 구현하던 중, xv6 구조 및 동작 원리에 대해 자세하게 공부해보고 싶어 글을 남긴다.먼저 기본 개념 먼저 집고 가자. xv6xv6는 멀티프로세서 x86 및 RISC-V 시스템을 위해 개발한 교육용 운영체제이다.xv6를 가상 환경에서 실행 시키기 위해서는 리눅스에서 사용하는 가상머신인 QEMU를 사용하면 된다.- QEMU를 시작하는 명령어는 make qemu이며, - QEMU를 종료하는 단축키는 (맥북에서) control + A, X 이다. xv6 레포지토리를 복제할 수 있는 깃허브 주소는 아래와 같다.https://github.com/mit-pdos/xv6-public GitHub - mit-pdos/xv6-public: xv6 OSxv6 OS. Contribute to mit-p.. 2024. 10. 29.
[Android] 엠플리튜드(Amplitude) 안드로이드에 설치하기 에서 앱을 릴리즈 한 후, 유저의 경험을 바탕으로 앱을 업데이트 하기 위해 엠플리튜드(Amplitude)를 도입하기로 했다.그래서 안드로이드 프로젝트에 엠플리튜드를 설치하는 방법에 대해 설명하도록 하겠다. 엠플리튜드엠플리튜드란, 사용자의 행동 분석을 용이하게 해주는 도구이다.유저의 데이터가 쌓이면, 어느 버튼을 많이 누르는지, 앱의 리텐션은 얼마나 되는지 등을 분석할 수 있다. 그럼 지금부터 어떻게 설치하는 지 알아보자. 엠플리튜드 사용을 위해서 메니페스트에 권한을 추가해준다. 그리고 엠플리튜드 사용을 위한 라이브러리도 추가해준다.[versions]amplitude = "1.17.3"[libraries]amplitude = { group = "com.amplitude", name = "analytics-.. 2024. 10. 15.
[데이터베이스] Ch5 SQL II 5-1 Aggregate Functions✅집계함수데이터베이스 시스템은 다섯 개의 집계함수를 지원한다.avg: average valuemin: minimum valuemax: maximum valuesum: sum of valuescount: number of values✅Group by 전체 테이블을 특정 속성 값으로 터플을 분류하고, 나누어진 각 그룹에 대하여 집계 함수를 적용하고자 하는 요구가 있으며, 이러한 역할을 하는 것이 "group by"절이다. group by절을 사용할 때 주의해야 할 사항이 있다. 바로, group by절에 나온 속성과 집계함수만이 select 절에 나올 수 있다.아래의 예시를 통해 자세히 알아보자./* 틀린 예시 */Select deptName, pID, avg(sal.. 2024. 10. 15.
[운영체제] Memory API ✅malloc()#include void *malloc(size_t size);void *calloc(size_t nobj, size_t size);void *realloc(void *ptr, size_t newsize); 위의 함수들은 메모리 할당을 위해 사용되는 라이브러리 함수이다. malloc()과 calloc()은 지정된 크기의 바이트 메모리를 할당받는다.malloc()의 경우, 할당된 메모리의 초기 값은 정의되지 않고 calloc()의 경우, 할당된 메모리를 모두 0으로 초기화한다. 또한 두 함수는 가용 리스트를 통해 첫 번째 블록에 접근한다.포인터를 따라 이동하면서 정해진 알고리즘에 의해 리턴할 블록을 찾으며, 적절히 포인터를 조정하여 가용 메모리 리스트에서 이 블록을 가져와 그 블록을 사용자.. 2024. 10. 14.
[운영체제] The Abstration : Address Space 운영체제 역사1. Early Sytems위 그림은 초기 운영체제의 모습이다.이때를 "선사시대"라고 부르기도 한다.(운영체제에서 말하는 선사시대란 가상 메모리를 사용하기 전의 시대를 의미한다.)물리 메모리에 하나의 실행 중인 프로그램이 존재하였다.특별히 가상화에 대한 개념은 없었다. 2. Multiprogramming and Time Sharing프로세스가 여러 개 올라가는 다중 프로그래밍 프로세스에서 제일 중요한 첫 번째 목표는 "보호"이다.본인이 가지고 있는 메모리 영역을 남들이 침범하지 않도록 하는 것이다. 동작 방법에 대해서 설명하자면, 여러 프로세스는 실행 준비 상태인 것이다.이때 OS는 프로세스를 CPU에게 전환하면서 실행한다. 3. 주소 공간 Address Space주소 공간이란, 운영체제가 .. 2024. 10. 13.
[데이터베이스] Ch3 SQL I 3-1 Database Languages데이터베이스 시스템은 사용자와의 의사소통을 위하여 데이터베이스 언어를 제공해야 하며, 사용자는  데이터베이스 언어를 이용하여 사용자의 요구사항을 데이터베이스 시스템에 표현한다. 기능적 관점DDL데이터베이스 스키마에 대한 조작을 담당하는 영역 (스키마 생성, 삭제, 변경)스키마에 대한 정보를 사전에서 관리하기 때문에 DDL 실행 효과는 데이터 사전에 반영된다.DML데이터베이스 인스턴스를 조작하는 언어를 의미한다. (인스턴스 생성, 조회, 삭제, 변경)사용자는 DML을 이용해 질의를 생성하여 데이터베이스 시스템에 전달한다.DCL데이터베이스 시스템의 스키마와 인스턴스를 제외한 다른 객체를 조작하는 데이터베이스 언어이다.ex) 트랜잭션 시작, 종료언어가 표현되는 방식 관점.. 2024. 10. 12.
[인공지능] Ch2 Linear Classification Perceptron퍼셉트론 학습 규칙, PLA (= percpetron learning rule)출력이 정확하면, 즉 y = hw(x)이면, 가중치들은 변하지 않는다.y가 1인데 hw(x)는 0인 경우, 해당 xi가 양수이면 wi를 증가하고 음수이면 감소한다.hw(x)가 1을 출력하려면 w * x를 더 크게 만들어야 한다는 뜻y가 0인데 hw(x)는 1인 경우에는, 해당 입력 xi가 양수이면 wi를 감소하고, 음수이면 증가한다. hw(x)가 0을 출력하려면 w * x를 더 작게 만들어야 한다는 뜻 위의 수식을 통해 더 알아보자면, wi는 각 특성 xi에 곱해지는 가중치이다.threshold는 신용 승인이나 거부 같은 결정을 내리기 위한 기준값이다.sign 함수는 결과 값이 0보다 크면 +1을, 0보다 작.. 2024. 10. 10.
[운영체제] Introduction to Operating Systems I. Introudction to Operating Systems운영체제(OS)란, 컴퓨터에서 실행되고 컴퓨터 하드웨어를 관리하는 소프트웨어로, 다양한 애플리케이션 소프트웨어의 효율적인 실행을 위해 공통 서비스를 제공한다.   ✅가상화 (Virtualization)가상화란, 단일 CPU가 여러 소프트웨어를 동시에 실행하는 것처럼 보이게 하는 것을 의미한다.즉, 1개를 여러 개처럼 보이게하는 환상을 주는 것이다. * 추상화(Abstraction)와 헷갈리지 말자.하드웨어(CPU, Memory, Disk)를 추상화한 것이 소프트웨어(OS)인 것이다. ✅CPU의 가상화하드웨어의 도움을 받아 환상(illusion)을 제공한다.단일 CPU를 겉보기에 많은 수의 CPU가 있다는 환상을 제공하여 여러 개의 프로그램이.. 2024. 10. 10.
[데이터베이스] Ch2 Relational Data Model (2) 2-3. Relational Algebra관계 대수는 관계형 데이터 모델의 일부이며, 지금까지 정의한 관계, 제약 사항에 대한 연산을 제공한다.관계 대수는 위의 6개의 기본적인 연산이 있다.입력으로 하나 또는 두 개의 관계를 가지며, 결과물로 새로운 관계를 생성한다. 상용 데이터베이스는 시스템 관계 대수를 직접적으로 사용자에게 지원하지 않는다. 상용 데이터베이스 시스템은 그 대신 SQL 언어를 사용자에게 지원한다. ✅선택(select) 연산선택 연산의 기호는 σ(sigma)이며 그 옆에오는 p는 선택 조건을 의미한다 .각 항은 and, or, not으로 연결이 가능하다. 그림을 예시로 알아보자면 A와 B의 조건이 같고, D는 4보다 커야 한다는 것이다.그럼 σA=B^D>4의 결과는 두 가지 터플이 나오게.. 2024. 10. 9.
[데이터베이스] Ch2 Relational Data Model (1) 2-1 Relation Data Model 관계형 데이터모델에서 의미하는 관계는 '테이블 형식'이다.위의 그림은 student 관계의 예제이다.7개의 속성(attribute)과 5개의 터플(tuple)을 가지고 있다. 각 속성은 속성헤드(attribute head)를 가지고 있으며, 상기 관계에서 속성은 sID, name, gender, deptName, year, GPA, totalCredit이다. 여기서 관계, 터플, 속성은 기존 데이터 모델에서의 테이블, 레코드, 칼럼과 동일한 용어로 볼 수 있다. ✅속성각 속성은 속성 값으로 허용할 수 있는 값의 집합을 가지고 있으며, 이를 도메인이라고 한다.즉, 속성 값은 해당 도메인의 원소이다. 속성 도메인에 속하는 값은 원자 값을 가져야 한다.원자 값은 더 .. 2024. 10. 8.