Translate

2014년 11월 30일 일요일

[멜론] 노래듣기 및 mp3 다운로드 안될 때 조치방법




증상 발생일자: 2014. 11. 30


멜론에서 mp3 를 다운로드 받으려 유료결재를 했는데..
mp3를 다운받으려 할 시 다운로드가 되지 않는 문제가 있었다.


다음과 같은 환경에서 증상이 발생했다.
한성노트북: Win7 + IE11 , Win7 + Chrome
조립컴퓨터: Win XP + IE8


원인은 '멜론플레이어'를 설치하지 않아서 발생한 것이었다.

멜론플레이어 다운로드 링크




멜론 플레이어를 설치하지 않았을때의증상은 다음과 같다.

1. 노래듣기 버튼을 눌러도 아무동작 하지 않는다.
2. mp3 다운로드 할 시 새로열린 팝업창에서 '다운로드' 버튼을 누를 시 창이 닫히고 아무런 반응이 일어나지 않는다.



보통은 '노래듣기' 버튼을 누르거나 mp3 '다운로드' 버튼을 눌렀을 시에 액티브엑스 다운로드 및 실행이 되어 멜론플레이어가 실행이 되어야 하나..
현재는 정상적으로 작동이 되지 않아 문제가 있는 것으로 보였다.


이런 별거 아닌걸로 한시간 넘게 알아보다니;;


2014년 11월 28일 금요일

[리뷰][서적] new C언어 입문[중급편] (코딩한줄 없이 C언어 원리를 깨우칠 수 있는 책!!)




New C언어 입문 - 10점
HARUHIKO HAYASHI 지음/영진.com(영진닷컴)



iOS를 공부해 보기전에 Objective-C 가 C언어에 기반한 언어라길래 C언어책을 뭘 볼까 하다가 'new C언어 입문[기초편]' 을 집어들었는데.. 너무 기초적인 내용이 나와서 바로 중급편을 집어 들었다.

너무 어렵진 않을까 걱정했는데..
다행히 어렵다기 보다는 그냥 '아~ 그렇구나~' 하고 넘어갈 수 있는 수준이었다.
(기초편,중급편 둘다 대학교 다니던 시절에 산 책인데.. 그당시에는 기초편만 열심히 읽었던 기억이 있다.
  지금은 JAVA 6년차가 되다보니.. 중급편을 보면서 JAVA언어와 비교해서 어떤점이 다르구나.. 하면서 술술 읽어나갔다.)


일단은 프로그램 경력자라면 많은 사람들이 C언어를 할 줄 알겠지만..
학부때 1년정도 해보고 그 뒤로는 C언어를 해보지 않은 나로써는 개념을 거의 다 잊어버려서 C언어를 다시 공부할 수 밖에 없었다.


C언어를 공부하려 하는 프로그램경력자(또는 좀더 깊숙히 공부하고싶은 학생)가 보기에 참 좋은 서적이라고 생각된다.


많은 C언어 서적들이 예제위주로 나오고 하다보니 getchar 라던지.. scanf 라던지..
라이브러리 사용법을 익히는데 시간이 들어가는 반면에 이 책은 그런 라이브러리보다는 순수하게 C언어의 개념에 대해서 접근을 한다.




그리고 책의 3/4정도 이후인

16. 콘솔 입출력 함수
17. 입출력 이외의 표준 함수
18. 파일 처리 함수

위 챕터에서 라이브러리(기본함수)에 대해서 사용방법에 대해 설명을 해 놓았다.



사실 경력자 입장에서 해당 언어의 특성이나 메커니즘이 중요한거지..
API 같은건 그냥 사용방법을 익히면 되는 것이니 이것만큼 경력자에게 좋은 책이 없다고 생각한다.

C언어를 설명하면서 예제도 너무 간단해서 따로 코딩을 해볼 일도 없다.
이 책을 3일동안 봤는데 함수포인터 부분에서 '이건 안되려나?' 라는 생각에 예제소스 하나를 만들어 볼 정도??



'중급편' 책을 읽었으니..
자~ 이거 한번 만들어 보시오~ 라고 하면 당연히 바로는 주로 사용하던 언어처럼 쓸 수는 없겠지만..
남들이 만들어 놓은 소스를 분석하는데에는 크게 무리가 없을 거라고 생각이 된다.


앞으로는 16,17,18,부록 챕터에 있는 부분을 레퍼런스로 보면서 C언어를 사용하면 될듯 하다.


이 책으로는 C언어에 대해서 이해를 할 수 있는것이지 코딩실력을 늘리기 위해서는 C언어로 알고리즘 같은걸 만들다보면 좀더 자연스럽게 코딩이 되지 않을 듯 싶다.



PS.
참으로 설명이 너무 맘에들었다.
포인터를 설명하기전에 왜 포인터란게 나오게 되었는지 어셈블리어 부터 시작해서 설명을 해주고 있다.
그렇다고 어셈블리어를 알아야만 이해할 수 있는 것도 아니고 설명을 하기위한 정도만 간단한 소스를 보여주며 친절히 설명을 해주는 설명에 너무 고맙다.
(학부생때 왜 안읽어봤나 몰라.. 진작봤으면 전공점수 좀 잘 나왔을 텐데..)



2014년 11월 25일 화요일

[리뷰][서적] 시스템 관리의 핵심 (너무 오래되어 레거시적인 개념만 배울 수 있는 책..)




시스템 관리의 핵심 - 2점
AEleen Frisch 지음, 홍상욱 옮김/한빛미디어(한빛아카데미)



이미 절판되어 중고를 살수밖에 없겠지만..
실제로 내가 본책은 개정3판이 아니라 아래의 개정2판을 중고로 구매하여 보았다.

시스템관리의 핵심 - 2점
AEleen Frisch 지음, 장훈 옮김/한빛미디어(한빛아카데미)






WAS나 기타 데몬 프로그램들이 수행될 때 시스템에 크게 부하를 주는 문제가 생겨서 트러블슈팅할때 도움이 될까 싶어 샀지만 너무나도 실망을 했다.

중간에 메모리관리 부분에서도 ps 명령어나 top 명령어의 컬럼 하나하나 소개가 있는 듯 하여 좀더 디테일 하게 알 수 있겠다 싶었는데..

책의 전반적인 내용은 기본적으로 Unix 에 치중이 되어있지만 Linux 에 대해서도 설명이 나오긴 한다.

하지만 개정2판 서적의 경우 1998년에 출판된 서적이다보니 지금의 시스템과는 너무나도 거리가 있었다.



가장 인상깊었던게 'vi 가 실행되지 않을 경우를 대비해서 ed에디터를 다룰줄 알아야한다.' 라는 구문이었다.


지금에서야 vi 가 없는 Unix/Linux 가 있을까 싶은데..
이렇게 설명하는 기술이 너무 오래되어 지금은 봐도 사용할 수 없거나..

Unix 위주로 하다보니 AIX, HP-UX, SunOS(지금의 Solaris) 의 명령어들이 설명이 되어지고 있고, 지금은 아예 사용되지 않는 SCO Unix 에 대해서도 명령어가 나오고 있다.


기본 개념에 대해서는 충실히 설명하려 노력하고 있으나 커널 전문서적이 아니라 시스템관리 서적이다보니 그냥 자세히만 설명을 해주고 그리 심도있게 다루지는 않는다.




얼마전에 서적을 구입해서 오늘 펼쳐봤는데 앞부분만 열심히 읽어보다가 안되겠다 싶어서 그냥 대충대충 훓어보고 말았다.
바로 중고로 팔 예정..


[리뷰][서적] 유닉스 리눅스 프로그래밍 필수 유틸리티



유닉스.리눅스 프로그래밍 필수 유틸리티 - 10점
백창우 지음/한빛미디어(한빛아카데미)


위의 링크는 개정판인데..
나는 2004년 발행된 이전버전의 책을 봤다.
원판이 560페이지 정도인데 개정판은 800페이지 가까이 되는거보니
나중에 좀더 관심이 가거나 직접적으로 관련된 일을 할 때는 개정판을 사야 할 수도 있겠다.


앞으로는 어떻게 될지 모르겠지만..;;
아직까지는 앞으로도 리눅스에서 C나 C++ 같은걸 코딩할 것 같지는 않다고 생각한다.

하지만 시스템관리쪽 관련하여 관심이 많다보니..
책을 구매하여 읽어보게 되었다.



vi

당연히 vi 의 왠만한 기본기능을 사용할 수 있었지만 이 책을 보고서 "아~ 이런기능까지.." 라는 느낌이 들었다.
vi 에 대해서 꽤 자세히도 나온다.
이정도면 리눅스에서 소스를 고치는 작업에 대해서 크게 불편하지 않게 사용이 가능할 것 같다.



gcc & gdb

내가 C나 C++을 전문적으로 하는것도 아니었긴에 컴파일 과정에 대해서 정확하게는 몰랐는데 개념을 잘 짚어주어 이해할 수 있었다.
Linux/Unix 관리를 하다보면 make 로 컴파일 하거나 하는 경우가 있었는데 원리를 이해하게 되었다는 것에 대해서 참 기뻤다.



make

예전에는 apache 설치를 하면서 './configure --prefix=/usr/local/share/apache' 같은 옵션을 보면서 앞에 prefix 를 입력하면 저 위치에 설치가 되는구나 정도만 알았는데..
configure 스크립트를 직접 생성도 해보고 Makefile 도 직접 생성해 보면서 왜

./configure
make
make install

명령어와 같이 입력을 해주는지 알게되었고 위와같이 입력 시 어떤 동작으로 컴파일되며 설치가 되는지 이해하게 되었다.






PS.
JAVA 프로그래머 이지만 시스템쪽에 관심이 있다보니 읽게 되었는데 C언어에 대해서는 소스의 난이도가 아주 기초적이라서(C언어 함수만 알아도 되는정도..) 실제 시스템관리자가 gcc나 make 에 대해서 이해하는 용도로 읽어보면 좋을 듯 싶다.




실습을 Mac(OSX) 에서 작업을 하다보니 기본적으로 설치되어있지 않은 툴이 있어서 따로 설치하는 방법을 정리해봤다.

[GDB][OSX] Mac 에 gdb 설치하기
[OSX] Mac에 autotools(autoconf, automake) 설치하기



2014년 11월 22일 토요일

[OSX] Mac에 autotools(autoconf, automake) 설치하기



다음 사이트에서 설치방법을 확인했다.
Installing Autoconf, Automake & Libtool on Mac OSX Mountain Lion


그리고 국내 사이트에서 쉘로 만들어 놓으신 분이 있어서 같이 참조를 한다.
AUTOTOOLS ON OSX



설치 방법은 간단하다. 아래의 작업만 해주면 끝!!


curl -OL http://ftpmirror.gnu.org/autoconf/autoconf-2.69.tar.gz
tar -xzf autoconf-2.69.tar.gz 
cd autoconf-2.69
./configure && make && sudo make install

curl -OL http://ftpmirror.gnu.org/automake/automake-1.14.tar.gz
tar -xzf automake-1.14.tar.gz
cd automake-1.14
./configure && make && sudo make install

curl -OL http://ftpmirror.gnu.org/libtool/libtool-2.4.2.tar.gz
tar -xzf libtool-2.4.2.tar.gz
cd libtool-2.4.2
./configure && make && sudo make install




혹시나 나중에 파일이 다운로드 되지 않는 경우가 발생하지 않을까 싶어서
다운로드 할수 있도록 링크를 올려둔다.

Download autotools






나는 쉘에서 다음과 같이 작업을 했다.


1004lucifer:~ 1004lucifer$
1004lucifer:~ 1004lucifer$ mkdir temp
1004lucifer:~ 1004lucifer$ cd temp
1004lucifer:temp 1004lucifer$
1004lucifer:temp 1004lucifer$ curl -OL http://ftpmirror.gnu.org/autoconf/autoconf-2.69.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 327 100 327 0 0 131 0 0:00:02 0:00:02 --:--:-- 131
100 1882k 100 1882k 0 0 370k 0 0:00:05 0:00:05 --:--:-- 1017k
1004lucifer:temp 1004lucifer$
1004lucifer:temp 1004lucifer$ tar -xzf autoconf-2.69.tar.gz
1004lucifer:temp 1004lucifer$ cd autoconf-2.69
1004lucifer:autoconf-2.69 1004lucifer$ ./configure && make && sudo make install
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... build-aux/install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes

...

Making install in man
make[3]: Nothing to be done for `install-exec-am'.
test -z "/usr/local/share/man/man1" || ../build-aux/install-sh -c -d "/usr/local/share/man/man1"
/usr/bin/install -c -m 644 ./autoconf.1 ./autoheader.1 ./autom4te.1 ./autoreconf.1 ./autoscan.1 ./autoupdate.1 ./ifnames.1 ./config.guess.1 ./config.sub.1 '/usr/local/share/man/man1'
1004lucifer:autoconf-2.69 1004lucifer$
1004lucifer:autoconf-2.69 1004lucifer$
1004lucifer:autoconf-2.69 1004lucifer$
1004lucifer:autoconf-2.69 1004lucifer$
1004lucifer:autoconf-2.69 1004lucifer$
1004lucifer:autoconf-2.69 1004lucifer$ cd ..
1004lucifer:temp 1004lucifer$
1004lucifer:temp 1004lucifer$ curl -OL http://ftpmirror.gnu.org/automake/automake-1.14.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 327 100 327 0 0 435 0 --:--:-- --:--:-- --:--:-- 436
100 2181k 100 2181k 0 0 613k 0 0:00:03 0:00:03 --:--:-- 1052k
1004lucifer:temp 1004lucifer$
1004lucifer:temp 1004lucifer$ tar -xzf automake-1.14.tar.gz
1004lucifer:temp 1004lucifer$
1004lucifer:temp 1004lucifer$ cd automake-1.14
1004lucifer:automake-1.14 1004lucifer$
1004lucifer:automake-1.14 1004lucifer$ ./configure && make && sudo make install
checking whether make supports nested variables... yes
checking build system type... x86_64-apple-darwin13.3.0
checking host system type... x86_64-apple-darwin13.3.0
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... lib/install-sh -c -d

...

chmod +x '/usr/local/share/automake-1.14/compile'
chmod +x '/usr/local/share/automake-1.14/py-compile'
chmod +x '/usr/local/share/automake-1.14/ar-lib'
chmod +x '/usr/local/share/automake-1.14/test-driver'
chmod +x '/usr/local/share/automake-1.14/tap-driver.sh'
chmod +x '/usr/local/share/automake-1.14/tap-driver.pl'
1004lucifer:automake-1.14 1004lucifer$
1004lucifer:automake-1.14 1004lucifer$
1004lucifer:automake-1.14 1004lucifer$
1004lucifer:automake-1.14 1004lucifer$
1004lucifer:automake-1.14 1004lucifer$
1004lucifer:automake-1.14 1004lucifer$
1004lucifer:automake-1.14 1004lucifer$ cd ../
1004lucifer:temp 1004lucifer$
1004lucifer:temp 1004lucifer$ curl -OL http://ftpmirror.gnu.org/libtool/libtool-2.4.2.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 326 100 326 0 0 397 0 --:--:-- --:--:-- --:--:-- 397
100 2570k 100 2570k 0 0 670k 0 0:00:03 0:00:03 --:--:-- 940k
1004lucifer:temp 1004lucifer$
1004lucifer:temp 1004lucifer$ tar -xzf libtool-2.4.2.tar.gz
1004lucifer:temp 1004lucifer$
1004lucifer:temp 1004lucifer$ cd libtool-2.4.2
1004lucifer:libtool-2.4.2 1004lucifer$
1004lucifer:libtool-2.4.2 1004lucifer$ ./configure && make && sudo make install
## ------------------------- ##
## Configuring libtool 2.4.2 ##
## ------------------------- ##

checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... libltdl/config/install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk

...

test -z "/usr/local/share/man/man1" || libltdl/config/install-sh -c -d "/usr/local/share/man/man1"
/usr/bin/install -c -m 644 ./doc/libtool.1 ./doc/libtoolize.1 '/usr/local/share/man/man1'
1004lucifer:libtool-2.4.2 1004lucifer$
1004lucifer:libtool-2.4.2 1004lucifer$
1004lucifer:libtool-2.4.2 1004lucifer$ cd ../
1004lucifer:temp 1004lucifer$
1004lucifer:temp 1004lucifer$ cd ../
1004lucifer:~ 1004lucifer$ rm -rf temp/
1004lucifer:~ 1004lucifer$




[GDB][OSX] Mac 에 gdb 설치하기



Linux 와는 다르게 OSX에는 gdb 가 기본적으로 설치되어 있지 않아서 설치하느라 이곳저곳 찾아봤는데 제대로 된 곳을 발견했다.


리리와 포포 - [맥] MAC에 GDB 설치하기!



내가 작업한 부분을 정리해서 올린다.


설치방법은 의외로 간단하다.


1004lucifer:~ 1004lucifer$
1004lucifer:~ 1004lucifer$ gdb
-bash: gdb: command not found
1004lucifer:~ 1004lucifer$
1004lucifer:~ 1004lucifer$ brew
-bash: brew: command not found
1004lucifer:~ 1004lucifer$
1004lucifer:~ 1004lucifer$
1004lucifer:~ 1004lucifer$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
==> This script will install:
/usr/local/bin/brew
/usr/local/Library/...
/usr/local/share/man/man1/brew.1

Press RETURN to continue or any other key to abort
==> /usr/bin/sudo /bin/mkdir /usr/local
Password:
==> /usr/bin/sudo /bin/chmod g+rwx /usr/local
==> /usr/bin/sudo /usr/bin/chgrp admin /usr/local
==> /usr/bin/sudo /bin/mkdir /Library/Caches/Homebrew
==> /usr/bin/sudo /bin/chmod g+rwx /Library/Caches/Homebrew
==> Downloading and installing Homebrew...
remote: Counting objects: 213620, done.
remote: Compressing objects: 100% (56570/56570), done.
remote: Total 213620 (delta 155911), reused 213512 (delta 155834)
Receiving objects: 100% (213620/213620), 46.39 MiB | 2.56 MiB/s, done.
Resolving deltas: 100% (155911/155911), done.
From https://github.com/Homebrew/homebrew
* [new branch] master -> origin/master
HEAD is now at e62d8d9 authexec: migrating taps
==> Installation successful!
==> Next steps
Run `brew doctor` before you install anything
Run `brew help` to get started
1004lucifer:~ 1004lucifer$
1004lucifer:~ 1004lucifer$
1004lucifer:~ 1004lucifer$
1004lucifer:~ 1004lucifer$
1004lucifer:~ 1004lucifer$ brew install homebrew/dupes/gdb
Cloning into '/usr/local/Library/Taps/homebrew/homebrew-dupes'...
remote: Counting objects: 1471, done.
remote: Total 1471 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (1471/1471), 292.99 KiB | 69.00 KiB/s, done.
Resolving deltas: 100% (809/809), done.
Checking connectivity... done.
Tapped 36 formulae
==> Installing gdb from homebrew/homebrew-dupes
==> Installing dependencies for gdb: xz, pkg-config, readline
==> Installing gdb dependency: xz
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/xz-5.0.7.mavericks.bottle.tar.gz
######################################################################## 100.0%
==> Pouring xz-5.0.7.mavericks.bottle.tar.gz
🍺 /usr/local/Cellar/xz/5.0.7: 58 files, 1.5M
==> Installing gdb dependency: pkg-config
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/pkg-config-0.28.mavericks.bottle.2.tar.gz
######################################################################## 100.0%
==> Pouring pkg-config-0.28.mavericks.bottle.2.tar.gz
🍺 /usr/local/Cellar/pkg-config/0.28: 10 files, 604K
==> Installing gdb dependency: readline
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/readline-6.3.8.mavericks.bottle.tar.gz
######################################################################## 100.0%
==> Pouring readline-6.3.8.mavericks.bottle.tar.gz
==> Caveats
This formula is keg-only, which means it was not symlinked into /usr/local.

Mac OS X provides similar software, and installing this software in
parallel can cause all kinds of trouble.

OS X provides the BSD libedit library, which shadows libreadline.
In order to prevent conflicts when programs look for libreadline we are
defaulting this GNU Readline installation to keg-only.

Generally there are no consequences of this for you. If you build your
own software and it requires this formula, you'll need to add to your
build variables:

LDFLAGS: -L/usr/local/opt/readline/lib
CPPFLAGS: -I/usr/local/opt/readline/include

==> Summary
🍺 /usr/local/Cellar/readline/6.3.8: 40 files, 2.1M
==> Installing gdb
==> Downloading http://ftpmirror.gnu.org/gdb/gdb-7.8.1.tar.xz
######################################################################## 100.0%
curl: (28) Connection timed out after 5037 milliseconds
Trying a mirror...
==> Downloading http://ftp.gnu.org/gnu/gdb/gdb-7.8.1.tar.xz
######################################################################## 100.0%
==> Patching
patching file gdb/darwin-nat.c
==> ./configure --prefix=/usr/local/Cellar/gdb/7.8.1 --with-system-readline --with-lzma --with-python=/usr
==> make
==> make install
==> Caveats
gdb requires special privileges to access Mach ports.
You will need to codesign the binary. For instructions, see:

http://sourceware.org/gdb/wiki/BuildingOnDarwin
==> Summary
🍺 /usr/local/Cellar/gdb/7.8.1: 42 files, 5.7M, built in 13.2 minutes
1004lucifer:~ 1004lucifer$
1004lucifer:~ 1004lucifer$
1004lucifer:~ 1004lucifer$ gdb
GNU gdb (GDB) 7.8.1
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-apple-darwin13.3.0".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
.
Find the GDB manual and other documentation resources online at:
.
For help, type "help".
Type "apropos word" to search for commands related to "word".
(gdb)




gdb 설치 후 run 명령어를 하려면 인증서 작업을 해줘야 한다.




Launchpad 에서 유틸리티/기타 선택 후 '키체인 접근' 아이콘 클릭






키체인 접근 메뉴 => 인증서 지원 => 인증서 생성






다음과 같이 셋팅 (이름은 임의로 지정)






다음과 같이 셋팅





'계속' 버튼을 여러번 누른 후 '인증서에 대한 위치 지정' 항목이 나오면 다음과 같이 셋팅 후 '생성' 버튼 클릭






'완료' 버튼 클릭






키체인 항목에서 '시스템' 선택 후 방금 생성한 키체인의 정보가져오기 선택






'신뢰' 부분에서 '항상 신뢰'를 선택






위의 설정이 되면 인증서 아이콘이 아래와 같이 변경됨.






다음과 같이 명령어 입력 후 재부팅


1004lucifer:~ 1004lucifer$ 
1004lucifer:~ 1004lucifer$ codesign -s gdb-cert /usr/local/bin/gdb
1004lucifer:~ 1004lucifer$ 











PS.
gdb 설치만 하고 인증서 작업을 하지 않은경우 디버깅 시 run 명령 시 다음과 같은 문제가 발생된다.



1004lucifer:~ 1004lucifer$ 
1004lucifer:~ 1004lucifer$ gdb like
GNU gdb (GDB) 7.8.1
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-apple-darwin13.3.0".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from like...Reading symbols from /Users/btb/Documents/test/like.dSYM/Contents/Resources/DWARF/like...done.
done.
(gdb) list
3 void lovecall();
4
5 char *getname() {
6 char name[128];
7
8 printf("Input name : ");
9 scanf("%s", name);
10 return name;
11 }
12
(gdb) b main
Breakpoint 1 at 0x100000e0c: file like.c, line 17.
(gdb) r
Starting program: /Users/btb/Documents/test/like 
Unable to find Mach task port for process-id 440: (os/kern) failure (0x5).
 (please check gdb is codesigned - see taskgated(8))
(gdb) 
(gdb)




2014년 11월 21일 금요일

[리뷰][서적] Maven - Sonatype이 만든 Maven 핵심 가이드




Maven : Sonatype이 만든 Maven 핵심 가이드 - 8점
팀 오브라이언 지음, 장선진 옮김/지&선(지앤선)


요즘에는 오픈소스를 다운받으면 대부분 Maven 기반으로 되어있어서 Maven을 공부하지 않으면 오픈소스를 보기 힘든상황이 온것 같다.

최근에는 Gradle 이 더 낫다고 하지만 여젼히 Maven은 사용하는 방법 정도는 알아둬야 다른 사람들의 소스를 보거나 Maven 만 지원하는 서비스를 이용하는데 불편함이 없게 되는듯 하다.


Maven을 학습할 때 이것만큼 자세히 나와있는 책도 없는것 같지만..
책을 보며 하나하나 따라했는데도 정상적으로 작동하지 않는다거나 하는 문제가 있어서 삽질을 좀 했다.

책으로 공부하다가 막히는 부분에 대해서는 블로그에 몇개 정리를 했다.

1. [샘플소스] 'Maven : Sonatype이 만든 Maven 핵심 가이드' 서적의 샘플소스

2. [JAVA] 문제없는 xml파일에서 The processing instruction target matching "[xX][mM][lL]" is not allowed. 에러가 발생할때..

3. [Maven][Java] 컴파일 시 annotations are not supported in -source 1.3 에러가 나는경우..

4. [Maven] Non-resolvable parent POM 에러 발생 문제

5. [Maven] 'groupId' is missing. 에러 발생문제

6. [Maven][Hibernate] Could not get ConfigurationTask 증상 문제


2014년 11월 18일 화요일

[Maven][Hibernate] Could not get ConfigurationTask 증상 문제



HSQLDB 데이터베이스를 생성하기 위해 Hibernate3 플러그인의 hbm2ddl goal 을 호출 시(mvn hibernate3:hbm2ddl) 다음과 같은 오류가 나왔다.


lucifer@lucifer-Vostro-V13:~/test/maven/simple-parent_ch07/simple-webapp$ mvn hibernate3:hbm2ddl
[INFO] Scanning for projects...
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for org.sonatype.mavenbook.ch07:simple-webapp:war:1-SNAPSHOT
[WARNING] 'build.plugins.plugin.version' for org.mortbay.jetty:maven-jetty-plugin is missing. @ line 61, column 15
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ line 53, column 17
[WARNING] 
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING] 
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING] 
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building Chapter 7 Simple Web Application 1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] >>> hibernate3-maven-plugin:2.1:hbm2ddl (default-cli) @ simple-webapp >>>
[INFO] 
[INFO] --- maven-resources-plugin:2.3:resources (default-resources) @ simple-webapp ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 0 resource
[INFO] 
[INFO] <<< hibernate3-maven-plugin:2.1:hbm2ddl (default-cli) @ simple-webapp <<<
[INFO] 
[INFO] --- hibernate3-maven-plugin:2.1:hbm2ddl (default-cli) @ simple-webapp ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.762s
[INFO] Finished at: Tue Nov 18 15:22:27 KST 2014
[INFO] Final Memory: 7M/105M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.codehaus.mojo:hibernate3-maven-plugin:2.1:hbm2ddl (default-cli) on project simple-webapp: Could not get ConfigurationTask. -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
lucifer@lucifer-Vostro-V13:~/test/maven/simple-parent_ch07/simple-webapp$





디버그 모드로 실행 시(mvn hibernate3:hbm2ddl -X) 다음과 같이 자세한 정보를 얻을 수 있다.


   ...
   ...

[DEBUG] -- end configuration --
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.440s
[INFO] Finished at: Tue Nov 18 15:19:08 KST 2014
[INFO] Final Memory: 6M/105M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.codehaus.mojo:hibernate3-maven-plugin:2.0:hbm2ddl (default-cli) on project simple-webapp: Could not get ConfigurationTask. -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:hibernate3-maven-plugin:2.0:hbm2ddl (default-cli) on project simple-webapp: Could not get ConfigurationTask.
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: org.apache.maven.plugin.MojoExecutionException: Could not get ConfigurationTask.
at org.codehaus.mojo.hibernate3.HibernateExporterMojo.getComponentConfiguration(HibernateExporterMojo.java:229)
at org.codehaus.mojo.hibernate3.exporter.Hbm2DDLExporterMojo.doExecute(Hbm2DDLExporterMojo.java:87)
at org.codehaus.mojo.hibernate3.HibernateExporterMojo.execute(HibernateExporterMojo.java:140)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
... 19 more
[ERROR] 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
lucifer@lucifer-Vostro-V13:~/test/maven/simple-parent_ch07/simple-webapp$








http://stackoverflow.com/questions/23270551/maven-by-example-nullpointer-executing-hibernate3hbm2ddl

뭐.. 이유는 잘 모르겠지만 위의 글을 읽고 hibernate3-maven-plugin 의 버전을 2.0 => 2.2 로 변경 후 정상 적으로 되는것을 확인했다.

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.sonatype.mavenbook.ch07</groupId>
    <artifactId>simple-parent</artifactId>
    <version>1-SNAPSHOT</version>
  </parent>

  <artifactId>simple-webapp</artifactId>
  <packaging>war</packaging>
  <name>Chapter 7 Simple Web Application</name>
  <dependencies>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-servlet_2.4_spec</artifactId>
      <version>1.1.1</version>
    </dependency>
    <dependency>
      <groupId>org.sonatype.mavenbook.ch07</groupId>
      <artifactId>simple-weather</artifactId>
      <version>1-SNAPSHOT</version>
    </dependency>
    <dependency>
      <groupId>org.sonatype.mavenbook.ch07</groupId>
      <artifactId>simple-persist</artifactId>
      <version>1-SNAPSHOT</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring</artifactId>
      <version>2.0.7</version>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
      <version>1.1.2</version>
    </dependency>
    <dependency>
      <groupId>taglibs</groupId>
      <artifactId>standard</artifactId>
      <version>1.1.2</version>
    </dependency>
    <dependency>
      <groupId>org.apache.velocity</groupId>
      <artifactId>velocity</artifactId>
      <version>1.5</version>
    </dependency>
  </dependencies>
  <build>
    <finalName>simple-webapp</finalName>
    <plugins>
      <plugin>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>maven-jetty-plugin</artifactId>
        <dependencies>
          <dependency>
            <groupId>hsqldb</groupId>
            <artifactId>hsqldb</artifactId>
            <version>1.8.0.7</version>
          </dependency>
        </dependencies>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>hibernate3-maven-plugin</artifactId>
        <version>2.2</version>
        <configuration>
          <components>
            <component>
              <name>hbm2ddl</name>
              <implementation>annotationconfiguration</implementation>
            </component>
          </components>
        </configuration>
        <dependencies>
          <dependency>
            <groupId>hsqldb</groupId>
            <artifactId>hsqldb</artifactId>
            <version>1.8.0.7</version>
          </dependency>
        </dependencies>
      </plugin>
    </plugins>
  </build>
</project>





lucifer@lucifer-Vostro-V13:~/test/maven/simple-parent_ch07/simple-webapp$ mvn hibernate3:hbm2ddl
[INFO] Scanning for projects...
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for org.sonatype.mavenbook.ch07:simple-webapp:war:1-SNAPSHOT
[WARNING] 'build.plugins.plugin.version' for org.mortbay.jetty:maven-jetty-plugin is missing. @ line 61, column 15
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ line 53, column 17
[WARNING] 
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING] 
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING] 
Downloading: http://repo.maven.apache.org/maven2/org/codehaus/mojo/mojo-parent/20/mojo-parent-20.pom
Downloaded: http://repo.maven.apache.org/maven2/org/codehaus/mojo/mojo-parent/20/mojo-parent-20.pom (19 KB at 12.2 KB/sec)
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building Chapter 7 Simple Web Application 1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] >>> hibernate3-maven-plugin:2.2:hbm2ddl (default-cli) @ simple-webapp >>>
[INFO] 
[INFO] --- maven-resources-plugin:2.3:resources (default-resources) @ simple-webapp ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 0 resource
[INFO] 
[INFO] <<< hibernate3-maven-plugin:2.2:hbm2ddl (default-cli) @ simple-webapp <<<
[INFO] 
[INFO] --- hibernate3-maven-plugin:2.2:hbm2ddl (default-cli) @ simple-webapp ---
Downloading: http://repo.maven.apache.org/maven2/org/codehaus/mojo/hibernate3/maven-hibernate3-jdk15/2.2/maven-hibernate3-jdk15-2.2.pom
Downloaded: http://repo.maven.apache.org/maven2/org/codehaus/mojo/hibernate3/maven-hibernate3-jdk15/2.2/maven-hibernate3-jdk15-2.2.pom (3 KB at 5.0 KB/sec)
Downloading: http://repo.maven.apache.org/maven2/org/hibernate/hibernate-entitymanager/3.4.0.GA/hibernate-entitymanager-3.4.0.GA.pom
Downloaded: http://repo.maven.apache.org/maven2/org/hibernate/hibernate-entitymanager/3.4.0.GA/hibernate-entitymanager-3.4.0.GA.pom (2 KB at 4.4 KB/sec)
Downloading: http://repo.maven.apache.org/maven2/org/hibernate/ejb3-persistence/1.0.2.GA/ejb3-persistence-1.0.2.GA.pom
Downloaded: http://repo.maven.apache.org/maven2/org/hibernate/ejb3-persistence/1.0.2.GA/ejb3-persistence-1.0.2.GA.pom (534 B at 1.2 KB/sec)
Downloading: http://repo.maven.apache.org/maven2/org/hibernate/hibernate-commons-annotations/3.1.0.GA/hibernate-commons-annotations-3.1.0.GA.pom
Downloaded: http://repo.maven.apache.org/maven2/org/hibernate/hibernate-commons-annotations/3.1.0.GA/hibernate-commons-annotations-3.1.0.GA.pom (2 KB at 2.5 KB/sec)
Downloading: http://repo.maven.apache.org/maven2/org/hibernate/hibernate-annotations/3.4.0.GA/hibernate-annotations-3.4.0.GA.pom
Downloaded: http://repo.maven.apache.org/maven2/org/hibernate/hibernate-annotations/3.4.0.GA/hibernate-annotations-3.4.0.GA.pom (2 KB at 3.5 KB/sec)
Downloading: http://repo.maven.apache.org/maven2/javax/transaction/jta/1.1/jta-1.1.pom
Downloaded: http://repo.maven.apache.org/maven2/javax/transaction/jta/1.1/jta-1.1.pom (598 B at 1.4 KB/sec)
Downloading: http://repo.maven.apache.org/maven2/javassist/javassist/3.4.GA/javassist-3.4.GA.pom
Downloaded: http://repo.maven.apache.org/maven2/javassist/javassist/3.4.GA/javassist-3.4.GA.pom (485 B at 1.2 KB/sec)
Downloading: http://repo.maven.apache.org/maven2/jboss/jboss-common/4.0.2/jboss-common-4.0.2.pom
Downloaded: http://repo.maven.apache.org/maven2/jboss/jboss-common/4.0.2/jboss-common-4.0.2.pom (915 B at 2.2 KB/sec)
Downloading: http://repo.maven.apache.org/maven2/slide/webdavlib/2.0/webdavlib-2.0.pom
Downloaded: http://repo.maven.apache.org/maven2/slide/webdavlib/2.0/webdavlib-2.0.pom (146 B at 0.4 KB/sec)
Downloading: http://repo.maven.apache.org/maven2/org/hibernate/hibernate-tools/3.2.3.GA/hibernate-tools-3.2.3.GA.jar
Downloading: http://repo.maven.apache.org/maven2/org/hibernate/hibernate-core/3.3.1.GA/hibernate-core-3.3.1.GA.jar
Downloading: http://repo.maven.apache.org/maven2/org/codehaus/mojo/hibernate3/maven-hibernate3-api/2.2/maven-hibernate3-api-2.2.jar
Downloading: http://repo.maven.apache.org/maven2/org/slf4j/slf4j-log4j12/1.5.6/slf4j-log4j12-1.5.6.jar
Downloading: http://repo.maven.apache.org/maven2/org/codehaus/mojo/hibernate3/maven-hibernate3-jdk14/2.2/maven-hibernate3-jdk14-2.2.jar
Downloaded: http://repo.maven.apache.org/maven2/org/codehaus/mojo/hibernate3/maven-hibernate3-jdk14/2.2/maven-hibernate3-jdk14-2.2.jar (7 KB at 10.7 KB/sec)
Downloaded: http://repo.maven.apache.org/maven2/org/slf4j/slf4j-log4j12/1.5.6/slf4j-log4j12-1.5.6.jar (10 KB at 15.5 KB/sec)
Downloading: http://repo.maven.apache.org/maven2/org/codehaus/mojo/hibernate3/maven-hibernate3-jdk15/2.2/maven-hibernate3-jdk15-2.2.jar
Downloading: http://repo.maven.apache.org/maven2/org/hibernate/hibernate-entitymanager/3.4.0.GA/hibernate-entitymanager-3.4.0.GA.jar
Downloaded: http://repo.maven.apache.org/maven2/org/codehaus/mojo/hibernate3/maven-hibernate3-api/2.2/maven-hibernate3-api-2.2.jar (9 KB at 13.1 KB/sec)
Downloading: http://repo.maven.apache.org/maven2/org/hibernate/hibernate-commons-annotations/3.1.0.GA/hibernate-commons-annotations-3.1.0.GA.jar
Downloaded: http://repo.maven.apache.org/maven2/org/codehaus/mojo/hibernate3/maven-hibernate3-jdk15/2.2/maven-hibernate3-jdk15-2.2.jar (9 KB at 21.0 KB/sec)
Downloading: http://repo.maven.apache.org/maven2/javax/transaction/jta/1.1/jta-1.1.jar
Downloaded: http://repo.maven.apache.org/maven2/javax/transaction/jta/1.1/jta-1.1.jar (15 KB at 23.8 KB/sec)
Downloading: http://repo.maven.apache.org/maven2/org/hibernate/ejb3-persistence/1.0.2.GA/ejb3-persistence-1.0.2.GA.jar
Downloaded: http://repo.maven.apache.org/maven2/org/hibernate/hibernate-commons-annotations/3.1.0.GA/hibernate-commons-annotations-3.1.0.GA.jar (66 KB at 62.5 KB/sec)
Downloading: http://repo.maven.apache.org/maven2/org/hibernate/hibernate-annotations/3.4.0.GA/hibernate-annotations-3.4.0.GA.jar
Downloaded: http://repo.maven.apache.org/maven2/org/hibernate/hibernate-tools/3.2.3.GA/hibernate-tools-3.2.3.GA.jar (343 KB at 193.0 KB/sec)
Downloading: http://repo.maven.apache.org/maven2/jboss/jboss-common/4.0.2/jboss-common-4.0.2.jar
Downloaded: http://repo.maven.apache.org/maven2/org/hibernate/hibernate-entitymanager/3.4.0.GA/hibernate-entitymanager-3.4.0.GA.jar (117 KB at 92.9 KB/sec)
Downloading: http://repo.maven.apache.org/maven2/slide/webdavlib/2.0/webdavlib-2.0.jar
Downloaded: http://repo.maven.apache.org/maven2/org/hibernate/ejb3-persistence/1.0.2.GA/ejb3-persistence-1.0.2.GA.jar (50 KB at 55.0 KB/sec)
Downloading: http://repo.maven.apache.org/maven2/javassist/javassist/3.4.GA/javassist-3.4.GA.jar
Downloaded: http://repo.maven.apache.org/maven2/slide/webdavlib/2.0/webdavlib-2.0.jar (129 KB at 124.3 KB/sec)
Downloaded: http://repo.maven.apache.org/maven2/org/hibernate/hibernate-annotations/3.4.0.GA/hibernate-annotations-3.4.0.GA.jar (274 KB at 147.8 KB/sec)
Downloaded: http://repo.maven.apache.org/maven2/jboss/jboss-common/4.0.2/jboss-common-4.0.2.jar (458 KB at 252.5 KB/sec)
Downloaded: http://repo.maven.apache.org/maven2/javassist/javassist/3.4.GA/javassist-3.4.GA.jar (460 KB at 181.6 KB/sec)
Downloaded: http://repo.maven.apache.org/maven2/org/hibernate/hibernate-core/3.3.1.GA/hibernate-core-3.3.1.GA.jar (2223 KB at 399.3 KB/sec)
[INFO] Configuration XML file loaded: jar:file:/home/lucifer/.m2/repository/org/sonatype/mavenbook/ch07/simple-persist/1-SNAPSHOT/simple-persist-1-SNAPSHOT.jar!/hibernate.cfg.xml
15:35:19,110  INFO org.hibernate.cfg.annotations.Version - Hibernate Annotations 3.4.0.GA
15:35:19,166  INFO org.hibernate.cfg.Environment - Hibernate 3.3.1.GA
15:35:19,189  INFO org.hibernate.cfg.Environment - hibernate.properties not found
15:35:19,206  INFO org.hibernate.cfg.Environment - Bytecode provider name : javassist
15:35:19,223  INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling
15:35:19,405  INFO org.hibernate.annotations.common.Version - Hibernate Commons Annotations 3.1.0.GA
[INFO] Configuration XML file loaded: jar:file:/home/lucifer/.m2/repository/org/sonatype/mavenbook/ch07/simple-persist/1-SNAPSHOT/simple-persist-1-SNAPSHOT.jar!/hibernate.cfg.xml
15:35:19,426  INFO org.hibernate.cfg.Configuration - configuring from url: jar:file:/home/lucifer/.m2/repository/org/sonatype/mavenbook/ch07/simple-persist/1-SNAPSHOT/simple-persist-1-SNAPSHOT.jar!/hibernate.cfg.xml
15:35:20,066  INFO org.hibernate.cfg.Configuration - Configured SessionFactory: null
[INFO] No hibernate properties file loaded.
15:35:20,185  INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: org.sonatype.mavenbook.weather.model.Atmosphere
15:35:20,250  INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity org.sonatype.mavenbook.weather.model.Atmosphere on table Atmosphere
15:35:20,352  INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: org.sonatype.mavenbook.weather.model.Condition
15:35:20,353  INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity org.sonatype.mavenbook.weather.model.Condition on table Condition
15:35:20,357  INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: org.sonatype.mavenbook.weather.model.Location
15:35:20,359  INFO org.hibernate.cfg.annotations.QueryBinder - Binding Named query: Location.uniqueByZip => from Location l where l.zip = :zip
15:35:20,359  INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity org.sonatype.mavenbook.weather.model.Location on table Location
15:35:20,361  INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: org.sonatype.mavenbook.weather.model.Weather
15:35:20,362  INFO org.hibernate.cfg.annotations.QueryBinder - Binding Named query: Weather.byLocation => from Weather w where w.location = :location
15:35:20,362  INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity org.sonatype.mavenbook.weather.model.Weather on table Weather
15:35:20,374  INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: org.sonatype.mavenbook.weather.model.Wind
15:35:20,375  INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity org.sonatype.mavenbook.weather.model.Wind on table Wind
15:35:20,475  INFO org.hibernate.cfg.AnnotationConfiguration - Hibernate Validator not found: ignoring
15:35:20,511  INFO org.hibernate.dialect.Dialect - Using dialect: org.hibernate.dialect.HSQLDialect
15:35:20,569  INFO org.hibernate.tool.hbm2ddl.SchemaExport - Running hbm2ddl schema export
15:35:20,571  INFO org.hibernate.tool.hbm2ddl.SchemaExport - exporting generated schema to database
15:35:20,576  INFO org.hibernate.connection.DriverManagerConnectionProvider - Using Hibernate built-in connection pool (not for production use!)
15:35:20,577  INFO org.hibernate.connection.DriverManagerConnectionProvider - Hibernate connection pool size: 1
15:35:20,577  INFO org.hibernate.connection.DriverManagerConnectionProvider - autocommit mode: false
15:35:20,591  INFO org.hibernate.connection.DriverManagerConnectionProvider - using driver: org.hsqldb.jdbcDriver at URL: jdbc:hsqldb:data/weather
15:35:20,591  INFO org.hibernate.connection.DriverManagerConnectionProvider - connection properties: {user=sa, password=****, shutdown=true}
create table Atmosphere (id integer generated by default as identity (start with 1), humidity varchar(255), pressure varchar(255), rising varchar(255), visibility varchar(255), weather_id integer not null, primary key (id));
create table Condition (id integer generated by default as identity (start with 1), code varchar(255), date varchar(255), temp varchar(255), text varchar(255), weather_id integer not null, primary key (id));
create table Location (zip varchar(255) not null, city varchar(255), country varchar(255), region varchar(255), primary key (zip));
create table Weather (id integer generated by default as identity (start with 1), date timestamp, location_zip varchar(255), primary key (id));
create table Wind (id integer generated by default as identity (start with 1), chill varchar(255), direction varchar(255), speed varchar(255), weather_id integer not null, primary key (id));
alter table Atmosphere add constraint FK2AF43942E377EE06 foreign key (weather_id) references Weather;
alter table Condition add constraint FK441B8CFBE377EE06 foreign key (weather_id) references Weather;
alter table Weather add constraint FKAC24CFD41D328C00 foreign key (location_zip) references Location;
alter table Wind add constraint FK292428E377EE06 foreign key (weather_id) references Weather;
15:35:21,004  INFO org.hibernate.tool.hbm2ddl.SchemaExport - schema export complete
15:35:21,006  INFO org.hibernate.connection.DriverManagerConnectionProvider - cleaning up connection pool: jdbc:hsqldb:data/weather
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 18.103s
[INFO] Finished at: Tue Nov 18 15:35:21 KST 2014
[INFO] Final Memory: 15M/171M
[INFO] ------------------------------------------------------------------------
lucifer@lucifer-Vostro-V13:~/test/maven/simple-parent_ch07/simple-webapp$ 





mvn 및 JAVA_HOME 같은 정보는 다음과 같다.


lucifer@lucifer-Vostro-V13:~$ mvn -v
Apache Maven 3.0.4
Maven home: /usr/share/maven
Java version: 1.7.0_45, vendor: Oracle Corporation
Java home: /opt/jdk1.7.0_45/jre
Default locale: ko_KR, platform encoding: UTF-8
OS name: "linux", version: "3.11.0-20-generic", arch: "amd64", family: "unix"
lucifer@lucifer-Vostro-V13:~$






Hibernate 써보지도 않았고..
앞으로 쓸일이 있을지도 잘 몰라서..;;
2.2 미만의 버전에는 어떻게 설정을 해야 하는지는 귀찮아서 찾아보지 않았다.





2014년 11월 17일 월요일

[Maven] 'groupId' is missing. 에러 발생문제



mvn install 또는 mvn clean install 할 시 다음과 같이 나온다.


lucifer@lucifer-Vostro-V13:~/test/maven/simple-parent$ mvn clean install
[INFO] Scanning for projects...
[ERROR] The build could not read 1 project -> [Help 1]
[ERROR]   
[ERROR]   The project [unknown-group-id]:simple-parent:1.0 (/home/lucifer/test/maven/simple-parent/pom.xml) has 1 error
[ERROR]     'groupId' is missing. @ line 2, column 99
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException
lucifer@lucifer-Vostro-V13:~/test/maven/simple-parent$







문제

메이븐 코디네이트의 정보중 groupId 가 빠져 있어서 문제가 되었다.



pom.xml 에는 프로젝트의 유일한 ID와 의존성 또는 메이븐 POM의 플러그인으로 사용할 수 있는 식별자들의 정보인 메이븐 코디네이트가 있어야 한다.

1. 메이븐 코디네이트는 종종 groupId:artifactId:packaging:version 과 같은 형식으로 콜론을 구분자로 사용하여 표기한다.

2. 메이븐 코디네이트는 groupId, artifactId, version, packaging 으로 구성되어 있다.
    (드믈게 classifier 라는 코디네이트를 5번째 코디네이트로 사용한다.)

3. 필수속성(groupId, artifactId, version)
    - packaging 은 jar 가 디폴트






다음과 같이 groupId 를 추가해 줬다.

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <artifactId>simple-parent</artifactId>
  <groupId>org.sonatype.mavenbook.ch06</groupId>
  <packaging>pom</packaging>
  <version>1.0</version>
  <name>Chapter 6 Simple Parent Project</name>
 
  <modules>
    <module>simple-weather</module>
    <module>simple-webapp</module>
  </modules>

  <build>
    <pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.5</source>
          <target>1.5</target>
        </configuration>
      </plugin>
    </plugins>
    </pluginManagement>
  </build>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>


[Maven] Non-resolvable parent POM 에러 발생 문제



오류를 보면 어느 라인이 잘못되어있는지 정확히 알려주니 pom.xml 에서 해당 라인을 확인해 보면 된다.



증상 1

mvn install 또는 mvn clean install 할 시 다음과 같이 나온다.


lucifer@lucifer-Vostro-V13:~/test/maven/simple-parent$ mvn clean install
[INFO] Scanning for projects...
[ERROR] The build could not read 1 project -> [Help 1]
[ERROR]   
[ERROR]   The project org.sonatype.mavenbook.ch06:simple-parent:1.0 (/home/lucifer/test/maven/simple-parent/pom.xml) has 1 error
[ERROR]     Non-resolvable parent POM: Could not find artifact org.sonatype.mavenbook.ch06:parent:pom:1-SNAPSHOT and 'parent.relativePath' points at wrong local POM @ line 13, column 11 -> [Help 2]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException
[ERROR] [Help 2] http://cwiki.apache.org/confluence/display/MAVEN/UnresolvableModelException
lucifer@lucifer-Vostro-V13:~/test/maven/simple-parent$ 






다중 프로젝트 부분에서 여러개의 pom.xml 이 있는데 해당 pom.xml 이 가장 상위 pom 인데 parent 가 설정되어 있어서 문제가 발생함.

다음 부분을 주석처리함.


<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <artifactId>simple-parent</artifactId>
  <packaging>pom</packaging>
    <version>1.0</version>
  <name>Chapter 6 Simple Parent Project</name>
 
  <modules>
    <module>simple-weather</module>
    <module>simple-webapp</module>
  </modules>
  <parent>
   <artifactId>parent</artifactId>
   <groupId>org.sonatype.mavenbook.ch06</groupId>
   <version>1-SNAPSHOT</version>
  </parent>

  <build>
    <pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.5</source>
          <target>1.5</target>
        </configuration>
      </plugin>
    </plugins>
    </pluginManagement>
  </build>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>








증상 2

mvn install 또는 mvn clean install 할 시 다음과 같이 나온다.


lucifer@lucifer-Vostro-V13:~/test/maven/simple-parent$ mvn clean install
[INFO] Scanning for projects...
[ERROR] The build could not read 2 projects -> [Help 1]
[ERROR]   
[ERROR]   The project org.sonatype.mavenbook.ch06:simple-weather:1-SNAPSHOT (/home/lucifer/test/maven/simple-parent/simple-weather/pom.xml) has 1 error
[ERROR]     Non-resolvable parent POM: Could not find artifact org.sonatype.mavenbook.ch06:simple-parent:pom:1-SNAPSHOT and 'parent.relativePath' points at wrong local POM @ line 4, column 11 -> [Help 2]
[ERROR]   
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException
[ERROR] [Help 2] http://cwiki.apache.org/confluence/display/MAVEN/UnresolvableModelException
lucifer@lucifer-Vostro-V13:~/test/maven/simple-parent$





다중 프로젝트에서 상위 pom.xml 에서의 version 정보가 하위 pom.xml 에서 지정한 parent version 정보와 달라서 문제가 발생했다.

다음과 같이 버전정보를 똑같이 맞추어 주었다.



상위 pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <artifactId>simple-parent</artifactId>
  <groupId>org.sonatype.mavenbook.ch06</groupId>
  <packaging>pom</packaging>
  <version>1.0</version>
  <name>Chapter 6 Simple Parent Project</name>
 
  <modules>
    <module>simple-weather</module>
    <module>simple-webapp</module>
  </modules>

  <build>
    <pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.5</source>
          <target>1.5</target>
        </configuration>
      </plugin>
    </plugins>
    </pluginManagement>
  </build>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>





하위 pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.sonatype.mavenbook.ch06</groupId>
    <artifactId>simple-parent</artifactId>
    <version>1.0</version>
  </parent>

  <artifactId>simple-webapp</artifactId>
  <packaging>war</packaging>
  <name>Chapter 6 Simple Web Application Project</name>
  <dependencies>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-servlet_2.4_spec</artifactId>
      <version>1.1.1</version>
    </dependency>
    <dependency>
      <groupId>org.sonatype.mavenbook.ch06</groupId>
      <artifactId>simple-weather</artifactId>
      <version>${project.version}</version>
    </dependency>
  </dependencies>
  <build>
    <finalName>simple-webapp</finalName>
    <plugins>
      <plugin>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>maven-jetty-plugin</artifactId>
      </plugin>
    </plugins>
  </build>
</project>


[샘플소스] 'Maven : Sonatype이 만든 Maven 핵심 가이드' 서적의 샘플소스




Maven : Sonatype이 만든 Maven 핵심 가이드 - 8점
팀 오브라이언 지음, 장선진 옮김/지&선(지앤선)


위 책으로 Maven 공부를 하고있는데 책에 있는 샘플소스 링크를 깨져있고..
인터넷을 한참 돌아다니다 번역자님의 블로그에 샘플소스가 올라와 있는것을 찾았다.


샘플소스 다운로드


장선진님(번역자) 블로그



PS.
소스코드에 오류가 있는 부분이 있어서 아래의 링크에 정리를 했다.
[리뷰][서적] Maven - Sonatype이 만든 Maven 핵심 가이드

[Maven][Java] 컴파일 시 annotations are not supported in -source 1.3 에러가 나는경우..



책을보며 Maven 공부중 Jetty 와 Servlet 부분을 보고있는데

mvn install 또는 mvn compile 할 시 다음과 같이 에러가 나왔다.



[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.017s
[INFO] Finished at: Mon Nov 17 13:43:44 KST 2014
[INFO] Final Memory: 7M/105M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.0.2:compile (default-compile) on project simple-webapp: Compilation failure
[ERROR] /home/lucifer/test/maven/simple-webapp/src/main/java/org/sonatype/mavenbook/web/SimpleServlet.java:[14,5] error: annotations are not supported in -source 1.3
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
lucifer@lucifer-Vostro-V13:~/test/maven/simple-webapp$





위와같이 Annotation 때문에 문제가 발생했다는 로그가 보인다.
Maven 3.0.4 사용중인데 pom.xml 에 아무런 설정없이 컴파일 하면 java 1.3 으로 컴파일을 하는듯 싶다.

pom.xml 에 다음과 같이 설정을 추가해 줬다.

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.sonatype.mavenbook.ch05</groupId>
  <artifactId>simple-webapp</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>simple-webapp Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
      <dependency>
          <groupId>org.apache.geronimo.specs</groupId>
          <artifactId>geronimo-servlet_2.4_spec</artifactId>
          <version>1.1.1</version>
          <scope>provided</scope>
      </dependency>
  </dependencies>
  <build>
    <finalName>simple-webapp</finalName>
      <plugins>
          <plugin>
              <artifactId>maven-compiler-plugin</artifactId>
              <configuration>
                  <source>1.5</source>
                  <target>1.5</target>
              </configuration>
          </plugin>
          <plugin>
              <groupId>org.mortbay.jetty</groupId>
              <artifactId>maven-jetty-plugin</artifactId>
          </plugin>
      </plugins>
  </build>
</project>


[JAVA] 문제없는 xml파일에서 The processing instruction target matching "[xX][mM][lL]" is not allowed. 에러가 발생할때..



Maven 공부중 예제와 똑같이 따라했는데 TEST부분에서 다음과 같은 에러가 발생했다.


-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running org.sonatype.mavenbook.weather.YahooParserTest
1    INFO  YahooParser  - create XML Reader
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.616 sec <<< FAILURE!
Running org.sonatype.mavenbook.weather.WeatherFormatterTest
454  INFO  YahooParser  - create XML Reader
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.009 sec <<< FAILURE!

Results :

Tests in error: 
  testParser(org.sonatype.mavenbook.weather.YahooParserTest): Error on line 2 of document  : The processing instruction target matching "[xX][mM][lL]" is not allowed. Nested exception: The processing instruction target matching "[xX][mM][lL]" is not allowed.
  testFormat(org.sonatype.mavenbook.weather.WeatherFormatterTest): Error on line 2 of document  : The processing instruction target matching "[xX][mM][lL]" is not allowed. Nested exception: The processing instruction target matching "[xX][mM][lL]" is not allowed.

Tests run: 2, Failures: 0, Errors: 2, Skipped: 0

[ERROR] There are test failures.








로그를 보면 XML에 문제가 있다는 말 같은데 에디터로 해당 XML을 열어봐도 크게 잘못된 부분을 느낄 수 없었다.


http://thedesignspace.net/MT2archives/000815.html#.VGlOaTd_uwc
구글 검색을 통해 위의 글을 읽어보고 '<?xml version="1.0"...?>' 부분을 주석처리 하니 정상적으로 되었는데..
그 다음에 주석을 해제했는데도 정상적으로 작동이 되었다.





원인

http://ko.wikipedia.org/wiki/%EB%B0%94%EC%9D%B4%ED%8A%B8_%EC%88%9C%EC%84%9C_%ED%91%9C%EC%8B%9D

위의 글을 읽고서 어떤 문제가 있었는지 확실히 알게 되었다.


윈도우에서의 많은 편집기는 UTF-8로 저장 시 해당 파일의 제일 앞부분에 BOM 을 붙여넣게 되는데 Linux, Unix 에서는 BOM을 사용하지 않는것이 보통이라서 일반 문자열로 인식하기에..

<?xml version="1.0"... ?>

의 앞부분에 BOM 문자열이 들어가니 XML 형식에 맞지 않아서 에러가 발생한 문제였다.



일반적으로 편집기에서 따로 보이지 않아서 잘 알수가 없고..
일부 유닉스(아마 AIX로 기억..)에서 vi로는 보이지 않지만 cat으로 파일을 열었을 때 <?xml 앞에 깨진 글자가 있는 것을 본적이 있었다.





해결방법

Hex 편집이 가능한 편집기로 보면 앞부분에 이상한 문자열이 있는 것을 볼 수 있으며 해당 문자열(BOM)을 지우는 방법이 있고, 내가 사용하는 툴 처럼 해당 문서를 편집 후 저장하면 BOM을 지워주는 툴을 사용하면 편리하다. (사용툴: Ubuntu + IntelliJ 13.1 Ultimate)


2014년 11월 16일 일요일

[Android] 컴퓨터에 USB 연결이 되지 않는경우 (케이블 문제)



OS: Ubuntu 13.10 (64bit)


문제
Android 기기에 있는 사진을 컴퓨터로 옮기려고 PTP 모드로 전송을 시도해 봤는데
컴퓨터에서 전혀 인식이 되지 않았다. (MTP 또한 마찬가지..)
충전만 되는 상황.





ADB 에서는 어떻게 표시가 되나 확인해 봤는데 디바이스 자체가 인식이 되지 않았다.


lucifer@lucifer-Vostro-V13:~$ adb devices -l
List of devices attached 

lucifer@lucifer-Vostro-V13:~$




lsusb 또한 마찬가지 였다.


lucifer@lucifer-Vostro-V13:~$ lsusb
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 015: ID 05c8:030b Cheng Uei Precision Industry Co., Ltd (Foxlink) 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 010: ID 413c:8160 Dell Computer Corp. Wireless 365 Bluetooth
Bus 003 Device 009: ID 413c:8162 Dell Computer Corp. Integrated Touchpad [Synaptics]
Bus 003 Device 008: ID 413c:8161 Dell Computer Corp. Integrated Keyboard
Bus 003 Device 007: ID 0a5c:4500 Broadcom Corp. BCM2046B1 USB 2.0 Hub (part of BCM2046 Bluetooth)
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
lucifer@lucifer-Vostro-V13:~$





원인
USB 케이블에 문제가 있었다.


인식되지 않았던 케이블 (외장형 배터리에 포함되어있었던 얇은 케이블 - 본래목적의 기능에 충실하다)






정상적으로 인식된 케이블 (충전기는 Apple 이지만 케이블은 G3 살때 받은 정품 케이블)






PS.
케이블에 따라서 충전이 되거나 안되는 경우는 본적이 있으나 PC에서 핸드폰의 인식여부가 되는지 안되는지 여부가 나뉘는 것은 처음 있는 일이었다.
꼭 리눅스라서 위의 문제가 생긴것 같지는 않고 윈도우도 저런 허접한 케이블을 사용하면 그럴 수 있지 않을까 싶다.

이전에 아래와 같은 문제를 격은적이 있었다.
1. OSX, Ubuntu 에서 G3 가 adb 인식되지 않는경우
2. Ubuntu 에서 "no permission usb"와 물음표(??????)가 뜨며 adb 인식되지 않는경우


2014년 11월 3일 월요일

[iOS] "Could not load NIB in bundle" 문제 발생한 경우




책의 예제 실행 시 다음과 같은 로그가 발생하며 앱이 실행시 바로 죽어버리는 문제..


2014-11-03 15:29:52.454 Cells[23309:907] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle </Users/btb/Library/Application Support/iPhone Simulator/6.0/Applications/956F7DAB-B4A9-468C-BF31-E56A4EAB10CC/Cells.app> (loaded)' with name 'BIDNameAndColorCell''
*** First throw call stack:
(0x1c90012 0x10cde7e 0x1c8fdeb 0x230fac 0xc698f 0xc6c65 0x3751 0xcff4b 0xd001f 0xb880b 0xc919b 0x6592d 0x10e16b0 0x228cfc0 0x228133c 0x228ceaf 0x1048cd 0x4d1a6 0x4bcbf 0x4bbd9 0x4ae34 0x4ac6e 0x4ba29 0x4e922 0xf8fec 0x45bc4 0x45dbf 0x45f55 0x4ef67 0x2d65 0x127b7 0x12da7 0x13fab 0x25315 0x2624b 0x17cf8 0x1bebdf9 0x1bebad0 0x1c05bf5 0x1c05962 0x1c36bb6 0x1c35f44 0x1c35e1b 0x137da 0x1565c 0x2a9d 0x29c5)
libc++abi.dylib: terminate called throwing an exception




몇번 디버깅을 하다보니 이제는 이런 명확한 문제는 오래 걸리지 않아 찾을 수 있을 듯 하다.


BIDNameAndColorCell 이라는 nib(xib) 파일을 찾을 수 없어서 발생한 문제..



캡쳐를 보면 xib 의 이름이 잘못 기술되어 있는것을 볼 수 있다.
다시한번 xib의 이름을 확인해 보자.