본문 바로가기

분류 전체보기564

7.4 Design of control unit 2024. 11. 9.
7.3 Micro-program example 2024. 11. 9.
7.2 Address sequencing 2024. 11. 9.
7.1 Control memory 2024. 11. 9.
2024.11.07 Q&A 1. 색상 왜곡에서 PCA(주성분 분석)를 사용한 방법 우선, PCA는 중요한 축을 찾는 것이다. 이 중요한 축(PCA 1st)은 축의 방향으로 데이터가 넓게 퍼져있다는 것이다. 그 축을 기준으로 데이터가 다양한 특징을 가지고 있다는 것이다. 그리고 다음 축(PCA 2nd)은 PCA 1st를 직교하는 축이 된다. 이제 PCA를 이용한 색상 왜곡을 해보자. PCA를 이용한 색상 왜곡에서 중요한 핵심은 RGB 각각의 색상을 독립적인 특징으로 보고, 이들 간의 상관관계를 통해 새로운 축을 정의하는 것이다. 1. 색상의 특징 찾기R, G, B를 각각 별개의 특징으로 보고, 이 세가지 색상이 어떻게 함께 변하는지 살펴보면서 서로 어떻게 영향을 주는지 보면서 색상의 중요한 변화를 알아낸다. 2. 가장 중요한 변화 .. 2024. 11. 9.
2024.11.07 - ch5관련 문제(기말고사 다수 출제 예정 특히, 1번 2번) 1. 기본 컴퓨터에서 AC에는 16진수로 ABCD가 들어 있고, 초기에 PC의 값은031이며, E는 1이다. 다음의 명령어가 수행된 후 AC, E, PC, AR, IR 각각의 내용은 무엇인가?(a) CLA, (b) CMA   오른쪽 위 표는 T에 따라 진행되는 타이밍도를 그린것이다. T₀에서는 PC(명령어 주소)를 AR(유효 주소)에 저장한다. T₁에서는 메모리에서 유효주소에 있는 명령어를 IR(명령어 저장 레지스터)에 저장 + 현재 PC(명령어 주소)를 다음 PC(명령어 주소)로 변경한다. T₂에서는 IR에 저장된 명령어를 기준으로 최상위 bit에 있는 값을 I에 저장하고 0에서 11번째 bit의 값을 AR에 저장한다.T₃에서는 메모리의 피연산자 주소가 있는 곳의 값을 AR에 저장한다. (간접 주소 지.. 2024. 11. 7.
.dt를 사용하는 이유 우선 dt의 사용이유를 알기 전에 to_datetime()의 입력 데이터 형태에 따라 반환되는 타입이 뭔지 알아야 한다. 그리고 그 반환 타입에 따라 .dt 사용여부를 확인해보자. to_datetime() - 입력데이터 타입에 따른 반환 타입1. 단일 String 입력반환 타입: Timestamp[코드]date = pd.to_datetime('2023-01-01')print(type(date)) #  .dt 사용 안함!   2. list 또는 array 입력반환 타입: DatetimeIndex[코드]dates = pd.to_datetime(['2023-01-01', '2023-02-01', '2023-03-01'])print(type(dates)) #  .dt 사용 안함!   3. series / d.. 2024. 11. 7.
10주차 - 실습 str 속성을 이용해서 address에서 도시와 구를 추출했다. 도시는 앞에서 2글자만 추출해서 뒤에 시를 붙였다. 구는 split()을 통해서 각 행의 첫번째 요소를 구로 설정했다.        1. 우선 date열의 타입을 to_datetime를 활용해서 datetime 타입으로 변경한다. 2. 명시적 인덱싱을 이용하기 위해서 타입을 변경한 date 열을 인덱스로 설정한다. 3. 1번은 슬라이싱, 2번은 인덱싱을 했다. 4. 중요한건 3번과 4번인데 timestamp(시점)를 만들고 timedelta(특정 기간)을 만들어서 더해준다. 특정 기간은 Hour기준, Day 기준, Week 기준, Year 기준 등을 토대로 만들수 있다.      이 부분은 .dt.strftime(지시자) 형식으로 컬럼을 생.. 2024. 11. 7.
이미지 올리기 app - res - drawble에 복사 붙여넣기 후 팝업창 ok 2024. 11. 6.
dp와 sp의 차이 Jetpack Compose에서 dp와 sp는 화면 요소의 크기를 정의할 때 사용하는 단위이지만, 각기 다른 목적을 가지고 있음.  dp (Density-independent Pixels)dp는 "밀도 독립적 픽셀"을 의미함. 기기의 화면 밀도에 따라 크기가 조정되어 다양한 화면 크기와 해상도에서 일관된 크기를 유지하도록 돕는 단위임. 일반적으로 버튼, 여백, 높이, 너비 등 레이아웃의 크기를 지정할 때 사용됨. sp (Scale-independent Pixels)sp는 "스케일 독립적 픽셀"을 의미하며, 주로 텍스트 크기를 정의할 때 사용됨. sp는 dp와 유사하게 밀도에 따라 조정되지만, 사용자가 설정한 글꼴 크기에 따라 추가 조정이 됨. 따라서 접근성 측면에서 글꼴 크기를 키우거나 줄이는 설정을 지.. 2024. 11. 6.
Modifier 1. Modifier: Compoent(예를 들면 Row, Column, Box, Text, Button, Image 등등)의 모양이나 동작을 설정한다. Modifier의 역할레이아웃 조정: Modifier는 Composable의 크기, 여백, 패딩을 설정할 수 있다.그래픽 효과: 배경색 설정, 그림자 추가 등 그래픽 효과를 추가할 수 있다.이벤트 처리: 클릭이나 드래그 등의 사용자 입력 이벤트를 처리할 수 있다.애니메이션 효과: 애니메이션 효과를 적용하거나 특정 동작에 애니메이션을 추가할 수 있다. 2. padding: padding의 속성에서는 start(왼), end(오), top(위), bottom(아래), horizontal(좌우), vertical(상하)이 있다.3. then(): 하나의 UI.. 2024. 11. 6.
값 전달과 상태 호이스팅의 차이 값 전달과 상태 호이스팅(State Hoisting)은 컴포넌트 간의 상태 관리를 다루는 두 가지 방식입니다. 두 개념은 비슷해 보일 수 있지만, 실제로는 상태 변경 권한을 누가 가지느냐에 큰 차이가 있습니다. 하나씩 설명하겠습니다.1. 값 전달 (Value Passing)값 전달은 단순히 상위 컴포넌트에서 값만 자식 컴포넌트로 전달하는 방식입니다.이 방식에서는 자식 컴포넌트가 전달받은 값을 변경할 권한이 없으며, 전달받은 값은 읽기 전용으로 사용됩니다.값 전달은 자식 컴포넌트가 상태를 변경할 필요가 없고, 상위 컴포넌트에서 일방적으로 값만 표시하고자 할 때 유용합니다.예시@Composablefun ParentComponent() { val message = "Hello, Compose!" C.. 2024. 11. 6.
Arrangement와 Alignment 1. Arrangement: Arrangment는 중심축을 의미한다. 즉, Row(Column)내부에 있는 Component를 중심축 기준으로 정렬한다.Row의 중심축은 가로축 이므로 horizontalArrangement Column의 중심축은 세로축 이므로 verticalArrangement  [Row에서의 Arragement. 즉, horizontalArrangement]    [Column에서의 Arragement. 즉, verticalArrangement]     2. Alignment: Alignment는 중심축의 반대축을 의미한다. 즉, Row(Column)내부에 있는 Component를 중심축의 반대축 기준으로 정렬한다.  기본적으로 verticalAlignment의 기본값은 위쪽 정렬이고.. 2024. 11. 6.
state hoisting - slider를 통한 폰트 조절 앱 만들기 state hoisting 이란?기본적으로 State는 개별 Component에서 유지된다. 그러나 다른 Componet(예를 들면 자식 Component)에서도 같은 State 값이 필요하다면, 해당 State를 상위(부모) Component에서 공유할 수 있고, 상태의 일관성을 유지할 수 있다.  해결 방법 1: MutableState으로 상태를 전달: 상태 객체를 직접 전달해서, 자식 Componet가 부모 Componet의 state를 직접 접근하고 관리할 수 있게 하는 것이다. 쉽게 말해서 객체 자체를 참조헤서 자식 컴포넌트에서 값에 접근할 수 있는 것이다.  해결 방법 2: 람다식을 형식 인자로 전달: 상태를 변경하는 람다 함수와 값을 전달해서, 자식 Componet가 부모 Componet 의.. 2024. 11. 5.
state란? - counter button 만들기 1. state란?state는 UI요소의 현재 상태를 나타내는 데이터이다. 일반적으로 state는 UI요소의 일시적인 상태를 저장하는 데 사용되며, 상태가 변경되면 해당 상태에 의존하는 UI가 자동으로 재구성된다. state를 선언하는 방식에는 총 2가지 방식이 있다. 1. MutableState 변수 방식: MutableState는 값이 변경될 수 있는 상태를 나타내며, mutableStateOf를 사용하여 상태를 초기화할 수 있다. 이 방식은 MutableState 객체를 직접 참조하므로 .value 속성을 통해 값을 읽고 쓰게 된다.var count by remember { mutableStateOf(0) } 2. by위임 속성을 이용한 간단한 선언 방식by 위임 속성을 이용하면 .value를 사용.. 2024. 11. 5.
[pandas] 고성능 Pandas: Eval & Query 넘파이와 판다스는 기본적으로 Vectorized를 지원하기 때문에 빠른 연산을 지원한다.   다만, 위의 사진과 같은 복합적인 연산이 존재하는 경우,  실제 동작은 연산 하나하나를 메모리에 할당한 후에 저장을 한다. 따라서, x와 y의 크기가 큰 경우 메모리를 많이 차치하여 오히려 연산이 더 느려질 수 있다.  ❓그럼 어떻게 해야할까?연산을 한 번에 해주는 것이 아니라 부분적으로 나눠서 해줘야한다. 따라서 넘파이와 판다스에서는 큰 데이터에서도 효율적인 연산이 가능하도록 eval, query 함수를 제공한다.  1. eval 메소드의 사용[pandas.eval(문자열)형태로 사용]: 실행하고 싶은 연산을 문자열로 표현해서 사용할 수 있다. 결과 = pd.eval('연산')   이렇게 eval 메소드를 이용.. 2024. 11. 5.
[pandas] 날짜 / 시간 데이터 다루기(Time stamp, Time interval, Time duration) ❓ 날짜/시간과 관련된 자료형이란?: 절대적인 시간(2024년 11월 2일 등)을 다룰 수 있는 자료형이다. 내부적인 동작에는 실수 혹은 정수형으로 동작한다 . 판다스에서 날짜/시간과 관련된 자료형에는 3가지가 있다.  1. Time stamp: 특정 시점(시각)을 나타낸다. 예를 들면 2024년 11월 2일 11시 32분 23초를 나타는 것과 같다. 2. Time interval(period): 시작과 종료 시점 사이의 구간을 나타낸다. 예를 들면 2015년(2015년 1월 1일 ~ 2015년 12월 31일까지), 2021년 8월 첫째 주(2021년 8월 1일  ~ 2021년 8월 7일)를 나타내는 것과 같다. 3. Time delta(duration): 두 시간 간격의 차이를 나타내며, 일정한 시간의.. 2024. 11. 5.
[pandas] 문자열 Vectorized 연산 기본적으로 Numpy와 pandas에서는 아래와 같은 Vectorized 연산을 지원한다. 이러한 Vectorized 연산을 문자열(String)에서도 적용하기 위해 str 속성을 지원하게된다. str 속성을 이용해서 Vectorized 연산을 하면 None, Null에 대한 경우도 오류를 발생시키지 않고 무시하고 처리하게 된다.    str에서는 아래와 같은 모든 Python 문자열 내장 메소드를 동일하게 지원한다.   1. "str" 속성을 이용한 문자열의 Vectorized 연산   2. 인덱싱monte.str.split()[0]  이렇게 스플릿을 한 것에서 인덱싱을 하면 columns에서 인덱스가 0인 것이 아니오는 것이 아니라 row에서 인덱스가 0인 것이 나오게 된다.    monte.str... 2024. 11. 5.
10-7장 문자(열) 처리 라이브러리(암기는 필요 없으나, 뭐하는 함수인지는 알아야함) 문자 처리 라이브러리 함수  #include ctype.h>함수설명isalpha(c)c가 영문자인가?(a-z, A-Z)isupper(c)c가 대문자인가?(A-Z)islower(c)c가 소문자인가?(a-z)isdigit(c)c가 숫자인가?(0-9)isalnum(c)c가 영문자이나 숫자인가?(a-z, A-Z, 0-9)isxdigit(c)c가 16진수의 숫자인가?(0-9, A-F, a-f)isspace(c)c가 공백문자인가?(‘ ’, ‘\n', '\t', '\v', '\r')ispunct(c)c가 구두점 문자인가?isprint(c)C가 출력가능한 문자인가?iscntrl(c)c가 제어 문자인가?isascii(c)c가 아스키 코드인가?toupper(c)c를 대문자로 바꾼다.tolower(c)c를 소문자로 바꾼다... 2024. 11. 5.
10-6장 문자열의 배열 문자열의 배열을 이용해서 각 문자열의 문자들은 행이 되고, 문자열 들의 개수는 열이된다. char 문자열 명[문자열 개수][문자열 중 최대 문자의 길이 + 1] = { "" , "" , "", ... }char s[3][6] = { "init", "open", "close"};    반복문을 통해서 문자열의 배열(2차원 배열) 출력하기#include int main() { int i, j; char menu[5][10] = { "init", "open", "close", "read", "write" }; for (i = 0; i    이렇게 각 행의 길이를 매번 최대 길이 + 1을 계산해서 정해주기란 불편하다. 따라서 C에서는 각 행의 길.. 2024. 11. 5.
10-5장 문자열과 포인터 문자열 배열에 문자열  char s[] = "HelloWorld";//요소 변경 가능 Os[1] = 'E'; // HElloWorld//할당 연산자 사용 불가능 Xs = "HelloWorld_2"; //오류 위의 코드처럼 요소는 변경 가능하지만 할당 연산자로 문자열 자체를 변경하는 건 안된다.  포인터에 문자열: 문장이 변하지 않음이 보장되는 경우에 사용한다.  char* p = "HelloWorld";//할당 연산자 사용 가능 Op = "HelloWorld_2"; // HelloWorld_2//요소 변경 불가능 Xp[1] = 'E'; //오류위의 코드처럼 할당 연산자로 문자열이 가리키는 주소의 값(즉, 문자열 자체)은 변경할 수 있지만, 문자를 변경하는건 안된다. 2024. 11. 5.
윈폼 블로그 https://andjjip.tistory.com/category/%EA%B0%9C%EB%B0%9C%EC%9E%90%EA%B3%BC%EC%A0%95%EC%A4%80%EB%B9%84/WinForm 2024. 11. 4.
10-4장 문자열을 수치로 변환 atoi(문자열): 특정 숫자 형태의 문자열을 정수로 변경해주는 것  sscanf(문자열, "%d", 정수형 변수) ⭐️⭐️⭐️: 특정 숫자 형태의 문자열을 정수형 변수에 저장해주는것  sprintf(문자열 변수, "%d", 정수) ⭐️⭐️⭐️: 특정 숫자를 문자열 변수에 저장해주는 것  #include #include int main(){ char s[] = "100"; char t[100] = ""; int i; printf("%d\n", atoi("100")); sscanf(s, "%d", &i); //문자열을 정수로 변경해서 저장 sprintf(t, "%d", 102); //정수를 문자열로 변경해서 저장 printf("i: %d\n", i); //i: 100 .. 2024. 11. 4.
10-3장 문자열 처리 라이브러리 strlen(s): 문자열의 길이#include #include int main(){ char s[] = "abcdefgh"; int len = strlen(s); printf("문자열 %s의 길이 = %d", s, len); //문자열 abcdefgh의 길이 = 8} strcpy(s1, s2): 문자열을 복사#include #include int main(){ char src[] = "Hello"; char dst[6]; strcpy(dst, src); printf("복사된 문자열 = %s", dst); //복사된 문자열 = Hello}  strcat(s1, s2): 문자열을 연결#include #include int main(){ char s[11.. 2024. 11. 4.
10-2장 문자 입출력과 문자열 입출력 1. 문자 입출력[getchar()와 getch()]getchar(): 입력된 문자들이 buffer에 쌓이다가, enter 키가 입력되면 buffer에 저장되어 있던 문자들이 선입선출형식으로 하나씩 출력된다. getch(): 입력된 문자들이 바로바로 출력된다.  [putchar()와 putch()]putchar(): 출력 버퍼를 사용하여 여러 문자를 모았다가 한번에 문자들을 출력한다.putch(): 버퍼 없이 바로바로 출력한다.    2. 문자열 입출력[scanf()와 gets_s()]scanf(): 문자열을 읽어서 배열 s[]에 저장한다. 단! space, tab, newline과 같은 입력을 구분하는 문자들은 입력되지 않는다.gets(문자열, 문자열 길이): 문자열을 읽어서 배열 s[]에 저장한다. .. 2024. 11. 4.
10-1장 문자열과 NULL 문자 1. 문자열 표현 방법#includeint main(){ char str[6] = "Hello"; //동일한 기능 - char str[6] = {'H', 'e', 'l', 'l', 'o'};}   각 배열은 문자가 각각 입력되지만 아스키 코드로도 확인할 수 있다.#includeint main(){ char str[6] = "Hello"; printf("%c", str[0]); // 'H' printf("%d", str[0]); // 72}  2. NULL 문자: 문자열이 끝나기 전에 반드시 NULL 문자(\0)라는 특수한 값으로 끝나야한다. 문자열의 크기가 5개라도 NULL문자를 생각해서 크기를 6개로 설정해야한다.  char str[6] = "Hello";  ❓ 왜 N.. 2024. 11. 4.
Lecture 16: Adversarial Examples and Adversarial Training 1. Adversarial Examples란?: 모델이 잘못된 예측하도록 만드는 입력데이터이다. 인간이 보기에는 원본과 거의 동일하지만 딥러닝 모델에는 오해를 유발하는 노이즈를 포함하고 있어 모델을 속일 수가 있다. 예를 들면 배사진에 모델이 강아지의 특징이라고 생각하는 특징의 노이즈를 추가하면 배를 보고 강아지라고 분류한다. 위 사진은 원래 서로 다른 카테고리에 속하는 4개의 이미지들이지만 노이즈를 추가해서 4개의 이미지를 모두 비행기로 인식하게된 사례이다.   2. Adversarial Examples가 발생하는 이유  과적합딥러닝 모델이 Adversarial Examples에 취약한 이유는 과적합으로 인해 데이터 간 거리가 좁아져 모델이 작은 노이즈에도 크게 반응하는 특성이 있다. Adversari.. 2024. 11. 1.
Lecture 15: Efficient Methods and Hardware for Deep Learning 딥러닝 모델의 증가에 따른 문제점 1. Model size : 모바일 환경에서 모델이 클수록 데이터 전송 및 업데이트가 어려워지며, 많은 메모리를 차지하여 배터리 소모가 증가한다.  2. Speed: 대규모 모델을 학습하고 추론하는데 시간이 오래걸려서 연구자와 개발자의 생산성을 저하시킨다.  3. Energy Efficient: 딥러닝 에너지 소모는 대부분 메모리 접근에서 발생하며, 대형 모델일수록 더 많은 에너지가 필요하다.    Algorithm-Hardware Co-Design(효율적인 딥러닝을 위한 방법)앞선 문제들을 해결하기 위해서 알고리즘이나 하드웨어를 변경할 필요가 있다.  Algorithm-Hardware Co-Design은 딥러닝의 연산 효율을 개선하기 위해 알고리즘과 하드웨어의 특성을 .. 2024. 11. 1.
Lecture 14: Deep Reinforcement Learning 1. Reinforcement Learning(강화 학습): 컴퓨터나 로봇이 어떤 환경(Environmnet)에서 반복적인 행동을 통해 목표를 달성할 때 가장 좋은 행동 방식을 찾는 방법이다.  우선 강화학습을 알기전에 Agent와 Environment, State에 대해서 학습해야한다.Agent: 학습을 통해 환경에서 최적의 행동을 찾으려고 하는 주체이다. 예를 들면, 미로를 빠려 나오려는 로봇 Environment: Agent가 행동을 할 때 변화를 일으키는 외부 요소이다. 예를 들면, 미로에서 벽과 출구가 있는 공간 자체 State: Agent가 현재 환경에서 어떤 상황에 처해 있는지를 나타내는 정보  1. Environment는 Agent에게 State를 부여한다. 2. 전달된 State에 따라서.. 2024. 11. 1.
Lecture 13: Generative Models 1. 지도 학습(Supervised Learning)과 비지도 학습(Unsupervised Learning) 지도 학습(Supervised Learning): 데이터 x와 라벨 y가 한 쌍으로 주어지며, 모델이 x를 입력 받아 y로 매핑하는 함수(F(x) ➡️ y)를 학습한다.   분류(Classification): 이미지를 입력으로 받으면 그 이미지가 어떤 카테고리에 속하는지 예측 회귀(Regression): 입력값에 따른 연속적인 출력을 예측하는 문제. 예를 들어 주식 가격 예측 객체 탐지(Object Detection): 이미지 내의 여러 객체를 찾아내고, 각 객체의 종류와 위치를 예측하는 작업 이미지 캡셔닝(Image Captioning): 이미지 속 상황을 설명하는 문장을 생성하는 작업  비지도.. 2024. 11. 1.