내 세상을 바꾼 코드 열 줄

1 hour ago 1

BASIC의 무한 인사부터 280자 CSS 시까지, 직접 작성하거나 자주 복사해 쓰고 웃거나 울게 했던 열 가지 코드에 컴퓨터와 소통해 온 경험이 담겨 있음 자기 수정 6502 어셈블리와 게임 메모리를 바꾸는 POKE는 실행 중인 코드도 조작할 수 있으며, 어디를 바꿀지 알면 게임의 모든 요소를 바꿀 수 있다는 깨달음을 줌 Windows에서 빈 파일을 만드는 touch.bat, 요소에 진분홍색 테두리를 두르는 CSS 한 줄은 일상적으로 쓰는 작은 개발 도구가 됨 JavaScript의 기묘한 동작, 빈 반복문을 줄여 최적화를 가장하는 이야기, IRC의 rm -rf / 장난에는 코딩의 유머와 짓궂음이 함께 있음 280자 CSS 애니메이션 시는 JavaScript 없이, <style> 블록만 있는 빈 문서에서도 작동하며 문자 수 제한 안에서 표현을 만들어 냄 Hello World: 컴퓨터와 나눈 첫 인사 처음 입력한 정확한 시점이나 쉼표와 느낌표의 개수는 기억나지 않지만, BASIC 코드가 화면에 인사를 출력하며 컴퓨터와 처음 소통하는 경험을 줌 10 PRINT "HELLO, WORLD!" 20 GOTO 10 GOTO 10 은 인사를 영원히 반복하게 하며, 컴퓨터가 시키는 대로 동작한다는 사실을 실감하게 함 JavaScript의 기묘함과 Batman Array(16).join('wat' - 1) + ' Batman' 은 브라우저 콘솔에서 실행할 수 있는 농담으로, 옛 TV 대중문화와 코딩 유머, JavaScript의 기묘함을 한 줄에 결합함 고전적인 Wat 발표와 연결된 예제로, 처음 실행했을 때 실제로 웃음을 터뜨리게 한 코드임 자기 자신을 수정하는 6502 어셈블리 기계어에는 경고, 로그, 보호장치가 없으며, 실행 중인 코드의 실제 바이트를 덮어써 자기 자신을 수정할 수도 있음 예제는 소스와 목적지 주소의 상위 바이트를 변경해 다음 메모리 구간으로 복사를 이어감 X를 0부터 증가시키며 $2000,X에서 읽은 바이트를 $0400,X에 저장함 $2000부터 $20FF까지 순회한 뒤 INC .loop+2와 INC .loop+5로 명령어 안의 주소를 변경함 소스 주소가 $2000에서 $2100으로 바뀐 상태로 다시 반복하며, 목적지 주소의 상위 바이트가 $07인지 비교함 6502는 리틀 엔디언이므로 상위 바이트를 수정할 때 +1, +4가 아니라 +2, +5를 사용함 하드웨어에 이처럼 가까운 수준에서는 무엇이든...

Read Entire Article