기존에 개인 업무용 iMac에 jenkins와 SVN 서버를 구축하고 사용을 하고 있었다.

그런데 개발용으로 사용하는 iMac에 서버를 구축해놓으니 리소스가 너무 후달려 아무래도

제대로 사용하기가 어려웠다.


마침 이번에 철수하는 인력이 사용하던 iMac을 그대로 사용할 수 있게 되어 서버로 사용하기로 했다.

그래서 개발용 iMac에 있던 각종 서버들을 서버용 iMac으로 옮기기로 했다.

(사실 iOS만 개발할 것 같으면 OSX Server를 사용했을텐데 안드로이드도 함께 개발하다보니

 역시 jenkins가 가장 나은 선택인 것같다.)


안드로이드 설정이야 별 어려움 없이 진행했다. 추가로 N’SIQ Collector 플러그인까지 설치하고,

(추후 PMD까지 설치 예정)


문제는 iOS였다...

개발 PC에 구축만 해놓고 한동안 사용을 안했는데 그 사이에 관리해야 할 앱이 하나 추가된 것이다.

문제가 되는 상황은 기존 앱은 하이브리드 앱으로 외부 라이브러리 문제로 Xcode 5.1.1에 SDK를

6.0밖에 사용 못한다는 것이다. 그리고 후에 추가된 앱은 네이티브로 개발된 앱으로 최신 버전의

SDK를 사용 가능하다.


결국 각각 빌드 시 해당 프로젝트에 맞는 SDK를 이용해서 빌드해야 하는데 이 방법을 몰랐던 것이다.


우선 Xcode를 2개 이상 설치한 상황에서 디폴트 Xcode를 선택하는 명령어가 다음과 같다는 것은 알았다.


sudo xcode-select -s /Applications/Xcode.app

sudo xcode-select -s /Users/khiin/Applications/Xcode5.1.1.app 


jenkins 위키 페이지에도 이 내용은 언급되어있다.


https://wiki.jenkins-ci.org/display/JENKINS/Xcode+Plugin


이 곳에 보면 Xcode를 멀티로 설치하는 방법과 디폴트로 사용할 Xcode를 선택하는 방법

그리고 런타임 시 Xcode 버전을 선택하는 방법이라는 내용이 있다.


처음에는 런타임 시 Xcode 버전을 선택하는 방법만 사용하면 될 줄 알았다.

천만의 말씀 만만의 콩떡이었다...ㅠ.ㅠ


결과적으로는 위의 2가지 내용을 조합하는 것이 방법이었다.


잡설이 길어졌으니 이만 줄이고 본론으로 가자


jenkins에서 2개 이상의 Xcode 버전을 런타임시 선택적으로 사용하여 빌드하는 방법


*** 기본적으로 jenkins에서 Xcode 빌드 설정은 완료된 것으로 생각하고 설명한다. 기본적인 jenkins에서의 Xcode 플러그인 설정

방법이 필요하신 분은 아래 주소로...


http://mazdah.tistory.com/519


1. 당연히 2개 이상의 서로 다른 버전의 Xcode가 설치된 것을 전제로 한다.


2. jenkins에서 빌드 전에 환경을 설정해주기 위해 Environment Injector Plugin라는 플러그인을 설치해준다. 



3. 각각의 iOS 프로젝트로 이동하여 구성(설정 또는 config) 화면으로 이동한다.


4. 이름과 설명 밑에 나오는 가장 위에있는 선택 옵션을 보면  Prepare an environment for the run이라는 옵션이 추가되어있다. 체크하자


5. 디폴트 상태에서 Script Content에 다음과 같이 입력한다. (파일에 등록한 후 Script File Path를 지정해도 될 것으로 믿어 의심치 않는다...-.-)



6. 일단 jenkins 설정은 끝이다. 그런데 여기서 또하나의 문제가 발생한다. 바로 sudo 명령어...현재 나는 jenkins를 standalone 형태로

    사용 중인데 이렇게 해놓고 빌드하면 위의 스크립트 실행 후 jenkins 콘솔에 패스워드 입력 프롬프트가 떡하니 나타나서 멈춘 상태로

    있다.


7. 그래서 sudo를 패스워드 입력 없이 수행할 방법을 구글링...역시 없는 게 없는 구글...매우 위험한 방법이지만 내부에서만 사용하는 

   서버이니 한 번 사용해보기로 했다. 바로 sudores 파일 편집


    /etc/sudoers 파일을 편집한다. 강력하게 접근 권한 및 소유권이 지정되어있어 잘 편집이 안된다.

   우선 Finder로 파일을 찾아가서 사용 가능한 계정으로 읽기 쓰기 권한을 준 후 편집하였다. 물론 편집 후 권한은 원위치


   대략 다음과 같은 내용이 나오는 위치로 이동하여


   # Same thing without a password

 # %wheel        ALL=(ALL) NOPASSWD: ALL


  다음과 같은 내용을 추가해주었다.


  jenkins         ALL=(ALL) NOPASSWD: ALL


  의미는 jenkins 계정으로 모든 콘솔에서 모든 명령에 대해 sudo를 이용하여 처리할 때 패스워드를 입력받지 않아도 되는

  권한을 주는 것이다. 매우 위험해보인다...-.-


8. 여기까지 하면 5번 단계의 설정에 따라 런타임 시 각기 다른 Xcode 버전과 SDK 버전을 사용하여 빌드할 수 있게 된다.


요고하느라 하루 그냥 보냈다...ㅠ.ㅠ

'IT 이야기' 카테고리의 다른 글

[jenkins] jenkins에서 멀티 Xcode 사용 설정하기  (0) 2016.01.06
블로그 이미지

마즈다

이미 마흔을 넘어섰지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^

서브 프로젝트를 포함시킨 프로젝트를 Archive 하였더니 

Archive type이 iOS App Archive로 안나오고 Generic Xcode Archive로만 나오는 것이었다.


테스트용으로 앱을 배포하려면 iOS App Archive로 되어야 하는데…


구글링을 통해 얻은 답은 Project를 선택한 후 build settings -> Deployment 섹션의 Skip install 항목을

메인 프로젝트에서는 NO로 서브 프로젝트에서는 YES로 해주어야 한다는 것이다.


주의할 것은 target에서 설정하는 것이 아니라 프로젝트에서 설정을 해주어야 한다.


메인 프로젝트 설정


서브 프로젝트 설정


블로그 이미지

마즈다

이미 마흔을 넘어섰지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^

새로 매버릭스 설치하고 

OS X Server 설치하고

바로 Xcode 통합 작업에 들어갔다.


우선 bitbucket에 있는 repositary 하나 등록하고

Xcode 5에서 bot 생성하고 첫 통합을 시도했다.


떡하니 뜨는 fail 메시지...

그나마 처음 fail은 repositary 인증 설정을 잘못해서 발생한 것이었다.

쉽게 해결하고 다시 통합 작업 진행...


이번에는 통합은 진행되었으나 통합 과정중에 오류 발생...

Code Signing과 Provisioning에 관한 오류다...


요런거...




OS와 Xcode를 몽창 바꿨더니 인증서와 프로비저닝을 제대로 인식 못하나보다.

구글링을 해가면서 뻔하디 뻔한 답을 수차례 시도를 해보았으나 별무신통...

결국 개발 인증서는 새로 생성해서 해결을 하였으나 이번에는 Archive 진행하면서

배포용 인증서와 프로비저닝이 말썽...


아무래도 배포용이다보니 Revoke 버튼을 쉽게 누를 수가 없다...ㅠ.ㅠ

다시 build settings로 가서 애꿎은 Code Signing 설정만 만지작 만지작...


지루하니까 결론만 말하면 다음과 같은 세팅으로 해결 봤습니다.



심플하네요...


밸류를 선택하면 프로비저닝 선택 리스트가 뜨던것도 많이 줄어들어서 현재 사용 가능한 것만 딱 뜨네요.

Xcode 4.5까지는 너줄하게 뜨는게 보기 싫긴 했는데 이렇게 간소화 되니 또 뭔가 빠진듯 아쉽기도 하고...^^;;;


암튼 이 설정으로 해결 봤습니다~

블로그 이미지

마즈다

이미 마흔을 넘어섰지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^

한국시간으로 지난 10월 23일 새벽 2시에 애플의 새 OS인 Mavericks(OS X 10.9, 이하 매버릭스)가 정식 출시되었다.

다양한 기능 개선과 추가로 맥 사용자들은 오래전부터 매버릭스가 출시되기를 고대하고 있었다.


*자세한 기능은 … http://www.apple.com/kr/osx/whats-new/


그 기다림의 끝에서 아주 반가운 소식과 함께 매버릭스가 출시되었는데…

바로 '무료 배포'라는 것이다.


그런데 애플 개발자 사이트에 등록한 개발자들에게는 또 하나의 선물이 있었으니…

OS X Server가 그것이다.


원래 OS X Server는 라이언 버전까지는 OS에 통합되어 일반 데스크탑용 Lion과는 달리

OS X Lion Server라는 별도의 OS로 판매가 되었다. 마치 윈도우 Server와 같은 개념이다.

그러던 것이 Mountain Lion으로 오면서 아예 OS X Server라는 서버 모듈만을 별도로 분리하여

판매를 하게 되었다. 즉, Mountain Lion을 데스크탑에 쓰다가 별도로 OS X Server를 구매하여

설치하면 바로 서버 버전의 OS가 되는 것이다. 기존 OS X Server의 가격은 $19.99이다.





이 OS X Server를 개발자들에게 무료 배포한 것이다.


그런데 이상한 점이 있다.

일반적인 개발자들이라면, 특히 애플 기반의 개발자들이라면 특별히 서버 모듈같은 것은 사용할 일이

없을텐데…


어쨌든 공짜니까! 양잿물보단 훨씬 좋으니까! 일단 다운로드 받아 설치를 해보았다.

그리고 서버 관리 콘솔을 실행시켜 찬찬히 보다보니….그 전에 보지 못했던 것들 중 유독 하나가

눈에 띈다.


Xcode…




상세한 도움말도 지원한다.




그렇다! 이번 업그레이드를 통해 OS X Server에 맥 OS 기반의 개발 IDE인 Xcode가 통합된 것이다.

용도는 CI(Continuous Integration)이다.


프로세스는 이렇다.


서버 콘솔의 Xcode 항목에서 Repositary(SVN과  Git 지원)를 등록한다.

사용할 이름과 URL 그리고 인증 방식을 선택하여 입력하면 된다.







Xcode IDE에서 등록된 Repositary와 연동되는 BOT을 다음과 같이 생성한다.


1. Scheme(빌드 대상)과 이름 및 서버 선택



2. 빌드 스케쥴과 빌드시 수행할 액션 그리고 빌드 전에 clean 수행 여부를 설정



3. 빌드 성공 혹은 실패시 메일을 전달 받을 메일 주소 설정




이렇게 설정해 놓으면 BOT 생성시 등록한 스케쥴에 맞춰 프로젝트 환경에 따라 빌드, 분석, 테스트, Archive 및

최종 커밋까지 자동으로 수행이 된다.


이렇게 진행된 작업은 Xcode IDE 내에서나 웹을 통해 그 결과를 확인할 수 있다.


Xcode 화면





web 화면





사실 CI는 소스코드 무결성 유지와 테스트 및 빌드 그리고 최종 생산품 제출에 이르기까지

그야말로  개발 전과정에 대한 통합이 이루어지는 시스템이다.  이러한 과정에서 개발자들은 보다 신속하게

빌드를 진행할 수 있고 보다 빨리 소스 상의 오류를 감지할 수 있게 된다.


이러한 막강한 기능과 역할에 비해 다른 개발 시스템에 비해 관심도가 그리 높지 않은 형편이다.

꽤 역사가 오래된 Cruise Control부터 최근의 Travis까지 다양한 Tool들도 존재한다.

자세한 내용은 위키피디아 참조 : http://en.wikipedia.org/wiki/Continuous_integration


현재 일하고 있는 곳에서는 Jenkins(구 Hudson)를 사용하고 있는데 Jenkins도 MAC 환경하에서

Xcode 빌드를 지원하여 iOS 개발자로서는 매우 유용하게 사용을 하고 있다.

그런데 새로운 OS X Server와 Xcode5에 이러한 기능이 통합되어 MAC/iOS 개발자들은 최적화된 환경을

제공 받을 수 있게 된 것이다.

(다만 나는 아쉽게도 안드로이드도 함께 관리를 해야 하는 입장이어서 jenkins를 버릴 수는 없다)




(맥 OS X 상에서의 jenkins를 이용한 CI 시스템 구축은 다음 링크를 참조 : http://mazdah.tistory.com/519)


애플은 가장 앞서서 개발자-벤더-사용자가 통합되는 IT 생태계를 만들어왔다. 이 생태계를 통해 이익을 얻는

사람들이 많겠으나 그중 가장 이익을 얻고 있는 것은 개발자가 아닌가 한다. 그리고 그걸 증명이라도 하듯이

애플은 개발자들에게 더 나은 환경을 제공해주고 있다.


비록 국내에서 아이폰의 점유율이 높지 않아 OS X 기반의 개발자들의 입지가 좁아지고 있는 것은 사실이지만

이런 개선들이 지속적으로 이루어진다면 앞으로의 전망은 밝을 것으로 기대된다.

블로그 이미지

마즈다

이미 마흔을 넘어섰지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^

최초 작성일 : 2013/07/11 09:15 


다수의 SDK가 설치되어있는 경우

현재 적용된 SDK 버전 확인 방법


Mazdah-ui-Mac-mini:android mazdah$ /usr/bin/xcodebuild -showsdks

OS X SDKs:

Mac OS X 10.7                  -sdk macosx10.7

OS X 10.8                      -sdk macosx10.8


iOS SDKs:

iOS 6.1                        -sdk iphoneos6.1


iOS Simulator SDKs:

Simulator - iOS 6.1            -sdk iphonesimulator6.1


사용 중인 SDK 버전을 변경하는 방법


Xcode의 환경설정 -> Locations 탭에서 가장 하단에 있는 Command Line Tools를 사용중인

Xcode 버전으로 변경





블로그 이미지

마즈다

이미 마흔을 넘어섰지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^

Tag ios, SDK, XCode

최초 작성일 : 2013/01/17 11:08


최근 아이폰 5 출시 이후 현재 근무지에서 운영하고 있는 앱에 문제가 발생을 하였다.

jquery mobile 기반의 하이브리드 형태의 앱이었는데 아이폰 5에서 간헐적으로
입력필드 (input="text")를 터치했을 때 가상 키패드가 간헐적으로 올라오지 않는
문제이다.

그런데 이 문제가 혼란 스러웠던 것이 일단 아이폰 5 나오기 이전에 Xcode 4.4.1이나
Xcode 4.3 에서 빌드하여 배포한 버전(2012년 9월경)에서는 그런 문제가 거의
발생을 하지 않았는데 유독 4.5에서 빌드한 후 설치를 하니 그러한 문제가 발생을 하였고
나중에는 아이폰 4에까지 새로 빌드한 앱은 모두 키패드가 간헐적으로 올라오지 않는
문제가 발생을 하게 되었다.

새 버전 배포를 목전에 두고있던터라 속이 바싹바싹 탔는데...

다른 라이브러리를 적용하기 위해 작업을 하던 도중 __divmodsi4라는 심볼을
찾지 못한다는 오류가 발생을 하였고 이 문제의 해결책을 찾던 중 Xcode의 컴파일러를
LLVM GCC에서 Apple LLVM Compiler로 변경을 하였다.

우선 __divmodsi4 오류는 해결이 되었는데...

웬걸...아이폰5에서 키패드가 올라오지 않던 문제까지 같이 해결이 되어버렸다.

혹시라도 jquery mobile 기반의 하이브리드 앱이 아이폰 5에서 키보드를 잘 불러오지
못한다면 컴파일러를 Apple LLVM Compiler로 수정해 보시길~

아울러 __divmodsi4 오류 또한 마찬가지~^.~

블로그 이미지

마즈다

이미 마흔을 넘어섰지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^

최초 작성일 : 2012/12/04 09:53 


출처 : http://blog.jidolstar.com/trackback/801


Xcode 4에서 라이브러리 파일(*.a)가 ignore 처리되어 SVN에 등록되지 않습니다. Xcode상에서도 해당 라이브러리 파일은 I로 표시되고, unignore 버튼을 눌러도 처리되지 않습니다. 할 수 없이 터미널 상에서 다음과 같은 명령을 사용해 강제 처리해야합니다.

lib.a를 추가해야 한다면 다음과 같이 터미널에서 실행하세요.

$ cd /lib.a가 있는 폴더

$ svn add lib.a 
A  (bin)  lib.a

$ svn st
A       lib.a

$ svn commit -m 'lib.a 를 추가함'

한번만 처리해 두시면 *.a 파일과 씨름하지 않아도 됩니다. ^^

블로그 이미지

마즈다

이미 마흔을 넘어섰지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^

Tag .a, ignore, SVN, XCode

최초 작성일 : 2012/09/24 17:57 


지금 아이폰5 해상도에 맞춰 UI를 수정하고 있는데

기존에 xib에 구현해놓았던 이미지 뷰가  암만 frame으로 사이즈를 바꾸려고 해도

적용되질 않는다.


그런데 같은 소스로 시뮬레이터의 레티나 3.5인치로 하면 frame으로 사이즈 변경이 된다.

물론 xib파일은 3.5인치용과 4인치용이 다르지만...


바로 이 3.5인치용과 4인치용 xib 파일이 다르다는 점을 찾았고

그 안에서 오직 차이 나는 한 부분...xib 파일에 있던 constraints를 발견했다.

문제는 이 constraints가 삭제가 안된다는 점이다.


결국 해당 이미지뷰를 xib에서 지우고 코딩으로 생성하여 처리했더니

양쪽(3.5인치와 4인치) 모두에서 정상적으로 frame이 변경 되었다.





3줄요약

1. xib에 설정한 이미지뷰가 레티나 4인치에서 frame 조정 안됨

2. xib의 constraints가 수상한데 삭제가 안됨

3. xib에서 이미지 뷰 삭제하고 코딩으로 했더니 됨


추가 : constraints 정보 지우는 방법

xib -> view 정보 Interface Builder Document -> Use Autolayout 체크를 없애면 됨







블로그 이미지

마즈다

이미 마흔을 넘어섰지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^

최초 작성일 : 2012/05/07 15:49 







처음 프로젝트를 시작하면서 소스 관리를 위해 SVN을 선택을 했다.
Xcode에서 기본적으로 지원을 하는 툴 중에 하나였고 가장 대중적인데다가
이미 집에 남아도는 컴퓨터에 트랙과 함께 SVN이 설치되어있기에 별다른 고민 없이
SVN을 선택을 했다.

그런데...

시간이 흐르면서 일단 집에서 서버를 운용하는 것은 가난한 개발자에게 무한한(?)
금전적 부담을 지운다는 것을 알게되었고. 또 바쁘게 돌아가는 회사 업무에 쫓기다보니
관리를 제대로 못해서인가 언제부터인지 외부에서 접속이 안되는 상황이 발생을 했다...ㅠ.ㅠ

그래서 일단 외부 서비스를 찾아보기 시작했는제 당근 제일 먼저 후보자로 오른 것은
github였다.

그러나...요넘이 private 레포지터리를 만들려면 돈을 내야 하는 것이었다.
가난한 개발자에게 무한한(?) 부담을 지우는 것이다...ㅠ.ㅠ

다시 SVN 호스팅으로 눈을 돌려봤으나 금전적 부담에서 자유로울 수 없었다.

그러다가 발견한 것이 bitbucket!
일단  github를 지원하고(mercurial이란 것도 지원을 하는데 안써봐서 모르겠다)
금상첨화인 것이 얘는 유독 private 레포지터리까지 무료로 지원을 해준다.
왜 그리 친절하냐고는 물어보지 못했다...죄다 영어라서...-.-

암튼, 후보자는 선정이 되었는데 문제는 도무지 SVN으로 처음 연결했던 프로젝트에서
SVN을 끊어내고 github로 다시 연결하는 방법을 모르겠는 것이다.

이클립스에서는 그냥 연결 끊는 것이 팝업 메뉴에 명시적으로 있어서 그냥 연결 끊어버리면
되는데 이 Xcode는 도무지 그에 해당하는 기능을 찾지를 못하겠다.
결국 검색을 통해 그냥 커맨드라인에서 무식하게 지우는 방법을 발견했다.

프로젝트 디렉토리로 이동한 후 아래와 같이 재귀적으로 svn 관련 디렉토리를 지워주는 것이다.

find ./ -name ".svn" | xargs rm -Rf

[출처] 아미리스 자료창고

그리고는 역시 같은 위치에서
아래와 같은 과정을 거쳐 무사히 github로 연결을 시킬 수 있었다.

$ git init
$ git remote add origin https://[bitbucket id]@bitbucket.org/[bitbucket id]/[repositary name].git
$ git add .
$ git commit -m "First commit to bitbucket"
$ git push -u origin master

서버에서 확인을 해보니 소스가 잘 올라갔다.
그리고 bitbucket 가입 후 설정하는 과정에서 맥 사용자라면 SourceTree를 받으라는
내용이 있었다. 사실 SourceTree는 꽤 오래전에 앱스토어에서 무료 개발툴을 주섬주섬
모으면서 설치를 해놓고는 뭐에 써야 할지 몰라서 보릿자루랑 같이 놔뒀는데...
오호라~이런 신통방통한 녀석이 있나. git용 클라이언트 툴인 것 같은 무료치고는
너무나 훌륭한 것이다. 이런 꿀단지를 여지껏 뭔지도 모르고 쳐박아 두고 있었으니...
난 아직 개발자 될라믄 멀었다.

암튼 장황하게 SVN 끊고 Git으로 다시 연동하는 방법을 알아봤다.
점점 삽질이 느는 것이 조만간 이 바닥을 떠야 할지도 모르겠다...ㅠ.ㅠ

블로그 이미지

마즈다

이미 마흔을 넘어섰지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^

최초 작성일 : 2012/04/13 10:12 


일반적인 관계형 DBMS의 쿼리에서 where절의 역할을 하는 것이

코어 데이터의 NSPredicate 객체이다.

대체로 문법이 비슷하긴 하지만 아무래도 복잡한 쿼리를 구성하기에는 좀 답답한
감이 있다.

더구나 다음과 같은 케이스는 불필요한 코딩만 늘리는 것 같은데 이렇게 해야 한단다...-.-

NSPredicate를 이용한 like문은 대략 다음과 같다.
우선 일반적인 쿼리에서 like문에 사용하는 %는 CoreData는 *로 사용한다.

NSPredicate *predicate;

NSString *searchStr = [NSString stringWithFormat:@"*%@*", toMail];

predicate = [NSPredicate predicateWithFormat:@"%K LIKE[cd] %@ and %K LIKE[cd] %@",
attributeName, self.mailAddress, attributeName2, searchStr];

보시는 바와같이 그냥
predicate = [NSPredicate predicateWithFormat:@"%K LIKE[cd] %@ and %K LIKE[cd] *%@*",
attributeName, self.mailAddress, attributeName2, toMail];

이렇게 하면 될 것 같은데 위의 문장으로 해야만 검색이 정상적으로 이루어진다...-.-

*참고 :
LIKE[cd]에서 cd의 의미는 다음과 같다.

'cd' means case-insensitive and diacritic-insensitive.

즉, 대소문자 구분 안하고. 발음기호 구분 안한다는 의미이다.

블로그 이미지

마즈다

이미 마흔을 넘어섰지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^