AS3.0을 보고 느낀 점, 2020년에는 사라지는 플래시,

나에게 플래시의 의미는 2000년대에 웹 개발을 한다면 필수적으로 사용해야 했던 플래시는 2020년 12월을 끝으로 웹상에서 사라지게 된다.

제가 중학생 때부터 고등학교, 대학생이 될 때까지 프로그래밍의 길을 걷게 한 출발점은 플래시 게임이지 않았나 싶다. 어려서부터 컴퓨터 프로그래밍을 자연스럽게 접한 친구들을 보면 대부분 이런 과정을 많이 거쳤다. 혹은 비주얼 베이직으로 게임을 만들거나 프리메이플 소스코드를 보면서 운영하던 친구..

플래시라는 IDE를 사용하면서 Action Script를 첫 언어로 접했다. 그리고 그 언어를 10여 년간 사용했다. 진짜 이거 하나만 팠어. 이 언어로 할 수 있는 것을 이것저것 다 해본 것 같아. 그리고 이 인터프리터 언어에 한계가 있을 무렵 커널에 닿거나 권한 수준 있는 동작을 구현할 때 자바나 어셈블리 언어를 잡았다.

제가 쓰는 언어가 사라지고 있을 때 초등학생, 중1, 중2, 중3, 그리고 IT고에서의 3년, 졸업하고 대학에 와서 군대까지 갔기 때문에 점차 플래시의 입지가 죽었고, 제가 자유자재로 다룰 수 있는 이 언어가 사라졌다. 고등학생 때 스티브 잡스가 HTML5를 채택해 플래시를 iOS 생태계에서 꺼버린 뒤 자연스럽게 죽었는데 왠지 그때는 액션 스크립트가 너무 애착이 가서 쉽게 버리고 다른 언어를 팔지 못한 것 같다.

주로 쓰던 언어가 사라진다는 게 내겐 너무 막연한 일이었다. 어떤 느낌인지 설명할 때 이 비유를 들곤 했다. 가장 많이 쓰는 언어는 한국어지만 군대를 다녀오면 한국어를 쓰는 사람이 한 명도 없다. 전부 영어를 쓴다. 그런 상황이 온다면 내가 느꼈던 답답함이 얼마나 공감될 수 있을까.

이제 와서 돌이켜보면 플래시의 몰락은 나에게 Dependency(의존)의 위험성을 뼈저리게 새겨준 것 같다. 무언가가 사라졌을 때 내가 설 자리가 없어진다는 건 너무 정신적으로 충격적이었다. 하지만 앞으로 사용하지 않는 플래시가 또 언젠가 야쿠셰이빙 기회가 찾아올 때 큰 역할을 할 것으로 생각한다. 고통스러웠지만 크게 성장했다.

이렇게 보면 처음 접하기 때문에 망하기까지 항상 나에게 깨달음을 안겨준 언어였다. 이런 표현이 재미있지만 반려동물을 배웅하는 느낌이다.

(흥미없겠지만 일기장처럼 쓰는..) Action Script를 사용해서 자연스럽게 CS지식을 배운 에피소드

  1. Byte 단위 자료 구조 Byte Array와 Base64 플래시 게임을 만들고 저장 기능을 만들었다. 중학생 때 서버를 구입할 돈은 없고 JS의 local Storage처럼 클라이언트에 데이터를 저장하도록 했는데 컴퓨터가 된다는 사람들이 이를 악용해 저장 데이터를 위조해 막고 싶었다.첫 번째 시도 Base64를 알고 인코딩한 값을 저장했다. 하지만 베이스64임을 알게 된 사용자가 또 위조했다.두 번째 시도, 저장하고자 하는 데이터의 이진수를 뒤집어 Base64를 돌렸다. 예를 들어 01100011을 저장한다면 11000110으로 Reverse시키고 Base64를 돌렸다. 더 이상 깨지는 일은 없었다.
  2. 2. PNG 파일 구조 분석 PNG 파일을 비트맵 Data로 변환하는 것은 용이하다. 하지만 비트맵데이터를 PNG 파일로 바꾸고 싶지만 당시 오픈소스 개념이 없어 할 수 없었다. Byte Array를 다뤄보니 프로그래밍에 새로운 눈을 떴다. 구글에 검색하면 나오는 PNG파일 Structure 자료를 보면서 직접 PNG 파일을 보고 이해하고 만들어 본 적이 있다.솔직히 내가 봐도 이건 약간의 경험인 것 같다. 첫 8바이트에 PNG임을 나타내는 시그니처 비트가 심어져 있고 그 이후부터 Chunk가 연이어 들어가는데 {size(4바이트), chunk_type(4바이트), payload(0~2^32바이트), crc(4바이트?)} 이런 식으로 구성되어 있다.플래시로 그림판을 만들었는데 내가 그린 그림을 PNG로 저장할 수 없어서 이걸 직접 만들다니 내가 봐도 이상해졌어 ㅎㅎ JPG도 해보려고 했는데 너무 어려워서 그건 어떻게든 그글링해서 라이브러리 있게 썼다.
  3. 3. 멀힐 Graphic Language 사용 플래시로 3D 게임을 만들고 싶었다. 기술적으로 독보적인 능력을 갖는 것에 야망이 컸던 것 같다.아는 오빠의 도움도 많이 받았는데 버텍스(정점)를 찍고 Indice(점 3개를 연결한 삼각형)를 정해 시계 방향을 전면에 할지 반시계 방향을 전면에 할지 예제 코드를 보면서 이해하고 만들어봤다. AGL과 Adobe Graphic Assembly Language라는 어셈블리 문법으로 Shader를 작성해 그래픽 카드에 올렸는데 정말… 이것도 하다가 사람이 할 일이 아니라고 생각해 3D 엔진을 찾아 사용하기 시작했다.
  4. 4. TCP/UDP 소켓 통신사용 XMLSocket, Datagram Packet이라는 키워드였던 것 같은데 플래시로 온라인 게임을 만들고 싶었다.(쓰다 보니 느끼는 건데 기술에 너무 미쳤던 것 같다) IP, Port를 합치면 연결된다는 것을 알고 배웠고 뭔가 하나를 깨달았다. 크레이지 아케이드 같은 게임은 왜 유저가 서버가 되어 서버less 시킬 수 없을까? 싶어 만들어봤지만 Private IP 개념을 알고 며칠 동안 한 일이 거짓말임을 깨닫고 포기한 바 있다.이걸로 채팅방, 온라인 그림판, 자작 FTP 같은 걸 만들었던 기억이 있다.

이렇게 새빨간 일이 나를 성장시켜 준 것 같아, 앞으로도 많이 해보자!

error: Content is protected !!