본문 바로가기

전체 글

[엄씨생각] `C언어로 API 서버 개발, 생각보다 나쁘지 않아요' 글을 보고... 최근 재미있는 글을 봤다. C 언어로 모바일을 위한 API 서버를 만들었는데, 이에 대해 댓글의 토론이 가관이 아니다. 물귀신들이 들러 붙고 난리도 아니다. 아파치 모듈로 개발된 API 서버, 이음 베이론을 소개합니다. C언어로 API 서버 개발, 생각보다 나쁘지 않아요 글의 결론은 ‘모바일 API 서버를 C 언어로 만드니 성능이 좋네요’.. 이에 대항하는 물귀신들은 ‘나를 납득시킬만한 근거를 대라’, ‘C언어로 만들었다고 자랑질이냐’ 등등… 모든 사람이 경험도 다르고, 깊이도 다르니 글쓴이야 모든 눈높이에 맞춰 대응하기도 힘들겠다. 그냥 나는 내 생각대로 얘기하자면… 글쓴이가 모바일 API를 C언어로 만든 글은 필자가 보기에 자랑질도 아니고, 이런 사례를 만들었는데 놀랍더라.. 정도인 것 같은데, 글쓴.. 더보기
[Mac App] 프레젠테이션을 위한 앱 - DeskBoard 맥 앱스토어 다운로드 DeskBoard (유료) DeskBoard Free (무료) 프레젠테이션 앱 - DeskBoard 여러분의 성공적인 발표나 세미나를 위해 당신에게 더 집중할 수 있도록 DeskBoard 앱을 사용해 보세요. 여러분이 전달하고자 하는 메시지를 다양한 도형을 사용하여 청중들에게 정확하게 전달할 수 있어요. 그럼 청중들은 당신이 무엇을 강조하는지 쉽게 알 수 있답니다. DeskBoard 앱은 다음과 같은 분들이 사용하는 것을 권장합니다. ^_^ 1. 여러 사람 앞에 발표할 기회가 많은 분 프로는 항상 발표할 준비가 되어 있다고 해요. 발표할 때 필요한 것 중 하나가 바로 레이저 포인터랍니다. 레이저 포인터도 좋지만, 화면 측면에서 손으로 짚어서 강조하는 것이 감성적으로 더 좋다고 해요... 더보기
[Mac App] 자신있고 용감하게 눈팅하기 위한 앱 - 슈퍼 눈팅 (무료) 맥 앱스토어 다운로드 슈퍼 눈팅 (무료) 슈퍼 눈팅 (무료) 눈치 보지 말고 눈으로 팅하자… 눈팅!! 소셜 네트워킹을 하고 있는데 눈치 보인다면… 인터넷 쇼핑을 하고 있는데 눈치 보인다면… 이제 눈팅 하세요… 눈팅 ^_^ 주요 기능 인기 있는 웹사이트 목록 투명도를 조절할 수 있음 아이폰, 아이패드, 랩탑 중 원하는 디바이스 모드로 브라우징 v1.1 페이스북, 트위터 등 공유 기능 브라우저 캐시 및 쿠키 제거 기능 소소한 버그 수정 스크린샷 더보기
[퀴즈] 프로그래머를 위한 문제 #4 - 또라이 같은 C 언어 코드를 설명하라 재미있는 C 언어 문제 인터넷 RSS 피드를 구독해서 보다가 재미있는 C 언어 코드를 발견했다. 조금 난해하게 보이는 코드다. 이런 코드로 신입 개발자 면접 시험을 보면 재미있겠단 생각이 든다. 문제의 C 언어 코드는 다음과 같다. 소스 코드와 실행 결과가 전혀 매치가 안되는 이 또라이 같은 코드를 보고 순간 멈칫 할 것이다. 하지만 조금 귀 기울여 보면 말 되는 코드다. 이 링크를 클릭하면 즉시 컴파일 된 실행 결과도 함께 볼 수 있다. main() { int a,b,c; int count = 1; for (b = c = 10; a = "- FIGURE?, UMKC,XYZHello Folks,\ TFy!QJu ROo TNn(ROo)SLq SLq ULo+\ UHs UJq TNn*RPn/QPbEWS_JSW.. 더보기
[MAC] OSX 매버릭스에서 마운틴 라이언으로 다운그레이드 하기 OSX 매버릭스(maverics)에서 마운틴 라이언(mountain lion)으로 다운그레이드 해야 할 필요가 생겼다. 매버릭스 환경에서 OSX 1.8 SDK 버전으로 맥 앱을 개발하면 OSX 1.9(매버릭스)에서 잘 실행되지만, OSX 1.8(마운틴 라이언)에서 맥 앱이 crash가 발생하는 경우가 있다. crashing이 발생하는 경우의 대부분이 OSX SDK의 일부 obsulete 함수가 있는데, 이 함수를 사용하는 경우다. 이런 crashing 상태를 확인하기 위해 OSX 마운틴 라이언이 설치된 운영체제가 필요하다. 1. OSX 마운틴 라이언 다운로드 OSX 마운틴 라이언은 맥 앱스토어에서 유료로 판매된다. 이것을 다운로드 받고 응용 프로그램 폴더를 확인하면 찾을 수 있다. 2. 응용 프로그램 폴.. 더보기
[Gradle] Java 버전 업그레이드 후 Gradle 빌드 오류 Gradle 로컬 캐시로 인한 빌드 실패 얼마 전 회사에서 Java 버전을 Java 7 버전으로 업그레이드 했다. 이에 따라 JDK, Tomcat 7을 구성하고 언어 스팩을 @1.7 버전으로 설정한 후 다음과 같은 오류가 발생하였다. MCPOWERUMC:coupang powerumc$ ./gradlew FAILURE: Build failed with an exception. * What went wrong: A problem occurred configuring root project 'coupang'. > Could not resolve all dependencies for configuration ':classpath'. > Timeout waiting to lock artifact cache (/U.. 더보기
[Objective-C] OSX 매버릭스(Mavericks) 업데이트 후 개발 중인 앱이 정상 작동하지 않는다면 매버릭스 업데이트 후 개발 중인 맥 앱에서 발생하는 문제 OSX 매버릭스로 업데이트한 후 XCode로 개발 중인 유틸리티 프로그램의 일부 기능이 작동하지 않는 현상이 발생한다. 원래 Alpha 버전으로 곧 배포할 예정이었는데, 이 문제로 배포가 늦어질 것 같다. 문제는 Objective-C와 Cocoa를 사용하여 전역 마우스 및 키보드 후킹(hook global mouse and keyboard event)을 사용하는 코드가 있는데, 그 중 키보드 이벤트만 캡춰링(capturing)할 수 없는 현상이 발생한다. 해결 방법 의외로 해결 방법은 간단하다. 먼저 OSX 매버릭스에서 변경된 보안 사항에 대해서 알 필요가 있다. 기술적인 내용은 아니므로 쉬엄쉬엄 다음의 글을 참고하기 바란다. OS X 10.9 매.. 더보기
[IntelliJ] Tomcat 구동 오류 해결 IntelliJ 배포 오류 Gradle로 구성된 프로젝트가 여러개 있는데, 그 중 하나만 IntelliJ에서 제대로 인식하는데 실패한 적이 있다. Tomcat으로 올바로 구동이 되어야 하는데, 배포가 되었다고만 나오고 Tomcat Context에 로드되지 않는 현상이 발생한다. 관련된 오류를 검색해 보았다. 하지만 전혀 다른 문제의 답변이었다. Artifact XXX:war exploded: Server is not connected. Deploy is not available. 그러다가 Modules 구성을 살펴보니 여기에 문제가 있었다. 일전에 우리팀 루피님께서 Spring 구성이 잘 안되었다고 봐준적이 있는데, 어찌어찌 시간이 없어 이제서야 다시 살펴보게 되었다. 아래는 올바른 모듈의 Spring .. 더보기
[마이크로소프트의 몰락] .NET 개발자가 .NET 플랫폼을 떠나는 이유 .NET 플랫폼이 나오고 십 여년 동안 마이크로소프트(Microsoft)는 .NET 플랫폼 시장을 개척하고 활성화 하기 위해 많은 투자를 아끼지 않았다. 많은 사람들이 주저 없이 .NET 개발에 뛰어 들었고, 비주얼 스튜디오(Visual Studio) 편리한 개발 도구는 .NET 플랫폼 개발에 필수 도구가 되었다. 하지만, 이제 한 때 과거의 이야기가 되어가고 있다. .NET은 새로 익히기 꺼려지는 플랫폼 중 하나가 되었고, 사회에 진출하는 새로운 .NET 개발자는 더 이상 예전처럼 양성 되지 않고 있다. 여기에 근거하는 사실을 매우 구체적으로 적고 싶으나 단순히 구체적인 한 두 가지의 문제라기 보다 복합적인 문제이므로 이를 읽는 독자는 넓은 시야로 가볍게 읽어주길 바란다. [출처] 링크 그리고 본문에 .. 더보기
[Ruby] Ruby 컴파일 및 설치 Ruby 컴파일 및 설치 최신 rails를 설치하려면 ruby 1.8.3 버전보다 높아야 한다. 그러므로 git 저장소에서 현재 개발 버전인 trunk 브랜치를 받아야 하는데, 필자의 경우는 ruby_2_0_0 버전을 fetching 하였다. 필자는 이런 저런 실험을 하는 것을 좋아해서 소스 코드를 직접 컴파일해서 사용하는 방법을 선호한다. 대부분 컴파일 순서나 방식은 대체로 비슷하다. [1] 컴파일 환경은 MacOS. $ git clone https://github.com/ruby/ruby.git $ git checkout origin/ruby_2_0_0 컴파일하기 위해 autoconf 외 몇 가지가 설치되어 있어야 한다. $ sudo port install autoconf gdbm openssl au.. 더보기
[GIT] 외부 모듈 추가/제거, 나중에 추가된 submodule deinit 명령 개요 Git을 이용하여 외부 모듈을 참조하려면 git submodule 명령을 이용해서 외부 모듈을 clone할 수 있다. git submodule 명령은 git clone과 달리 같은 작업 디렉토리(Working Directory)에 여러 모듈을 추가할 수 있는 장점이 있다. 샘플 코드 추가 (연습하기) 본 아티클에서 사용하는 샘플 코드는 필자가 개발한 Umc.Core의 의존성 주입(DI, Dependency Injection), 역전 제어(IoC, Inversion of Control), 관점 지향 프로그래밍(AOP, Aspect-Oriented Programming) 이다. submodule를 추가하고 제거하는 과정을 이해하기 쉽도록 Umc.Core 프로젝트를 사용한다. $ git clone htt.. 더보기
[Objective-C] 아름다움을 추구하는 오브젝티브-C 2/2 - 객체지향 반 객체지향(Half-of-OOP) 가장 먼저 명심하자. 오브젝티브-C는 C언어의 슈퍼셋(Super Set)이고 C++의 객체 지향과는 거리가 멀다. 오브젝티브-C 언어는 마치 객체지향 프로그래밍(OOP, Object-Oriented Programming) 처럼 보이지만 객체지향 언어가 아니다. 그렇다고 완전히 함수형 언어도 아니다. 하지만, 오브젝티브-C는 객체지향의 가장 대표적인 특징인 상속(Inheritence)이 가능하고 인터페이스 구현이 가능하다. ANSI-C 입장에서 바라보면 상속과 인터페이스 구현은 함수형 언어로서 가당치도 않은 언어적 특성임에 틀림 없을 것이다. (이 문장의 인터페이스는 오브젝티브-C의 @protocol을 의미함.) 물론, C 언어에서도 구조체(struct), 포인터(poi.. 더보기
[Objective-C] 아름다움을 추구하는 오브젝티브-C 언어 1/ 2- 언어적 특성 아름답고 자연스러운 오브젝티브-C 필자가 오브젝티브-C(Objective-C)를 접한 것은 올해 초, 갑갑한 문법적인 표현(Syntax)을 보니 코드를 보기가 싫어졌었다. 하지만 많은 iOS 개발자가 생겨나고 맥킨토시(Macintosh)를 쓰면서 자연스럽게 맥용 응용 프로그램에 관심이 생기기 시작했다. 처음에는 리눅스와 대부분의 운영체제를 지원하는 Qt(큐티) 프레임워크를 봐오다가, 코코아(Cocoa) 를 알게 되면서 맥킨토시에 가장 아름다운 UI 프레임워크인 것을 느끼게 되었다고 할까. 오브젝티브-C는 매우 깊은 역사가 있다. 이 역사에 대해서는 다음의 위키피디아(Wikipedia) 를 참고하기 바란다. 필자도 이 언어에 대한 깊은 역사를 이렇다 할 만큼 자신 있게 설명해 주기 힘들 것 같다. .. 생.. 더보기
[빅데이터] R / R-Studio 작업 환경 구성 R-Studio 입문 갑자기 뭔가 분석을 하고 싶었다. 하나의 큰 용량이 아닌 작고 많은 데이터를 분석을 하고자 했다. 이에 가장 적합한 도구는 무엇일까?빅데이터 트랜드를 대표하는 하둡(Hadoop)의 대용량 분산 파일 시스템(Distributed File System)과 맵리듀스(Map Reduce)는 하나의 큰 용량을 처리하는 데 적합한 플랫폼이다. 왜냐하면 하둡의 분산 파일 시스템은 읽기에 적합하며 추가하여 쓰기 작업을 하기에 매우 비효율 적이다.맵리듀스를 간단히 설명하면 맵(Map)은 매핑하는 작업, 즉 키 값이 되고, 리듀스(Reduce)는 처리 작업, 즉 키의 값(Value) 이 되겠다. 빅데이터에 접근하기에 앞서 잘 정제된 데이터가 필요하다. 하둡은 정제된 데이터를 만들기에 적합하다. 물론 .. 더보기
[자연] 바다에 사는 포유류와 어류를 구분하는 방법 바다에 사는 포유류와 어류를 구분하는 방법 개요 필자는 여러 가지 과학에 관심이 많다. 특히 우주 과학에 관심이 많은데, 중학교 때 아인슈타인의 ‘상대성 이론’을 읽으면서 상상을 초월하는 시공간에 많은 의문을 품게 되었다. 그래서 가끔 머릿속으로 ‘저 먼 우주에서 일어나는 일’이나 ‘다차원 우주가 가능할까?’ 라는 도무지 쓸 때 없는 질문을 스스로 하기도 한다. ㅋㅋㅋ 다큐멘터리를 보는 것을 매우 좋아하는데, 바닷속에 사는 어류와 바다를 품에 안고 사는 포유류 등을 보면서 이런 의문이 들었다. 바다에서 사는 상어와/ 고래를 어떻게 구분할 수 있지? 바닷속에 사는 고래와/ 바다표범이랑 어떤 연관성이 있지? 위 질문에 대해 드디어 공통된 패턴을 찾을 수 있었다. 그다지 일상 생활에 중요하지 않은 질문이겠지만.. 더보기
SharePoint 데이터베이스로 부터 모든 문서를 백업 및 추출하기 SharePoint 데이터베이스로 부터 모든 문서를 백업 및 추출하기 개요 필자는 SharePoint 서버 제품을 이용해서 문서를 관리해 왔다. SharePoint를 이용하면 수 천개의 문서를 종류별로 분류하고 데이터베이스화할 수 있다. 문서의 종류와 문서의 내용도 인덱싱(indexing)되므로 문서 내용과 다양한 메타 데이터로 문서를 검색할 수 있다는 점 때문에 많은 문서를 쉽게 관리하고 검색할 수 있다는 장점이 있다. SharePoint의 장점을 나열하지면 많겠지만, 모바일 트랜드 시대에서는 에버노트가 최고이지 쉽다. 필자의 에버노트와 DropBox는 땡전 한푼 안들이고 프리미엄 서비스를 받고 있는데, 필자가 문서를 사용하고 관리하는 패턴에선 SharePoint 보다는 에버노트와 DropBox 조합이.. 더보기
[MonoDevelop] MonoDevelop 한글 버전 Github 병합 완료 MonoDevelop 한글판이 곧 업데이트 됩니다.다운로드 : http://monodevelop.co.kr MonoDevelop 통합 개발툴의 한글화를 위해 Github에 Pull Request로 게시하였고, 몇 일 후 특별한 문제 없이 MonoDevelop Master 브랜치에 병합이 완료 되었습니다. [Ide] Translate to Korean language 차후 공식적인 배포에 의해 Xamarin Studio, MonoDevelop, MonoDevelop for Unity 와 같은 개발툴에서 한글 버전을 만나뵐 수 있을 것 같네요. GitHub MonoDevelop Korean Repository 오탈자 및 버그 신고 Xamarin의 공식적인 버그 신고는 https://bugzilla.xamar.. 더보기
[MonoDevelop] MonoDevelop 통합 개발 도구를 한글화 진행 중입니다. MonoDevelop for Korean version..! MonoDevelop은 ECMA 표준을 가장 완벽하게 구현한 Mono 플랫폼을 개발하기 위한 통합 개발 도구 입니다. 2011년경, Xamarin 기업에 인수합병 되면서 모바일에 강력하게 대응되는 플랫폼으로 한 단계 진화하였습니다. iOS, Android 외에 콘솔 게임 개발도 지원하게 되었습니다. https://github.com/powerumc/monodevelop_korean 현재 진행 사항입니다. POSIX에서 재정한 Gettext API에 대응되는 .po 한글화 작업이 거의 완료가 되었습니다. 한글을 지원하기 위해 MonoDevelop 내부 코드가 변경되었습니다. 한글화에 따른 알 수 없는 크래시가 발생하여 디버깅 중입니다. 다음 주 .. 더보기
[JavaScript] JS-Lambda 자바스크립트 라이브러리를 공개합니다. JS-Lambda 자바스크립트 라이브러리를 공개합니다. JavaScript Array Extensions 자바스크립트 오픈 소스를 개발한 데 이어 JS-Lambda 를 LGPL 라이센스로 공개합니다. JavaScript 에서 람다 표현식(Lambda Expression)을 사용할 수 있도록 만든 라이브러리 입니다. 자세한 내용은 아래의 소스 코드를 참고 하시면 됩니다. Github: https://github.com/powerumc/js-lambda JS Lambda It is possible lambda expression that can be used JavaScript. you just got a function F(); Simple Examples // Before function func(a,b.. 더보기
[VS2013] VSGesture for Visual Studio 2013 Preview 배포 완료 VSGesture for Visual Studio 2013 Preview 배포 완료 Visual Studio 2013 Preview 버전 배포 완료 기능적으로 향상된 것은 없습니다. 이번 버전의 Visual Studio 2013의 Extension Schema가 골때리게 바껴서 ;; Visual Studio 2013의 Tools -> Extension Manager 에서 다운로드 받으실 수 있습니다. (검색: vsgesture) Download : http://visualstudiogallery.msdn.microsoft.com/e03c91ff-e20d–4dcc–822b–172a68c40f5b Version 12.0 [2013/07/17] Support Visual Studio 2013 Preview V.. 더보기