본문 바로가기

Development

IOException: Cannot run program "javac": java.io.IOException: error=2, No such file or directory EC2에서 PlayFramework 2.3.8버전을 시험삼아 실행해보려고 시도를 하니 IOException: Cannot run program "javac": java.io.IOException: error=2, No such file or directory와 같은 오류가 발생하였다. 원인은 AWS에서 openJDK를 설치하였는데 javac를 지원하지 않는게 문제였다. 본인은 openjdk 1.8.0을 사용해서 yum을 통해 1.8.0-openjdk-devel 추가적으로 설치하니 정상적으로 작동이 되었다. 더보기
Git 명령어 정리 Command Line으로 Git 사용해야되는 일이 생겨서 검색하던중 정리가 잘되어진 문서가 있어서 글을 게시하였다. 원본글 : http://blog.outsider.ne.kr/572 환경 설정 git config --global --list 현재 설정정보 조회할 수 있습니다. --global옵션은 전역설정에 대한 옵션이며 현재 프로젝트에만 적용할때는 주지 않습니다. git config --global user.name "사용자명" 사용자명을 등록합니다 (필수) git config --global user.email "이메일주소" 이메일 주소를 등록합니다. (필수) git config --global color.ui “auto” 터미널에 표시되는 메시지에 칼라를 표시해줌 기본적인 명령어 git --ver.. 더보기
Mac OS 업데이트 후 Homebrew가 동작하지 않을때... /usr/local/bin/brew: /usr/local/Library/brew.rb: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby: bad interpreter: No such file or directory/usr/local/bin/brew: line 21: /usr/local/Library/brew.rb: Undefined error: 0 터미널에서 Brew 명령어 입력시 위와 같은 에러가 발생하였다. 해결하는 방법은... cd System/Library/Frameworks/Ruby.framework/Versions/sudo ln -s Current 1.8brew updatesudo rm 1.8 이렇게 하면 된다~! 더보기
UIPasteBoard 사용방법 기본적으로 UIPasteboard 어플리케이션에서 공유해서 사용이 가능하다. 몇가지 사용방법을 소개하자면.. UIPasteboard *appPasteBoard = [UIPasteboard generalPasteboard]; appPasteBoard.persistent = YES; [appPasteBoard setString:@"STRING TO COPY"]; UIPasteboard *appPasteBoard = [UIPasteboard generalPasteboard]; yourTextField.text = [appPasteBoard string]; UIPasteboard *appPasteBoard = [UIPasteboard pasteboardWithName:@"CopyPaste" create:YES].. 더보기
LLDB Quick Start Guide LLDB Quick Guide이다.~! po 명령어 하나면... 쉽게 디버깅이 가능하고 조금더 고급 명령어를 알고 싶다면 여기로 이동하자 더보기
Particle 효과 (CAEmitterLayer, CAEmitterCell) 게임 엔진에서는 Particle 효과가 다양하지만 iOS 네이티브에서 Particle 효과를 쓰기 위해 게임엔진을 가져오는 것은 조금은 부담이 된다. 그래서 인지 iOS에서 전용 Particle 효과 클래스를 제공해준다. 주요코드 NSString *EMITTER_CELL_ID = @"cell"; NSString *EMITTER_CELL_PATH = @"emitterCells.cell.birthRate"; m_emitterLayer = [CAEmitterLayer layer]; [m_emitterLayer setBounds:self.bounds]; [m_emitterLayer setPosition:CGPointMake(self.bounds.size.width/2, self.bounds.size.height.. 더보기
Java의 바이트코드 실행 방식 자바 바이트코드는 기계가 바로 실행할 수 있는 언어보다는 비교적 인간이 보기 편한 형태로 기술됐다. 그래서 실행 엔진은 이와 같은 바이트코드를 실제로 JVM 내부에서 기계가 바로 실행할 수 있는 형태로 변경한다. - 인터프리터 : 바이트코드 명령어를 하나씩 읽어서 해석하고 실행한다. 하나하나의 해석은 빠른 대신 인터프리팅 결과의 실행은 느리다는 단점이 있다. 즉, 바이트코드라는 '언어'는 기본적으로 인터프리터 방식으로 동작한다. - JIT(just-in-time) 컴파일러 : 인터프리터의 단점을 보완하기 위해 도입된 것이 JIT 컴파일러다. 인터프리터 방식으로 실행하다가 적절한 시점에 바이트코드 전체를 네이티브 코드로 변경하고, 이후에는 해당 메서드를 네이티브 코드로 직접 실행하는 방식이다. 네이티브 코.. 더보기
[Play Framework] 2.3버전 설치 및 프로젝트 생성 오랜만에 Play Framework를 한번 해보려고 공식 홈페이지에 들어갔다. https://www.playframework.com 확인해보니 2.3.8 버전까지 업데이트를 하였다.이제 설치할 준비를 하고..... 파일은 다운받으니.. 아래와 같이 3개의 파일만 있다. activactor를 실행시키니 알아서 뭔가를 많이 다운받는다.... 그리고 아래와 같이 Play Server가 실행이 되고........ 웹 페이지를 통해 activactor라는 사이트?? 에 접속하고 프로젝트 생성부터 다 해준다.!!! 간단하게 프로젝트를 생성하고 빨간색 부분을 클릭하면 아래와 같은 버튼을 볼 수 있게 되는데 IDE변환까지 알아서 다해준다..!!! 정말 개발하기 편해졌다. 더보기
iOS Touch ID Login iOS에서 Touch ID 하는 코드이다 사용하기 간단하다.~! NSString *loginDialogMessage = @"TouchID Login"; LAContext *context = [[LAContext alloc] init]; NSError *authError = nil; if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&authError]) { [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:loginDialogMessage reply:^(BOOL success, NSError *er.. 더보기
Xcode에서 ineligible device로 될떄.... iOS 8.3버전과 Xcode 6.3 업데이트 이후 갑자기 ineligible device라고 하면서 선택이 되지 않았다..... 버그인가?... 싶기도하고... (http://zachwaugh.me/posts/fixing-xcode-6-3-beta/) 해결 방법은... 아래와 같이 선택하면 된다.!! 더보기