Coding/Toy Project
[python] 웹 크롤링으로 게시판 업데이트 확인하기 (1)
계기 데스크탑을 사고 싶어서 핫딜을 알아보고 싶은데, 핫딜 게시판을 주기적으로 들르자니 너무 귀찮았다. RSS 느낌으로다가 게시판이 업데이트되면 terminal 수준에서 알려주는 어플리케이션을 만들면 편할 것 같았다. 언어는 가장 빠르게 구현할 수 있는 python으로 선택했다. 목표 특정 사이트의 게시물 리스트를 5분 간격으로 탐색하고 업데이트돤 내용만을 추려서 보여준다. 구현 먼저 웹 크롤링에 필요한 모듈을 다운로드한다. pip install requests, beautifulsoup4 requests => 서버에 웹페이지 내용을 요구할 수 있게 해준다. urlopen을 쓸 예정. beautifulsoup4 => requests를 통해 얻은 웹페이지 내용을 쓰기 좋게 다듬어준다. 해당 url을 url..
[Ray Tracing in C] 2. 벡터
레이트레이싱은 벡터 연산의 연속으로 이뤄질 것이다. 이 때의 벡터는 프로그래밍에서 1차원 배열이 아니라 수학/공학적인 개념으로 쉽게 말해 '방향과 크기'를 의미한다. 자세한 설명은 동영상 링크를 참조하자. (참고: 선형대수학을 위한 벡터란?) 먼저 벡터 struct를 헤더에 정의하자. 간단히 실수형 x,y,z만 가지고 있으면 된다. (이름은 최대한 짧게 지었다.) // vec.h typedef structs_v { doublex; doubley; doublez; }t_v; 이와 함께 연산들도 미리 정의해놓는다. 벡터의 기본 연산은 모두 쓸 것이다. 목록은 다음과 같다. v_init = 벡터 struct를 정의한다. v_mag = 벡터의 크기를 계산한다. v_norm = 벡터를 normalize(크기를 1..
[Raytracing in C] 1. 준비
이번 단계에서는 '레이 트레이싱'이 무엇인지 얇게나마 알아보면서 프로젝트의 방향과 의미를 생각해본다. 레이트레이싱? 이번 프로젝트에서는 C 언어만으로 레이트레이싱(ray-tracing)을 구현해보도록 한다. 레이트레이싱은 단순히 말하자면 '눈'을 시뮬레이션하는 것이다. 인간은 어떻게 사물을 볼 수 있을까? 광원으로부터 반사된 빛이 눈으로 들어와 상을 맺기 때문이다. 레이트레이싱은 이를 최대한 모방해서 현실과 가까운 이미지를 얻는다. (참고: Future of Gaming : Rasterization vs Ray Tracing vs Path Tracing) Ray-tracing in C? C를 통해서 레이트레이싱을 구현하는 일은 쉽지 않다. 무엇보다 C에는 클래스가 없기 때문에 좀 지저분하게 코드를 짜야하..