package main import "fmt" // Duck 오리 구조체 type Duck struct { } func (d Duck) quack() { fmt.Println("꽥~!") } func (d Duck) feathers() { fmt.Println("오리는 흰색과 회색 털을 가지고 있습니다.") } // Person 사람 구조체 type Person struct { } func (p Person) quack() { fmt.Println("사람은 오리 흉내를 냅니다. 꽥~!") } func (p Person) feathers() { fmt.Println("사람은 땅에서 깃털을 주워서 보여줍니다.") } // Quacker 꽥 인터페이스 type Quacker interface { quack()..
Go 언어는 웹 브라우저, 서버, 데이터베이스 등 규모가 크고 복잡한 애플리케이션을 개발하는 데 적합하다. 이러한 분야는 이제 메모리 관리에 시간을 쏟기보다는 로직에 집중하는 것이 중요해졌다. 따라서 메모리를 일일이 신경쓰지 않아도 되는 Go 언어로 작성하면 생산성을 높일 수 있다. 하지만, 그림과 같이 Go 언어는 메모리 관리를 철저히 해야 하는 시스템 라이브러리 개발에는 적합하지 않다. 그리고 메모리 장치에 직접 접근해야 하는 운영체제와 장치 드라이버도 개발하기 힘들다.요약하자면 Go 언어는 메모리 관리가 다소 느슨해도 되고, 규모가 크고 복잡하며 유지보수가 빈번한 곳에서 편리하고 사용할 수 있다. 그리고 다양한 네트워크 라이브러리 (패키지)를 제공하므로 인터넷 프로그래밍에 유용하다.출처: [가장 빨..
최근에 회사에서 카메라 서버에 PTZ (Pan Tilt Zoom) 명령을 전달하는 과정에서 사용하는 HTTP Digest 인증에서 문제에 직면했다. 그 전까지 HTTP를 통신하는 과정에서 인증이 있다는 것도 몰랐던 나는 이 기회에 HTTP 인증 방식에 대한 공부를 해보기로 하였다. 다음은 @ssup2로부터 참조한 것이다. 일반적으로 HTTP를 통해 서버와 통신할 때 클라이언트의 신분을 확인하기 위해 인증작업을 진행하는데, 대표적으로 다음과 같은 인증방식이 있다. 익명: 인증정보를 포함하지 않는 요청을 말한다.Basic: 기본 인증은 클라이언트에 대한 사용자 이름과 암호를 Base64로 인코딩 된 문자열을 보낸다.Digest: 사용자 이름, 암호 등을 조합하여 MD5 값으로 인증한다. 인증과정은 다음과 같..
최근 내가 예전부터 좋아했던 밸브의 게임 하프라이프 시리즈가 VR 전용으로 신작인 하프라이프: 알릭스를 출시한다고 한다. 예전부터 VR에 관심이 많았던 나는 2020년 1월 초에 오큘러스 리프트 CV1 (이하 CV1)을 중고로 구입하였다. VR 기기를 구입하는 것은 나에게 처음은 아니다. 2013년 오큘러스 리프트 DK1이 처음 나왔을 때에도 중고로 구입하여 사용해보았고, 2015년에도 갤럭시 노트4에 사용되는 기어 VR을 구입하여 사용하다가 도중에 갤럭시 노트4가 고장나는 바람에 VR을 안하고 지냈던 적도 있다. 그러다가 최근 하프라이프: 알릭스가 출시된다는 얘기를 듣고 최근에 나온 오큘러스 제품들은 기존과 비교해서 어느 정도 달라졌는지 느껴보고 싶었고 VR기기에 대한 소장가치가 있다고 판단하여 하나 ..
[문제정의]팀장님이 현재 회사에서 사용하고 있는 DB의 모든 테이블에 대해 칼럼 정보를 엑셀 파일에 작성해달라는 요청을 받았다. 테이블 개수가 많지 않으면 직접 입력하는데 얼마 걸리지 않겠지만, 현재 회사에서 개발한 제품을 운영하는데 사용되는 테이블의 개수는 약 60개 정도 된다. 그리고 각 테이블 별로 칼럼이 평균적으로 10개에서 15개 정도 되는데, 각 칼럼에 대한 이름, 설명, NULL 허용 여부, 타입 등에 대한 정보를 일일이 입력하는 것은 꽤 길고 지루한 작업이었다. [도구조사]왠지 나와 같은 고민을 한 사람들이 있을 것 같아서 구글에 MariaDB 사용자를 위한 칼럼 정의서를 자동으로 생성해주는 프로그램이 있는지 조사해보았으나, 이런 류의 프로그램 자체도 별로 없었고, 그 중에서 오라클을 위한..
역사상 가장 정밀한 ‘중력 지도’가 지난주에 공개됐다.미항공우주국(NASA)과 독일항공우주센터가 합작한 쌍둥이 인공위성 그레이스(GRACE)가 지금까지보다 최대 100배 향상된 정밀도로 해양과 지표면 전체의 중력을 측정했다. 그레이스 위성의 책임연구자인 미국 텍사스대 바이론 태플리 박사는 “기존의 방법으로 측정하면 30년 걸릴 중력 자료를 그레이스는 30일 만에 수집했다”고 설명했다.지구의 표면은 매끈한 공 모양이지만 중력으로 나타낸 지구는 울퉁불퉁한 감자 모양이다. 지구의 질량 분포가 균일하지 않기 때문에 지표면에 따라 최대 100만분의 1가량의 미세한 중력 차이가 나는 것이다. 해류나 지하수가 흘러 물질이 모이는 곳, 산맥이 중력이 높다.지난해 3월에 발사된 쌍둥이 인공위성 그레이스는 고도 450km..