![]() |
|
카테고리
전체땜질 이야기 코딩 이야기 옆컴서버 이야기 궁데 이야기 트랜스포트 타이쿤 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
양궁
|
코드
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메가 밖으로 벗어나면 큰일남. 암튼 오늘은 여기까지 ㅡㅡ
에잉 꼬진 팔뚝씨퓨
모토롤라 씨퓨보다 못한씨퓨 직관적이지 않은 씨퓨 모토롤라 씨퓨는 인터럽트 벡터에 짬푸할 어드레스가 들어있습니다. 하지만 팔뚝씨퓨는 인터럽트 벡터에 실행할 인스트럭션이 있어야 합니다. 팔뚝씨퓨의 소프트웨어 인터럽트 벡터는 모두 아시겠지만 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비트는 부호로 되져 참 쉽죠? 이거가지고 하루 날렸다. ![]() 보시다시피 인천은 경인전철에 의해 남북으로 갈라져 있으며 다시 경인고속도로에 의해 동서가 갈라져 있습니다. 또한 제2경인고속도로에 의해 남북이 또 한번 갈라져 있습니다. 고속도로 또는 지상전철은 교차해서 건너기 어려운 구조기 때문에 고가도로 또는 지하차도등을 이용해서 건너야 하는데 이래저래 짓기 어렵기 때문에 각 지역간의 통행은 활발하지 못하게 되었습니다. 그래서 거주지가 전철길을 따라 붙어있고 그 외곽은 전부 공장들이 병풍처럼 둘러 있는 모습입니다. 즉, 인천에서 밖을 보면 바다가 보이는게 아니라 공장이나 철길(또는 고속도로)이 보인다는 이야기입니다. 그나마 연수구쪽은 아파트가 보이는게 다행인지도 (...) 그리고 위아래 분리가 확실히 되었기 때문에 도심도 두개가 되었습니다. 뭐가 부도심이라고 딱히 말하기도 어려운 이상한 도시구조입니다. 도심은 술집 단란주점 노래방 과 같은 다양한 업종으로 구성되어 있으며 아무래도 검은 양복을 입고 머리를 중고생 두발기준에 맞춰 단정하게 다듬으신 분들이 검은 승용차를 타고 다니시는 모습이 인상적인 동네라 할 수 있겠습니다. 동인천은 한때 도심의 역할을 했지만, 그건 다 옛날 이야기고 지금은 사람이 다니지 않는 동네가 되었습니다. 밤만되면 깜깜해서 다닐수가없어 (...) 공장 주변은 밤이되면 당연히 깜깜하구여 (...) 남들은 이야기합니다. 인천사람들은 바다보고 사냐고... 바다가 가까워서 좋겠다고... 월미도도 있고... 상식적으로 월미도가 가깝다는 인천역에서도 바다는 보이지 않습니다. 인천에서 바다 보기 많이 힘듭니다. 바다를 병풍처럼 두르고 있는 공장들을 보면 왜 그런지 알 수 있습니다. 막상 바다에 가봐도 별로 바닷물 같아 보이지 않는 물이 끝없이 펼쳐져 있습니다. 주변 풍경이 저러하니 바다를 메꿔서 삽니다. 이런 집값떨어지는 글이나 올린다고 저 욕하지 마세요... 다시한번 지도를 보며 인천이 얼마나 소통이 불가능한 동네인지 눈으로 확인해보시길 ^^ 고담과 마계는 분위기는 같지만 차이점을 뽑자면 고담은 그래도 사람사는 동네이고 마계는 마물들이 사는 동네입니다. 고담은 사람이 살아서 투표율이라도 높지만 마계는 마물들이 살아서 투표안하기로는 전국1위져~ 그만큼 인천사람들이 지역 유대감은 거의 없습니다. 인천사람이 인천사람 만나도 그닥 반가워하지 않는거 보면 (...) 마물들이 사는게 분명합니다.. 계획대로라면 지하철 2,3호선은 이미 다 지어져서 굴러다니고 있어야 하는데 그것마저 누군가 어따 갖다 썼는지 알 길이 없더라는... 마지막 소통의 기회마저 저버린 살기좋은 도시 인천! 명품도시 인천! 인천으로 오세요~~!!!! 참고로 저 인천삽니다. p.s: 서구 일부 지역과 논현동 일대 수정했습니다...(2009-06-14 17:42)
취향별 선호 컨텐츠
참신하고 변덕스러운, 주관의 영역 “어제는 내일 같지 않을 것이고, 변덕 외에는 아무 것도 지속되지 않을 것이다.” - 퍼시 B. 셀리 참신한, 희귀한, 새롭고 독특한 것들을 추구하는 영역입니다. 좋아하는 것에 특별한 기준은 없으며 오직 나 자신의 느낌과 주관, 변덕이 중요한 곳입니다. 개성도 줏대도 없는 따라쟁이들, 지적인 척 잘난 척하는 속물들, 너도나도 사보는 베스트셀러, 아줌마들이 떠들어 대는 뻔하고 지루한 연속극들은 추방될 것입니다. 이 영역에 속하는 사람들의 특징은 다음과 같습니다.
세계적인 경기 침체로 인해(?) 경제가 어렵다며 야근을 권장(...)하는 회사들이 점점 늘고 있다. 이미 IT업계는 야근은 필수요 주말근무는 진급의 등용문이요 철야는 옵션이라는 근무형태가 일반적으로 자리잡혀 있다. 꼭 IT업계 뿐만 아니라 어떤 회사든 소위 말하는 '대기업'이 아닌 이상 이런 근무 형태를 하고 있다. 이들 기업들의 논리는 보통 '우리는 대기업이 아니라서 황새가 뱁새 쫒아가다가 가랑이 찢어지면 어떻게 하라고 그러느냐?' 이다.
'퇴근이란 오랜 옛 추억으로 기억 저편에 남아있는 것일 뿐이다' 라고 느끼는 근로자들은 일만 하려고 하는 '일 중독자'가 된다. '일 중독자'는 일을 잘해서 그렇게 불리는 것이 아니고 어딜 가든 업무와 관련된 행동을 해야 한다는 강박관념에 사로잡힌 사람이 되기 때문에 그렇게 불리는 것이다. 이들을 이렇게 만드는 방법으로 '너는 노력이 부족하다' 라거나 '먹고살기 힘들지 않느냐' 하는 것들이 있다. 이렇게 근로자들을 일 중독자로 만들면 회사를 경영하는 입장으로는 겉으로 보기에는 안심이 될 수 있을것이다. IT회사의 속내를 들여다 보자. 야근이 필수인 회사는 그저 근무시간이 법정 근로시간보다 좀 더 길 뿐이다. 그래서 열 몇 시간을 책상앞에 앉아서 무언가 바쁜척(?)을 하면 된다. 프로젝트 기한은 대충 맞는것처럼 보이면 된다. '프로젝트 관리'라는 무언가 거창한 타이틀이 존재는 하지만 어딘가 어설퍼 보이는 면이 없지 않다. 그나마 '마감시간'이라도 정해져 있어서 놀지는 않은 것 처럼 보인다. '프로젝트 관리' 업무는 '짬'좀 되는 사람들이 하게 된다. 자신의 경험에 비추어 대충 일정을 만들고 일을 하다보면 매일같이 야근을 하고도 항상 일정의 2~3배의 시간이 걸린다. 프로젝트가 지연되는건 항상 일어나는 일이기에 비난의 화살은 '칼퇴근자'로 돌아가도록 되어있다. 하지만 그 누구도 프로젝트가 '어디쯤' 와있는지 '얼마나 더' 해야 하는지는 알지 못한다. 그저 운이 좋기를 바랄 뿐이다. 인간의 능력은 하루 4시간만 집중할 수 있도록 되어 있다. 카페인 음료의 도움을 받아 좀비모드로 되려고 하면 할수록 집중할 수 있는 능력은 줄어들 뿐이다. 하지만 회사는 근로자가 열 몇 시간을 책상앞에 앉아서 무언가 바쁜척(?)을 하기를 바라고 있기 때문에 근로자들은 안타깝게도 후자를 선택하게 된다. 차라리 인간이 아니라 기계였다면 좋았을 것이라는 생각이 들 정도이다. 어떻든 간에 인간은 4시간 이상 집중하지 못하므로 이에 맞는 일 처리 방법을 생각하는 것이 좋을 것이다. 아쉽게도 IT산업는 다른 산업들보다 상대적으로 짧은 역사를 가지고 있기 때문에 업무 프로세스에 대한 고찰이 많이 부족한 듯이 보인다. 야근을 하는 것이 비효율적이라는 것도 알고 있고, 몸을 혹사시켜서 돈을 좀 더 번다 한들 나중에 병원비로 더 많이 낼 것이라는 것도 알고 있다. 그런데 소프트웨어도 하드웨어처럼 '설계'가 필요하고, '설계'를 통해 '삽질하는' 시간을 줄일 수 있다는 것을 알고 있는 사람은 많지 않다. 20년도 더 된 프로그래밍 서적에는 'Top-Down Design'과 'Bottom-Up Implementation'기법이 소개되어 있다. Top-Down Design이란, 인간이 필요로 하는 기능에서 부터 기계가 수행해야 할 일들을 나열하는 방법이고, Bottom-Up Implementation은 설계단계에서 기계가 수행해야 할 일 부터 먼저 구현해서 가장 마지막에 인간이 필요로 하는 기능을 구현하는 방법이다. 지금 하는 업무 방식과는 크게 달라보이지 않다. 하지만 이것이 야근 문제를 해결 할 수 있는 핵심이다. 설계할 때 부터 필요한 기능이 나열되므로 필요없는 기능을 만드는데 들이는 시간을 줄여준다. 설계할 때 부터 불확실한 부분이 해결되므로 설계 이후에 프로젝트가 지연될 확률을 감소시켜준다. 설계할 때 각 모듈들의 인터페이스가 정의되므로 테스트 시나리오도 설계 단계에서 작성이 가능하다. 설계가 끝나면 마치 기계처럼 구현과 테스트만 하면 된다. 'Test Driven Development'는 말도 안 되는 것 처럼 보이지만 위의 설계와 구현과정이 확실히 분리가 되면 가장 아랫 단계에서 부터 테스트가 가능하고 테스트가 끝난 부분에 대해서는 다시 볼 필요가 없으므로 디버깅에 드는 시간이 줄어든다. 다음에는 (언제가 될 진 모르겠지만) 위의 세가지 방법을 이용해서 소프트웨어를 작성하는 방법을 소개하도록 하겠다. 혹시라도 프로젝트 매니저를 하고 있다면 직원들 좀 그만 갈구고 회식 따위로 어떻게 해결하면 될 거라는 생각 버리고 밑져야 본전이라는 생각으로 위에 제시된 방법들에 대해 공부해 보길 바란다. ![]() 맵도 짝아가지고말야~~~ 엔딩을 봐야할텐데 ㅜㅜ 노란색 선은 subsidy 초록색 선은 앞면 빨간색 선은 뒷면 네모나 똥그래미 들은 패드 또는 비아 트타 하루종일해도 안끝나 ㅜㅜ ![]() 이 게임 그래픽의 특징은 쥿네 천재가 아니고서야 그릴 수 없는 신의경지에 이른 도트노가다!!! 교회 옆에 그림자 다 그려놓은거 보면 신기하지 않음??? 그런데 더욱 놀라운것은 캐릭터도 같은 방향으로 그림자가 나 있다는거!!! ![]() 그리고... ![]() 아 저기 문에 불빛 비추는거바!!! 이건 뭐 거의 환상이야!!!! 그러니까 이런것좀 본받으란말여~~~ 얼마나 효율적이고 일관적이고 간지가 나는지!!!!! 이거 16색 그래픽이여!!!!!
디지털 회로에 주로 쓰이는 전계효과 트랜지스터(FET)는 평소때는 전기를 거의 안 쳐묵하다가 스위칭할때면 전기를 쳐묵쳐묵한다. 그런에 이넘이 고속으로 동작하면 전기를 쥿네 개쳐묵쳐묵한다. 요새 컴퓨터는 쥿네 초고속인데다가 씨퓨혼자 초고속이 아니라 칩셋이나 램도 다 초고속이다. 그런데다가 개나소나 코어가 두개이상인지라 전기는 쥿네 개초초초초쳐묵쳐묵쳐묵쳐묵이 된다. 결론부터 말하자면 인텔은 지구온난화의 주범이다.
그리고 옛날에 빌게횽아가 640kb면 아주 떡을치고도 남는다고 자랑을 했다. 그래서 옛날 프로그래머들은 어떻게 하면 램 덜쓸까 고민고민을 했는데 요새 프로그래머들은 걍 메모리가 질질 새거나 말거나 쓰레기차가 지나가거나 말거나 막쓴다. 하여간 그래가지고 저놈의 램쳐묵쳐묵이 대세가 대가지고 건희씨만 배가 남산만큼 불러서 자연농원 옆에서 방구차놀이나 하고... 그런데 여러분 그거 알고 계십니까? 램도 전기 쥿네 잘 쳐묵쳐묵 한다는 사실... 동작속도 올라갈수록 완전 개쳐묵쳐묵 그래도 씨퓨보담은 덜한데 요새 팔기가씩 달면 바퀴벌레가 몇개야... 그게 읽고 쓰는 상태에서는 수십와트 쳐묵쳐묵 할거라능... 그리고 또 나쁜넘은 엔비디아!!! 왜 그래픽카드는 그렇게 뜨겁게 만드러가지고!!!! 요샌 혼자 전기 따로 받아서 쳐묵쳐묵한다며?? 그래서 하는 말인데 난 명빠는 아니지만 가카말이 천번 만번중에 한두번은 옳다. IT산업은 일자리를 줄인게 맞는거 같다. 쥿네 쉽게쉽게 만드는 프로그람이 가져온 전산화 바람 때문에 수많은 사람들이 일자리를 잃었다. 그리고 쥿네 프로그램을 쉽게쉽게 만들 수 있다 보니까 프로그래머들은 날로 돈버는거 같아서 맨날 사람취급도 못 받는다. 인터넷이라든가 컴퓨터의 보급을 탓하려는게 아니다. 전기를 너무 많이 쳐묵쳐묵한다는걸 문제삼으려는거다. 놋북에 데탑씨퓨 얹으면 놋북 터져.... 자 이제 도스로 돌아갑시다!
|