Annotation / Labelling 딥러닝은 분석을 위한 기본 파이프라인에 학습할 수있는 데이터를 Input하고, 정해져 있는 파이프라인을 통해 학습을 한다. 기본적으로 지도학습은 데이터와 해당 데이터의 분류 정보를 넣어줘야 한다. 따라서 Vision 관련 AI에서 Object Detection의 경우는 이미지와 분류 하고자 하는 물체를 이미지내에서 영역을 지정해줘야 이를 학습 할 수 있다. 이미지의 원하는 물체의 영역 값을 알려주고 해당 물체를 식별할 수 있는 코드를 알려줘야 하는데 오픈되어있는 여러 데이터셋중 CoCo Dataset과 PascalVOC의 Annotation Format을 분석 해보고자 한다. -coco dataset :json 기준으로 되어 있으며, 한개의 json 파일 안에 이..
WPF나 MFC 등은 자체적으로 트리 컨트롤을 지원하지만. html 에서는 지원 하지 않는다. 트리 구조의 뷰를 만들기 위해서는 결국 이를 별도로 작성해야 한다. 트리 컨트롤은 기본적으로 재귀적으로 구현해서 재사용성을 높여 주는 것이 좋다. 물론 자신이 만드는 소프트웨어에서 데이터를 어떤식으로 구성 하고 있는지에 따라 다르겠지만, 재귀적으로 구현하면 노드의 Depth가 달라져도 계속 활용하여 사용 할 수 있기 때문이다. 이를 Vue JS로 구현해보기로 하자. 구성은 아래와 같다. 1. 표출할 데이터. 2. Vue Component 3.파일 구성 |--- HomeView.vue | |---TreeItem.vue -- TreeItem.vue [{{ isOpen ? '-' : '+' }}] {{ item.na..
Javascript이전에 다른 언어를 다뤘던 개발자라면 가끔 실수 하게 되는 것이 있다. 바로 반복문이다. for ...in 과 for ...of가 있는데 두 반복문은 차이가 있다. for ...in : for in은 해당 객체의 속성들을 순차적으로 접근한다. var obj = {name : "d", id : "d"} for(var item in obj) { console.log(item) } //// 결과 output //// name //// id for ...of : 배열 혹은 리스트에서 각 항목에 접근한다 var lst = [{ name : "a", id : "a"},{ name : "b", id : "b"}] for(var item of lst) { console.log(item) } /// 결..
Go를 이용한 HTTP Client 샘플코드 1. 심플한 요청 방법 ( Get Method ) package main import ( "fmt" "io/ioutil" "net/http" ) func Request(cgi string){ resp, _:= http.Get(cgi) data, _ := ioutil.ReadAll(resp.Body) resp.Body.Close() fmt.Print(data) } func main(){ Request() } 2. HTTP client를 생성하여 Request 하는 방법. : Client를 생성하면 http에 필요한 여러가지 헤더정보 등을 추가하여 전송이 가능해진다. package main import ( "fmt" "io/ioutil" "net/http" ) f..
웹 개발중 브라우저에서 CORS메시지가 뜨는 경우가 있어 Wireshark를 통해 패킷을 확인한 결과, WAS와 HTTP Server가 다른 경우에 OPTIONS 라는 패킷이 감지되는 경우를 발견 하였다. 나는 분명 GET으로 요청했는데 OPTIONS 패킷이 발생한 이유가 무엇일까? 라는 의문이 생겨 찾아보기 시작했다. 나는 HTTP Server로 C++로 구현하여 사용 하고 있었다. 하지만 자료 검색을 하다 보니 많은 것을 알 수 있었다. CORS(Cross-Origin Resource Sharing) CORS는 WAS와 데이터를 요청하는 Server가 다른 경우에 발생 한다. 이는 보안을 위해 생겼는데 출처가 다른곳으로 부터 데이터를 자율적으로 주고 받을 수 있게되면 보안상 많은 문제가 발생한다. C..

"우리가 해야 할 일은 생존입니다. " "우리가 틀렸다면 나중에 언제라도 (투자 포지션을) 추가할 수 있습니다." 수학자였던 짐 사먼스는 자신의 분야에서 정점에 이르렀고, 새로운 정복 대상을 찾고 싶은 간절한 마음에 수학 분야를 떠났다. 그리고 수학으로 금융 시장을 분석하여 주식 거래의 세계를 정복 할 수 있다고 확신했고, 이에 도전했다. 그 후 여러 유능한 동료와 함께 르네상스 테크놀러지를 설립하며 엄청난 부를 얻게 되었다. 이 책은 짐 사이먼스가 르네상스테크놀러지를 설립하고 이를 운영 그리고 은퇴하기 까지의 일대기를 기록한 책이다. 짐 사이먼스의 모든 삶에 대해서는 알 수 없지만, 그가 삶을 마주하는 자세를 느낄 수 있었다. 어떻게 보면 그는 타고난 천재라고도 생각이 들수 있다. 하지만 그의 천재..
Go TCP Echo Server / Client 기본 기존 C++, C#, Python, Swift 등으로 네트워크 프로그래밍을 통해 여러 서비스를 개발 해봤지만 Go는 다른 언어와 다르게 매우 편하게 기본 구성을 잡을 수 있었다. 과거에 Go 언어가 지원되는 프레임워크나 기능등이 적어 관심이 적었으나 최근에 어떤 프로젝트를 진행하면서 Go로 이뤄져 있는 오픈 소스를 분석하고 커스텀 해야할 일이 생겨서 GO 언어를 접하게 되었다. 기본 적인 사용법을 훑어보고 맛보기로 테스트 코딩을 하면서 느낀 장점이 있었다 장점 - Go 루틴으로 인해 NonBlock 처리가 매우 편하다. - Python과 같이 배열 Slice 기능으로 패킷 처리가 매우 편하다. -- Client -- package main impor..
SRTP ? 실시간 전송 프로토콜 (Real-time Transport Protocol)로 네트워크 상에서 오디오와 비디오를 전달 하기 위한 통신 프로토콜이다. 전화 WebRTC등 화상통화와 미디어 스트리밍 시스템등에서 주로 사용한다. SRTP (Secure Real-time Transport Protocol)는 RTP에 보안기술을 접목하여 실시간으로 전송되는 데이터를 암호화하여 송,수신하는 프로토콜을 의미한다. SRTP는 기본적으로 AES 알고리즘을 사용하고 아래와 같이 구성되어있다. V = 2 P X CC M PT Sequence Number Time Stamp Synchronization Source Identifier (SSRC) Contributing Source Identifier (CSRC)..

GO 설치하고 구동 하는데 절차는 아래와 같다 1. GO 다운로드 및 설치 2. 환경변수 설정 3. 개발 편의를 위한 IDE 설정 ( VScode기준) 1. Go 다운로드 및 설치 https://golang.org/ The Go Programming Language Download Go Binary distributions available for Linux, macOS, Windows, and more. // You can edit this code! // Click here and start typing. package main import "fmt" func main() { fmt.Println("Hello, 世界") } Hello, World! Conway's Game of Life Fibonac..