2014년 3월 26일 수요일

[Objectiv-C] @property, @synthesize, getter, setter 그리고 _var의 사용법

_var의 사용법

@interface ViewController
@property (NSString *) aaa; //public
@end

===========================

@interface ViewController ()
@property (NSString *) bbb; //private

@implement ViewController
@synthesize aaa = _aaa; //기본 필요없으나 setter, getter를 재정의 할때는 필요
- (void)setAaa:(NSString *)aaa
{
    _aaa = aaa; 
    //self.aaa는 사용말자. self.aaa는 setter 통해 접근할경우 사용되므로
    //setter에서 다시 setter를 호출하는 형태가 되어버림.

}

- (NSString *)aaa
{
    return _aaa;
    //self.aaa는 역시 사용말자. self.aaa는 getter를 통해 접근할경우 사용되므로
    //getter에서 다시 getter를 호출하는 형태가 되어버림.
}

// 클래스 내부에서 _aaa로 접근할경우 setter 또는 getter는 호출되지 않는다.
// 클래스 내부에서 self.aaa로 접근할경우 setter 또는 getter가 호출된다.
// 따라서 @property에 접근할 때 setter, getter를 통해서 접근할경우 self.var를 사용하고 그럴 필요가 없을 경우엔 _var를 사용한다. getter, setter이외에서는 특별한 이유가 없는 한 self.var를 사용하자.
@end



2014년 3월 11일 화요일

[JAVA] Convert dicom to jpg JAVA

Using dcm4che
https://compilr.com/samucs/dicom2jpeg

2014년 3월 3일 월요일

[iOS] iOS에서 DCMTK(C++) 컴파일

http://www.cppblog.com/kesalin/archive/2011/11/10/dcmtk_ios.html

2014년 2월 13일 목요일

이클립스에서 웹프로젝트 복사해서 새프로젝트 만들기

- 프로젝트를 선택 후 복사
- 붙여넣기
- \project_name\.settings\org.eclipse.wst.common.component 에서 프로젝트명 변경

<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
    <wb-module deploy-name="new_project_name">
        <wb-resource deploy-path="/" source-path="/WebContent" tag="defaultRootSource"/>
        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src"/>
        <wb-resource deploy-path="/WEB-INF/classes" source-path="/resources"/>
        <property name="java-output-path" value="/new_project_name/build/classes"/>
        <property name="context-root" value="new_project_name"/>
    </wb-module>
</project-modules>

- 다음 파일도 일단 확인
\Projects\workspace\new_project_name\.project
<projectDescription>
<name>new_project_name</name>
.....
</projectDescription>


2014년 1월 21일 화요일

[iOS] XCode 에서 앱 이름 변경


  • 전에 된것 같은데 안되는 케이스

1. Project 선택 > Target 선택 > Build Setting 선택 후 검색창에 'product name' 입력 한 후
2. Target 선택
3. Build Setting 선택
4. 검색창에 'product name' 입력
5. Product Name 에서 $(TARGET_NAME)을 새로운 이름으로 변경
6. 끝

...라는데 안되네.

"could not inspect the application package name" 메세지 표시되고 디바이스에 설치 안됨.


  • 되는 케이스
1. xxx-Info.plist 선택
2. Bundle display name 선택 
3. 새로운 이름으로 변경
4. 끝


*** 그리고 개발자센터에서 앱 등록 정보에서 이름 변경


2013년 12월 23일 월요일

centos svn 서버 구축

centos svn 서버 구축

1. 설치
# yum install -y subversion

2. 폴더 생성 및 Repository 생성
# mkdir /home/svn
# cd /home/svn
# svnadmin create --fs-type fsfs {repository name}
# chmod -R g+w {repository name}

3. 설정하기
# cd /home/svn/{저장소 이름}/conf
conf 폴더 안에 보면 설정파일이 세 개 있다..
1)
# vi svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = passwd
realm = {Repository Group Name}
2)
# vi passwd
[users]
{아이디} = {비번}  
3)
# vi authz
[{저장소 이름}:/]
{아이디} = rw

4.방화벽 설정
# vi /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 3690 -j ACCEPT
# service iptables restart
* 방화벽 포트 설정이 에러가 날 경우 리눅스 자체의 setup 커맨드를 이용해서 방화벽 3609(tcp, upd)를 열어줄것

5. 환경파일설정
svnserve를 서비스로 구동시키려면 아래와 같이 환경설정파일을 추가해줘야한다
# vi /etc/sysconfig/svnserve
위 경로에 파일이 존재하지 않을텐데 vi편집기로 파일을 생성해서 아래의 내용저장
OPTIONS="--threads --root /{repository 디렉토리}"

6.서버 기동
# svnserve -d -r /home/svn/ --listen-port 3690
# killall svnserve 

7. 기본 폴더 생성
# export SVN_EDITOR=/usr/bin/vim
# svn mkdir svn://{Server domain or IP}/{저장소 이름}/trunk
* 위 명령어 치면 에디터가 뜨는데 :wq!  명령으로 저장후 닫은후 계속(C)를 선택하면 된다.
* trunk 생성 시 "Store password unencrypted (yes/no)?" 에서 yes 또는 예(리눅스 인코딩이 한글의 경우)를 입력
# svn mkdir svn://{Server domain or IP}/{저장소 이름}/branches
# svn mkdir svn://{Server domain or IP}/{저장소 이름}/tags
#기본폴더 확인
svn list svn://{Server domain or IP}/{저장소 이름}
branches/
tags/
trunk/

8. 소스 코드 import
8.1 이클립스에서 작업
이클립스에서 이미 생성된 프로젝트를 share project 메뉴를 통해 trunk에 하면 root에 커밋이 되버린다. 따라서 svn repositories 에서 위의 작업으로 생성된 리파지토리를 추가 trunk선택 후 메뉴에서 import 한다. trunk에서 checkout 할것.

8.2 터미널에서 작업
svn server 로그아웃 후 로컬 작업
# svn import -m "initial import" ./project_folder/ svn://[user_name]@[server_name]/[repository_path]/project_name/trunk/
* branches, tags는 클라이언트에서 필요할때 커밋하는게 편함

추가의 경우
2, 3, 7, 8 만 작업할면 된다


==================== 참고 ==============================
아래 두 사이트를 비교해 가서 설정 할 것



 ** 방화벽 포트 설정이 에러가 날 경우 setup을 이용해서 방화벽 3609(tcp, upd)를 열어줄것
 ** trunk 생성 시 "Store password unencrypted (yes/no)?" 에서 yes 또는 예(리눅스 인코딩이 한글의 경우)를 입력

svn 구축 후 trunk, branches, tags에 소스 import(branches와 tags는 필요에 따라)

기본적으로 trunk에서 작업하고 tag 또는 branches를 사용하고 싶을 때는 UI툴 보다는 터미널에서 svn copy로 작업하는게 빠르겠다.

==================================================
구축 후 새로운 프로젝트(=repository)를 추가 할 경우
1. repository 생성
2. conf 파일 수정
3. trunk, branches, tags폴더 생성
4. 로컬 프로젝트를 서버의 trunk로 import
svn import -m “new import" ./test_app/ svn://username@xxx.xxx.xxx.xxx/project_name/trunk/
5. 서버의 trunk에서 tags, branches로 카피
6. IDE에서 svn tool로 checkout(프로젝트 하나당 리포지토리하나)
7. 끝

2013년 11월 18일 월요일

Remove my project from SVN source control

출처

http://iphonedevsdk.com/forum/iphone-sdk-tools-utilities/96459-remove-my-project-from-svn-source-control.html

1. cd to the top level project directory in Terminal
2. find ./ -name .svn -exec rm -rf {} \;