엉엉. T_T

불나방 스타 쏘세지 클럽이 2010년 9월 3일 첫 단독 콘서트이자, 고별 콘서트를 끝으로 해체를 했다. 마지막 공연이었다면 반드시 참석했을 텐데... 모르고 있다가 인디밴드 관련 정보를 보고 있는 도중에 고별 공연 동영상이라는 충격적인 발견.

석연치 않은 결말 - 공연 안내

석연치 않은 결말 - 공연 안내


헉! -_- 어쩜 -_-..... T_T 이걸 알았다면 휴가를 내서라도 가 봤을 텐데 T_T. 상상마당에서 공연을 하였고, 두번 추가로 오픈한 예매 티켓이 모두 매진되고, 현장 티켓까지 매진된 공연이었다고 한다. 이번 고별무대에서 EP음반을 공개 했는데, EP음반의 제목이 "석연치 않은 결말"이다. 고별무대에서 EP를 발표하고, 그 제목이 "석연치 않은 결말". 뭔가 의미 심장하지 않을까?


그리고 "석연치 않은 결말"앨범에 에 포함된 곡으로 "알밴비"가 있는데, 그... 가사를 살펴 보면...
알밴비 - 불나방스타쏘세지클럽, 석연치 않은 결말[EP]

이제 인디음악이 싫증이 났어요.
...
오랜 세월 나의 긴 머리를 짧게 자르고
목숨 같은 나의 기타를 헐값에 팔아버렸지
미안해 멤버들아 나는 더 이상 인디밴드를 하지 않을 거야
함께 울며 웃으며 연주한 추억을 가슴속에 남길께

돌이켜 생각해보니 나는 쓸데없는 개 멋에 취해
미련하게 청춘을 소모하고 있었던 것 같아
하지만 이제야 깨달았다네
이런 비호감적인 음악을 해봤자 더 이상
여자들이 좋아하지 않는다는 것을

늦지 않았어 그 기타를 팔아버리고 옷 한 벌을 더 사
노래방에 연습한 알앤비를 그녀에게 들려줘 베이베
다시는 홍대 앞에서 기타 메고 폼 잡지 않을거야
함께 불러 알앤비
리듬 앤 블루스

랩:
아직도 홍대 앞 지하실 구석에서 피땀 흘려 연습하고 있을 (리듬앤블루스)
20대 인디 밴드 여러분께 이 노래를 바칩니다 (리듬앤블루스)
세이 알앤비 (알앤비) 소리 질러 워어 (워어) 워워워 (워워워)

돌이켜 생각해보니 그 동안 지켜왔던 신념만 믿고
다른 음악은 철저한 자본주의의 상술이라 믿었지
하지만 이제야 깨달았다네
모두 부질없는 짓이었다는 것을 나는 지금
설리에게 빠져 있기 때문에

....

가사 때문에 그런지 더 "석연치 않은 결말"을 내는것 같은 느낌이다.

공연엔 옥상달빛과, 강산에, 그리고 갤럭시 익스프레스가 게스트로 참석을 하였다고 한다. 특히 옥상달빛의 멤버인 박세진님은 예전에 그린플러그드 페스티벌에서 "로리타 곤잘레스"라는 이름으로 불나방스타쏘세지클럽의 객원로 참여했다고 한다.

불나방스타쏘세지클럽의 리더인 조 까를로스가 예전에 남긴 "고질적 뮤지션의 길"이라는 제목으로 발표했던 계획중 일부인 "창작의 고통을 못 이겨 은퇴를 선언한다" ... 그리고 ... "흩어져 있는 멤버들을 모아 돈 때문에 다시 뭉쳤다며 재결합을 선언한다" 처럼 되었으면 좋겠다.

이번 EP 앨범에서는 정규 1집인 "고질적 신파"에서 약속했던,  마도로스 K의 계속 되는 모험을 이야기 해 주기 위해서, "마도로스 K의 모험 II"도 수록되었다. 그리고 "마도로스 K의 모험 II" 역시 다음 이시간에 보자고 말해주고 있으니... 내가 파닥파닥 거려도 좋으니 이게 모두 낚시였으면 하는 바람이 든다.


흑흑... 완전 아쉽다...
내가 인디밴드 음악을 듣게 만들어 주었던 그룹인데...
공연을 본다는것의 재미를 알게 해 준 밴드였는데...


인터넷을 뒤져서 구한 몇가지 링크를 이곳에 둔다.

불나방 스타 쏘세지 클럽 카페 주소 - http://sossage.cyworld.com/

석연치 않은 인터뷰 #1 - 곰사장 : http://club.cyworld.com/5092216811/179613845
고별 공연 티져 영상 공개 - http://club.cyworld.com/5092216811/179706054
석연치 안흔 결말 발매 - http://bgbg.co.kr/ver4.0/154

김기자의 인디 속 밴드 이야기
- 불나방스타쏘세지클럽 고별공연 취재기사 : http://cafe.daum.net/Indiestory/2QZg/248
- 정말 은퇴일까요? 불나방스타쏘세지클럽... : http://cafe.daum.net/Indiestory/5EmL/1635

shaggy dog님의 고별 무대 후기
- 1편 : http://181818kin.blog.me/60114382646 (공연 영상 포함)
- 2편 : http://181818kin.blog.me/60114399518 (공연 영상 포함)
- 3편 : http://181818kin.blog.me/60114459033 (공연 영상 포함)

로저님 : EP 앨범 소개 - http://blog.naver.com/zhouyu33/20114518882

동영상
uTurnD님의 고별무대 동영상 녹화 : https://www.youtube.com/user/uTurnD#p/u/9/bjsjlVFZv6k
( 유튜브 동영상인데 퍼와지지 않는다 ;;; ㅎㅎ ;;; )


여러분의 현금이 저희에겐 힘이 된다는 곰사장님의 말을 마지막으로 글을 마무리 할까 한다.
...

물론 기다릴 수는 있겠다. 조까를로스가 ‘고질적 뮤지션의 길’에 밝혔던, 은근슬쩍 나올 솔로 앨범을. 더불어 돈 때문에 뭉칠 재결합 공연을. 하지만 불나방 스타 쏘세지 클럽이라는 이름을 달고 나올 앨범으로는 확실히 마지막이다. 이제 작별 인사를. 그 동안 덕분에 즐거웠습니다.

글 / 곰사장 (붕가붕가레코드)

석연치 않은 결말 - 불나방스타쏘세지클럽 EP 앨범

석연치 않은 결말 - 불나방스타쏘세지클럽 EP 앨범


  1. 닉쑤 2010.10.03 12:52

    안타깝네요...

    저런건 취미로 해야되나..

    • 2010.10.03 22:29 신고

      돈 벌이가 안되는 직업일까?

    • 닉쑤 2010.10.04 04:39

      돈 벌이가 되면 인기가 있다는 말인데..

      그렇다면 저런 가사와 이런 결과가 나오지 않았겠죠 ㅎ

      아니면 너무 높은곳을 갈망했던가.. ㅎ

  2. 유야 2010.10.03 23:30

    난 저거 하는거 알고 있었는데 ㅎㅎ
    근데 진짜 고별하는건지 아닌지 워낙 엉뚱한 밴드라 ㅎㅎ

이번에 회사에서 스마트폰을 지원해 줬다.
100%는 아니지만, 지원해주는것이 어딘가?
당연히 신청해야지.

그래서 현재 갤럭시S를 사용하고 있다.

0.
추석 전날 갤럭시S를 받았는데...
갤럭시S 포장에 씰이 덧대어 붙어 있었다.
원래 씰은 찢어져 있고, 그 위에 하나를 더 덧붙여 놓았다.
유심이 설치 되지도 않고 그냥 카드가 떨렁 왔는데, 씰이 찢어져 있다니...
아... 놔...
우선 그냥 받기는 했지만 왠지 짜증 -_-

1.
처음에는 4인치 화면이 커서 좋겠다 싶어 쓰게 되었으나,
화면이 커서 -_- 두손으로 핸드폰을 쓰고 있는 내 모습을 보게 되었다.
이제는 한손으로 적당히 핸들링 할 수 있지만,
능수능란한 핸들링은 아직도 어렵다.

2.
펜타일 아몰레드. 그렇게 많이 눈에 띄이진 않는다.
사람들이 워낙 뭐라고 해서 그런지... 아예 안 거슬리지는 않는다.

3.
기존에 있던 스마트폰(M4655)에서는 책을 많이 읽었는데, 갤럭시S가지고는 아직 음악을 많이 듣고 있다.
책 읽기 프로그램도 몇개 깔아 뒀는데... 어떤게 좋은지 잘 모르겠다. 무료책이라도 몇개 받아서 봐야 겠다.

4.
회사에서 밤에 혼자서 일할때 이어폰을 안 끼고, 그냥 컴퓨터 스피커를 트는데.
소리가 작아서 별로 흥겹지 않았는데, 갤럭시S 자체가 소리가 커서 좋다.
지금도 크게 틀어 놓고 있는 중. ㅎㅎ.

5.
SD카드에 있는 내용이 자꾸 맛탱이 간다. 벌써 네번째인데, 안에 있는 파일들이 다 깨져 버린다. -_-
아직 구매한지 14일이 안되었으니 한 번만 더 이상하면 바로 교품 고고싱 해 버릴꺼다. -_-

6.
기본요금제에 1만원짜리 안심데이터(500M)를 사용중인데,
처음쓰는거라 그런지 3G를 많이 사용해서 용량이 좀 부족한 듯 하다.
집에 무선 AP를 하나 구매해야 겠다.


  1. 씨어 2010.09.27 12:20

    저는 오늘 iPhone4 받으러 갑니다. 울 회사는 스마트폰 지원 같은 건 안해줘요 -0-
    휴대폰비를 내주긴 하는군요...ㅡㅡㅋ

    • 2010.09.27 21:15 신고

      휴대폰을 백만원치 써 버리세요~ ㅎㅎ

  2. 닉쑤 2010.09.28 11:55

    부럽부럽~~

  3. 유야 2010.09.28 13:21

    오.. 갤스유저 ㅋㅋㅋ

    • 2010.09.28 21:38 신고

      영화 볼땐 좋아. ㅎ. 배터리 문제가 있긴 하지만. ㅎ.

  4. 씨어 2010.09.28 16:44

    Max 10마넌...;;

    • 2010.09.28 21:39 신고

      9.9만원짜리 요금제에 공짜 폰으로... ㅎ.
      그러다가 이직하면 ;; 나머지 위약금은 안습이겠지만요~ ㅎㅎ.

최근 들어 일을 하면서, 어떻게 하면 오해 하지 않도록 코드를 짤 수 있을까? 에 대해서 많은 생각을 한다.

과제 제출용으로 작성하거나, 혹은 테스트로 작성하는 코드가 아니라면, 일반적으로 하나의 프로그램을 여러명이서 작성하게 된다. 그러므로 내가 만들어 낸 코드를 나 혼자 쓰는것이 아니라, 다른 사람도 사용하게 된다. 이때 다른 사람들은 내가 만들 소스 코드를 정확하게 이해하고 쓸 수 있을까? 내가 소스를 이렇게 작성한 의도를 정확하게 파악할 수 있을까?

그렇기 때문에 나 스스로 코드를 작성할때, 되도록이면 오해하지 않는 코드를 작성할 수 있도록 노력하고 있다. 물론 노력하고 있다는 것은 여전히 그렇게 하지 못하고 있다는 의미를 포함하고 있다. ㅎㅎ

내가 생각하는 오해하지 않는 코드의 조건은 아래와 같다.
1. 읽기가 쉬워한다.
2. 의미가 명확해야 한다.

그래서 오해하지 않는 코드를 짜기 위한 생각해둔 방법중 하나인 "수직적인 코드"에 대해서 이야기 해 보고자 한다. "수직적 코드"는 내가 임의로 붙인 이름이다. 아마도 이미 나보다 백만배는 더 똑똑한 사람이 이런 개념을 정리해 두었을거라 생각하지만... 조사 따위 하지 않는다. ㅋㅋㅋㅋ



예를 들어...

간단한 프로그램을 예로 들어 설명하도록 하겠다.

프로그램의 동작

1. 사용자 이름과 암호를 입력 받아 로그인을 한다.
2. 파일 dialog를 띄워서 특정 파일을 선택한 후에 OK라는 글자를 저장한다.
3. 사용자에게 결과를 알려 준다.

이 프로그램을 작성하는 두가지 예제를 차례대로 보고, 수평적 코드와 수직적 코드에 대해서 알아 보자.


첫번째 예제

아래의 코드는 위에 제시한 프로그램을 구현한 아주 더럽게 작성된 예이다. 이 글에서 설명하고자 하는 것을 명확하게 하기 위해서 아주 극단적인 예제로 작성했으니, "세상에 저렇게 프로그램을 짜는 사람이 어디 있냐?" 라고 말하지 마시길... ( 알고보면 자신이 짠 코드들 중에 저런 코드가 존재할 수도 있으니... ㅎㅎ )

첫번째 예제

첫번째 예제


다시 한번 말하지만, 위의 코드는 조금 억지스러운 부분이 있다. 하지만 설명을 위해서 그러니 용서를... 위의 코드는 상당히 코드를 읽기가 힘들다. 하나의 메소드를 읽고 있는 도중에 다시 다른 메소드를 호출하고 있고, 다시 메소드를 읽고 있는 도중에 또 다른 메소드를 호출하게 된다. 이러한 코드는 한곳에서 코드를 모두 읽어 볼 수 없고, 하나의 메소드에서 또 다른 메소드로 계속 추적하면서 내용을 읽어 보아야 한다.

위에서 작성한 코드를 시퀀스 다이어그램과 비슷한 형태로 나타내면 아래와 같이 나타낼 수 있다.

수평적 코드 그림

수평적 코드


이 코드는 startSave에서 loginAndSave를 호출하고, 다시 loginAndSave가 save를 호출하고 있다. 하나의 메소드가 또 다른 메소드를 호출하게 되어, 코드의 흐름이 왼쪽으로 오른쪽으로 좌우로 넓게 나열되게 된다. 이러한 코드를 "수평적 코드"라고 하자.



두번째 예제

그럼 위의 동작을 하는 코드를 좀 더 알아 보기 쉽게 작성해 보자.

두번째 예제

두번째 예제


두번째 예시는 상당히 코드 읽기가 쉬워졌다. 각각의 메소드에서는 단지 1개의 일만 하고 있고, 각 메소드에서 다른 메소드를 호출하는 일도 없다. 그러므로 코드의 시작 위치인 main에서 여러 depth의 메소드를 계속 추적할 필요 없이, 하나의 메소드를 읽고, 다시 제자리로 돌아와서 또 다른 메소드를 읽으면 된다. 메소드명이 명확하므로 main에서 메소드명만 읽고, 굳이 코드를 읽지 않아도 한번에 코드의 흐름을 이해할 수 있다.

두분째 예제를 마찬가지로 시퀀스 다이어그램과 비슷하게 그려서 보도록 하자.

수직적 코드 그림

수직적 코드


위의 그림에서 볼 수 있다시피, 두번째 예제의 그림은 main에서 어떠한 메소드를 호출했다가도, 곧바로 자신에게 돌아오게 되어 있고, 호출한 메소드에서 또 다른 메소드를 호출하지 않고 있으므로, 프로그램의 흐름이 아랫쪽으로 흘러가게 된다. 이러한 코드를 "수직적 코드"라고 하자.


두 예제를 비교해보니...

첫번째 예와 두번째 예에서 메소드 이름을 자세히 보았다면 다른점을 느꼈을 것이다. 첫번째 잘못된 예의 경우에는 하나의 메소드가 두가지 일을 하고 있다. 이렇게 되면 하나의 메소드에서 여러가지 일을 해야 해서 당연히 코드가 복잡해 질 수 밖에 없고, 나중에 코드를 변경하려고 해도 신경써야 할 일이 많아 질 수 있다.


그리고, 첫번째 예제에서 LoginUI를 여러개를 바꿔가면서 사용하고 싶다면 어떻게 해야 할까? 혹은 Login을 체크하는 알고리즘이 여러개라면 어떻게 처리해야 할까?

첫번째 예제에서는 하나의 메소드(loginAndSave)에서 LoginUI도 띄우고 login도 하고 save도 하므로, LoginUI만 교체한다거나, LoginChecker를 다른것으로 교체하는것이 까다롭다. 상속관계를 이용해서 오버라이딩을 하려고 해도, LoginUI만을 다른것으로 교체하기가 힘들다.

하지만 두번째 예제의 경우에는 하나의 메소드가 단 한가지만의 일을 하도록 되어 있다. 물론 코드를 키워나가는것도 더 쉽다. 두번째 예에서 새로운 모양의 LoginUI를 만들고 싶다면, createLoginUI 메소드를 protected로 바꾸고, VCoding을 상속 받아서 createLoginUI만을 오버라이딩 하면 된다. LoginChecker도 마찬가지다.


그리고 method가 한개의 일을 하도록 작성했으므로, 문제가 발생했을때 이 문제를 발생시키는 메소드 1개만 확인하면 버그의 처리도 쉬워 질 것이다. 물론, 유닛테스트도 훨씬 쉽게 수행할 수 있을 것으로 생각된다.


그래서...

이렇듯 수직적인 코드는, 코드 읽기를 쉽게 만들어 줄 뿐만 아니라, 코드를 점점 키워나가는데도 도움이 된다. 그러므로 프로그래밍을 할때 수직적인 코드를 항상 생각하도록 하자.

수직적인 코드 작성하기 수칙

1. 1개의 메소드에서는 1개의 일만 한다.
2. 메소드에서 또 다른 메소드를 호출하지 않도록 노력한다.

수직적인 코드짜기의 제 1수칙이 "1개의 메소드에서는 1개의 일만 한다"는 것인데,
실상 두번째 예제를 보면 아시다시피 main() 메소드에서 아주 많은 일을 하고 있다.

그렇다면 "1개의 메소드에서 1개의 일만 한다"는 것은 좀 말이 안되는것 아냐? 라고 물을 수 있다. 물론 말이 안된다. "프로그램의 어느 정도 깊이에서 코드를 쉽게 읽을 수 있도록 할까?"는 오롯이 프로그래머의 마음에 달렸다.

  1. 닉쑤 2010.09.10 06:31

    우하하하하하

    역시 진작에 때려쳤어야 되는건데..

    아까운 내 4년.. ㅋ

    • 2010.09.10 10:18 신고

      ㅋㅋㅋ 그때 때려친걸 고마워해야지~ ㅎㅎ.

  2. 닉쑤 2010.09.10 12:29

    아,그런거임? ㅋ

    도와줘서 감사.ㅋ

이번에도 인디밴드 소개.
마찬가지로 2010년 헬로루키에 출품(?)되었던 밴드다.

이번 헬로루키에 제출한 음악은 Gray.
김현철 스타일의 음악이라고 할까?
목소리도 감미롭고... 좋다.

음악이야 추출해서 이곳에 올려 둘 수도 있지만... 그렇게 안하기로..
근데.. 정말로 한번 들려 주고 싶기는 하다...

현재 소리바다에서는
헬로루키에 제출된 음원은 심사기간동안 무료로 들을 수 있으니,
아래 링크에 들어 가서 노래를 한번 들어 보시길~
( 어차피 무료로 듣게 해 줄꺼라면 그 기간동안은 외부로 펄 수 있게 해 주던지... 쩝.. )

http://studio.soribada.com/untouchedwind

Gray
바람을 가르고 (Untouched Wind)
바람을 가르고 1집 Live and Love

나 어쩌죠 오늘 그댈 만나  흠뻑 빠져 든것 같아
전엔 이런적이 없었는데  나 오늘 그댈 사랑하나봐

혹시라도 꿈에서도 널 보면  널 많이 좋아한다고
아침에 깨어나  메모를 해두지  네게 지금
전해주려고

우리는 그렇게 사랑을 했는데
또 우리는 그렇게 이별을 했었어
보고싶었는데  이젠 기억안나고  또
나에게 찾아온 사랑도....  무뎌져


우리 밤새 그렇게 통화해도

왜 또 그리 보고 싶었는지
혹시라도 꿈에서도 널 보면  널 많이 좋아한다고

우리는 그렇게 사랑을 했는데
또 우리는 그렇게 이별을 했었어
보고싶었는데  이젠 기억안나고 또
나에게 찾아온 사랑도.....   무뎌져


날 안아줘  니 입술 내 눈속에 닿도록
니 안에서 맘껏 춤추고 싶었는데..

보고싶었는데  이젠 기억안나고  또
사랑도 추억도 그렇게....  잊혀져

우리는 여전히 사랑을 했을까
또 언젠간 여전히 이별에 살겠지
보고싶었는데  이젠 기억안나고  또
내안에 살았던 니 이름 조차....  지워져



2009.8.16  사/곡  준수   (바람을가르고)

공식 홈페이지 ( 라고는 하지만.. 그냥 싸이월드 클럽.. ㅎㅎ )
http://club.cyworld.com/ClubV1/Home.cy/53574568

Gray의 데모 녹음도 들을 수 있다.
http://club.cyworld.com/53574568110/2207730
  1. 닉쑤 2010.09.01 03:12

    락밴드를 하다보니 그런거임?

    원래 음악에 심취? ㅎ

  2. 준수 2010.09.02 02:21

    감사합니다 ^^ 더 열심히 하겠습니다 !! ^^*

    • 2010.09.02 02:57 신고

      헉! 직접 방문을 해 주시다니~~!!! ^^
      영광입니다. ^^

      그리고 노래도 잘 듣고 있습니다.
      ( 물론 합법적으로요. ㅎㅎ )

  3. 준수 2010.09.02 04:21

    제가 영광입니다 ^^
    노래 들어주시다니..(불법도 대 환영이랍니다 ㅎㅎ )

    좋은 글 감사합니다
    저희 클럽에 여기 글 주소 올렸지요 ^^ㅋㅋㅋ

  4. 진봉 2010.09.02 11:42

    우와~~!!! 여기에서 우리노래를 ...ㅠ.ㅜ
    대박이다....감사합니다....*^^*

    • 2010.09.02 14:16 신고

      노래는 좋은데 안 알려 진다는게 너무 아쉽네요.
      즐거운 음악하세요~ ^_^

년초에 다이어트를 목표로 가졌다.
그리고 현재 목표치에 이르렀다. ㅋㅋ

아싸리~ ㅎㅎ.

오늘부터 점심 먹어야지. ㅋ.
후후.
  1. 닉쑤 2010.08.23 10:26 신고

    오호~~~~

    인증사진 올려주삼! ㅋㅋ

    나는 한계치 초과.. ㅡㅡ;

    • 2010.08.24 11:12 신고

      인증사진 따위 없삼~ ㅋㅋ
      한국에 들어 오던지~ ㅎㅎ

한국밴드이고 2009년 말에 해외 진출을 목표로 결성되었다고 한다.
얼마전까지 동남아(?)쪽에 활동을 하다 현재 한국에서 활동중.

아래 bandcamp에 접속해서 mp3를 무료로 받을 수 있다.
bandcamp 주소 : http://united93.bandcamp.com/

노래가 신나고 좋다. ㅎㅎ.

헬로루키 8월 수상팀 공연 정보 중...
http://www.ebsspace.com/showinfo/program_detail_view.php?no=2811

더 유나이티드93 (The UNITED93)

5인조 록 밴드 ‘더 유나이티드93(The UNITED93)’. 2009년 겨울, 해외진출을 목표로 결성된 더 유나이티드93는 일본과 중국 등지에서 활동해왔다. 거칠면서도 날카로운 사운드를 들려주는 그들은 이모코어 록에 기반을 두고 뉴메탈과 펑크, 인더스트리얼의 요소를 포함하는 음악을 들려준다. 다음 목표인 미국진출 전, 한국에도 자신들의 음악을 알리고자 국내 활동을 시작한 더 유나이티드93. 이번 공연에서는 멤버들이 전 과정을 홈 레코딩으로 제작한 EP 「MECHANICAL LOVE」(2010)에 수록된 곡을 위주로 자신들만의 색깔을 선보일 예정이다. 어디로 튈지 모를, 응집된 에너지로 가득한 더 유나이티드93의 무대를 기대해보자.

“지금부터 본격적으로 첫걸음을 내딛는 밴드입니다. 끝까지 지켜봐 주세요!” -더 유나이티드 93

심사평: 매끄럽고 잘 구성된 연주와 사운드. 거기에 좋은 곡 쓰기 능력이 더해져 신선한 록 음악을 들려준다. 아울러 당돌한 자신감까지 있는 밴드! -심사위원․평론가 김현준

하드 로큰롤의 골조 위에 다양한 사운드 요소를 덧입혀 독자적인 하이브리드 사운드를 구축한다. 타이트한 인터플레이도 돋보인다. -심사위원․평론가 박은석

당선소감: 저희 팀의 가능성을 보고 뽑아주신 거라고 생각합니다. 이제 시작하는 밴드이니 앞으로 발전하는 모습 보여드리겠습니다. 감사합니다!



1.
2.
3.
4.
5.

 

  1. Trash 2011.10.05 22:46

    지나가다 들렸습니다. 오늘 플라이트93이란 영화를 보고 감동을받아 이런저런 검색을하다가 이런 밴드가 자신의 이름을 더 유나이티드 93이라고 이름을 짓고 해외활동을 목표로 했다는것에 이들이 얼마나 무지하고 멍청한가 새삼깨닫게 되어 글까지 남기게 됩니다...

    해외활동이 목표이면 목표인만큼 미국에서 911테러에 관련된 것이 얼마나
    심중있고 무게있게 다뤄지는지, 조심스럽게 접근해야하는지도 모르는
    문화문외한이 그렇게 해외를 목표라고 게다가 노래도 그렇게 세계시장성없는
    음악을 들고 나오니 참 안쓰럽네요... 밴드이름부터 바꿔야한다고 지나가는
    사람이 글남깁니다...(블로거 주인님께는 악감정 전혀 일체없습니다 ㅎㅎ)

    • Chan 2011.10.14 15:32

      글 읽어 주셔서 감사합니다. ^^
      전 노래만 들었는데, 생각해보니 해외 진출에는 그러한 문제가 있겠네요.

안녕하세요.

블로그 주소를 변경했습니다.

얼마전에
http://ggaman.com/tt 에서
http://ggaman.tistory.com 으로 변경했는데요.


다시

으로 블로그 주소를 변경했습니다.

기존에 사용하던 http://ggaman.tistory.com 도 사용가능하나,
되도록이면 새로운 주소를 이용해 주세요~

  1. 닉쑤 2010.08.08 22:17

    변경 이유가 뭡니까~~~~

프로그래밍 도중에 이미지를 이용해서 작업을 하는 경우가 있다. 이때 이미지 변환중에서 가장 자주 사용되는 변환은, 이미지 크기 늘리기, 회전하기 등이 있겠지만, 이미지 자체를 변환 시키는 것으로는 GrayScale, 즉 회색화(?)시켜야 하는 경우가 있다.

우리는 프로그래밍할때 어떤색을 분리해 보라고 하면, 빛의 3원색으로 빨간색, 녹색, 파란색, 즉 RGB로 분리하게 된다. HTML에서 색을 표현할때도,  #FF9933(Red=0xFF, Green=0x99, Blue=0x33)등으로 표현하니깐 말이다. 그러므로 최소단위인, RGB를 이용해서 색의 변환을 수행해야 한다. 물론 GrayScale도 이 세가지 색깔을 이용해서 회색으로 만들어 줄 수 있다.


제일 간단한 방법

조금만 생각하면 누구나 떠 올릴 수 있는, 제일 간단한 방식으로는 Red, Green, Blue를 모두 더해서 그 평균값을 이용해서 회색을 만드는 방법이 있다.

gray = ( Red + Green + Blue ) / 3

RGB의 평균값으로 만들어낸 이미지

RGB의 평균값으로 만들어낸 이미지



요렇게 회색화된 이미지를 만들어 냈으니 끝.이라고 생각한다면 오산.


YUV 표현 방법

색의 표현방법은 우리가 일반적으로 사용하고, 알고 있는 RGB 세가지 색깔로 표현하는 방법 이외에 더 많은 방법이 존재한다. 그 중에 하나가 Yxx 색 표현 방법이다. 이때 Yxx는 여러종류가 있다. YPbPr, YCbCr, YIQ등이 있는데, 이것을 그냥 통칭해서 YUV라고 부르도록 하자.

RGB만 있으면 모든색을 표현할 수 있는데, 왜 YUV를 사용할까?

아주 오랜 옛날(?) 이야기가 되겠지만, 이전에는 흑백 텔레비젼을 사용했다. 흑백에서는 색깔이 중요한것이 아니라 오직 밝기만이 중요했다. 말 그대로 흑백이니깐 말이다. 그런데 흑백 텔레비젼만 계속 사용했으면 모르겠지만, 얼마 후 칼라텔레비젼에 나오고 나서 문제가 생겼다. 바로 색깔 정보를 전송해야 한다는것이다. 그러면 색깔 정보를 다 포함한 RGB를 모두 쏴 주면 될것 아닌가? 라고 생각하겠지만, 기존에 흑백 텔레비젼을 사용하던 사람들도 TV는 계속 잘 볼 수 있어야 할 것 아닌가?

그래서 기존에 흑백 TV들이 칼라 정보를 잘못 처리 하지 않도록 밝기 정보는 그대로 유지해야 하는 문제가 생겼다. 즉, 밝기 정보(Y)만을 따로 분리해서 전송하고, 색깔 정보(U,V)는 따로 보내는 방법을 사용하게 되었다. 그렇게해서 생겨난것이 YUV 이다.

그렇다면 YUV중 하나인 YCbCr 은 무슨 말일까?

YCbCr (ITU-R BT.709)

Y = 색의 밝기 정보 ( 기존 흑백 TV를 위한 정보 )
Cb = 색의 밝기 정보에서 파란색의 차이 ( blue-difference chroma compoents )
Cr = 색의 밝기 정보에서 빨간색의 차이 ( red-difference chroma compoents )

밝기정보, Cb, Cr 을 이용하면 실제로 보여주어야 하는 Color을 표현할 수 있다.
( 녹색은 밝기정보, blue, red 정보를 이용하여 계산해 낼 수 있으므로 굳이 전송하지 않는다. )

YPbPr이라는것도 있는데, YPrPb는 아날로그 시스템을 위한 표현방법이고, YCrCb는 디지털(CRT, LCDl, PDP등)을 위해서 따로 만들어둔 표현방법이다. 여기서는 디지털의 색표현방법인 YCrCb에 대해서만 이야기 하도록 하자.

이로써, 색을 표현할때에는 RGB를 이용한 색의 표현 방법 말고 YCrCb를 이용한 색의 표현방법이 있다는것을 알게 되었다. 색의 표현방법이 다르므로 이 표현방법을 이용해서 회색으로 만들어 주는 방법 역시 다르다.

우리가 회색으로 만들고자 하는 이미지는 RGB의 정보를 가지고 있고, 이를 YUV 값으로 변환하게 되면 이때 만들어진 Y 값은 자동적으로 밝기 정보를 가지게 된다. 이 Y 값인 밝기 정보만으로 gray scale 이미지를 만들 수 있다. 그렇다면 Y 값을 구하는 공식을 알아 보도록 하자.

YCrCb
Y = Red * 0.2126 + Geeen * 0.7152 + Blue * 0.0722

YPrPb
Y = Red * 0.299 + Green * 0.587  + Blue * 0.114

우리는 YCrCb만을 볼 것 이므로 각 R, G, B 정보를 이용해서 Y 를 추출해 내고, Y 밝기 값을 이용해서 이미지를 grayscale로 만들어 보면 아래와 같이 나온다. ( 위의 공식에서 RGB에 곱하는 값이 서로 다른 이유는 사람의 눈에 더 민감한 색에 더 많은 가중치를 주어서 계산하기 위해서 위와 같이 복잡한 식이 된다. )

RGB to YCrCb에서 Y값을 이용한 GrayScale Image

RGB to YCrCb에서 Y값을 이용한 GrayScale Image


그렇다면 RGB 평균을 내서 만들어낸 GraySacle이미지와 YCrCb를 이용해서 만들어낸 GrayScale이미지를 서로 비교해 보도록 하자. 나뭇잎 부분의 밝기를 비교해보면 서로 다른 명암을 가지는것을 알 수 있을 것이다.
RGB평균과 YCrCb에서 Y를 이용한 이미지 비교

RGB평균과 YCrCb에서 Y를 이용한 이미지 비교


위와 같이 YCrCb에서 Y 값인 밝기를 이용해서 GrayScale이미지를 만들어 낼 수 있었다.


다른 방법은 없을까?

그렇다면 색을 표현하는 방법은 RGB와 YCrCb밖일까? 당근 그렇지 않다. 그 중에서도 밝기를 따로 나타내고 있는 색 표현방법에는 HSL이나 HSV(혹은 HSB), HSI가 있다.

HSL = Hue, Saturation, Lighness
HSV = Hue, Saturation, Value ( 혹은 HSB = Hue, Saturation, Brightness )
HSI = Hue, Saturation, Intensity

각 마지막에 있는 L, B, V, I 는 모두 밝기 정보를 나타낸다.
이때 RGB를 HSL, HSV(HSB), HSI 로 바꾸는 공식은 모두 다른데, 이때 각 표현 방법중에서 밝기를 계산하는 공식은 다음과 같다.

L = ( Max(R,G,B)  + MIN(R,G,B) ) / 2
V(B) = Max(R, G, B)
I = ( R + G + B ) / 3  (우리가 일반적으로 생각하는 공식)

위에서 보다시피 HSx 방식을 이용하기만 해도 여러가지 공식으로 밝기 값을 처리 할 수 있다.



결론

GrayScale이미지를 만들어 낼때는 별로 생각없이 만들어 내는것이 일반적이다. 혹은 누가 이미 만들어 놓은 그래픽 라이브러리를 잘 가져다가 쓰고, "아~ 뭐 잘 나왔겠지."라고 생각하는것이 일반적이다. GrayScale 이미지를 하나 만들어 낼려고 해도 생각할것이 아주 많다는것을 알 수 있다. 위와 같은 정보를 알지 못하고 그냥 생각없이 만들어진 라이브러리를 가져다 쓰게 되면 내가 원하지 않던 결과를 낼 수도 있기 때문에 잘 생각하고 쓰도록 하자.

당장 급하다면 그냥 가져다 쓴다고 해도, 어느정도 시간이 느긋하다면 "어떻게해서 이렇게 나오는 것일까?"에 대해서 생각해 보는것이 어떨까?


자바에서의 Gray Scale

자바에서도 GrayScale이미지를 만들어 낼 수 있는 방법이 여러가지가 있다. 하지만 내가 원하는 결과를 내기 위해서는 공부가 좀 필요하리라 본다. 자바에서 이미지를 Gray scale로 만드는 방법을 보고 싶다면 아래의 이미지와 소스를 받아서 직접 실행해 보도록 하자.

자바에서 각종 GrayScale 방법

Java의 각종 GrayScale 방법



테스트용 이미지

테스트용 이미지





참고자료

아래의 자료를 참고하면 정리하는데 도움이 될 것이다.
HSL, HSV : http://en.wikipedia.org/wiki/HSL_and_HSV
YCrCb : http://en.wikipedia.org/wiki/YCbCr
RGB, YUV에 대한 설명 : http://cafe.naver.com/camuser/234 - 원본 문서를 못 찾겠음 T_T

==
옛날에 대충 적어 두었던 글을 살짝 정리해서 올림.
적을 글은 많은데.. 언제 다... ;;
  1. 닉쑤 2010.08.02 07:50

    오우 어려워 어려워~
    ㅡㅡ;

    역시 나는 프로그래머는 못되는거임? ㅋ

    • 2010.08.02 08:44 신고

      뭔... 그런걸 가지고... 그냥 하는거지... 궁금하니깐 찾아 보는거고...
      대신 영어 잘하잖아~ ㅎㅎ

  2. 닉쑤 2010.08.02 09:17 신고

    궁금하지 않아요. ㅋㅋ

    과연... 잘 할까요?

    서바이벌 잉글리쉬라는게 있음.. ㅋ

    • 2010.08.02 17:54 신고

      난 서바이벌하지 못할것 같아. ㅎㅎ.

  3. 如旻 2010.08.03 09:59

    아- 저 사진!!
    우.. 오랜만이다.
    너의 역작!
    ㅋㅋㅋㅋㅋㅋㅋㅋ

    • 2010.08.03 10:14 신고

      풉.
      한때 똑딱이로도 저정도는 그냥 찍었는데..

      사진 안 찍은지 몇년. T_T

  4. 학부생 2012.02.07 17:15

    감사합니다 좋은글 잘읽었습니다

    • Chan 2012.02.09 19:25

      읽어 주셔서 감사합니다.

  5. 컴퓨터공학도 2012.07.24 22:42

    어휴..학술제 때 어플리케이션을 제작하는데, 영상처리가 필요해서 찾다가
    좋은 글을 보고 가네요 ㅎ
    너무 감사합니다!

    • 2012.07.26 17:04 신고

      영상처리까지야.
      그냥 알고 있는거 정리해서 적은건데요. ㅎㅎ

      방문 감사합니다.

  6. pica 2014.01.14 23:16

    많은 도움이 되었습니다.
    궁금했던 부분이 많이 해결되었네요.
    감사합니다.

  7. 어벙이 2015.08.17 12:46 신고

    퍼갈게요.. 좋은글 보고 갑니다. `^^

  8. tana 2020.09.17 16:19

    영상처리 이제 입문했는데 좋은 글 잘보고 갑니다 ㅎㅎ

+ Recent posts