AIIB 유럽 주요국 참여?

네이버 검색 순위에 올라와서 뭔가 싶어 보다가 과거 미국이 달러를 국제 통화로 하기 시작하며 경제권을 잡았던 시대가 끝날수도 있겠구나 싶다라는 생각이 들어 몇자 적어본다.

 

유럽이 유로화 통합하며 시도를 해봤지만 뭐 성공적이지 않았으니까......

 

AIIB(Asian Infrastructure Investment Bank)

미국ㆍ일본 주도의 세계은행, 아시아개발은행(ADB : Asian Development Bank) 등에 대항하기 위해 설립되는 은행으로, 2013년 10월 시진핑(習近平) 중국 국가주석이 아시아를 순방하던 중 공식 제안하였고, 1년 후인 2014년 10월 24일 500억 달러 규모의 아시아인프라투자은행(AIIB)가 공식 출범하였다.

초기 자본금의 대부분을 중국이 투자하여 500억 달러 규모로 시작된 AIIB의 총 자본금은 각국의 투자를 받아 1000억 달러까지 늘린다는 계획이다. 참여 국가는 중국, 인도, 파키스탄, 몽골, 스리랑카, 우즈베키스탄, 카자흐스탄, 네팔, 방글라데시, 오만, 쿠웨이트, 필리핀ㆍ베트남ㆍ브루나이ㆍ캄보디아ㆍ라오스ㆍ말레이시아ㆍ싱가포르ㆍ미얀마ㆍ태국ㆍ카타르 등 인도네시아를 제외한 아세안(ASEAN : 동남아국가연합) 10개국을 포함한 21개국이다.

반면 미국, 일본, 한국 등은 포함되지 않았으나 중국은 이들 국가의 참여를 환영한다는 입장이다. 기존 국제금융기구 내의 지분이 미미했던 한국이 AIIB에 가입할 경우 국제적 위상을 높일 수 있고, 한국 내 위안화의 청산, 결제은행 설립 등 중국의 지원을 받을 수 있는 장점이 있다. 반면, 중국 지분이 50%를 차지해 한국이 주도적인 역할을 할 수 없을 가능성이 높고, 지분을 많이 차지하기 위해서는 많은 자금을 투입해야 한다는 단점이 있다.

한편 중국이 한국 정부에 AIIB 가입을 요청한 것이 알려지자 미국은 한국 정부에 "한국의 AIIB 참여에 깊은 우려를 표명한다."고 통보하였다. 미 정부는 AIIB를 중국이 정치적으로 악용할 가능성이 높아 한국이 가입할 경우 한미 양국의 우방으로서의 신인도에 영향을 받을 것이라고 밝혔다.

[네이버 지식백과]
아시아인프라투자은행 [Asian Infrastructure Investment Bank] (시사상식사전, 박문각)

이것이 AIIB다 미국은 AIIB를 반대하고 있는 입장이라고 하나 유럽 주요 국가들이 참여를 시작하면서 이슈가 되고 있다네....

17일에 독일과 프랑스 그리고 이탈리아 3개국이 회원이 되겠다고 밝혔다하고....

 

이에 미국은 곤욕 스러움을 표한다고...

백악관은 참여는 각국이 결정할 문제라고 밝히면서도 AIIB가 투명성 등에 대한 국제기준을 맞춰야 한다고 강조한다네.

전문가들은 AIIB가 미국이 주도하는 세계은행의 경쟁자기 때문에 경제 패권을 중국에 뺏기지 않으려는 미국이 반대하는 것이라 분석이라는데 결국은 자기들의 경제적 주도권에 위헙이 생길까 우려 하는거 아닐까 싶기도 하고.

 

거기다 한국은 미국과 우호 국을 유지하기 위해 슬슬 눈치 보며 가입할지 검토만 하고 있다네...

 

오늘도 혼자 출근해 할거 없어 끄적 끄적하며....

 

 

거제도 람보르기니 추돌사고 관련 내용과 분노

아침부터 람보르기니가 검색순위에 있고 여러 커뮤니티 사이트에서 거제도 사건이라는글? 람보르기니 글들이 많아 보던중 SM7 차주 안쓰럽다 라는 생각이 먼져 들었다.

 

수리비 견적만 억이 넘는 금액 내가 3년동안 돈한푼 안쓰고 모아야 하는 금액이 적혀 있더군.

 

 

 

사고난 차주 표정에서 화악 보이듯 너무나도 안쓰럽고 힘들어 보이는 저 표정 인터넷 신문에서 차주는 울었다는데 정말 마음이 아프더라.

정말 내가 경험했다면 정말 하늘이 무너지는 느낌이 나지 않을까 싶다.

 

 

 

 

정말 다른 각도 사진을 봐도 무섭드라

 

 

정말 다시 봐도 ㅎㄷㄷ한.....

 

안쓰러운 마음으로 보던중 SNS에 올라온 뎃글이라고 누군가 캡쳐해서 올려둔 글을보고 분노가......

 

 

예전에 초등학생들이 람보르기니 위에서 뛰고 소화기 뿌리고 해서 한떄 시끌했던 그사건에서 보듯 꼭 잘못을 하고 용서를 빌고 선처를 해달라 부탁 할수는 있지만 돈있다고.... 아무죄 없이 당한 사람이 내야 한다는 저런 소리를 듣고나니 울컥 하더라....

 

내가 돈이 많고 능력이 있는건 아니지만 자기 잘못이 있는거고 다른 사람에게 피해를 입힌건데 내가 쓰는 볼팬 빌려가서 고장내서 가져 오고 미안해 이거 얼마 한다고 그래 라고만 해도 기분이 몹시 나쁠것 같은데 이건 아니지 싶은 생각이 들더라...

 

그냥 그런 생각이 들어서 몇자 적어보고 끝.... 에휴

 

Android 비행기 모드

Android 4.2 버젼부터 비행기 모드를 app에서 컨트롤 할수 없다라는 서두로 시작을 하겠다.

 

구글링에서 찾은 자료중에 이런것도 있고.

http://stackoverflow.com/questions/26356953/how-do-i-disable-airplane-mode-tablet-supports-4-4-2

 

이것 말고도 많은 자료들을 보면 없는듯 하다.

 

죽어라 구글링 한결과 일단은 루트권한 없이 성공한사람은 없는듯 하다.

 

나도 회사폰을 들고 집에 가면 새벽에 쓸모 없는 푸쉬들 부터 어떨때는 전화도 오더라 일할때야 글타 치더라도 집에 가서 까지 단말기에 대한 스트레스를 덜고자 일정 시간대 자동으로 비행기 모드로 바꾸도록 해보려 했다....

 

글타고 airplain mode로 바꾸자고 회사 테스트용 폰을 루틴할순 없는거고 포기는 했지만 그래도 끄적여 본다.

 

일단 루틴을 했다는 생각으로 adb 명령어로 접근 하는 방법을 찾아서 해보니 되긴 한다. 아주 잘된다.

 

 

비행기 모드 ON

 

settings put global airplane_mode_on 1

am broadcast -a android.intent.action.AIRPLANE_MODE --ez state true

 

비행기 모드 OFF

 

settings put global airplane_mode_on 0

am broadcast -a android.intent.action.AIRPLANE_MODE --ez state false

 

위와 같은 방식으로는 가능하지만 일단은 루틴을 해야만 가능하다는 것이 문제인것인데.

 

시간날때 조금씩 찾아 보겠지만 구글에서 권한 자체를 읽기 전용으로 바꾼 이상 힘들것으로 보인다.

 

 

'Job > Android' 카테고리의 다른 글

adb 화면 캡쳐  (0) 2015.08.24
Android 비행기 모드  (0) 2015.03.10

요리 방해꾼 구름이의 난동

항상 구름이 간식을 주방에서 챙겨 주고 있는 관계로 내가 주방에만 가면 뭔가 주는 줄 알고 좋아라 따라오는 구름이 설거지 하면 다리에 매달려서 간식 달라 하고 안주면 바지를 타고 올라오는 구름이..... 우잉 간식은 자주 먹는 거 아닌데 ㅠㅜ

 

 

 

안주고 있으면 식탁 위에서 이러고 처다 본다. ㅠㅜ

 

내 퇴근시간이 다 되가는 시각 와이프가 나 밥 차려 준다고 야채랑 꼬기랑 볶으려고 둥근 팬을 꺼내놨더니 이러고 있더란다....

 

장난꾸러기 녀석 ㅠㅜ

 

 

 

 

 

 

주방에 사람만 가면 다리 잡고 식탁위에서 와따리 가따리 졸라 대는 귀여운 녀석 ㅋㄷㅋㄷ

 

 

 

 

 

 

 

간식 들어 있는 찬장을 뚫어져러 타보고 있는 구름이부글부글눈에서 레이져 나오겠다 구름이...

 

 

이거는 보니까 어렸을때 보던 레오같아서 한번 투척 ㅋㄷㅋㄷ 귀가 작지만 이뽀 이뽀아잉2

 

 

구름이가 이쁘면 공감 꾸욱 눌러 주세요

 

 

'생활 > 고양이' 카테고리의 다른 글

요리 방해꾼 구름이의 난동  (0) 2015.03.10
구름이 혼자 놀지말고 같이 놀자  (0) 2015.03.03
고양이 허피스 바이러스와 L-lysine  (0) 2015.02.26
구름이 두더지게임  (0) 2015.02.25
구름이 처음 입양 2일때  (0) 2015.02.25

홍대에서 거리공연

와이프와 홍대에서 밥먹고 구경하러 가는도중 길거리 공연하고 있는 모습에 뭐지하고 봤다가... 핑거스타일 기타를 연주하는 분을 봤는데 오우 핑거스타일도 멋나고 공연 하시는 정선호라는 분도 잼나게 해서 넉을 놓고 봤네요...

 

아이퐁으로 간단하게 녹화한거 몇개 투척 ㅎㅎㅎㅎ

 

핸드폰 용량이 적어서 몇개 녹음 못했는데 공간이 없어 2개 밖에 없다 ㅠㅜ

 

첫번째는 007 테마곡인고

 

 

 

두번째는 미션임파서블 테마곡

 

 

 

생각보다 신나고 잼나고 아아 이분 페북은  https://www.facebook.com/guitarsunho/ 라네요 ㅎㅎㅎ 한번 가보실분 가보세요 뭔가 쫌 있어 보이시던데 ㅋㄷㅋㄷ

 

 

구름이 혼자 놀지말고 같이 놀자

 

 

 

과자 먹으며 거실에 앉아 TV 보고 있는데 구름이가 구석으로 꾸물 꾸물 기어가서 보니 뭔가 공격 준비를 하고 있어 찍어 봤는데 이런...

 

오예스 먹고 딱지 접어둔거 슬쩍 집어가서 실내화에 숨겨두고는 저리 ㅠㅜ 놀고 있다... 구름아 미안해 더 많이 놀아줄께 ㅠㅜ 히잉 미안해라....

 

 

 

 

 

'생활 > 고양이' 카테고리의 다른 글

요리 방해꾼 구름이의 난동  (0) 2015.03.10
구름이 혼자 놀지말고 같이 놀자  (0) 2015.03.03
고양이 허피스 바이러스와 L-lysine  (0) 2015.02.26
구름이 두더지게임  (0) 2015.02.25
구름이 처음 입양 2일때  (0) 2015.02.25

vi 명령어 및 사용법 정리

옛날에 아는분이 쓰시는거 보고 오히려 키보드 마우스 같이 사용하던 나로서 너무나 신기하고 빠른 속도에 신기해서 한때 vim을 쓰며 익숙해지려고 Note에 정리 했던것들 끄적여 본다.

 

명령어들 엄청 많기는 하지만 쓰다보면 익숙한것 편한것 몇가지만 사용하게 되서 자주 사용하는 명령어만 정리 해서 끄적여 본다.

 

많은 기능들은 솔직하게 다른 사람들이 정리한것들이 많아서.... ㅎㅎㅎㅎㅎ

 

 

1. 이동명령

 

vi에서 방향키 써도 된다 하지만 방향키를 무엇인가 작성하고 이동하고 수정하고 할때 손이 많이 움직이고 모르는 사람이 봤을때 방향키에 손이 와따가따 하는것보다 큰 움직임 없이 무엇인가 빠르게 움직이고 변하는것을 보는것으로 신기해 하지 않을까?

개발자도 멋나게 보여 보고 싶은거다!!!!

 

키 

설명 

 h

 커서를 현재 위치에서 왼쪽으로 한 글자 옮긴다.

 j

 커서를 현재 위치에서 한 라인 아래로 옮긴다.

 k

 커서를 현재 위치에서 한 라인 위로 옮긴다.

 l

 커서를 현재 위치에서 오른쪽으로 한 글자 옮긴다.

 

 

 

2. 편집 명령어

 

글자를 추가하거나, 기존에 있는 글자를 삭제할 경우에 사용하는 명령어이다. 입력한 내용을 명령어가 아닌 파일에 입력하는 데이터로서 인식하여 ESC를 누를때까지 입력한 모든 내용이 화면에 출력된다. 글자를 지우는 명령어를 사용하면 지운 글자는 임시 레지스터에 저장된다.

 

 

 

설명

i

현재 커서가 있는 곳에 글자를 ESC를 누를 때까지 입력한 글자를 추가한다(insert).

x

현재 커서가 있는 곳의 글자를 지운다.

 

 

3. 종료 명령어

 

중요한 명령어 수정하고 지우고 해봐야 저장 못하고 혹은 vi를 종료 못해서 Ctrl+c로 빠져 나올순 없다.

 

 

키 

 설명

 :w

 현재 편집하는 파일을 저장한다(write).

 :w!

 현재 편집하는 파일을 강제로 저장한다.

 :q

 현재 편집하는 파일을 닫고 vi 에디터를 종료한다(quit).

 :q!

 현재 편집하는 파일을 저장하지 않고 vi 에디터를 종료한다.

:wq

 현재 편집하는 파일을 저장하고 vi 에디터를 종료한다(write & quit).

  :zz  현재 편집하는 파일을 저장하고 vi 에디터를 종료한다.(사용하면서 써본적이 없는것 같다.)



 

4. 이동명령어2

 

단순 방향성이 아닌 Eclipse의 ctrl 방향키등과 비슷한 명령어 들이다.

 

아래 명령이 이외 여러가지가 있지만 솔직히 머리가 나빠서 인지 혹은 익숙하지 않아서 인지 안쓰니까 패스 ㅎㅎㅎ 0,$,w,b 이 4가지 명령어는 아주 빈번하게 사용하는 편이다.

 설명

 w

 커서를 우측 단어의 첫 글자로 옮긴다(Word).

 W

 커서를 우측 단어의 첫 글자로 옮긴다. 단, 단어는 공백으로만 나뉜다(Word).

 e

 커서를 우측 단어의 끝 글자로 옮긴다(End of word).

 E

커서를 우측 단어의 끝 글자로 옮긴다. 단, 단어는 공백으로만 나뉜다(End of word).

 b

커서를 좌측 단어의 첫 글자로 옮긴다(Backward).

 B

커서를 좌측 단어의 첫 글자로 옮긴다. 단, 단어는 공백으로만 나뉜다(Backward).

 0

커서를 라인의 첫 글자로 옮긴다.

 $

커서를 라인의 끝 글자로 옮긴다.

 

5. 편집 명령어2

 

 

키 

 설명

 a

 커서의 우측에 ESC를 입력할 때까지 입력한 모든 글자를 추가한다(Append).

 A

 현재 라인의 맨 끝에 ESC를 입력할 때까지 입력한 모든 글자를 추가한다. 숫자 n을 명시하면 n번 반복해서 입력한다(Append)

 I

 현재 라인의 공백이 아닌 첫 글자 앞에서 ESC를 입력할 때까지 입력한 모든 글자를 추가한다(Insert).

 o

 현재 라인 밑에 새로운 라인을 열고 ESC를 입력할 때까지 입력한 모든 글자를 추가한다(Open).

 X

 현재 커서의 왼쪽 글자를 지운다.

 dpos

 현재 커서부터 pos로 명시한 이동 명령어로 명시한 곳까지 글자를 지운다. 이동 명령어는 어떠한 것이 와도 상관없이, 그 명령어의 의미가 나타는 곳까지 글자를 지운다. 따라서 조합할 수 있는 명령어는 dh,dj,dk,dl,dw,db,de,dW,dB,dE,dH,dM,dL,d0,d^,d$,d-d,+,d_,d| 등 헤아릴 수 없이 많은 명령어를 만들 수 있다(Delete).

 dd

 현재 커서가 위치한 라인을 지운다(Delete).

 D

 현재 커서가 위치한 곳부터 라인의 끝까지 지운다. 앞에 숫자 n이 명시된 경우 현재 라인의 끝까지 지우고 추가로 커서 아래에 있는 n-1 개의 라인을 지워서 레지스터에 넣는다(Delete).

 r

 커서가 위치한 곳의 글자를 다른 하나의 글자로 대체한다(Replace).

 R

 커서가 위치한 곳부터 우측으로 가면서 글자를 대체하는데 ESC를 누를때까지 입력한 개수만큼 기존의 글자가 새로운 글자로 대체된다(Replace).

 ~

 커서에 있는 글자의 대소문자를 서로 바꾼다. 즉 ~를 누를 때마다 커서의 우측으로 옮기면서 커서에 있는 글자가 소문자일 경우는 대문자로, 대문자인 경우는 소문자로 바꾼다.

 yy,Y

 커서가 있는 라인의 데이터를 복사한다.

 p

 마지막으로 지우거나 복사한 데이터를 읽어서 커서의 우측에 데이터를 추가한다(Paste).

 P

 마지막으로 지우거나 복사한 데이터를 읽어서 커서의 좌측에 데이터를 추가한다(Paste).

 u

 마지막에 실행한 편집 명령어를 하나를 취소한다(Undo).

 

 
 

6. 검색 명령어

 

 

 키

설명 

 /pattern

 / 다음에 찾고자 하는 글자의 정규식을 사용해서 패턴 형태로 입력하면 커서의 우측 아래쪽 방향으로 패턴을 찾는다.

 ?pattern

 ? 다음에 찾고자 하는 글자의 정규식을 사용해서 패턴 형태로 입력하면 커서의 좌측 위쪽 방향으로 패턴을 찾는다.

 n

 가장 마지막으로 실행한 검색 명령어를 똑같은 방향으로 실행한다. 마지막 검색이 우측일 경우(/를 사용한 경우)는 우측으로, 좌측일 경우(?를 사용한 경우)는 좌측으로 패턴을 찾는다(Next).

 N

 가장 마지막으로 실행한 검색 명령어를 반대 방향으로 실행한다. 마지막 검색이 우측일 경우(/를 사용한 경우)는 좌측으로, 좌측일 경우(?를 사용한 경우)는 우측으로 패턴을 찾는다(Next).

 

 

7. vi 설정 명령어

 

밑의 명령어를 vi 에디터를 실행할 때마다 적어넣기 불편하므로 vi 에디터의 설정을 저장한 파일

즉, ~/.exrc 파일에 자신에게 적합한 설정 사항을 넣어 두면 매번 따로 설정하는 불편함이 사라진다.

   

키 

 설명

 :set nu

 각 라인 앞에 라인 번호를 붙인다(NUmber).

 :set nonu

 각 라인 앞에 라인 번호를 붙이지 않는다(NO NUmber).

 :set ts=n

 탭의 크기를 n으로 정한다(Tab Stop).

 

 

나도 vi를 잘쓰는건 아니지만 개발하면서 전혀 안쓸순 없는부분이라 위에것중 1/3 만이라도 자주 쓰는거 숙지하면 어려움이 없지 않을까 라는 생각이 든다.

 

vi 처음 접하는 개발자 분들 화이팅 입니다.

 

'Job > Tools' 카테고리의 다른 글

vi 명령어 및 사용법 정리  (2) 2015.02.26

  • Favicon of https://zoahaza.net 조아하자  Edit/Del  Reply

    2015.02.28 23:57 신고

    오... 예전에 C했을때 저런거 좀 하긴 했는데... 요즘은 웹쪽으로 완전 전향하고나서는 저런거 안하게 되네요...;;;

고양이 허피스 바이러스와 L-lysine

우리집 구름이 입양 받으러 갔을 때 그 집에 다른 냥이가 감기라는 소리를 대수롭지 않게 받아 드리고 입양 받아 집에 온지 일주일도 안 지나서 구름이 눈에 눈꼽이 보이기 시작하더라고요 처음 냥이 키워 보는 거라 모르고 넘어갔는데.....

 

퇴근하던 저에게 와이프가 구름 이가 한쪽 눈이 이상하다는 소리 듣고 후다닥 집으로 뛰어 가보니 한쪽 눈을 거의 못 뜨더라고요 ㅠㅜ

 

겁이 덜컥 나서 일단 아는 지인 분이 소개 시켜준 동물병원으로 대리고 갔는데 허피스 바이스라는 이야기를 듣고 설명을 해주는데 감기 같은 거지만 방치하면 실명이나 다른 위험한 일이 생길 수 있다는 소리를 들었어요....

 

 

 

<구름이 각티슈>

 

 

원래 이리 눈이 똘망 똘망 예쁜 아인데.... 눈도 잘 못 뜨고 불편해서 윙크 같이 겨우 겨우 깜빡깜빡.

 

병원 쌤이 아직 아갱이라 약을 오래 쓰는 것도 좋지 않고 안 쓰기도 불안하다는 말을 들으며 3일치 약 받아 들고 집에 와서 허피스 바이러스가 뭔가 열심히 찾아 봤죠...

 

네이버 지식백과에 허피스바이러스 정의 첫부분인데....

 

고양이 허피스 바이러스-1에 의해 생긴 고양이 허피스바이러스 코기관염은 고양이에서 나타나는 상부 호흡기계질병이고 고양이가 다른 문제를 초래할 수 있는 주요 문제가 됨. 어린 새끼고양이에서 대부분 심하고 사망률이 높을 수 있음.

 

 

사망률이 높을 수 있음?. ? 깜놀하는 소절이죠 사망률이 높다니 우리 구름 이가.... 정말 위독한 거야?안돼 

 

증상도 다양하다고 하던데 울 구름 이는 엄청난 눈꼽과 기침, 콧물, 컨디션이 많이 떨어져서 회복을 위한 엄청난 골골골.....

그래도 다행인건 병원 쌤 말씀으로는 보통 기운이 없어 식욕이 많이 떨어져 증상이 더 심해진다는데 이 녀석 그때나 지금이나 엄청난 식욕이라 다행이다 싶긴 했지만.... 그래도 마음이 아프더군요....

 

이래서 분양 받을 때 부모 묘 접종이나 주변 묘들의 건강도 확인하고 입양할 묘의 눈 코 똥꼬등 확인을 꼭 해보라고 했구나 싶더라고요.

 

그 사단이 나고 힘들어하던 구름이 거의 한 달을 기운 없다가 어느 날 새벽에 침대 머리 쪽에서 부스럭 부스럭 소리에 눈뜨니....

 

아잉2

 

 

 

 

 

이러고 처다 보고 있는 거야 한동안 기운 없어서 화장실 다녀 올 때 아니면 잘 안 움직이려 하더니 새벽에 저기 올라가서 울지도 않고 구경하고 있더라고... ㅋㄷㅋㄷ

 

치료 받고 1~2달이 지내도 구름이 이 녀석이 콧물을 조금씩 흘리고 재채기를 해서 병원에 접종 받으러 가서 물어 봤더니 사람들 감기같이 완치가 아니고 잠복이라고 하더라고...

 

그러면서 모든 고양이가 효과를 보는 건 아니지만 한번 L-lysine을 줘보라 하더라고 이리저리 검색하다가 일단 먹이기 쉬운 놈으로 선택 했서 지금 한 몇 개월째 먹이고 있는데 펫네츄럴 엘라이신 을 선택을 했지 잘라서 간식이나 밥에 같이 주면 그냥 먹으니까....

 

새끼 때부터 알약을 먹였더니 알약 모양만 꺼내면 우다다 소파 뒤에 숨어 버리는 녀석인지라 ㅠㅜ

 

 

 

 

 

요 녀석 꾸준히 먹이고 있는데 효과가 있는 건지 이번에 산 거 다 먹이면 알약으로 먹여봐야 하나 싶고 병원에서 효과를 모르겠다니까 한번 투약을 멈춰 보라고 하긴 하는데 멈추면 다시 아플까 봐 불안하고 ㅠㅜ

 

 

그래도 요즘은 재채기 청소 쫌 안할때 말고는 잘 안 하니 다행이긴 한데 가끔 잘 때 숨소리가 약간 거친 느낌이 들어서 걱정이 드네...

 

다른 분들도 허피스 바이러스 조심하세요 ㅠㅜ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'생활 > 고양이' 카테고리의 다른 글

요리 방해꾼 구름이의 난동  (0) 2015.03.10
구름이 혼자 놀지말고 같이 놀자  (0) 2015.03.03
고양이 허피스 바이러스와 L-lysine  (0) 2015.02.26
구름이 두더지게임  (0) 2015.02.25
구름이 처음 입양 2일때  (0) 2015.02.25

Java로 재미로 Windows DIR 만들기

이번에 용량이큰 3.5인치 외장하드 하나 장만하면서 대학때부터 이리저리 모아두던 외장하드들 3개를 정리해서 한곳으로 모으는 작업을 진행했다.
대학교에서 Embedded쪽을 하겠다고 C,C++만 하던차 Mobile 제조사에 신입으로 들어가 C,C++ 가끔 MFC정도만 하던차 회사가 문을 닫으며 다른곳으로 이직해 처음 Java를하면서
이런저런 쓸모 없는거 신기한거 만들어 보자고 만들기 시작한놈중 지금 보면 부끄러운놈들도 있고 신기한놈들도 있고 해서 한두개씩 올려 볼까 한다.

이건 뭐 누구나 만들수 있는거지만 심심해서 만들었던 놈중에 jar 파일을 exe파일로 변환 시켜주는 Jsmooth던가 그거 써서 만들어 던거라 기억에 많이 남아 한번 포스팅 해본다.

최대한 DIR 명령어랑 비슷하게 하려 했으나 그 이해 못할 귀차니즘이 나를 막아서서 ㅎㅎㅎㅎ

FileSearcher.java 초기 받아 처리 하는 부분
	/*
	 * 탐색기 분기처리
	 */
	public String Searcher(String[] args){
		String result = "";
		String fileName = "";
		String dir = "";
		
		if(args.length<1)
		{
			//현재 디렉터리 정보 표시
			result = ShowDir(dir);
		}else{
			for(int x=0;args.length>x;x++){
				if(!optionVO.isHelp()){
					// 도움말 표기
					if(args[x].equals("/h")||args[x].equals("/H")){
						optionVO.setHelp(true);
						return HELP;
					}
				}
				// 하위 디랙터리 검색 옵션
				if(!optionVO.isOptionSubDir()){
					if(args[x].equals("/a")||args[x].equals("/A")){
						optionVO.setOptionSubDir(true);
					}
				}
				// 디렉터리 옵션 추출
				if(!optionVO.isSearchDir()){
					if(commonUtil.checkDir(args[x])){
						optionVO.setSearchDir(true);
						dir = args[x];	
					}
				}
				// 파일명 옵션 추출
				if(!args[x].equals("/h")&&!args[x].equals("/H")&&!args[x].equals("/a")&&!args[x].equals("/A")&&!commonUtil.checkDir(args[x])){
					optionVO.setSearchFile(true);
					optionVO.setFileLike(commonUtil.checkFileName(args[x]));
					if(optionVO.isFileLike()){
						args[x]=args[x].substring(0,args[x].length()-1);
					}
					fileName= args[x];
				}
			}
			connectioDir.add(dir);
			if(optionVO.isSearchDir()&&!optionVO.isSearchFile()){
				// 파일 검색이 아닌 원하는 위치의 정보 표시
				result = ShowDir(dir);
			}else{
				// 파일 검색
				result = ShowSearchFile(fileName, dir);
			}
		}
		return result;
	}
	
	public String ShowSearchFile(String fileName, String dir) {
		String returnString="";
		long totalLength = 0;
		if("".equals(dir)){
			dir = System.getProperty("user.dir");
		}
		fileInfoVO = Finder(fileName, dir);
		if(fileInfoVO.size()>0){
			for(int x=0 ; fileInfoVO.size()>x;x++){
                                                                (x).getFIlelength())+"\n\n";
				totalLength = totalLength+fileInfoVO.get(x).getFIlelength();
			}
		}else{
			returnString = dir+" 위치에 \""+fileName+"\" 을 찾을수 업습니다";
			return returnString;
		}
		returnString = returnString +"\t전체 파일  :\n\t\t"+Integer.toString(fileInfoVO.size())+"개 파일\t"+commonUtil.fileLength(totalLength);
		return returnString;
	}

파일 검색부분
	/*
	 * 파일 검색
	 */
	public ArrayList< FileInfoVO > Finder(String fileName, String dir) {
		ArrayList< FileInfoVO > InfoVO = new ArrayList< FileInfoVO >();
		File temp = new File(dir);
		SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd a K:mm");
		File[] files = temp.listFiles();
		try{
			for(int x=0; files.length > x;x++){
				if(!files[x].isDirectory()){
					if(optionVO.isFileLike()){
						if(fileName.equals(files[x].getName().substring(0,fileName.length()))){
							FileInfoVO fileinfo = new FileInfoVO(); 
							fileinfo.setFIlelength(files[x].length());
							fileinfo.setFileName(files[x].getName());
							fileinfo.setFIlePath(files[x].getPath());
							fileinfo.setFilelastModified(files[x].lastModified());
							fileinfo.setSearchPath(dir);
							InfoVO.add(fileinfo);
							System.out.println("\n  "+fileinfo.getSearchPath()+"\t 디렉터리"+"\n\n"
									+formatter.format((new Date(fileinfo.getFilelastModified())))+"\t"+fileinfo.getFileName()+"\t"+commonUtil.fileLength(fileinfo.getFIlelength())+"\n\n");
						}
					}else{
						if(files[x].getName().equals(fileName)){
							FileInfoVO fileinfo = new FileInfoVO(); 
							fileinfo.setFIlelength(files[x].length());
							fileinfo.setFileName(files[x].getName());
							fileinfo.setFIlePath(files[x].getPath());
							fileinfo.setFilelastModified(files[x].lastModified());
							fileinfo.setSearchPath(dir);
							InfoVO.add(fileinfo);
							System.out.println("\n  "+fileinfo.getSearchPath()+"\t 디렉터리"+"\n\n"
									+formatter.format((new Date(fileinfo.getFilelastModified())))+"\t"+fileinfo.getFileName()+"\t"+commonUtil.fileLength(fileinfo.getFIlelength())+"\n\n");
						}
					}
				}else{
					if(optionVO.isOptionSubDir()){
//						if(files[x].canRead()||files[x].canWrite()||files[x].isHidden()){
							connectioDir.add(files[x].getPath());
							InfoVO.addAll(this.Finder(fileName, files[x].getPath()));
//						}
					}
					
				}
			}
			
		}catch (Exception e) {
//			e.printStackTrace();
//			System.out.println(connectioDir.get(connectioDir.size()-2)+"\t에 접근 권한이 없습니다");
			return InfoVO;
		}	
			return InfoVO;
		
	}

파일 경로 출력
	public String ShowDir(String showdir){
		String result = "";
		String dir = "";
		if("".equals(showdir)){
			//디렉터리 조건이 없는경우 현위치 설정
			dir = System.getProperty("user.dir");
		}else{
			dir = showdir;
		}
		SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd a K:mm");
		ArrayList< FileInfoVO > InfoVO = new ArrayList< FileInfoVO >();
		File temp = new File(dir);
		File[] files = temp.listFiles();
		int dirCnt = 0;
		int fileCnt = 0;
		long fileLength = 0;
		try{
			for(int x=0;x < files.length;x++){
				FileInfoVO fileinfo = new FileInfoVO();
				fileinfo.setFileName(files[x].getName());
				fileinfo.setFilelastModified(files[x].lastModified());
				fileinfo.setFIlelength(files[x].length());
				
				if(files[x].isDirectory()){
					fileinfo.setDir("DIR");
				}else{
					fileinfo.setDir("    ");
				}
				InfoVO.add(fileinfo);
			}
			result = "\n  "+dir+"\t 디렉터리\n\n";
			for(int x=0 ; InfoVO.size()>x;x++){
				result = result+ formatter.format(new Date(InfoVO.get(x).getFilelastModified()))+"\t"+InfoVO.get(x).getDir()
				+"\t"+InfoVO.get(x).getFileName()+"\n";
				if(InfoVO.get(x).getDir().equals("DIR")){
					dirCnt++;
				}else{
					fileCnt++;
					fileLength = fileLength+InfoVO.get(x).getFIlelength();
				}
			}
			result = result + "\t\t" +fileCnt+"개 파일 \t\t"+commonUtil.fileLength(fileLength)+"\n\t\t"+dirCnt+"개 디렉터리";
		}catch (Exception e) {
			System.out.println(e.getMessage());
			e.getStackTrace();
			return null;
		}	
		return result;
	}

뭐 크게 어려운것 없이 거의 하드 코딩에 가까운 엄청단 for문과 조건으로 이루워져 있지만 그냥 보다 생각나서 한번 올려 본다 ㅎㅎㅎㅎ

구름이 두더지게임

우연히 인테넷 동영상 보다 박스에 구멍만들어 냥이랑 두더지 놀이 하는거 보고 잼나겠다 싶었던차에

집안 청소중 신발 박스가 있어 나도 만들어 볼까 싶어서 대충 대충 가위로 구멍 맹그러서 시도 해봤다. ㅋㄷㅋㄷ

 

 

 

 

아직 아갱이라 장난 심하고 노는거 좋아 하는 구름이 맨날 이리 와서 놀아 달라고 졸래 댄다.

뭔가 장난감에 금방 질려 버리는 스타일이라 할까? 쥐도리도 몇일 가지고 놀면 다르게 생긴 쥐돌이를 사올때까지 처다도 안보니 잠깐 놀만하겠다 싶어 만들어줬는데 이거 완전 대박 만들고 당일 말고도 매일 매일 이거에 중독되 사는 우리 구름이 ㅋㄷㅋㄷ

 

 

 

 

완전 신났다 신났어 정신을 못차린다 구름이 ㅎㅎㅎㅎㅎ

 

'생활 > 고양이' 카테고리의 다른 글

요리 방해꾼 구름이의 난동  (0) 2015.03.10
구름이 혼자 놀지말고 같이 놀자  (0) 2015.03.03
고양이 허피스 바이러스와 L-lysine  (0) 2015.02.26
구름이 두더지게임  (0) 2015.02.25
구름이 처음 입양 2일때  (0) 2015.02.25

'분류 전체보기'에 해당되는 글 48건

1 2 3 4 5 →