영원한 지잡대 인천대 전자과 4학년생~
by 홈쥬인
카테고리
전체
땜질 이야기
코딩 이야기
옆컴서버 이야기
궁데 이야기
트랜스포트 타이쿤
GTA바이스시티
죵니 개소리
방명록
미분류
이전블로그
2009년 10월
2009년 07월
2009년 06월
2009년 05월
2009년 04월
2009년 03월
2008년 11월
2008년 10월
2008년 09월
2008년 08월
2008년 07월
2008년 06월
2008년 05월
2008년 04월
2008년 03월
2008년 02월
2008년 01월
2007년 12월
2007년 11월
2007년 09월
2007년 08월
2007년 07월
2007년 06월
2007년 05월
2007년 04월
2007년 03월
2007년 02월
2007년 01월
2006년 12월
2006년 11월
2006년 08월
2006년 07월
2006년 04월
2006년 01월
2005년 10월
2005년 08월
2005년 07월
2005년 04월
2005년 03월
2005년 02월
2005년 01월
2004년 12월
2004년 11월
2004년 10월
2004년 09월
이글루링크
게임회사 이야기
gotoweb's blog
Life @Gainesville
Xeraph@NCHOVY
에밀레뽕의 붉은 삶
준경군의 雜多努吐
Mindori\'s Secret Box
링크
최근 등록된 덧글
그러다가 소년이여 (G..
by 어둠의세력 at 10/29
헉. xeraph님 블로그 ..
by 고율 at 10/29
지나가다 우연히 발견하..
by 건축관심 at 10/27
!!!!!!
by 에밀레뽕 at 10/12
!!!!!
by 어둠의세력 at 10/07
최근 등록된 트랙백
Buy soma cod.
by Buy cod soma.
홈마당쇠의 생각
by lsehoon's me2DAY
근로감독만 제대로 되도..
by 귀냄이의 BrainAge 雜..
홈마당쇠의 생각
by lsehoon's me2DAY
세랍의 생각
by xeraph's me2DAY
홈마당쇠의 생각
by lsehoon's me2DAY
Mike diot west hartfor..
by Indianapolis mortga..
Viagra and cialis.
by Cialis.
홈쥬인의 생각
by lsehoon's me2DAY
홈횽의 본격 건축시뮬레..
by Mindori's Secret Box
이글루 파인더
라이프로그
포토로그

홈쥬인의 포토로그
메뉴릿
태그
ARM 양궁
전체보기
rss

skin by 홈쥬인




소년이여

코드
A-Yo choice drop it on me
Yo 밤은 깊었는데 잠만 잘오고
늘어난 버그와 싸우고
이리저리 수정하다 졸음에 잠겨
또 커피 쳐먹고
빼곡히 써내려가는 코드
이안에 내 고집이 가득하다
김샌 콜라빈병 꽉찬 내 방
home sweet home 정신없다
열세살 나이에 와서 쉴틈없이 코딩했어
뭣모르는 자신감 내겐 가장 큰 적이었어
야간작업이라면 철야작업도 있는법
때려치기엔 너무 늦어버렸어
I can't let it go
remember back in the day (잘뵈던 두눈)
난 절대 잊지못해 (PC 구입을)
don't format c: in the day
소년이여 그 멋진 다크서클
세상에 보여줘 shine a light
c-dragon 남들이 뭐라건
크다고 느리다고
난 c-dragon 남들이 뭐라건
사람들은 말해 내가 부러워 아는 게 너무 많아
코딩쟁이는 다 편하게만 살아
딱 하루만 그 입장이 돼 봐라
보이는게 다가 아니란걸 알아
시간이 흘러가면서 외로움만 커져갔어
뭣모르는 자신감 내겐가장큰 적이었어
야간작업이라면 철야작업도 있는법
딴거하기엔 너무 늦어버렸어
I wanna go
remember back in the day (잘뵈던 두눈)
난 절대 잊지못해 (PC 구입을)
don't format c: in the day
소년이여 그 멋진 다크서클
세상에 보여줘 shine alive
십년동안 수많은 버그들과
내가 던진 수많은 콜라병들과
내가 참아온 차가운 눈물들
아아 아아 다시 시작해 보는거야
remember back in the day (잘뵈던 두눈)
난 절대 잊지못해 (PC 구입을)
don't format c: in the day
소년이여 그 멋진 다크서클
세상에 보여줘 shine alive
just once
remember back in the day (go back)
잘뵈던 두눈
난 절대 잊지 못해 (forget)
(PC 구입을)
don't forget back in the day (way back)
소년이여 그 멋진 다크서클 세상에 보여줘 shine alive
come back to me now (1년이 지나도)
come back to me now (10년이 지나도)
come back to me now (연봉이 똑같아)
come back to me now (내 청춘아)
remember back in the day (it's time to shine)
난 절대 잊지 못해 (thanks choice)
don't format c: in the day
그 멋진 다크서클 세상에 보여줘 shine a light

by 홈쥬인 | 2009/10/29 10:52 | 코딩 이야기 | 트랙백 | 핑백(1) | 덧글(2)
이명박의 군계급
★★★★★
대통령
     +
★★★★★★★★★★★★★★
별 14개
     =
★★★★★★★★★★★★★★★★★★★
별 19개



참고자료
★ 준장
★★ 소장
★★★ 중장
★★★★ 대장
 ....
★★★★★★★★★★★★★★★★★★★ 막장
by 홈쥬인 | 2009/10/07 11:19 | 궁데 이야기 | 트랙백 | 덧글(5)
ARM ELF파일 읽어서 재배치 하는 법
0000000: 7f45 4c46 0101 0161 0000 0000 0000 0000  .ELF...a........
0000010: 0100 2800 0100 0000 0000 0000 0000 0000  ..(.............
0000020: 2017 0000 0000 0000 3400 0000 0000 2800   .......4.....(.
0000030: 0b00 0800

위 코드는 elf파일의 앞부분(해더)이지말입니다.
처음부터 16바이트는 걍 식별자고
0100은 재배치 가능한 파일이라는 거고
2800은 ARM ELF라는거고
0100 0000은 버전이 1이라는거고
0000 0000은 실행시작점의 주소
0000 0000은 프로그램 해더의 위치
2017 0000은 섹션 해더의 위치 (=0x00001720)
0000 0000은 플래그
3400은 ELF해더의 길이 (=0x0034)
0000은 프로그램 해더 하나의 길이
0000은 프로그램 해더의 갯수
2800은 섹션 해더 하나의 길이 (=0x0028)
0b00은 섹션 해더의 갯수 (=0x000b)
0800은 섹션 해더중에서 '각 심볼명을 저장하는 섹션'이 몇 번인가 하는것 (=0x0008)

그럼 섹션 해더로 짬푸해서 계속 구경을 해 봅시다.
0001720: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0001730: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0001740: 0000 0000 0000 0000
1f00 0000 0100 0000  ................
앞에서부터
0000 0000은 섹션의 이름인데 일단 제끼고
0000 0000은 섹션의 타입인데 0이면 NULL이니까 여긴 볼 필요가 없다능..

0001740: 0000 0000 0000 0000 1f00 0000 0100 0000  ................
0001750: 0600 0000 0000 0000 3400 0000 0c14 0000  ........4.......
0001760: 0000 0000 0000 0000 0400 0000 0000 0000  ................

고댐에...
1f00 0000은 섹션의 이름인데 요거는 이름 테이블에서 찾으면 되는거라능...
0100 0000은 섹션 타입 PROGBITS라능
0600 0000은 플래그
0000 0000은 섹션의 메모리 적재위치
3400 0000은 섹션 데이터의 위치 (=0x00000034 : 아까 ELF해더 다음임)
0c14 0000은 섹션 데이터의 길이 (=0x0000140c)
0000 0000은 링크 위치(사용안함)
0000 0000은 부가 정보(사용안함)
0400 0000은 몇 바이트로 정렬되었는지
0000 0000은 항목으로 구성된 섹션인 경우에 각 항목의 길이

0001770: 1b00 0000 0900 0000 0000 0000 0000 0000  ................
0001780: f01b 0000 6806 0000 0900 0000 0100 0000  ....h...........
0001790: 0400 0000 0800 0000
2500 0000 0100 0000  ........%.......
고댐에...
1b00 0000은 섹션의 이름인데 요거는 이름 테이블에서 찾으면 되는거라능...
0900 0000은 섹션 타입 REL이라능(우리가 원하는 재배치 테이블)
0000 0000은 플래그
0000 0000은 섹션의 메모리 적재위치
f01b 0000은 섹션 데이터의 위치 (=0x00001bf0)
6806 0000은 섹션 데이터의 길이 (=0x00000668)
0900 0000은 링크 위치(9번째 섹션에서 심볼을 찾으면 됨)
0100 0000은 부가 정보(1번째 섹션을 재배치)
0400 0000은 몇 바이트로 정렬되었는지
0800 0000은 항목으로 구성된 섹션인 경우에 각 항목의 길이 (각 항목이 8바이트임)

0001790: 0400 0000 0800 0000 2500 0000 0100 0000  ........%.......
00017a0: 3200 0000 0000 0000 4014 0000 3402 0000  2.......@...4...
00017b0: 0000 0000 0000 0000 0400 0000 0100 0000  ................

고댐에...
이 섹션은 문자열을 저장하는 부분임
2500 0000은 섹션의 이름인데 요거는 이름 테이블에서 찾으면 되는거라능...
0100 0000은 섹션 타입 PROGBITS라능
3200 0000은 플래그
0000 0000은 섹션의 메모리 적재위치
4014 0000은 섹션 데이터의 위치 (=0x00001440)
3402 0000은 섹션 데이터의 길이 (=0x00000234)
0000 0000은 링크 위치(사용안함)
0000 0000은 부가 정보(사용안함)
0400 0000은 몇 바이트로 정렬되었는지
0100 0000은 항목으로 구성된 섹션인 경우에 각 항목의 길이 (각 항목이 1바이트임)

역시 같은 방법으로 나머지 섹션들을 분석 하면
Section Headers:
  [Nr] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
  [ 0]                   NULL            00000000 000000 000000 00      0   0  0
  [ 1] .text             PROGBITS        00000000 000034 00140c 00  AX  0   0  4
  [ 2] .rel.text         REL             00000000 001bf0 000668 08      9   1  4
  [ 3] .rodata.str1.4    PROGBITS        00000000 001440 000234 01 AMS  0   0  4
  [ 4] .data             PROGBITS        00000000 001674 000044 00  WA  0   0  4
  [ 5] .rel.data         REL             00000000 002258 000088 08      9   4  4
  [ 6] .bss              NOBITS          00000000 0016b8 00c020 00  WA  0   0  4
  [ 7] .comment          PROGBITS        00000000 0016b8 00001b 00      0   0  1
  [ 8] .shstrtab         STRTAB          00000000 0016d3 00004c 00      0   0  1
  [ 9] .symtab           SYMTAB          00000000 0018d8 000230 10     10   6  4
  [10] .strtab           STRTAB          00000000 001b08 0000e8 00      0   0  1
위와같이 나오는디
4번 섹션은 5번 섹션에 재배치 정보가 있다는거 알 수 있고

9번 섹션이 좀 중요한데..
0001880: 0100 0000 0000 00000100 0000 0200 0000  ................
0001890: 0000 0000 0000 0000 d818 0000 3002 0000  ............0...
00018a0: 0a00 0000 0600 0000 0400 0000 1000 0000  ...............

0100 0000은 섹션의 이름인데 요거는 이름 테이블에서 찾으면 되는거라능...
0200 0000은 섹션 타입 SYMTAB라능 (심볼 테이블)
0000 0000은 플래그
0000 0000은 섹션의 메모리 적재위치
d818 0000은 섹션 데이터의 위치 (=0x000018d8)
3002 0000은 섹션 데이터의 길이 (=0x00000230)
0a00 0000은 링크 위치(심볼 문자열이 있는 섹션)
0600 0000은 부가 정보(왜있는지 모르겠듬)
0400 0000은 몇 바이트로 정렬되었는지
1000 0000은 항목으로 구성된 섹션인 경우에 각 항목의 길이 (각 항목이 16바이트임)

후....
그럼 이제 .text섹션(1)하고 .data섹션(4)을 주어진 위치에서 길이만큼 읽어서 메모리에 올리고 실제 주소를 파악한다음
재배치 때려주면 되겠듬 (괄호안 숫자는 섹션번호)
그리고 .bss섹션(6)은 파일에서 읽을 필요 없이 주어진 길이만큼 메모리를 할당해서 주소를 파악해 놓으면 됨

고댐에...
심볼 테이블 데이터를 하나하나 다 까봐야함
00018d0: 0100 0000 0000 0000 0000 0000 0000 0000  ................
00018e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00018f0: 0000 0000 0300 0100 0000 0000 0000 0000  ................
0001900: 0000 0000 0300 0300 0000 0000 0000 0000  ................
0001910: 0000 0000 0300 0400 0000 0000 0000 0000  ................
0001920: 0000 0000 0300 0600 0000 0000 0000 0000  ................
0001930: 0000 0000 0300 0700 0100 0000 0a00 0000  ................
0001940: 0080 0000 1100 0600
0900 0000 9c01 0000  ................
0001950: 2800 0000 1200 0100 1000 0000 4405 0000  (...........D...
0001960: 3002 0000 1200 0100 1900 0000 18c0 0000  0...............
0001970: 0400 0000 1100 0600 2300 0000 800a 0000  ........#.......
0001980: 9c00 0000 1200 0100 2a00 0000 0000 0000  ........*.......
0001990: 1400 0000 1200 0100 3200 0000 2004 0000  ........2... ...
00019a0: 2401 0000 1200 0100 3c00 0000 2c01 0000  $.......<...,...
00019b0: 2400 0000 1200 0100 4800 0000 5001 0000  $.......H...P...
00019c0: 2400 0000 1200 0100 5400 0000 4002 0000  $.......T...@...
00019d0: 2800 0000 1200 0100 5a00 0000 14c0 0000  (.......Z.......
00019e0: 0400 0000 1100 0600 6300 0000 7c00 0000  ........c...|...
00019f0: b000 0000 1200 0100 6700 0000 1400 0000  ........g.......
0001a00: 6800 0000 1200 0100 6c00 0000 0002 0000  h.......l.......
0001A10: 4000 0000 1200 0100 7400 0000 c401 0000  @.......t.......
0001a20: 3c00 0000 1200 0100 7c00 0000 0c80 0000  <.......|.......
0001a30: 0040 0000 1100 0600 8200 0000 0014 0000  .@..............
0001a40: 0c00 0000 1200 0100 8a00 0000 0000 0000  ................
0001a50: 2c00 0000 1100 0400 9300 0000 0000 0000  ,...............
0001A60: 0a00 0000 1100 0600 9800 0000 6802 0000  ............h...
0001A70: b801 0000 1200 0100 A300 0000 1cc0 0000  ................
0001a80: 0400 0000 1100 0600 ac00 0000 7407 0000  ............t...
0001a90: 0803 0000 1200 0100 b300 0000 10c0 0000  ................
0001aa0: 0400 0000 1100 0600 bc00 0000 7c0a 0000  ............|...
0001ab0: 0400 0000 1200 0100 c200 0000 3400 0000  ............4...
0001ac0: 1000 0000 1100 0400 c700 0000 2c00 0000  ............,...
0001ad0: 0800 0000 1100 0400 cf00 0000 0cc0 0000  ................
0001ae0: 0400 0000 1100 0600 d600 0000 7401 0000  ............t...
0001af0: 2800 0000 1200 0100 dd00 0000 1c0b 0000  (...............
0001b00: e408 0000 1200 0100
006e 616d 6562 7566  .........namebuf
파란색으로 칠한거가 섹션의 내용이고
빨간걸로 칠한부분만 예를 들어서 보면
0100 0000은 심볼 이름 (문자열 테이블에서 찾아보면 됨)
0a00 0000은 심볼의 주소 (=0x0000000a)
0080 0000은 심볼의 길이 (=0x00008000)
11은 바인딩과 타입인데 ELF문서를 참조하세영... 재배치랑 상관없다능
00은 나중에 햏어들 쓰라고 맹근것
0600은 어느 섹션 주소를 더해야 하는지 나타내는 거라능..
0600이니까 6번째 섹션이고 (.bss)
아까 할당해놓고 메모리 주소 기억해 놓은거에다가
심볼의 주소를 더하면 실제 주소가 되는거라능
중요한건 이 실제 주소고 나머지는 필요없다능 (디버그할땐 필요함)
뭔 개소린지 모르겠다 싶으면 readelf를 사용해서 까보시길...

자 심볼 테이블을 다 까봣으니 이제 재배치 테이블을 까볼 차례...
2번 섹션(.rel.text)을 들여다 봅시다.

딱 예를 들어서 하나만 봅시다.
0001bf0: 7800 0000 0218 0000 2401 0000 0218 0000  x.......$.......
7800 0000은 섹션 1번에서 재배치할 위치 (0x00000078 + .text섹션 로드한 위치) 임.
02는 재배치 타입 (1=R_ARM_PC24, 2=R_ARM_ABS32)
18 0000은 심볼 테이블에서의 0x000018번째 항목
0001a50: 2c00 0000 1100 0400 9300 0000 0000 0000  ,...............
0001a60: 0a00 0000 1100 0600
9800 0000 6802 0000  ............h...

빨간걸로 칠한 부분 까보면
0x0000000a + .text섹션 로드한 위치 가 실제 주소가 되는데
재배치 타입이 R_ARM_ABS32일 때에는 그냥 그 주소를 재배치할 위치 (0x00000078 + .text섹션 로드한 위치)에 써주면 되는거고
R_ARM_PC24일 경우에는 상대주소 이므로
재배치할 위치가 PC(=Program Counter : 실행중인 주소)값이라고 일단 가정하고
((실제 주소 - 재배치할 위치)>>2) + 재배치할 위치에 있는 데이터 해서 저장해주면 될거임 (아직 안해봤듬)
어쨋거나 실제주소-재배치할 위치가 32메가 밖으로 벗어나면 큰일남.

암튼 오늘은 여기까지 ㅡㅡ
by 홈쥬인 | 2009/07/26 01:56 | 코딩 이야기 | 트랙백 | 덧글(2)
ARM씨퓨에서 Software Interrupt (SWI) 처리하는 방법
에잉 꼬진 팔뚝씨퓨
모토롤라 씨퓨보다 못한씨퓨
직관적이지 않은 씨퓨

모토롤라 씨퓨는 인터럽트 벡터에 짬푸할 어드레스가 들어있습니다.
하지만 팔뚝씨퓨는 인터럽트 벡터에 실행할 인스트럭션이 있어야 합니다.

팔뚝씨퓨의 소프트웨어 인터럽트 벡터는 모두 아시겠지만 0x00000008 번지입니다.
저 위치에 실행할 인스트럭션이 있어야 하는데
인터럽트 벡터 간격이 4바이트밖에 안대서
인스트럭션 하나로 땜빵을 쳐야합니다.
그러기 위해서는 4바이트 안에서 짬뿌를 할 수 있는 명령어를 써야하는데
B(Branch) 명령어는 그런게 됩니다.

B명령어는 앞에는 0xea 또는 0xeb이고
뒤에 24비트는 짬푸할 상대주소인데
24비트를 어케 만드냐면

실제 주소가 a라고 하면
(a-16)>>2해서 넣으면 됩니다
16을 빼는 이유는 벡터 어드레스가 8이니까 일단 8빼고(상대주소지만 실제로 실행되는 어드레스가 8이라 8을 빼면 절대주소가 된다능) 또 매뉴얼에 PC+8로 짬푸한다니까 8 또 뺀다능...
이노무 씨퓨가 4바이트 정렬이 되어 있어야 메모리 입출력을 할 수 있는 놈이라
끝에 2비트는 무시할 수 있기 때문에 쉬프트 해서 없애는 겁니다.
24비트 전부다 쓰는게 아니고 signed 타입이라 상위1비트는 부호로 되져

참 쉽죠?
이거가지고 하루 날렸다.
 
by 홈쥬인 | 2009/06/25 00:54 | 코딩 이야기 | 트랙백 | 덧글(6)
인천이 마계인천인 이유
사진은 심시티 표기법에 의해 공업지역(I) 상업지역(C) 거주지역(R)을 나타낸 것입니다.
보시다시피 인천은 경인전철에 의해 남북으로 갈라져 있으며 다시 경인고속도로에 의해 동서가 갈라져 있습니다.
또한 제2경인고속도로에 의해 남북이 또 한번 갈라져 있습니다.

고속도로 또는 지상전철은 교차해서 건너기 어려운 구조기 때문에 고가도로 또는 지하차도등을 이용해서 건너야 하는데
이래저래 짓기 어렵기 때문에 각 지역간의 통행은 활발하지 못하게 되었습니다.
그래서 거주지가 전철길을 따라 붙어있고 그 외곽은 전부 공장들이 병풍처럼 둘러 있는 모습입니다.

즉, 인천에서 밖을 보면 바다가 보이는게 아니라 공장이나 철길(또는 고속도로)이 보인다는 이야기입니다.
그나마 연수구쪽은 아파트가 보이는게 다행인지도 (...)

그리고 위아래 분리가 확실히 되었기 때문에 도심도 두개가 되었습니다.
뭐가 부도심이라고 딱히 말하기도 어려운 이상한 도시구조입니다.
도심은 술집 단란주점 노래방 과 같은 다양한 업종으로 구성되어 있으며 아무래도
검은 양복을 입고 머리를 중고생 두발기준에 맞춰 단정하게 다듬으신 분들이 검은 승용차를 타고 다니시는 모습이 인상적인
동네라 할 수 있겠습니다.

동인천은 한때 도심의 역할을 했지만, 그건 다 옛날 이야기고 지금은 사람이 다니지 않는 동네가 되었습니다.
밤만되면 깜깜해서 다닐수가없어 (...)
공장 주변은 밤이되면 당연히 깜깜하구여 (...)

남들은 이야기합니다. 인천사람들은 바다보고 사냐고... 바다가 가까워서 좋겠다고... 월미도도 있고...
상식적으로 월미도가 가깝다는 인천역에서도 바다는 보이지 않습니다.
인천에서 바다 보기 많이 힘듭니다.
바다를 병풍처럼 두르고 있는 공장들을 보면 왜 그런지 알 수 있습니다.
막상 바다에 가봐도 별로 바닷물 같아 보이지 않는 물이 끝없이 펼쳐져 있습니다.

주변 풍경이 저러하니 바다를 메꿔서 삽니다.
이런 집값떨어지는 글이나 올린다고 저 욕하지 마세요...
다시한번 지도를 보며 인천이 얼마나 소통이 불가능한 동네인지 눈으로 확인해보시길 ^^

고담과 마계는 분위기는 같지만 차이점을 뽑자면 고담은 그래도 사람사는 동네이고 마계는 마물들이 사는 동네입니다.
고담은 사람이 살아서 투표율이라도 높지만 마계는 마물들이 살아서 투표안하기로는 전국1위져~
그만큼 인천사람들이 지역 유대감은 거의 없습니다.
인천사람이 인천사람 만나도 그닥 반가워하지 않는거 보면 (...) 마물들이 사는게 분명합니다.. 

계획대로라면 지하철 2,3호선은 이미 다 지어져서 굴러다니고 있어야 하는데 그것마저 누군가 어따 갖다 썼는지
알 길이 없더라는... 마지막 소통의 기회마저 저버린 살기좋은 도시 인천! 명품도시 인천!
인천으로 오세요~~!!!!

참고로 저 인천삽니다.

p.s: 서구 일부 지역과 논현동 일대 수정했습니다...(2009-06-14 17:42)
by 홈쥬인 | 2009/06/13 19:14 | 죵니 개소리 | 트랙백(1) | 핑백(1) | 덧글(207)
취향별 선호 컨텐츠
취향별 선호 컨텐츠

참신하고 변덕스러운, 주관의 영역

어제는 내일 같지 않을 것이고, 변덕 외에는 아무 것도 지속되지 않을 것이다.” - 퍼시 B. 셀리

 

참신한, 희귀한, 새롭고 독특한 것들을 추구하는 영역입니다. 좋아하는 것에 특별한 기준은 없으며 오직 나 자신의 느낌과 주관, 변덕이 중요한 곳입니다.

 

개성도 줏대도 없는 따라쟁이들, 지적인 척 잘난 척하는 속물들, 너도나도 사보는 베스트셀러, 아줌마들이 떠들어 대는 뻔하고 지루한 연속극들은 추방될 것입니다.

 

이 영역에 속하는 사람들의 특징은 다음과 같습니다 

  • 건방지거나, 못 생겼거나, 심하게 시대착오적인 것들에 비교적 너그러운 편 
     
  • 무엇에든 쉽게 질리는 경향. 이 때문에 끊임없이 더 새롭고 참신하고 희귀한 것을 찾는 편
     
  • 워낙 취향이 주관적이라 좋아하는 것에 기준이 있는지 확실하지 않음. 참신하고 희귀한 것이 좋다지만 너무 특이한 그림이나 소설은 싫어할지도 모르고, 지겹게 듣는 대중가요 중에도 뜻밖에 좋아하는 곡이 있을 수도 있음
     
  • 대중이 찾지 않는, 음지에 숨은 보석을 발견하는 재주가 있음. 우수한 언더그라운드 뮤지션, 아무도 안본 훌륭한 독립 영화 등 숨은 진주를 찾아내 사람들에게 알리는 문화 메신저의 역할을 하기도 함.
이런... 나랑 같은 취향을 가진 사람이 없댄다 (...)
by 홈쥬인 | 2009/05/16 13:56 | 죵니 개소리 | 트랙백 | 덧글(4)
야근불가론
 세계적인 경기 침체로 인해(?) 경제가 어렵다며 야근을 권장(...)하는 회사들이 점점 늘고 있다. 이미 IT업계는 야근은 필수요 주말근무는 진급의 등용문이요 철야는 옵션이라는 근무형태가 일반적으로 자리잡혀 있다. 꼭 IT업계 뿐만 아니라 어떤 회사든 소위 말하는 '대기업'이 아닌 이상 이런 근무 형태를 하고 있다. 이들 기업들의 논리는 보통 '우리는 대기업이 아니라서 황새가 뱁새 쫒아가다가 가랑이 찢어지면 어떻게 하라고 그러느냐?' 이다.

 '퇴근이란 오랜 옛 추억으로 기억 저편에 남아있는 것일 뿐이다' 라고 느끼는 근로자들은 일만 하려고 하는 '일 중독자'가 된다. '일 중독자'는 일을 잘해서 그렇게 불리는 것이 아니고 어딜 가든 업무와 관련된 행동을 해야 한다는 강박관념에 사로잡힌 사람이 되기 때문에 그렇게 불리는 것이다. 이들을 이렇게 만드는 방법으로 '너는 노력이 부족하다' 라거나 '먹고살기 힘들지 않느냐' 하는 것들이 있다. 이렇게 근로자들을 일 중독자로 만들면 회사를 경영하는 입장으로는 겉으로 보기에는 안심이 될 수 있을것이다.

 IT회사의 속내를 들여다 보자. 야근이 필수인 회사는 그저 근무시간이 법정 근로시간보다 좀 더 길 뿐이다. 그래서 열 몇 시간을 책상앞에 앉아서 무언가 바쁜척(?)을 하면 된다. 프로젝트 기한은 대충 맞는것처럼 보이면 된다. '프로젝트 관리'라는 무언가 거창한 타이틀이 존재는 하지만 어딘가 어설퍼 보이는 면이 없지 않다. 그나마 '마감시간'이라도 정해져 있어서 놀지는 않은 것 처럼 보인다.

 '프로젝트 관리' 업무는 '짬'좀 되는 사람들이 하게 된다. 자신의 경험에 비추어 대충 일정을 만들고 일을 하다보면 매일같이 야근을 하고도 항상 일정의 2~3배의 시간이 걸린다. 프로젝트가 지연되는건 항상 일어나는 일이기에 비난의 화살은 '칼퇴근자'로 돌아가도록 되어있다. 하지만 그 누구도 프로젝트가 '어디쯤' 와있는지 '얼마나 더' 해야 하는지는 알지 못한다. 그저 운이 좋기를 바랄 뿐이다.

 인간의 능력은 하루 4시간만 집중할 수 있도록 되어 있다. 카페인 음료의 도움을 받아 좀비모드로 되려고 하면 할수록 집중할 수 있는 능력은 줄어들 뿐이다. 하지만 회사는 근로자가 열 몇 시간을 책상앞에 앉아서 무언가 바쁜척(?)을 하기를 바라고 있기 때문에 근로자들은 안타깝게도 후자를 선택하게 된다. 차라리 인간이 아니라 기계였다면 좋았을 것이라는 생각이 들 정도이다. 어떻든 간에 인간은 4시간 이상 집중하지 못하므로 이에 맞는 일 처리 방법을 생각하는 것이 좋을 것이다. 

 아쉽게도 IT산업는 다른 산업들보다 상대적으로 짧은 역사를 가지고 있기 때문에 업무 프로세스에 대한 고찰이 많이 부족한 듯이 보인다. 야근을 하는 것이 비효율적이라는 것도 알고 있고, 몸을 혹사시켜서 돈을 좀 더 번다 한들 나중에 병원비로 더 많이 낼 것이라는 것도 알고 있다. 그런데 소프트웨어도 하드웨어처럼 '설계'가 필요하고, '설계'를 통해 '삽질하는' 시간을 줄일 수 있다는 것을 알고 있는 사람은 많지 않다.

 20년도 더 된 프로그래밍 서적에는 'Top-Down Design'과 'Bottom-Up Implementation'기법이 소개되어 있다. Top-Down Design이란, 인간이 필요로 하는 기능에서 부터 기계가 수행해야 할 일들을 나열하는 방법이고, Bottom-Up Implementation은 설계단계에서 기계가 수행해야 할 일 부터 먼저 구현해서 가장 마지막에 인간이 필요로 하는 기능을 구현하는 방법이다. 지금 하는 업무 방식과는 크게 달라보이지 않다.

 하지만 이것이 야근 문제를 해결 할 수 있는 핵심이다. 설계할 때 부터 필요한 기능이 나열되므로 필요없는 기능을 만드는데 들이는 시간을 줄여준다. 설계할 때 부터 불확실한 부분이 해결되므로 설계 이후에 프로젝트가 지연될 확률을 감소시켜준다. 설계할 때 각 모듈들의 인터페이스가 정의되므로 테스트 시나리오도 설계 단계에서 작성이 가능하다. 설계가 끝나면 마치 기계처럼 구현과 테스트만 하면 된다. 'Test Driven Development'는 말도 안 되는 것 처럼 보이지만 위의 설계와 구현과정이 확실히 분리가 되면 가장 아랫 단계에서 부터 테스트가 가능하고 테스트가 끝난 부분에 대해서는 다시 볼 필요가 없으므로 디버깅에 드는 시간이 줄어든다.  

 다음에는 (언제가 될 진 모르겠지만) 위의 세가지 방법을 이용해서 소프트웨어를 작성하는 방법을 소개하도록 하겠다. 혹시라도 프로젝트 매니저를 하고 있다면 직원들 좀 그만 갈구고 회식 따위로 어떻게 해결하면 될 거라는 생각 버리고 밑져야 본전이라는 생각으로 위에 제시된 방법들에 대해 공부해 보길 바란다.
by 홈쥬인 | 2009/05/10 17:53 | 궁데 이야기 | 트랙백(2) | 덧글(42)
오늘의 트랜스포트 타이쿤!!!!

보통 많아봐야 네줄씩 깔다가 열여섯줄씩 깔라니까 아주 미치것네 ㅡㅡ
맵도 짝아가지고말야~~~
엔딩을 봐야할텐데 ㅜㅜ
노란색 선은 subsidy
초록색 선은 앞면
빨간색 선은 뒷면
네모나 똥그래미 들은 패드 또는 비아
트타 하루종일해도 안끝나 ㅜㅜ
by 홈쥬인 | 2009/05/07 01:45 | 트랜스포트 타이쿤 | 트랙백 | 덧글(6)
성공과 실패를 좌우하는 게임 그래픽!!!!
딱보니 간지가 철철 흘러 넘치는 대항해시대2!!!!
이 게임 그래픽의 특징은 쥿네 천재가 아니고서야 그릴 수 없는 신의경지에 이른 도트노가다!!!
교회 옆에 그림자 다 그려놓은거 보면 신기하지 않음???
그런데 더욱 놀라운것은 캐릭터도 같은 방향으로 그림자가 나 있다는거!!!
오후가 되었을때...
그리고...
밤일때!!!!
아 저기 문에 불빛 비추는거바!!!
이건 뭐 거의 환상이야!!!!

그러니까 이런것좀 본받으란말여~~~
얼마나 효율적이고 일관적이고 간지가 나는지!!!!!
이거 16색 그래픽이여!!!!!
by 홈쥬인 | 2009/05/05 17:18 | 트랜스포트 타이쿤 | 트랙백 | 덧글(6)
인텔, 태양정밀기계(=sun), 엔비디아는 지구온난화의 주범이다
디지털 회로에 주로 쓰이는 전계효과 트랜지스터(FET)는 평소때는 전기를 거의 안 쳐묵하다가 스위칭할때면 전기를 쳐묵쳐묵한다. 그런에 이넘이 고속으로 동작하면 전기를 쥿네 개쳐묵쳐묵한다. 요새 컴퓨터는 쥿네 초고속인데다가 씨퓨혼자 초고속이 아니라 칩셋이나 램도 다 초고속이다. 그런데다가 개나소나 코어가 두개이상인지라 전기는 쥿네 개초초초초쳐묵쳐묵쳐묵쳐묵이 된다. 결론부터 말하자면 인텔은 지구온난화의 주범이다.

그리고 옛날에 빌게횽아가 640kb면 아주 떡을치고도 남는다고 자랑을 했다. 그래서 옛날 프로그래머들은 어떻게 하면 램 덜쓸까 고민고민을 했는데 요새 프로그래머들은 걍 메모리가 질질 새거나 말거나 쓰레기차가 지나가거나 말거나 막쓴다. 하여간 그래가지고 저놈의 램쳐묵쳐묵이 대세가 대가지고 건희씨만 배가 남산만큼 불러서 자연농원 옆에서 방구차놀이나 하고... 그런데 여러분 그거 알고 계십니까? 램도 전기 쥿네 잘 쳐묵쳐묵 한다는 사실... 동작속도 올라갈수록 완전 개쳐묵쳐묵 그래도 씨퓨보담은 덜한데 요새 팔기가씩 달면 바퀴벌레가 몇개야... 그게 읽고 쓰는 상태에서는 수십와트 쳐묵쳐묵 할거라능...

그리고 또 나쁜넘은 엔비디아!!! 왜 그래픽카드는 그렇게 뜨겁게 만드러가지고!!!! 요샌 혼자 전기 따로 받아서 쳐묵쳐묵한다며?? 그래서 하는 말인데 난 명빠는 아니지만 가카말이 천번 만번중에 한두번은 옳다. IT산업은 일자리를 줄인게 맞는거 같다. 쥿네 쉽게쉽게 만드는 프로그람이 가져온 전산화 바람 때문에 수많은 사람들이 일자리를 잃었다. 그리고 쥿네 프로그램을 쉽게쉽게 만들 수 있다 보니까 프로그래머들은 날로 돈버는거 같아서 맨날 사람취급도 못 받는다. 인터넷이라든가 컴퓨터의 보급을 탓하려는게 아니다. 전기를 너무 많이 쳐묵쳐묵한다는걸 문제삼으려는거다. 놋북에 데탑씨퓨 얹으면 놋북 터져.... 자 이제 도스로 돌아갑시다!
by 홈쥬인 | 2009/05/04 19:28 | 땜질 이야기 | 트랙백 | 덧글(13)
◀ 이전 페이지 다음 페이지 ▶