분류 전체보기(28)
-
D3 JS 기초
다운로드 http://d3js.org 에서 직접 라이브러리를 다운받아 폴더에 넣거나 이렇게 CDN방식으로 스크립트 태그에 넣어서 사용할 수 있다. 첫 작성 예제 간단하게 데이터를 리스트에 넣고 리스트 크기만큼 막대를 생성하는 예제다. svg 태그는 벡터 이미지를 생성하는 태그다. 색상변경은 css로 스타일을 지정해주면 된다.
2023.02.14 -
JavaScript basic
//let과 const : 해당 변수가 유일함을 보증 let은 변할 수 있는 값, const는 상수 //일단 모두 const로 설정하고 나중에 변경될 여지가 있는 변수만 let으로 바꾸는게 좋다. const name1 = "pr0v3rt" const name2 = 'chris' const name3 = `you?` //백틱은 문자열 안에 변수를 표현할때 사용.. 파이썬의 f"{}"랑 비슷한거인듯 const message = `my name is ${name3}` //이렇게 씀 console.log(message) //typeof에서 null은 object로 나오는데 사실 얘는 객체 아님(오류다!!) //prompt : 입력, confirm : 확인받기 test = prompt("your name : ")..
2023.02.14 -
ZeroNet 동작 방식
지난 시간에 비트토렌트에 대해 알아봤다. 제로넷은 비트토렌트에서 착안한 탈중앙화 웹서비스다. 비트토렌트는 피어들로부터 받고자 하는 파일 조각을 동시에 받아 파일 다운로드 속도를 높이는 프로토콜이었다. 제로넷은 영화, 드라마, 음악 같은 파일 대신 웹사이트를 호스팅/접속하기 위해 필요한 파일을 피어들로부터 받아 사이트 운영자의 호스팅 부담을 줄이고, 중앙서버가 아니기 때문에 장애에 강하다. 제로넷 동작방식 사이트 생성 제로넷에서 사이트 주소는 공개키다. 이게 무슨 말이냐면.. .com, .kr 등 '.'으로 구분되어 읽기 쉽게 나타내진 일반 웹사이트와 달리 제로넷 사이트는 Namecoin암호화를 이용해 공개키와 개인키를 생성하고 그 중 공개키를 사이트 주소로 사용한다. 보다시피 매우 기억하기가 힘들다 ㅋㅋ..
2023.02.14 -
비트토렌트 동작 방식
1. 비트토렌트란? 기존 클라이언트-서버 구조에서 파일을 요청할 때 클라이언트가 서버에 파일을 요청하고, 서버가 요청한 파일을 클라이언트에게 응답하는 것과 달리 비트토렌트는 클라이언트-클라이언트 구조로 파일을 갖고 있는 다수의 다른 클라이언트에게 파일을 요청하고 파일을 받는 분산 파일공유 프로토콜이다. 2. 특징 클라이언트-서버 구조의 일대일 파일 공유 방식은 클라이언트의 인터넷 환경과 서버의 성능에 따라 파일 전송 속도가 상이하다. 느린 인터넷을 사용한다면 당연히 파일 전송 속도도 느리고, 서버와 클라이언트 간 거리가 매우 멀어도 속도가 떨어질 수 있다. 반면 비트토렌트의 일대다 파일 공유 방식은 파일을 조각내어 클라이언트들 간에 그 조각을 교환하는 방식이다.(하나의 파일을 수백 개의 작은 비트단위로 ..
2023.02.14 -
Zeronet content.db structure
데이터베이스 구조 테이블 content - 제로넷에 존재하는 자이트들의 content.json파일 정보. 내부 경로를 보면 각 자이트의 암호화된 주소가 보이는 걸로 보아 자이트에 접속 시 해당 content.json파일을 넘겨주는 듯.? 아니다 site_id로 자이트를 구분하는 듯 한데.. 사이트 id9의 경로가 다양하게 잇는걸로 봐선 저건 사이트 9를 갖고있는 피어들의 주소인 것 같기도 하다. 수정된 횟수도 알려주넹 file_optional 해당 자이트에 있는 파일에 대한 정보다. site_id를 통해 어떤 자이트인지 알 수 있음. peer는 7명, 다운로드되거나 pineed? 뭐 담아가요 이런건가.. 한 적은 없다. 다운로드된적도, 접근된 적도 없는 듯. json - 저장된게 없당.. keyvalue..
2023.02.14 -
PyGeoIP 사용하기
PyGeoIp란? maxmind에서 개발한 IP 정보를 얻을 수 있는 툴. GeoLiteCity.dat이라는 IP 목록과 위치(나라, 도시 등)를 저장한 데이터베이스를 기반으로 동작한다. 원래는 maxmind에서 무료로 배포했지만 GeoIP2로 업데이트되면서 유료가 되었다. 하지만 찾아보면 파일이 있지 사용법 pip install pygeoip 먼저 pygeoip를 설치한다. 그리고 Geolitecity.dat 파일을 검색해서 다운한다. 그럼 이제 준비가 끝났다. import pygeoip gi = pygeoip.GeoIP("GeoLiteCity.dat") gi 객체에 GeoLiteCity 데이터베이스를 먼저 넣는다. vscode기준 gi.을 쳐보면 지원하는 메서드가 엄청 많이 있는 것을 볼 수 있다. ..
2023.02.14