화상을 입었다

빡치는 건 아파서가 아니라

뻔히 보이는 잠깐의 부주의함으로 인해 오랬동안 눈에 거슬리는 상처가 남는다는 거다.

감정도 마찬가지라는 생각이 또 소리치듯 올라왔다.

타인의 사정을 내가 이해한다고 해서

내게 남아있는 생채기의 감각이 사라지지 않듯이

왜 그렇게 했는지 이해시킨다고 해서 상대방의 감정에 남긴 생채기가 깨끗하지진 않을거다.

그래서, 감정은 소중하다.

너무 뒤늦게,, 감정의 소중함을 알게된 때에는

나도 당신도 너도, 돌이킬 수 없는 마음의 생채기가 감정을 딱딱하게 한다.

그래서 성경에도 분명히 강한 경고가 있었는데,

난 그걸 항상 맘에 두고 있었는데,

다 … 소용없는 짓거리였나.

잠4:23 무릇 지킬만한 것보다 더욱 네 마음을 지키라 생명의 근원이 이에서 남이니라

Watch over your heart with all diligence, For from it flow the springs of life.

Pico-8 Game: Gadget_v2

WordPress Page를 쓰지 않고, 일반 Post 게시물에서 React/Flutter로 만든 페이지/앱을 임베딩하여 마치 WrodPress 게시물의 일부처럼 보이게하고 싶었다. 페이지나 포스트 하나 하나가 다른 앱을 보는 것인가 착각할 정도로 독립된 영역에서 동작하되, 업데이트와 관리가 가능해야한다는 요구조건을 만족시키는 방법을 실험하기 위한 게시물이다. 겉으로는 단순히 WASM으로 변환된 Pico8 게임이긴 한데, URL 부분에서 거추장스런 파라미터를 제거하고 단독 게시물 보기에서는 전체화면이 되면서도 게시물 리스트에서는 일반 게시물처럼 동작한다. 물론 Admin용 Plugin을 통해서 제어를 해야 한다. 계속 다듬어가면 WordPress 버전의 앱스토어 처럼될지 누가 아나;;

이유는 모르겠는데 Pico-8 에뮬레이터에선 이 게임만 주구장창 한다.

빨리 턴이 끝나는 것도 이유일 것이구,

쫒아오는 놈들이 늘어갈수록 머리 돌아가는 소리가 들려서인지도 모르겠다.

코인을 10개 획득할 때마다 x 키를 누르면 싹쓸이 할 기회가 온다.

득달같이 달려드는 놈들을 피해 요리조리;; 손가락 빠지는 재미를 느껴보라

Press Enter Key …

second life

만날 사람과 통화를 하는데 그 사람이 “내일 오후 6시까지는 바빠서 만날 수가 없어” 라고 말한다면,

그건 내일 오후 6시 이후에는 만날 수 있다는 말이지 만나지 않겠다거나 만날 수 없다는 말은 아니다.

 

마찬가지로 성경에 기록된 “천 년이 차기까지는 살지 못한다”는 표현은 “천 년이 차면 살아난다”라는 선언과 같다. 

계20:5 (그 나머지 죽은 자들은 그 천년이 차기까지 살지 못하더라) 이는 첫째 부활이라

The rest of the dead did not come to life until the thousand years were completed. This is the first resurrection.

 

첫째 부활이 있다면 두번째 부활도 있다는게 뭐가 그리 이상한가? 

두번째 죽음이 있으려면 첫번째 죽음이 선행되야 하는 것 처럼 당연한 논리다.

계20:14 사망과 음부도 불못에 던지우니 이것은 둘째 사망 곧 불못이라

Then death and Hades were thrown into the lake of fire. This is the second death, the lake of fire.

 

그러나 너무 뻔뻔하게도 한번 죽으면 끝이라는 이상한 논리로 세뇌당했기 때문에 

이 간단한 셈법을 마치 이단의 괴수라도 되야 말할 수 있는듯 꺼린다.

 

사람은 두번 째 삶이 있다는 것을 전혀 기대하지도 못하고 않하는 것이 더 낫다. 그렇지 않다면 첫번째 삶을 개판으로 살 가능성이 절대적으로 높기 때문이다.

하지만 거의 대부분의 사람은 떠올리기도 싫은 기억들을 가지고 있기에,

두번째 삶을 산다는 것이 믿어지면 기억을 밀어버리고 싶은 충동에 쌓일지도 모른다. 

똑같은 신체조건, 능력조건, 기억을 가지고 두번 째 삶을 산다는 건, 누군가에게는 첫번 째 삶에서의 불평등과 불만을 이어가는 것과 다를바가 없을수도 있기 때문이다.

 

두번 째 삷이 있다는 것이 믿겨지면 당신은 어떤 생각이 들었는지 내게도 알려주면 고맙겠다. 
참고로 나는 내 기억을 밀어버리고 싶은 쪽이다.

 

아, 그리고 두번 째 삶도 아기부터 시작하는 건 아니라는 건 확실하다.

클래식 기타는 내 스타일이 아니었으니,  가능하면 두번째 삶에선 바이올린부터 시작하고 싶은데… 가능하면 좋겠다.

그림도 포기하지 않을 작정.

 

WP 방어

십수년간 업데이트 해오던 내 자료;; 홀라당 날려먹고 백업도 없어서 블로그를 내 팽겨친채 있다가, 다시 운영하려 할 때 걸림돌이 보안 문제였다.  워드프레스 사이트를 운영해본 사람들은 얼마나 공격질을 해대는지 이해할 것이다. 블로그를 내팽겨친 건 그 보안문제를 해결할 마땅한 방법이 없었기도 하거니와 시간내서 그 정도를 만들고 싶지도 않았기 때문이다.

그런데, 이제 우리에겐 Agent가 있지않은가?!ㅎ 그냥 시키면 된다. 그래서 RAM은 22G 라서 넉넉하다 못해 광활하지만 CPU나 Storage 제약이 심한 OCI 가상머신에서 동작시킬 방어방법을 생각해내고 구현하는게 최종목적이었다.

Snort3를 돌리는 건 파리잡자고 머신건 쓰는 격 아니던가. 그럼에도 불구하고 사용하는 건 HTTP/HTTPS 포트에 다른 프로토콜을 사용하는 경우를 차단하기 위해서다. 일단 걸리면 무조건 하루동안 block이 되게 했다. 정상 사용자가 아닌 것이 확실하기 때문. 그리고 많은 규칙을 만드는 것 보다 NGINX 접근에 따라 실시간으로 반응하게 하는게 이 구성의 핵심이다. 즉, 불필요한 로그인을 시도하는 것 자체가 3시간~6시간 block 감이고, .env 또는 그 변형을 찾거나 언제적 cgi-bin/ 을 호출하는 것 같은 짓거리를 하면 곧바로 6시간 block을 먹인다.  block은 차단이 아니라 packet drop 방식을 사용하는데, 상대방에겐 사이트가 하염없이 연결 대기중 상태가 된다. 그래서 봇이나 앱으로 내용 검색을 시도하면 timeout을 설정하지 않는 이상 앱이나 봇이 무한대기를 할 것이다. 상대방을 짜증나게해서 아예 탐색 대상에서 내 서버를 제외시키려는 의도라고나 할까;;;

또한 secure_link를 사용해서 REFERER 없이 접근하는 것을 막고, REFERER를 위조하는 경우도 막는다. 아… 물론 그렇게 대단한게 있어서 막는게 아니라, 사이트 트래픽이 곧 비용이라서 그런거다.

GeoIP를 사용해서 상당수 국가에서 오는 트래픽 자체를 막았다. 차단국가는 CN,KP,TW,SG,IN,VN,HK,MY,ID,TH,MM,BD,LA,PK,AF,IR,IQ,SA,YE,OM,RU,US,DE,BR.   미국도 포함된다ㅋ  겁나게 많은 공격이 미국발이다.

 

현재상태는 조용히 게시글만 보고 댓글 달 사람만 알음알음 오면 된다. 잘 나가는 블로그가 되면 뭐 그때 생각해보자.

관제하는 Admin Plugin을 만들게되면 이 게시글을 업데이트 할 예정.

 

 

Agent에게 일을 시킬 때 중요한 건, 여러 태스크 간의 목적과 결과를 참조하게 하는 것이었다. Hermes는 개발단계에선 부적절하다.

방법이야 여러가지가 있겠고 나는 나대로의 방법으로 진행했는데 토큰 소모가 좀 많았던게 흠이다. 지금 생각은 그 과정자체를 MCP로 제어하면 토큰 소모를 줄일 수 있지 않았을까 생각이 든다.

Telegram Noti는 초반엔 유용했는데, 뻔한 패턴이 반복되니 꺼버리고 그냥 차단 시간/일수를 왕창 늘여서 불필요한 알림을 줄이는 쪽으로 가게됐다.

`260630 현재, 차단된 IP는 10개 미만이다.

target         country  expires_at        remaining   reason
176.32.193.16  AM       2026-06-30 11:49  0d/1h/1m    nginx-access-general-protection-ip-host-access
206.189.5.249  NL       2026-06-30 11:50  0d/1h/2m    nginx-access-general-protection-ip-host-access
34.78.81.50    BE       2026-06-30 11:03  0d/0h/15m   nginx-access-general-protection-ip-host-access
93.174.93.12   NL       2026-07-01 07:32  0d/20h/44m  repeated-block-immediate:2026-06-30