프로그래밍 261

XCode (4.2)에서 C++과 Objective-C 를 동시에 쓰기

이 간단한 걸 기억 못해서 어제 종일 끙끙댔다. 그래서 기록을 남겨본다 XCode는 C++ 과 Objective-C 를 동시에 쓸 수 있.. 쓸 수 있을수도 있도록 지원하고 있다. 그래서 나는 중요한 클래스는 그냥 C++ 로 만들고 UI와 관련된 부분만 Objective-C 로 만들려고 생각하고 있다. 그런데, 오랜만에 해보니 이게 잘 안되는거다. 블로그 검색해도 잘 나오질 않고. 방법은 간단하다. 1. C++클래스를 사용하는 Objective-C 파일의 확장자를 .m 에서 .mm 으로 바꿔준다. .cpp 확장자를 .mm으로 바꾸는 게 아니라, .m 파일의 확장자를 .mm으로 바꾸는거다. 이렇게만 해도 되는데, 만약 이래도 안되면, 2. .cpp 파일의 속성을 아래와 같이, "Objective-C++ s..

혼자 버그라고 오해한 XCode 4.2의 컴파일 에러

오늘 그렇잖아도 시간도 별로 없었는데, 짬날때마다 이것 때문에 삽질 좀 했슴미다. 너무나도 단순한 문제인데 컴파일이 안되어 이거이 XCode 4.2의 버그라고 생각했는데, 역시나 제 잘못이었슴미다. 진짜 간단한, Apple에서 제공한 tutorial을 따라하는 중이었는데, #import @interface HelloView : NSView { NSString * m_pstrText; // 여기서 보여줄 문자열 } -(void) test; @end 위와 같은 클래스를 정의해 놓고, 외부에서 test() 메소드를 호출하겠다고만 하면 "AutoreleasePool count reference issue" 라고 시작하는, 암튼 저런 함수가 없다 라는 말도 안되는 컴파일 에러 메시지가 나온다. clean을 아무리..

자바, iOS의 Object 와 id 에 대해

오랜만에 프로그래밍 관련 글을 쓰는군요. 자바의 Object 나 iOS의 id에 대해 궁금해 하시는 분이 계셔서 글을 쓰게 되었습니다. ^^; 자바의 Object에 대해 먼저 설명하겠습니다. Object는 클래스다. 자바의 Object는 클래스입니다. 자바에는 무수히 많은 클래스가 있습니다. 거의 모든 걸 다 클래스로 만들어 놓았죠. 그래서 자바를 만든 제임스 고슬링의 별명이 "Every thing is classes" 라고 합니다. 이 말은 굳이 클래스로 만들지 않아도 될 것을 클래스로 다 만들어서 속도저하를 일으키고 있다는 걸 빗대고 있는 거라 생각되네요. 암튼. 자바에 무수히 많은 클래스가 있는데, 그 클래스들마다 공통으로, 반드시, 꼭 구현되어야 하는 기능들이 있습니다. 자동차를 예를 들어 보죠...

iBatis 삽질의 추억

아. iBatis. 오늘 transaction을 명시적으로 적용한 (SqlMapClient.startTransaction() ) 함수를 하나 맹글었는데, 사실 그동안 iBatis에서 transaction을 쓸 일이 별로 없었다규. 이거이 쓰고 나면 딱 커넥션풀 갯수만큼만 잘 되고 그 다음부터는 커넥션풀을 얻어오지 못했다는 타임아웃 에러가 나고 먹통이 되어버린다. 밥먹고 와서 삽질한 결과, 드뎌 알아냈다. iBatis에서 startTransaction을 했거든 commitTransaction만 하지 말고 꼭 endTransaction도 하라는 것. 이런 형태면 된다. try { SqlMapClient.startTransaction(); ..... SqlMapClient.commitTransaction();..

iBatis에서 iterate 쓰기 : 여러개의 or이나 in 안에 여러 개의 데이터 넣기

자바에서는 이렇게 한다. ArrayList arCapacity = new ArrayList(); String[] arResult = strCapacity.trim().split(","); // 검색어를 목록에 담는다. for (int i = 0; i < arResult.length; i++) arCapacity.add(arResult[i]); List list; try { list = m_client.queryForList("searchMemberCapacity", arCapacity); } catch(SQLException ex) { ex.printStackTrace(); return ""; } 이걸 iBatis XML에서는 select member.EMP_NO from member where and ..

HumanChecker를 만들다.

이름이 이게 맞는지 모르겠는데, 회원가입하거나 할 때 로봇이 가입하는건 아닌지 확인하기 위해 문자나 숫자를 써 놓고 로봇이면 썩 물러가고 사람이면 입력해봐! 하는 체커가 있다. 오늘 그거 맹글었다. 팀장님 홈페이지는 아무나 글을 쓸 수 있는 구조인데, 자꾸 누가 비아그라 사라고 스팸글을 올려서(10분 간격으로 올라오는 걸 보면 분명 로봇이다.) 팀장님이 계속 지우시다가 짜증나서 함 만들어 보라고 하신거다. 꽤 간단하게, 금방 만들었다. 하긴 뭐 하는 게 없다. 이 플래시는 외부(자바스크립트)와 연동하기 위한 딱 하나의 함수를 가지고 있다. int getResult() 함수가 그것. 만약 제시된 문자와 사용자 입력이 같으면 1을 리턴하고, 그렇지 않으면 0을 리턴한다. ㅋ. 초간단. 예를 들면 다음과 같이..

프로그래밍 2010.07.08

오라클 10g 리스너 포트번호 바꾸기.

아 쉬울 줄 알았는데, 열라 어렵다. 웹에도 한큐에 딱 설명해 놓은 게 없어서 1시간 넘게 삽질했다. 1521이 nCube License Manager라는 놈이랑 포트가 겹친다. 자꾸 리스너가 죽어서 포트를 바꾸기로 했다. 포트가 겹치는 게 원인인지는 좀 더 있어보면 알겠지. 우리는 50001번으로 바꾸기로 했다. 아 이거 내가 자바로 서버만들 때 자주 쓰는 포트번혼데. ㅋ 1. 리스너를 죽인다. lsnrctl stop 2. 리스너를 수정해서 listener.ora SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /home/oracle/oracle/product/10.2.0/db_2) (PROGRAM = ..

프로그래밍 2010.05.20

JBOSS 5 + maven에서 MSSQL 연동하기

아.. 이거이 또한 삽질의 연속이었다. 도대체 JBOSS5 에서 MSSQL 연동하는 사람이 내가 처음인거냐? 여튼. pom.xml에 다음과 같이 dependency를 추가해 준다. com.microsoft.sqlserver.jdbc sqljdbc 2.0 잘 아는 것처럼 이것도 또한 라이센스 문제로 자동으로 maven이 다운로드해 주지 않는다. sqljdbc.jar와 sqljdbc4.jar 파일을 다운로드해서 특정 폴더에 저장해 놓는다. 둘의 차이는 알아서 찾아보시길. 또 다운로드 받을 수 있는 곳도 알아서 찾아보시길. 파일명까지 알려줬으니 금방 찾을거다. 내 경우 /home/rnd/repo 라는 디렉토리 밑에 넣어주었다. 저렇게만 해주고 mvn package를 하면 당연히 에러가 난다. maven에게 저..

프로그래밍 2010.03.15