카테고리 보관물: Etc

C# 프로젝트에서 외부 dll 사인하기

마이크로소프트(Microsoft) 플랫폼 중의 하나인 .NET에서 C#으로 개발을 하다 보면 COM과 같은 모델로 등록하는 경우가 있고, 이 경우에 dll 파일의 사인이 필요하다. 프로젝트가 만들어 내는 바이너리는 문제가 없지만, 외부 dll을 사용하는 경우에는 COM으로 등록하는 데 문제가 될 수 있다.

이 경우에 외부 dll을 사인해야 하고 아래는 그 방법이다.

1. dll 다시 사인하기
이 방법은 C# dll을 decompile하고, 자신의 키로 다시 사인한다.
http://erjjones.github.io/blog/How-to-sign-third-party-assemblies/

2. strong name 사인하기
위 1.번의 사인이 문제가 있다. 그래서 아래의 툴을 사용해서 사인한다.
https://brutaldev.com/post/NET-Assembly-Strong-Name-Signer

이 툴을 사용하면서 VS에서 만들어놓은 .pfx 파일을 사용해서 사인한다.
이 과정으로 COM으로 사용할 수 있는 dll을 만들 수 있다.

클라우드 기반 포토(Photos) 서비스 비교

2015년 구글이 매년 하는 I/O 행사에서 사진/동영상 저장 서비스를 발표했다. 이 서비스 이름은 구글 포토(Google Photos)이다. 구글 포토는 Google+에서 제공하는 사진/동영상 저장 서비스가 승격(?)된 것이다. 그리고 서비스 도메인(http://photos.google.com)에서 알 수 있듯이 구글의 다른 메이저 서비스들과 동급의 비중을 가지는 서비스라는 것도 알 수 있다.

개인적으로 회사에서 포토 XXX라는 서비스를 개발해본 경험이 있어서 포토 관련한 서비스에 관심이 많다. 이제 클라우드 기반의 포토 서비스가 구글의 가세로 치열한 영역이 되었다. 하지만 기존의 포토 서비스인 드롭박스의 포토, 아이클라우드 포토, 야후 플리커, 아마존 포토 그리고 인스타그램등도 자신의 영역을 구축해서 사용되고 있다. 그래서 구글 포토를 비롯해서 기존 서비스에 대해서 정리해 봤다.

1. 구글 포토

구글 포토는 사진과 동영상을 무료로 무제한 저장할 수 있는 서비스이다. 이 서비스는 서비스 플랫폼에서 사진/동영상의 자동 싱크를 지원한다. 자동 싱크된 콘텐츠는 “머신러닝”을 통해서 콘텐츠의 컨텍스트 추출과 추출된 컨텍스트와 연관된 사진/동영상을 자동으로 분류해 준다. 이 자동 분류하는 기술력으로 기존의 다른 포토 서비스보다 한 발 더 앞선 서비스를 선보이고 있다.

1.1 기능
– 시간/장소에 따라서 분류해서 보여준다.
– 사진을 매개로 사진이 가지고 있는 컨텍스트로 또다시 분류해서 연관 사진을 보여준다.
– 앨범을 구성할 수 있다.
– 사진과 동영상의 편집 그리고 필터를 제공한다.
– 스토리라는 명칭의 기능으로 짧은 에피소드를 구성할 수 있다.
1.2 주소 : http://photos.google.com
1.3 서비스 플랫폼 : 아래의 앱들은 https://photos.google.com/apps 에서 확인할 수 있다.
– 웹
– 데스크탑(윈도/맥) 업로드 앱
– 안드로이드
– 아이폰/아이패드

구글 포토의 가장 큰 강점이라고 하면 무제한의 사진과 동영상을 무료로 저장할 수 있다는 것이다. 구글 계정은 지메일 서비스와 안드로이드 생태계를 기반으로 가장 많은 사용자를 보유하고 있다. 이런 상황에서 이 서비스는 구글 사용자가 계속 자신의 계정을 사용하도록 하는 서비스중에 하나라고 볼 수 있다.
2015년 구글 I/O가 15일정도 지난 시점(2015년 06월 10일 기준)에 플레이 스토어에서 확인할 수 있는 앱 다운로드 횟수가 10,000,000 – 50,000,000 이고, 피드백 횟수가 147,819이다. 이 데이터만 본다면 구글 포토는 이미 성공한 서비스라고 느껴진다. 그리고 구글 드라이브에서도 구글 포토를 볼 수 있고, 구글 닥스에서도 구글 포토의 앨범에서 바로 사진을 추가할 수 있을 정도로 기존의 구글 서비스에 잘 녹아있는 것도 강점이다.

구글 포토가 저장하는 콘텐츠에 대한 제한은 이곳(https://support.google.com/photos/answer/6156060?hl=ko)에서 확인할 수 있다.

2. 드롭박스 포토(Carousel)

커스터머 클라우드 서비스의 최강자인 드롭박스가 서비스하는 포토 서비스가 있다. 이 서비스의 이름은 캐로셀(Carousel)이고, 드롭박스에 싱크되어 있는 사진과 동영상을 분류해서 만들어진 서비스이다. 이 포토 서비스는 드랍박스의 공간을 사용하기 때문에 일반 사용자(캐로셀을 가입한 사용자는 3G 까지 무료 사용: https://www.dropbox.com/help/287)가 사용하기에는 적은 용량을 제공한다고 볼 수 있다.

2.1 기능
– 시간/앨범으로 사진을 분류해서 볼 수 있다.
– 공유된 콘텐츠로 분류해서 볼 수 있다.
– FLASHBACK 기능으로 지속적으로 과거의 현재를 회상할 수 있게 한다.
2.2 주소 : http://carousel.dropbox.com
2.3 서비스 플랫폼 : 데스크탑 싱크 앱을 드랍박스 앱을 사용하고, 그 외에의 플랫폼은 https://carousel.dropbox.com/#download 에서 확인할 수 있다.
– 웹
– 데스크탑(윈도/맥) 싱크 앱
– 안드로이드
– 아이폰/아이패드
– 윈도폰에서는 드롭박스 앱을 사용해서 이 서비스 일부를 느낄 수 있다.

드랍박스 포토의 가장 큰 강점은 파일을 로컬에 싱크한다는 것이다. 그리고 가장 많은 플랫폼을 지원하는 서비스이기도 하다. 데스크탑에서 드롭박스 포토와 같은 모습으로 분류해서 사진을 볼 수는 없지만 그래도 쉽게 찾아서 볼 수 있다. 그리고 FLASHBACK과 같은 기능은 개인적으로 매우 좋아하는 기능이다.
하지만 드랍박스는 클라우드의 최강자이기에 파일 서비스라는 성격이 강해서 이 서비스는 생각보다 성공하고 있지는 못하고 있는 것 같다. 이 서비스가 2014년 4월 9일 발표를 했고, 2015년 06월 15일 기준으로 플레이 스토어에서 확인할 수 있는 설치 횟수가 1,000,000 ~ 5,000,000 이고, 피드백 개수가 53,767개이다.

3. 아이클라우드 포토(iCloud Photos)

애플 플랫폼의 사진, 동영상 저장 서비스이다. 이 서비스도 드롭박스와 비슷하게 시간/앨범의 분류로 사진과 동영상을 볼 수 있다. 애플 제품을 사용하는 사용자는 자신의 기기에 Seamless하게 사진/동영상이 싱크되기에 매우 편리하게 사용할 수 있다. 하지만 5G의 용량은 기기에서 편리하게 사용하기에는 작은 편이다.

3.1 기능
– 시간/앨범별로 분류해서 보여준다.
– 시간별 분류에서 지역별 분류도 포함해서 보여준다.
3.2 주소 : http://www.icloud.com/#photos
3.3 플랫폼 : 애플 기기와 비 애플 기기의 경우에는 웹에서 사용할 수 있다.
– 웹
– 데스크탑(맥)
– 아이폰/아이패드

아이클라우드 포토의 가장 큰 장점은 애플 기기에서 아주 편리하게 사용할 수 있다는 것이다. 애플 OS에 싱크 기능이 들어가 있으므로 별도의 앱 설치가 없어도 되기에 매우 편리하다.

4. 야후 플리커(Flickr)

야후 플리커는 사진/동영상을 저장하는데 1TB 용량을 제공하고 있다. 이 서비스는 사진의 퀄리티를 줄여서 용량을 절약(?)하는 형태를 사용하고 있지 않아서 비교적 전문가들이 많이 사용하는 서비스이다. 이 서비스는 사진에 대해서 가장 자세한 정보를 보여줄뿐더러 사진을 매개로 사용자들 간의 활발한 활동도 볼 수 있다.

4.1 기능
– SNS(팔로워/팔로윙) 기능을 제공한다.
– 시간/앨범/지역(Geo)별로 분류해서 보여준다.
– 그룹 기능 제공해서 소모임의 활동도 지원한다.
– 공유된 사진을 기준으로 여러가지 형태의 사진 서비스(인화/캔버스 인쇄 등)를 제공한다.
– 지역(Geco)별로 사진보기 제공
– 사진을 찍은 카메라의 정보도 볼 수 있다.
4.2 주소 : http://www.flickr.com
4.3 플랫폼 : http://www.flickr.com/tools/에서 플랫폼별로 지원하는 앱을 받을 수 있다.
– 웹
– 데스크탑(윈도/맥) 업로드 앱
– 안드로이드
– 아이폰/아이패드

플리커 서비스는 고품질의 사진이나 동영상을 저장하는 서비스로 매우 강추할 수 있는 서비스이다. 이 서비스는 다른 서비스에 비해서 제공하는 기능이 많아서 비교적 덜 직관적인 게 흠이지만 파워 사용자들에게 매력적인 서비스임에는 분명하다.

5. 아마존 포토

아마존 포토도 사진과 동영상을 무료로 무제한 저장할 수 있는 서비스라고 알려져 있다. 하지만 무료 사용자는 5G의 용량만을 사용할 수 있다. 무료와 무제한으로 사용하기 위해서는 아마존 프라임(유료모델) 고객으로 이어야 한다. 아마존은 자신만의 생태계를 구축하기 위해서 안드로이드 기반의 커스텀 OS를 사용하는 기기를 출시하고 콘텐츠를 무기로 애플과 같은 존재로 자리매김하려고 노력하고 있다. 이 노력의 일부로 아마존 클라우드 서비스에 포토 서비스가 추가되어 있다.
https://www.amazon.com/gp/photos/storage?ref=un_nav_ph_mp 에서 포토 서비스를 확인할 수 있다.

5.1 기능
– 시간/앨범별로 분류해서 보여준다.
5.2 주소 : https://www.amazon.com/gp/photos?sf=1&ref_=cd_primepage_photosweb
5.3 플랫폼 : https://www.amazon.com/gp/photos?sf=1&ref_=cd_primepage_photosweb
– 웹
– 안드로이드
– 아이폰/아이패드

개인적으로 아마존 포토 서비스는 여기에서 살펴본 다른 클라우드 포토 서비스 보다 강점을 찾기 어렵다. 하지만 아마존 프라임을 사용하고 아마존의 콘텐츠를 아마존의 기기로 즐겨서 소비하는 충성스런 사용자에게는 좋게 느껴질 수도 있다.

6. 인스타그램(Instagram)

인스타그램은 사용자의 사진을 타임라인 순으로 쉽게 저장하는 서비스이다. 사진/동영상을 수동으로 업로드 해야 한다. 이 서비스는 아이폰을 시작으로 사진의 필터 기능을 제공해 앱으로 시작해서 사진의 필터 기능으로 엄청나게 많은 사용자가 사용하게 되었고, 2012년 1조원(1$를 1000원으로 가정하면)이라는 천문학적인 금액으로 페이스북 패밀리 서비스의 하나로 자리 잡았다.
현재 많은 매체에서 SNS 서비스 중의 하나로 인스타그램을 인식하고 있다. 하지만 인스타그램의 시작이 포토 서비스였고, SNS를 도입해서 가장 흥한 서비스가 되었고, 이제는 SNS 서비스로 손꼽히는게 현실이다.
이 서비스는 2014년 4Q를 기준으로, 월별 액티브 사용자가 3억명, 일별 액티브 사용자가 7500만명 그리고 하루에 업로드되는 사진이 7000만장 이라고 한다(http://www.luevo.com/instagram-lessons-2014-emerging-fashion-designers/).

6.1 기능
– 사진을 타임라인/지역별로 분리해서 보여준다.
– SNS 기능(팔로워/팔로잉)을 제공한다.
– 사진/동영상에 필터를 사용해서 편집할 수 있다.
6.2 주소 : https://instagram.com/
6.3 플랫폼
– 웹
– 안드로이드
– 아이폰/아이패드

인스타그램을 사용하는 사용자들은 모바일로 시작해서 모바일로만 사용하도보니 웹 서비스로도 인스타그램 사진을 볼 수 있다는 것을 모르는 경우가 많은데 웹에서 로그인해 사용해 보면 큰 화면에 큰 사진이 시원시원하다.
인스타그램은 사진/동영상이 정사각형으로 다른 서비스에 비해서 원본을 유지하지 않는 방향이다. 이 방향으로 인해서 인스타그램의 콘텐츠는 인스타그램 앱을 사용하지 않고 다른 서비스로 공유하는 경우 약간의 이질감이 들기도 한다.

이상 구글 포토 그리고 경쟁관계에 있는 클라우드 기반의 포토 서비스에 대해서 살펴봤다. 구글 포토 서비스로 인해서 기존의 서비스가 영향을 받을 것은 분명해 보인다. 플리커나 인스타그램의 경우에는 영향이 크지 않으리라고 본다. 하지만 드롭박스, 아이클라우드 그리고 아마존 포토는 기술적인 개선뿐 아니라 사용자의 이동도 숙제로 남게 되었다.

2014년을 보내며..

2014년이 벌써 사흘이 지났다. 2014년의 마지막은 아이들과의 일정으로 며칠이 지나서야 2014년도에 대한 글을 남겨본다. 올 한해는 이런 일들과 생각을 하면서 지냈다.

1. S모 대기업 프로젝트 유지보수
이 일은 작년에 시작해서 올해에도 계속 유지보수 하는 프로젝트이다. 프로젝트를 하면서, 사용하기 원하는 인증 방법에 대한 문제를 프로젝트 초기에 이슈화했지만, 사용하기 원하는 방법대로 진행을 했다. 결국 인증 방법을 변경하는 작업을 하고 있다.

2. 기존 서비스 유지보수
서비스하는 앱을 유지보수 했다. 서비스는 살아 움직이는 생명체이다 보니 유지보수는 필수이다. 이 작업을 하지 않으면 서서히 죽게 된다.

3. 윈도 애플리케이션 개발 중단
서비스하는 클라우드의 싱크 애플리케이션으로 윈도 애플리케션을 Webdav 프로토콜과 Fuse 파일 시스템으로 Dokan을 사용해서 개발했지만, 품질이 좋지 않았다. 결국, 실패했다. 이제 기존의 모바일 앱에서 사용하는 API를 사용하는 윈도 애플리케이션을 개발할 예정이다.

4. 지금까지 만들어낸 애플리케이션 품질 고민
지금까지 2011, 2012, 2013 그리고 2014년까지 개발한 애플리케이션의 품질에 대해서 안타까움이 생긴다. 이제 회사 분위기는 특정 애플리케이션이 중요하다는 이유로 다른 애플리케이션을 개선하는 작업을 원치 않는다. 개인적으로 서비스를 종료하지 않을 거라면 좋은 품질을 유지하기 위한 시간을 투자해야 한다고 생각한다. 특히 안드로이드 애플리케이션은 롤리팝에서 도입한 머터리얼 디자인을 적용하는 게 정말 필요해 보인다.

2015년의 목표는 두 개만 정했다.

1. 영어공부
매우 필요하다. 올해는 열심히 해보자.

2. 알고리즘 공부
일하다 보면 느끼는 거지만 기본이 부족하다.
그래서 올해 목표는 이 책의 1/2 정도를 이해하는 것이다. 이 책은 3판 까지 번역서가 나와 있지만, 내가 소장하고 있는 책은 2판이라서 2판을 열심히 공부해야 겠다.

그리고, 올해에는 많은 변화를 가져볼 생각이다.

오래된 PC의 수명을 연장해 보자

오래된 PC의 수명을 연장해보자. 32비트를 사용하는 PC의 수명을 몇 년 또는 그 이상을 사용하기 위한 내용이다. 필자가 사용하는 랩톱은 32비트를 사용하는 오래된 모델이다. 구체적으로 이 모델은 HP의 엘리트북 8440P 이다. 이 랩톱의 기본 사양은 HDD와 메모리 4G를 사용한다. 최근에 이 랩톱을 더 오래 사용하기 위해서 업그레이드하면서 생각나서 적어본다.

오래된 PC의 수명을 늘리기 위해서 하드웨어를 업그레이드하자.

1. 메모리를 충분히 늘리자.

– CPU가 32비트라서, 32비트의 OS를 사용하다 보니, 메모리 제한이 있다. 이런 제한은 PAE가 적용된 커널을 사용해서 해결할 수 있으니 보드가 허용하는 메모리를 최대한 추가하자.

2. HDD를 SSD로 교체하자.

– PC에서 가장 느린 부분인 HDD를 SSD로 교체하자. 이제 SSD의 가격이 많이 저렴해져서 HDD를 SSD로 교체하는 것이 좋겠다.

위에서 하드웨어를 업그레이드를했다면, 아래의 과정으로 운영체제를 업그레이드하자.

1. 윈도를 사용하고 있다면 32비트 윈도(Vista/7/8/8.1) 에서 4G 이상 메모리 사용하기를 참고해서 PAE를 적용해서 메모리를 충분히 활용하자. 리눅스 계열은 PAE가 적용된 커널 설치가 어렵지 않으니 찾아서 설치하면 된다.
2. SSD의 경우에는 Trim 기능이 필요하기 때문에, 윈도의 경우 7 이전에는 Trim용 툴을 설치해 줘야 한다. 윈도 8 이후부터는 Trim 기능이 내장되어 있다.

이 과정으로 32비트를 사용하는 오래된 PC는 5년 이상 더 사용할 수 있겠다.

2013년을 보내며..

2013년이 이틀이나 지났다. 2013년의 마지막을 프로젝트의 마감으로 바쁘게 지나다 보니, 2013년을 보낸 뒤에서야 2013년에 대한 내용을 남길 수 있다.

1. 잘 지내다.

말 그대로 잘 지내고 있다. 이제 미국생활이 2년을 넘기면서 어느 정도 적응이 됐다. 특히 나보다 가족들이 더 적응을 잘하는 것 같다.

2. 새로운 프로젝트의 진행

2.1 MiiPC 프로젝트에 들어가는 서버와 클라이언트(Media Server & Client)를 배포하다.
– 이 프로젝트는 플랫폼을 만들어서 배포하기 위한 회사의 큰 프로젝트의 하나로 안드로이드 OS의 포팅과 포팅된 안드로이드 OS 위에서 동작하는 서비스 개발을 하고 있다.
2.2 우리나라의 S모 대기업과 프로젝트를 진행하고 있다.
– 자세한 내용을 기술할 수는 없지만, 좋은 카운터파트를 만나서 좋게 진행하는 프로젝트이다.

3. 회사생활에 대한 회의감

한때나마 회사생활에 대한 회의감이 강하게 들었다. 꼭 미국이라는 나라에서 직장을 다녀서라기보다는 외부요인이 커서였다. 직장을 다니면서 늘 느끼는 거지만 강한 동기부여가 제일 중요하지 않나 한다. 이 느낌을 계기로 영어공부를 열심히 해 보려고 한다.

4. 새로운 책의 번역 참여

대략 2014년 초에 출간될 책 일부를 번역했다. 느낌상 많이 팔리지는 않겠지만 읽는 독자들에게 도움이 되고, 쓰레기 번역이라는 평가는 안 받았으면 좋겠다.

5. 라스베가스 여행

올해는 여름에 휴가를 가지 못해서, 크리스마스 시즌에 라스베가스로 여행을 했다. 미국에서 살면서 큰 기쁨중에 하나가 여행인 것 같다.

올해에 대한 반성으로..

– 책을 너무 안 읽었다. 책 좀 읽어야 겠당..
– 하지 않는 운동에 대한 아쉬움..

작년의 회고를 다시 읽어보니 달라진 게 별로 없지만, 올해는 영어공부에 시간을 투자해야 겠다. 결론은 작년 회고와 동일하게, 실리콘 밸리는 개발자의 천국이 아니라, 노력한 만큼 능력이 되는 만큼 좋은 결과를 내는 기회의 땅임을 다시 한번 생각하며..
내년도 열심히 해 보자..