[타입스크립트] Refused to execute script from ~ because its MIME type ('video/mp2t') is not executable 에러
·
Web/TypeScript
위 에러는 html에 타입 스크립트 파일(.ts)을 바로 지정해줘서 나타나는 에러입니다. 따라서 타입 스크립트 파일을 tsc를 통해 컴파일한 자바 스크립트 파일을 연결해주어야 오류가 나지 않습니다. tsc 커멘드는 타입 스크립트를 global로 설치해야 사용 가능합니다. npm install -g typescript 이후 tsc App.ts와 같이 html에 연결할 타입 스크립트 파일을 tsc 명령어를 통해 컴파일 한후 위와 같이 연결해주면 오류가 더이상 나지 않습니다. 참고한 글 https://stackoverflow.com/questions/45341090/refused-to-execute-script-from-ts-because-its-mime-type-video-vnd-dlna-mpe Refuse..
[모각코] 2022 하계 모각코 활동계획
·
기타/모각코
목표 - 웹에서 시각적인 방향 그래프를 보여주기 위한 지식 습득 계획 회차 목표 세부내용 1회차 Valina.js, React.js, Vue.js 중 적절한 라이브러리 탐색 Valina.js, React.js와 Vue.js의 지식을 고루 습득 2회차 그래프를 그리기 위한 객체 설계 그래프의 vertex와 edge를 구성 3회차 그래프의 동작을 보여주기 위한 시각화 설계 색, 애니메이션, 곡선 edge 등 4회차 간단한 그래프 알고리즘 시각화 DFS 시각화 해보기 5회차 간단한 그래프 알고리즘 시각화 BFS 시각화 해보기 6회차 Github Page를 통해 배포해보기 관련 내용을 포스팅 세부 계획 - 토이프로젝트를 위한 최소한의 지식만 습득할 예정 - 그래프를 그리면서 알게된 내용 포스팅
[C언어] 배열 요소 접근과 포인터의 관계
·
언어/C
배열 요소에 접근하는 방법 1. 대괄호( [ ] ) 기본적인 배열의 요소의 접근은 배열의 이름 오른쪽에 대괄호를 치면 됩니다. int a[3] = {1, 2, 3}; printf("%d\n", a[0]); 하지만 이런 방법 외에도 포인터를 통해 배열 요소에 접근할 수 있습니다. 2. 포인터 변수의 역참조 연산자( * ) 기본적으로 배열의 이름은 그 자체로 해당 배열의 시작 주소와 같습니다. 다만 이 시작 주소로부터 특정 배열에 접근할 때는 고려할 사항이 있습니다. 우선 배열은 다차원 배열이 될 수 있고, 차원 수에 따라 역참조 연산자( * )를 몇번 붙여야 하는지 알 수 있습니다. 예를 들어 다음과 같이 1차원 배열이 있다고 해보겠습니다. int arr[5] = {1, 2, 3, 4, 5}; int *p..
[C언어] 주소에 대한 swap 구현
·
언어/C
값에 대한 swap C언어에서 함수로 값을 넘길때는 call by value기 때문에 모든 값이 복사되어 넘어갑니다. #include void swapValue(int *a, int *b) { int temp = *a; *a = *b; *b = temp; } int main() { int num, num2; num = 1; num2 = 2; swapValue(&num, &num2); printf("%d %d\n", num, num2); } 따라서 함수를 통해 두 변수의 값을 바꿔주기 위해서는 1. 주소를 복사해서 인자로 넘긴다. 2. 주소에 접근(* 연산자)해서 직접 값을 바꿔준다. 라는 두가지 단계를 통해 값에 대한 swap을 구현할 수 있었습니다. 주소에 대한 swap #include int main..
[C언어] 함수 포인터
·
언어/C
함수 포인터 함수는 전역 스코프에 선언하고, 다른 함수에서 호출해서 사용할 수 있습니다. 이때 함수는 메모리 영역중, code 영역에 함수 정의가 저장됩니다. 이때 함수의 이름은 함수 정의가 있는 메모리의 시작 위치, 즉 주소입니다. 따라서 함수명도 포인터 변수에 넣어서 사용할 수 있는데, 그것이 함수 포인터입니다. 함수 포인터 사용법 #include int sum(int x, int y) { return x + y; } int main() { int (*fp)(int, int); fp = sum; int res = fp(10, 20); printf("%d\n", res); } 함수 포인터의 선언은 좀 복잡하게 생겼습니다. 함수 포인터의 이름이 괄호 안에 들어가있는 형태입니다. 괄호를 제거하면, 주소를 ..
[C언어] Dangling Pointer와 Memory Leak
·
언어/C
Dangling Pointer Dangling Pointer는 직역하면 매달린 포인터입니다. 마치 전연인을 잊지 못하고 매달리는 누군가의 모습을 생각해보면 좋겠습니다. 이미 그 사람은 마음이 떴는데 말입니다. #include #include int main() { int *a = (int *)malloc(sizeof(int)); *a = 50; int *b = a; free(a); *b = 50; } 위 코드는 Dangling Pointer를 잘 보여주는 예시입니다. a의 주소를 b가 가지고 있지만 free 해버린 주소에 b로 접근하여 새로운 값을 할당하려 하면 오류가 발생합니다. 이렇게 이미 free 함수를 통해 해제한 메모리에 대한 주소를 가지고있는 포인터를 Dangling Pointer라고 합니다...
[확률과 통계] 큰 수의 법칙과 중심 극한 정리
·
CS/확률과 통계
큰 수의 법칙 큰 수의 법칙(The low of large numbers)은 확률 변수 $Z_1, Z_2, \cdots$가 어떤 실수 b로 수렴한다고 할때 만약 $\forall \varepsilon > 0$ 라면 $\displaystyle\lim_{n \to \infty} P(|Z_n - b| < \varepsilon) = 1$ 을 만족한다고 하고 $Z_n \overset{p}{\longrightarrow} b$ 라고 표기합니다. $\varepsilon$의 값이 큰 경우 $Z_n$이 lower ~ upper 범위 내에서 존재할 확률은 굉장히 적지만 $\varepsilon$의 값이 계속해서 작아지면 $Z_n$이 lower ~ upper 범위 내에서 존재할 확률은 계속해서 커지고 결국 1에 수렴하게 됩니다...
[확률과 통계] 표본평균과 마르코브 그리고 체비셰브 부등식
·
CS/확률과 통계
표본(Sample)에 대하여 모집단(Population)은 굉장히 큰 집합으로 표현됩니다. 이때 평균과 분산을 모르는 모집단에서 n개의 무작위 표본들을 가져가보려 합니다. 모집단에서 가져온 랜덤한 n개의 표본들은 서로 같은 분포에서 채취했으며(identically distribution), 무작위로 가져왔기 때문에 서로 독립(independent)입니다. 따라서 n개의 표본들은 i.i.d 임을 알 수 있습니다. 표본평균 무작위 표본 $X_1, \cdots, X_n$ 을 가지고 있다고 하겠습니다. 이때 표본들의 평균은 $\frac{1}{n} \displaystyle\sum_{i=1}^{n} X_i$ 입니다. 이 단순한 표본들의 평균을 표본평균(Sample mean)이라 하며 $\bar{X_n}$ 으로 표현..
[확률과 통계] 정규 분포와 표본 정규 분포
·
CS/확률과 통계
정규분포 정규 분포는 가우시안 분포라고도 불리는 유명한 분포입니다. 어떤 확률 변수 $X$가 평균이 $\mu$이고, 분산이 $\sigma^2$인 정규 분포를 따른다면 다음과 같이 나타냅니다. $X \sim N(\mu, \sigma^2) \ \ (-\infty < \mu < \infty, \ \sigma^2 \ge 0)$ 정규분포의 성질들 $X \sim N(\mu, \sigma^2)$ 라고 할때 $X$의 p.d.f. $f(x) = \frac{1}{\sqrt{2\pi} \sigma} e^{- \frac{(x-\mu)^2}{2\sigma^2}}$ $X$의 m.g.f. $\psi(t) = e^{\mu t + \frac{1}{2} \sigma^2 t^2}$ m.g.f를 통해 $E(X) = \mu$ 이고, $Var..
[논리회로] 밀리머신과 출력 오류 현상
·
CS/논리회로
밀리머신 밀리머신은 출력이 현재 상태와 입력에 모두 관련되는 경우입니다. 현재 상태가 무엇이고, 그때의 특정 입력이 무엇이냐에 따라 출력이 화살표에 표시됩니다. 직렬 덧셈기 회로 직렬 덧셈기는 두개의 n비트 2진수 $X$, $Y$를 더하는 회로입니다. 병렬 덧셈기와의 차이점은 입력이 순차적으로 들어오고, 그에 따른 출력도 순차적으로 나간다는 점입니다. 상태는 덧셈의 결과로 생성되는 1비트의 캐리 값으로 잡으면, 필요한 FF의 개수는 1개임을 알 수 있습니다. 또한 덧셈을 할 수 있는 Full Adder와 함께 구성해보겠습니다. 우선 진리표 먼저 구성해보겠습니다. 상태를 다음과 같이 구성하고, 상태도를 그려보겠습니다. $S_0 : C_{i+1} = 0$ $S_1 : C_{i+1} = 1$ 이에 따른 다음 ..