전체 글
개인 기록용 웹 사이트
-
Windows Subsystem For Linux 설치 윈도우 운영체제에 리눅스 계열 OS 환경을 만들어주는 과정. (1) WSL1 설치 docs.microsoft.com/ko-kr/windows/wsl/install-win10로 이동. Windows 10에 WSL(Linux용 Windows 하위 시스템) 설치 Bash 터미널을 사용하여 Linux 배포(Ubuntu, Debian, SUSE, Kali, Fedora, Pengwin 및 Alpine 포함)를 Windows 10 컴퓨터에 설치하는 방법을 알아봅니다. docs.microsoft.com 위 설치 코드를 복사한다. Windows Terminal이 설치되어있다면 터미널을 관리자권한으로 실행하고 복사한 코드 입력 후 Enter 누르면 설치 완료. (2..
윈도우에 리눅스OS 환경 구축하기(Ubuntu) Windows Subsystem For LinuxWindows Subsystem For Linux 설치 윈도우 운영체제에 리눅스 계열 OS 환경을 만들어주는 과정. (1) WSL1 설치 docs.microsoft.com/ko-kr/windows/wsl/install-win10로 이동. Windows 10에 WSL(Linux용 Windows 하위 시스템) 설치 Bash 터미널을 사용하여 Linux 배포(Ubuntu, Debian, SUSE, Kali, Fedora, Pengwin 및 Alpine 포함)를 Windows 10 컴퓨터에 설치하는 방법을 알아봅니다. docs.microsoft.com 위 설치 코드를 복사한다. Windows Terminal이 설치되어있다면 터미널을 관리자권한으로 실행하고 복사한 코드 입력 후 Enter 누르면 설치 완료. (2..
2020.11.06 -
typedef는 자료형(데이터타입)에 이름, 별명을 붙여주는 기능이다. 위와 같이 int 자료형을 한글 '정수'로, float 자료형을 한글 '실수'로 이름을 짓고 각각 정수, 실수의 변수 정수변수, 실수변수를 선언하고 출력해도 위와 같이 출력된다. struct명이 긴 구조체의 경우 typedef를 이용해 간단하게 한글로 이름을 지어 사용할 수 있다. typedef 이름을 짓는 또다른 방법이 있다. 기존에 만들어진 구조체 Artwork_info를 복사하여 새로운 구조체를 생성하고 맨 앞에 typedef를 적고 {} 뒤에 이름을 써넣으면 된다. (이때 Artwork_info_another 는 지워도 상관없다) 이후 위와 같이 사용할 수 있다.
[ C언어 ] - typedef : 자료형에 네이밍하기typedef는 자료형(데이터타입)에 이름, 별명을 붙여주는 기능이다. 위와 같이 int 자료형을 한글 '정수'로, float 자료형을 한글 '실수'로 이름을 짓고 각각 정수, 실수의 변수 정수변수, 실수변수를 선언하고 출력해도 위와 같이 출력된다. struct명이 긴 구조체의 경우 typedef를 이용해 간단하게 한글로 이름을 지어 사용할 수 있다. typedef 이름을 짓는 또다른 방법이 있다. 기존에 만들어진 구조체 Artwork_info를 복사하여 새로운 구조체를 생성하고 맨 앞에 typedef를 적고 {} 뒤에 이름을 써넣으면 된다. (이때 Artwork_info_another 는 지워도 상관없다) 이후 위와 같이 사용할 수 있다.
2020.09.19 -
구조체(struct)의 생성은 다음과 같다. 예를 들어 작품 정보를 출력하고자 할 때 작품명, 제작자, 가격, 제작년도를 넣고자한다면 각각 char* 변수 name, maker를 생성하고 int 변수 price, yeaer를 만든다음 Artwork_info 라고 struct를 네이밍한 후 그 안에 변수들을 넣어주면 하나의 구조체가 완성된다. 만들어진 struct를 사용하기 위해서는 main 함수 안에서 각각의 변수에 값들을 선언하고 바로 출력하면 된다. 만들어진 struct를 다른 하나의 배열로 초기화할 수도 있다. 만들어진 struct를 적용할 새로운 변수 urArtWork를 생성하고 그 배열안에 각각의 값들을 순서대로 넣는다. 각각 출력하면 올바르게 struct가 적용되는 것을 볼 수 있다. 구조체 ..
[ C언어 ] - 구조체 struct구조체(struct)의 생성은 다음과 같다. 예를 들어 작품 정보를 출력하고자 할 때 작품명, 제작자, 가격, 제작년도를 넣고자한다면 각각 char* 변수 name, maker를 생성하고 int 변수 price, yeaer를 만든다음 Artwork_info 라고 struct를 네이밍한 후 그 안에 변수들을 넣어주면 하나의 구조체가 완성된다. 만들어진 struct를 사용하기 위해서는 main 함수 안에서 각각의 변수에 값들을 선언하고 바로 출력하면 된다. 만들어진 struct를 다른 하나의 배열로 초기화할 수도 있다. 만들어진 struct를 적용할 새로운 변수 urArtWork를 생성하고 그 배열안에 각각의 값들을 순서대로 넣는다. 각각 출력하면 올바르게 struct가 적용되는 것을 볼 수 있다. 구조체 ..
2020.09.19 -
다차원 배열은 하나의 배열을 여러번 만든 배열이다. int a[2][4]; 는 4개 크기의 int형 배열을 2번 만든 것이며 2차원 배열이라 하고 int a[3][3][3]; 는 3개 크기의 int형 배열을 3개를 만들어 그 전체를 3개로 만든것이라고 볼 수 있다. 그림으로 표현하면 위와 같이 나타낼 수 있다. 배열에 들어있는 각각의 값에 접근하기 위해선 위와 같이 표현할 수 있다. 배열의 선언은 위와 같이 입력한다. 편의상 Enter키를 사용해 위와 같이 정렬하여 입력하면 배열을 한눈에 알아볼 수 있다. 만들어진 2차원 배열의 값을 불러올 때는 위와 같이 입력하면 된다. 3차원 배열의 경우 위와 같이 입력할 수 있다. 그 이상의 배열은 차원 수만큼 for반복문을 추가하면 된다.
[ C언어 ] - 다차원 배열의 생성과 선언다차원 배열은 하나의 배열을 여러번 만든 배열이다. int a[2][4]; 는 4개 크기의 int형 배열을 2번 만든 것이며 2차원 배열이라 하고 int a[3][3][3]; 는 3개 크기의 int형 배열을 3개를 만들어 그 전체를 3개로 만든것이라고 볼 수 있다. 그림으로 표현하면 위와 같이 나타낼 수 있다. 배열에 들어있는 각각의 값에 접근하기 위해선 위와 같이 표현할 수 있다. 배열의 선언은 위와 같이 입력한다. 편의상 Enter키를 사용해 위와 같이 정렬하여 입력하면 배열을 한눈에 알아볼 수 있다. 만들어진 2차원 배열의 값을 불러올 때는 위와 같이 입력하면 된다. 3차원 배열의 경우 위와 같이 입력할 수 있다. 그 이상의 배열은 차원 수만큼 for반복문을 추가하면 된다.
2020.09.03 -
data type에 따라 연산 방법이 달라지기 때문에 분명히 설정을 해야한다. Role은 각각의 Column이 어떤 역할을 하는지를 지정해줄 수 있다. Role에는 4개의 항목이 있는데 data type에 따라 2개만 나올수도 있다. Skip : data 분석작업에서 해당 data를 무시한다. meta : 실제 분석작업에 사용되진 않으나 정보성으로 남겨두어야 하는 것들을 표시한다. taget : 예측하고자 하는 Column을 지정한다. (종속변수) feature : 예측에 사용되는 독립변수. 왼쪽에서 data type과 role에 따라 오른쪽 data table의 형태가 바뀐 것을 볼 수 있다. 위와 같은 방식으로 컴퓨터를 학습시켜 모델을 만들어낼 수 있다. 그전에 어떤 방식으로 모델을 만들어야 될지는 ..
Orange3 (03) - Linear regressions, Predictionsdata type에 따라 연산 방법이 달라지기 때문에 분명히 설정을 해야한다. Role은 각각의 Column이 어떤 역할을 하는지를 지정해줄 수 있다. Role에는 4개의 항목이 있는데 data type에 따라 2개만 나올수도 있다. Skip : data 분석작업에서 해당 data를 무시한다. meta : 실제 분석작업에 사용되진 않으나 정보성으로 남겨두어야 하는 것들을 표시한다. taget : 예측하고자 하는 Column을 지정한다. (종속변수) feature : 예측에 사용되는 독립변수. 왼쪽에서 data type과 role에 따라 오른쪽 data table의 형태가 바뀐 것을 볼 수 있다. 위와 같은 방식으로 컴퓨터를 학습시켜 모델을 만들어낼 수 있다. 그전에 어떤 방식으로 모델을 만들어야 될지는 ..
2020.08.25 -
Box plot Box plot을 사용하면 데이터 수치를 구체적으로 표현해준다. 중앙의 가로 수직선 위 44는 판매량의 5개 행의 평균값을 나타내며 아래 44는 5개 행의 중앙값을 나타낸다. 42와 46은 각각 1분위 수, 3분위 수 라고하며 중앙값을 2분위 수라고 한다. 가로선 파란 막대는 표준편차의 크기이며 표준편차란 각각의 값들이 평균값으로부터 얼마나 떨어져 있는지를 평균을 낸 값으로 보면 된다. Scatter plot(산점도) 만약 판매량과 상관의(==영향을 주는)관계가 있는 Column을 찾고 싶다면 어떻게 해야할까. 위 표에서 온도가 판매량과 상관관계에 있다는 것을 알아볼 수 있겠지만 데이터가 많지않아 쉽게 상관관게에 있다고 단정하기엔 위험하다. Scatter plot은 상관관계에 있는 col..
Orange3 (02) - Box Plot, Scatter PlotBox plot Box plot을 사용하면 데이터 수치를 구체적으로 표현해준다. 중앙의 가로 수직선 위 44는 판매량의 5개 행의 평균값을 나타내며 아래 44는 5개 행의 중앙값을 나타낸다. 42와 46은 각각 1분위 수, 3분위 수 라고하며 중앙값을 2분위 수라고 한다. 가로선 파란 막대는 표준편차의 크기이며 표준편차란 각각의 값들이 평균값으로부터 얼마나 떨어져 있는지를 평균을 낸 값으로 보면 된다. Scatter plot(산점도) 만약 판매량과 상관의(==영향을 주는)관계가 있는 Column을 찾고 싶다면 어떻게 해야할까. 위 표에서 온도가 판매량과 상관관계에 있다는 것을 알아볼 수 있겠지만 데이터가 많지않아 쉽게 상관관게에 있다고 단정하기엔 위험하다. Scatter plot은 상관관계에 있는 col..
2020.08.25 -
데이터 산업에서 사용하는 표에서 열은 feature, attribute, variable, field 라고 불리며 행은 instance, observed value, record, example, case 라고도 불린다. orange3에서는 데이터 type을 명확히 해야한다. 가령, data table 안의 datetime(날짜)의 표기방식이 2020-06-01로 되어 있는데 이것을 2020년 06월 01일 로 지정하게 되면 orange에서 제대로 인식할 수 없는 문제가 발생한다. Select Rows를 이용해 원하는 행만(Matching Data) 볼 수도, 혹은 Unmatched Data 형식의 Data table을 설정해 그 반대의 행만 볼수도 있다. 판매량을 44미만으로 설정해 40과 42의 판매..
Orange3 (01) - Basic Instructions데이터 산업에서 사용하는 표에서 열은 feature, attribute, variable, field 라고 불리며 행은 instance, observed value, record, example, case 라고도 불린다. orange3에서는 데이터 type을 명확히 해야한다. 가령, data table 안의 datetime(날짜)의 표기방식이 2020-06-01로 되어 있는데 이것을 2020년 06월 01일 로 지정하게 되면 orange에서 제대로 인식할 수 없는 문제가 발생한다. Select Rows를 이용해 원하는 행만(Matching Data) 볼 수도, 혹은 Unmatched Data 형식의 Data table을 설정해 그 반대의 행만 볼수도 있다. 판매량을 44미만으로 설정해 40과 42의 판매..
2020.08.24 -
일반적으로 어떤 변수를 출력할 때 그것은 해당 변수가 위치한 주소의 값을 출력하는 것이다. 위와 같이 a라는 것은 변수Ko가 가지고 있는 '값' 이며, a가 위치한 주소는 별도의 메모리 주소를 가지고 있는 것이다. 이러한 점에서 Ko == *&Ko 와 같은 뜻이라고 볼 수 있다. array 변수 자체는 array의 시작점 주소를 가지고 있다. 주소값을 출력해보면 Ko, &Ko[0], *&Ko 가 모두 같은 결과를 출력하는 것을 볼 수 있다. 변수 Ko 자체가 시작점 주소를 가지고 있으므로 &Ko[0]와 동일한 의미인 것이다. &와 *가 함께 있으면 서로 교차캔슬되어 *&Ko 와 Ko가 동일한 의미가 된다. 즉 *Ko == Ko[0] 이며 Ko[1]이 되기 위해서는 *(Ko + 1)로 표현 가능하다. st..
[ C언어 ] - 문자열 관련 함수를 직접 구현하기일반적으로 어떤 변수를 출력할 때 그것은 해당 변수가 위치한 주소의 값을 출력하는 것이다. 위와 같이 a라는 것은 변수Ko가 가지고 있는 '값' 이며, a가 위치한 주소는 별도의 메모리 주소를 가지고 있는 것이다. 이러한 점에서 Ko == *&Ko 와 같은 뜻이라고 볼 수 있다. array 변수 자체는 array의 시작점 주소를 가지고 있다. 주소값을 출력해보면 Ko, &Ko[0], *&Ko 가 모두 같은 결과를 출력하는 것을 볼 수 있다. 변수 Ko 자체가 시작점 주소를 가지고 있으므로 &Ko[0]와 동일한 의미인 것이다. &와 *가 함께 있으면 서로 교차캔슬되어 *&Ko 와 Ko가 동일한 의미가 된다. 즉 *Ko == Ko[0] 이며 Ko[1]이 되기 위해서는 *(Ko + 1)로 표현 가능하다. st..
2020.08.23 -
strlen() strlen() 함수는 string array를 하나 받고 해당 string의 총 길이를 int형으로 출력해준다. strcpy() strcpy() 함수는 어떤 string(문자 배열)을 다른 것에 복사하는 것이다. 2번째 string으로 넘어온 것을 1번째 string에 복사하는 것이다. char a 배열에 b 배열을 복사시킨 후 출력하면 a의 값이 b의 값으로 변경된 것을 볼 수 있다. strcmp() strcmp() 함수는 두 string을 비교하는 것이다. str1과 str2를 받고 두 string이 일치한다면 int형으로 return하게 된다 return 값이 0이라면 두 string이 일치한다는 뜻이며, 0이 아닌 음수나 양수라면 일치하지 않는다는 뜻이 된다. Computer s..
[ C언어 ] - 문자열 관련 함수strlen() strlen() 함수는 string array를 하나 받고 해당 string의 총 길이를 int형으로 출력해준다. strcpy() strcpy() 함수는 어떤 string(문자 배열)을 다른 것에 복사하는 것이다. 2번째 string으로 넘어온 것을 1번째 string에 복사하는 것이다. char a 배열에 b 배열을 복사시킨 후 출력하면 a의 값이 b의 값으로 변경된 것을 볼 수 있다. strcmp() strcmp() 함수는 두 string을 비교하는 것이다. str1과 str2를 받고 두 string이 일치한다면 int형으로 return하게 된다 return 값이 0이라면 두 string이 일치한다는 뜻이며, 0이 아닌 음수나 양수라면 일치하지 않는다는 뜻이 된다. Computer s..
2020.08.22 -
scanf() 는 사용자 입력값을 받아 프로그램에 입력할 수 있는(standard input) 함수이다. 이러한 특징에서 프로그램으로부터 출력값이 나오는(standard output) printf() 함수와 함께 다니는 함수로 볼 수 있다. scanf()는 stdio.h 라이브러리에 속해있다. 당연하게도 scanf() 함수를 사용하기 위해선 사용자 입력값이 어떤 데이터 타입인지 알아야 한다. 첫번째 printf 함수 출력 이후 scanf 함수로 사용자 입력값으로 정수를 받는다. 하지만 그 이후의 printf 함수가 출력되지 않고 return 값도 0이 아닌채 프로그램이 종료되는 것을 볼 수 있다. 이것은 단순히 cup이라고 입력할 시 프로그램 상 변수 cup 자체를 보내는 것이 아니라 cup 안에 들어 ..
[ C언어 ] - scanf()scanf() 는 사용자 입력값을 받아 프로그램에 입력할 수 있는(standard input) 함수이다. 이러한 특징에서 프로그램으로부터 출력값이 나오는(standard output) printf() 함수와 함께 다니는 함수로 볼 수 있다. scanf()는 stdio.h 라이브러리에 속해있다. 당연하게도 scanf() 함수를 사용하기 위해선 사용자 입력값이 어떤 데이터 타입인지 알아야 한다. 첫번째 printf 함수 출력 이후 scanf 함수로 사용자 입력값으로 정수를 받는다. 하지만 그 이후의 printf 함수가 출력되지 않고 return 값도 0이 아닌채 프로그램이 종료되는 것을 볼 수 있다. 이것은 단순히 cup이라고 입력할 시 프로그램 상 변수 cup 자체를 보내는 것이 아니라 cup 안에 들어 ..
2020.08.21 -
포인터는 C언어가 가지고 있는 매우 강력한 특징이다. 포인터는 어떤 것을 가리키는 변수라고 할 수 있다. 포인터는 *(asterisk)를 붙여 사용할 수 있다. *는 포인터를 선언할 때, 그리고 포인터가 가리키는 주소안의 값에 접근할 때 사용된다. int a = 10; int* p; 포인터의 선언은 위와 같이 사용한다. int형 변수 a를 가리키기 위해 int형 포인터 변수 p를 선언한 것이다. 하지만 포인터 변수p는 현재 어떤 것도 가리키지 않은 상태이다. integer의 크기는 4byte / float의 크기는 4byte / char의 크기는 1byte 이다. x64 프로세서에서 한 개의 처리 단위 메모리 주소의 크기는 8byte이고 변수a는 4byte이므로 위와 같이 차지하는 것을 볼 수 있다. 포..
[ C언어 ] - 포인터포인터는 C언어가 가지고 있는 매우 강력한 특징이다. 포인터는 어떤 것을 가리키는 변수라고 할 수 있다. 포인터는 *(asterisk)를 붙여 사용할 수 있다. *는 포인터를 선언할 때, 그리고 포인터가 가리키는 주소안의 값에 접근할 때 사용된다. int a = 10; int* p; 포인터의 선언은 위와 같이 사용한다. int형 변수 a를 가리키기 위해 int형 포인터 변수 p를 선언한 것이다. 하지만 포인터 변수p는 현재 어떤 것도 가리키지 않은 상태이다. integer의 크기는 4byte / float의 크기는 4byte / char의 크기는 1byte 이다. x64 프로세서에서 한 개의 처리 단위 메모리 주소의 크기는 8byte이고 변수a는 4byte이므로 위와 같이 차지하는 것을 볼 수 있다. 포..
2020.08.21 -
함수는 반환형(return), 함수명, 매개변수(어떤 형태의 변수로 주고받을 것인가)로 구성된다. 반환형에 void를 입력하면 Return하지 않는다는 뜻이다. 반환형(return)은 함수가 종료될 때 어떤 값을 반환할 것인지를 정하는 자료형이며 매개변수(인자)는 만든 함수를 불러올 때 어떤 값을 넘겨주고 불러올 것인지를 정하는 변수이다. 예를 들어 a() 안에 Q와 W라는 문자 2개가 들어있는 함수가 있을 때 a(1)에서는 Q, a(2)에서는 W를 가져올 수 있도록 설정할 수 있는 것이다. 아무 값도 넘기지 않고 불러온다면 (), 그냥 비워두면 된다. 함수 사용 예시 return 값이 없는 함수명 Fruits의 매개변수 int형 변수를 이용해 Fruits() 함수를 불러와서 int형 (1)을 불러오면 ..
[ C언어 ] - 함수 활용함수는 반환형(return), 함수명, 매개변수(어떤 형태의 변수로 주고받을 것인가)로 구성된다. 반환형에 void를 입력하면 Return하지 않는다는 뜻이다. 반환형(return)은 함수가 종료될 때 어떤 값을 반환할 것인지를 정하는 자료형이며 매개변수(인자)는 만든 함수를 불러올 때 어떤 값을 넘겨주고 불러올 것인지를 정하는 변수이다. 예를 들어 a() 안에 Q와 W라는 문자 2개가 들어있는 함수가 있을 때 a(1)에서는 Q, a(2)에서는 W를 가져올 수 있도록 설정할 수 있는 것이다. 아무 값도 넘기지 않고 불러온다면 (), 그냥 비워두면 된다. 함수 사용 예시 return 값이 없는 함수명 Fruits의 매개변수 int형 변수를 이용해 Fruits() 함수를 불러와서 int형 (1)을 불러오면 ..
2020.08.20