목록전체 글 (21)
공부하기 싫을 때 쓰는 블로그
저번글에서 정적 라이브러리 (static linking library)를 정리했습니다. 이번 글에서는 dynamic linking library(dll)을 다룹니다. 동적라이브러리 개념과 장단점 1. 라이브러리 파일이 runtime에 로딩되어 사용됨 2. 라이브러리의 코드가 .exe 실행파일의 일부가 아니고, .dll (windows의 경우) 파일로 별도로 존재함. 3. 별도의 파일이기 때문에 수정하기 쉬워서 배포하기도 편함. 4. application start시에 runtime에 필요할 library를 모두 찾아야 하기 때문에 속도가 느림. 5. .exe를 배포할 때 거기 쓰이는 .dll을 모두 같이 배포해주어야 함. 동적 라이브러리 만들기 1. dll 템플릿으로 새 프로젝트 생성하기 Visual S..
include, lib 폴더를 source가 있는 폴더에 추가해 줍니다! (사실 꼭 이 이름이 아니어도 됩니다. 어차피 어느 폴더인지 이름을 Visual Studio에사 지정해 줄 것이기 때문에..) 각각의 폴더에 .h 파일과 .lib(바이너리. h에 명시된 함수들의 구현)파일을 넣어줍니다. 요렇게요.. asio(asynchronous IO)는 유명한 library이죠... 원래 boost라는 커다란 라이브러리들의 모음의 일부인데 asio에서 필요한 부분만 저렇게 가져왔습니다. 밑에 StaticSample.h는 학교에서 준 샘플 라이브러리고요. 이제 visual studio에서 추가한 헤더파일들을 찾을 수 있게 설정해 줍니다. Visual Studio 2019 기준, Project > Properties..
더보기 Writer Info > 전기과 3학년 대학생... 테크는 아마 네트워크나 디지털회로설계 중 하나? 코딩은 cpp 한학기 배웠고 C# 독학으로 작년 겨울에 unity랑 같이 공부함. Article Info > 이 글은 Unity를 깐지 일주일도 안된 독자들을 대상으로 쓴 글입니다. 30min read (영상 포함) 2021년 9월 작성. metaverse에 대해서 요즘 뉴스나 주식에서 많이 다뤄지고 있다. 한국에서는 대표적으로 네이버에서 Zepeto를 서비스 중이다. (잼민이들 많다고 그래서 접속은 안해봤지만 조만간 용기내어 들어가보고 후기 써볼 예정이다) 영상은 ITZY의 not shy 뮤비 제페토 버전. (카카오도 뛰어들려나 모르겠다. 삼성 SDI는 생각 있는 것 같던데..) https://w..
Moore vs Mealy Machine 유한개의 현재상태 (current state)를 가질 수 있는 Finite State Machine은 output을 최종적으로 결정하는 logic에 따라 Moore과 Mealy machine으로 크게 나눌 수 있다. Moore machine은 OUTPUT이 현재 FSM의 state에 의해서만 결정된다. 반면 Mealy machine은 OUTPUT이 현재 state와 INPUT 모두에 의해 결정된다. 위 그림에서 OUTPUT 을 계산하는, output combinational logic에 Mealy machine은 input값이 들어가는 화살표가 있는것을 확인할 수 있다. 따라서 clock에 의해 state가 바뀌지 않더라도, input이 바뀌면 clock과 상관없..
이전 포스트에서 uniform surface charge가 덕지덕지 붙어있는 sphere가 angular freq $\omega$로 회전할때의 current density $K(r')$를 생각했었다. 그리고 공간의 임의의 위치에서 B-field를 구하기 위해 vector potential A를 먼저 구하기로 했었다. 계산의 편의를 위해 potential을 계산할 $r$을 z+방향을 향하도록, 또 $\omega$가 $zx$평면에 오도록 좌표계를 돌렸었다. 그리고 구면 위에 전류가 존재하는 모든 좌표 $r'$에 대하여 적분을 하는데, 우리의 적분은 $$ A(r) = \frac{\mu_0}{4\pi} \int \frac{K(r')}{\sqrt{R^2 + r^2 -2Rr cos(\theta')}} da' $$ ..
cpp에서 class 를 define 하는 방법이다. Sales_data class를 정의한다. using namespace std; struct Sales_data { string bookNo; unsigned units_sold = 0; double revenue = 0.0; string isbn() const { return bookNo; } Sales_data& combine(const Sales_data&); double avg_price() const; }; isbn( ) 다음의 const가 어색해보인다. 이건 함수에서 해당 객체의 멤버변수를 바꾸지 않겠다는 선언이다. 보다 정확히는, 우리가 Sales_data mydata;를 정의해서 mydata.isbn(); 을 호출하면, isbn 함수는 ..
Verilog는 Hardware를 표현하는 데 널리 사용되는 Hardware Description Language이다. Verilog로 간단하게는 flip-flip으로 부터, 복잡하게는 컴퓨터까지 design할 수 있다. Verilog라는 언어로 디지털 시스템을 만들려면 verilog file을 컴파일하고, 우리가 어떻게 어떻게 동작해야 된다고 지시한 'behavioural description'을 하드웨어를 구성하는 단위들의 조합으로 표현해주는 synthesizer 기능을 해주는 도구가 필요하다. XILINIX사의 Vivado는 그러한 프로그램이다. Vivado는 위에서 언급한 synthesizing 뿐만이 아니라, 만들어진 모듈의 schematic을 그려주고, simulation을 할 수 있는 다양한..
part 1 _ Theory z방향으로 uniformly magnetized된 ball의 magnetic field를 계산해보자. 먼저 bound currents 를 계산해준다. (notation 천정각 $\theta$) volume current 는 0이고, bound surface current $K_b$ 는 표면에 전하 $\sigma$가 덕지덕지 붙은 채 $z$축 각속도 $\omega$ 로 회전하는 sphere로 생각('identify')할 수 있다. 이 identification은 물론 당장 vector potential을 구하는데에는 불필요하다. 하지만 Magnetization에 의한 B-field와 current에 의한 그것이 완전히 identify되는 것은 개념적으로 몹시 편리하므로 교과서에..