본문 바로가기

23년 2학기 학교공부

(82)
[CP] Stack Machine Code, Tree Code 2023학년도 2학기 충남대학교 조은선 교수님의 컴파일러개론 수업 정리자료입니다. 📁 가상 기계 코드 (Bytecode, MSIL) * 컴파일러는 전반부와 후반부로 나뉨. 전반부가 끝나면 중간코드가 나오고, 중간코드가 후반부를 거쳐서 타겟 머신 코드로 바뀐다. 전반부는 주로 하이레벨 언어에만 관련이 있고, 후반부는 주로 머신코드와 관계가 되어있다. 그래서 IR을 잘 정의해야함. 이렇게 잘 나눠놓고 후반부를 interpreter로 만드는 경우가 있다. 이렇게 interpreter로 만들면 그거 자체가 가짜 기계가 되고, 중간코드는 인터프리터 위에서 실행되는 구조. 이런 구조에서 사용되는 머신이 스택머신인 경우가 많고, IR이 스택머신 위에서 돌아가는 스택머신인 경우가 많음. 왜 후반부를 거쳐서 머신코드까지..
[CP] 3-Addr Code 2023학년도 2학기 충남대학교 조은선 교수님의 컴파일러개론 수업 정리자료입니다. 📁 N-tuple, 3-주소 코드(Quadruple) N-tuple은 보통 quadruple(4-tuple)을 많이 사용하는데, quadruple은 피연산자 두개와 결과값을 위해 memory address가 3개 필요하다. 때문에 이를 3-address code(3-주소 코드)라고도 부른다. 3-addr코드는 OP에 단 하나의 연산자가 와야한다는 점과, 기계어가 가지는 피연산자 및 주소의 개수가 3개 미만이라는 점에서 C코드와 비슷하다. 때문에 -e나 b+c와 같은 코드도 3-addr code로 표현이 가능하다. 하지만 C언어와 같은 하이레벨 코드는 a = (b+c) * (-e)처럼 한번에 연산자가 많이 나올 수 있어서, ..
[ML] Ensemble Method 2023학년도 2학기 충남대학교 양희철 교수님의 기계학습 수업 정리자료입니다. 📁 Multiple Models 하나의 문제를 해결하기 위해서 꼭 하나의 모델을 사용하는 것이 아니라, 여러가지 모델을 함께 사용할 수 있다. 이렇게 모델을 여러개 만드는 방법은 두 가지가 있다. 1. training data 랜덤 추출 데이터셋에서 training data를 랜덤으로 추출하여 개별의 모델을 학습시키는 방식이다. 어떤 데이터가 training data로 선택되느냐에 따라 다른 모델이 생성되므로 이런 면에서 deterministic하지 않고 stochastic한 알고리즘의 형태를 띈다. 2. feature 랜덤 추출 data 내부의 feature들을 랜덤으로 추출해서 모델을 생성하는 방식도 있다. 예를 들어 데이..
[CN] Client-side 동적 웹페이지 배포해보기 // http_server/dir/statics/myscript.js const myInterval = setInterval(myTimer, 1000); function myTimer() { const date = new Date(); document.getElementById('timer').innerHTML = '현재 시간: ' + date.toLocaleTimeString() + ' Stop time '; } function myTimerStop() { clearInterval(myInterval); } index.html 총 방문자: {{ COUNTER }} # http_server/http_server.py import os import http import http.server import s..
[ML] wji의 편미분. 업데이트 해야하는 웨이트들이 보통 파라미터의 수로 얘기함. 모든 파라미터에 대해 저런 연산을 다 거치는거임. 그래서 연산량이 엄청 많겠지만 모델의 표현력이 올라가고 overfitting문제가 생김. 모델의 구조 자체에서 overfitting을 막을 수 있는 등의 기법이 많이 나오고 있음. 러닝레이트에 따라 수렴하는 속도나 수렴 뭐쩌고가 정해질수 잇음. 적절한 러닝레이트는 웨이트의 초기값에서 적절히 도달하지만 너무크면 계속 발산하는 형태. 너무 작으면 학습속도가 엄청 더딤. 그래서 학습 속도에 따라 러닝레이트를 키우거나 줄여도 됨. 이런 로스펑션이 있는데, 초기값 위치에 따라 local optimal이 무엇이냐에 따라 global을 못찾을수도. 근데 이건 그래디언트 디센트의 한계. 근데 ..
[CN] 암호의 기초 : 대칭키, 공개키 2023학년도 2학기 충남대학교 이영석 교수님의 컴퓨터네트워크 수업 정리자료입니다. 📁 Cryptography(암호) 용어 정리 plaintext, m : 암호화 되지 않은 평서문 Ka : a가 가지고 있는 암호화 키 Kb : b가 가지고 있는 복호화 키 ciphertext : 암호화 된 데이터 Ka(m) : a가 가지고 있는 암호화 키를 가지고 plaintext m을 암호화한다는 것을 함수처럼 표현 Kb(Ka(m)) : Ka(m), 즉 ciphertext를 b의 키로 복호화하는 것을 함수처럼 표현 일반적으로, 송신자가 plaintext를 자신의 key를 통해 암호화하여 수신자에게 전송하면 수신자는 자신의 key를 이용해 복호화하여 메세지를 확인하는 방식으로 메세지가 전달된다. 이 과정에서 공격자가 암호..
[CN] TLS(Transport-layer security) 2023학년도 2학기 충남대학교 이영석 교수님의 컴퓨터네트워크 수업 정리자료입니다. 📁 TLS TLS란 TLS의 표준은 SSL(Secure Socket Layer) 3.0 버전, IETF TLS 1.0 버전, TLS 1.2 => TLS 1.3 (RFC 8846) TLS의 기능 TLS의 핵심기능은 암호화, 인증, 무결성 3가지가 있다. TLS는 API를 제공하고, TLS 버전/암호집합을 결정하고, 서버 인증서 이용 신원 인증, 세션키 생성. 1. confidentiality(기밀성) 2. authentication(인증) 3. message integrity(무결성) 4. access and availability(가용성) TLS Handshake 프로토콜 HTTPS로 통신하는 경우, TCP 소켓 통신 과..
[CN] Inter-AS 프로토콜 : BGP 2023학년도 2학기 충남대학교 이영석 교수님의 컴퓨터네트워크 수업 정리자료입니다. 📁 Inter-AS routing과 BGP Inter-AS routing이란 다른 AS(Autonomous System)들을 연결시켜주는 라우팅 프로토콜로, 대표적인 예시로 서로 다른 AS의 가장자리에 위치하는 border gateway 사이에 메세지를 전달하는 BGP가 있다. 예를 들어 충남대학교와 KT, KT와 SK브로드밴드 사이를 연결하는 기관 사이의 라우팅이다. BGP 프로토콜에는 두 가지 기능이 있다. 1. eBGP 서로 다른 AS 상의 Border Gateway들끼리 연결을 담당하는 BGP이다. 외부 라우터로부터 subnet reachability information을 전달받는다. 2. iBGP 서로 같은 A..