Profile img

Juntai Park

@arkjun@hackers.pub · 65 following · 82 followers

中年(중년)中小企業(중소기업) 開發者(개발자), 90年代(년대) Console Gamer(콘솔 게이머). 좋은 하루를 繼續(계속)해 나아간다. 좋은 하루가 모이면 좋은 人生(인생)이 된다.

韓国人のプログラマー、40代、小学生の息子とゲームするのが幸せ😃💕龍が如く 、ゼルダの伝説、マリオ、ピクミン好き

「いい1日を続ける」
いい1日を続けていけば、いい人生になる!

threads
@rkjun
x
@rkJun
uri.life
@arkjun@uri.life
GitHub
@arkjun

Cursor 를 여전히 쓰고 있고, Cursor Tab 은 훌륭하다고 생각하지만, 연간구독이 만료되고 나면, Cursor 를 계속 사용하지는 않을 것 같다. (이렇게 말해놓고 또 쓸지도 모름) 너무 빠르게 바뀌어가고 좋은거 계속 나오는 느낌이라, 한달뒤에는 코드 에이전트로 뭐 쓰고 있을지 상상도 못하겠고, 전혀 모르겠다.

일단 지금은 Claude Code 와 gemini-cli 두개면 나한테는 적당히 충분한 상태.

불과 몇년전 Github Copilot Preview 나왔을 때만 해도 (자동완성) 기능 보고 우와 하던 게 엊그제 같은데..

3

구체적으로 내가 원하는 스펙이 따로 있어서 직접 구현하기로 했습니다... 근데 이거를 다시 오픈소스로 만들면 또 관리 안되는 오픈소스C가 탄생하는 것일까요?

3
  1. NestJS에다가 Fedify를 연동하는 작업을 트라이해보고 있음
  2. NestJS는 내부적으로 express를 사용하고 있는데, 그에 따라서 모듈시스템은 esm이 아닌 commonjs를 사용하고 있음.
  3. Fedify는 당연히 ESM만 지원하고 있고, commonjs 모듈시스템을 사용하는 Nestjs에서는 당연히 정상적인 방법으로는 갖다쓰기 어려움.

그렇게 삽질하다가 발견한게 저 이슈....

근데, 이걸 어떻게든 돌아가게 한다고 가정하면 dynamicImport하는 방향으로는 갈 수 있는 것 같은데, 문제는 이렇게 하면 에디터의 기능도 제대로 이용못하고 사실상 ... as any 하는 거랑 크게 다를게 없다(.....)

3
2
0
0

atuin stats 근황

내가 제일 많이 쓰는 명령어는 cd 였다. 그리고 ll, npx 순.. tig 도 아슬아슬하게 순위권.

 atuin stats
[▮▮▮▮▮▮▮▮▮▮] 389 cd
[▮▮▮▮▮▮    ] 248 ll
[▮▮▮▮▮     ] 200 npx
[▮▮▮▮      ] 184 ssh
[▮▮▮▮      ] 178 vi
[▮▮        ]  95 curl
[▮▮        ]  84 ls
[▮▮        ]  78 clear
[]  74 brew
[]  69 tig
Total commands:   2906
Unique commands:  1096
내가 제일 많이 쓰는 명령어는 `cd`
2
4

안녕하세요! 이번에 fedify 오픈소스 멘티로 참여하게 되어 해커스펍에도 가입하게 됐어요~~ 현재 프론트엔드 개발자로 일하고 있고 okky에서 팀원들을 만나 톡픽이라는 작은 프로젝트를 현재 만들고 있습니다! 7월까지 마무리 예정이라 출근 전 후로 바쁘게 달리고 있네요..!

그리고 오픈소스 멘티로도 참여하게되어 아주 바쁜 삶을 살게되었습니다. 이런 삶 너무 만족스럽습니다 전 약간 발등에 불이 떨어져야 그나마..해내는 편이기때문에

블로그에도 글을 쓰고 있어요! 저도 멋드러지게 쓰고 싶은데 아직 어떻게 접근해야되는지 잘 모르겠어서 그냥 거의 조각글 수준으로 쓰고 있습니다...ㅋㅋㅋㅋ 한 번 구경오세요>< https://hyeonlogforweb.tistory.com/

8
3

이 글을 보고, Windows에서 Git Bash를 통해서 Claude Code를 쓰고 있는데, 일단 동작이 큰 문제 없이 되는 것만으로도 만족스럽습니다.

몇가지 문제사항이 있기는 합니다.

  • IDE 통합 기능이 동작안하는 것
  • 페이지 스크롤링 관련된 동작이 한번씩 오동작 하면서 이상한 곳을 보여준다던가...

하지만 전반적으로 잘 동작합니다.

1
4

대학원 연구실 홈페이지 생성기를 만들었습니다. Jekyll은 Ruby니까, 이번엔 Python을 좀 써보자 싶어서 Pelican으로 구현했습니다. Article을 일종의 DB처럼 사용해서 멤버나 논문, 뉴스, 강의 등의 데이터를 관리하는 방식입니다.

솔직히는 하루이틀이면 끝날줄 알았는데 만드는데 거의 full-time으로 일주일이 걸렸네요. macro에서 왜 context가 전달이 안되는지, filter에서는 왜 안되는지, GitHub Action은 왜 맨날 뻑이 나는지... branch 규칙도 여러번 수정하고 github pages로 내보낼때만 fork me 리본 달아주고 등등... 왤케 자잘하게 할게 많은지ㅠ

Pelican 자체는 쓸만하더라구요. 필요한 기능이 거의 다 있습니다. 근데 없는것처럼 보여요. 근데 다 있긴 합니다.

암튼... 구경와주세요

https://github.com/theeluwin/pelican-labsite

Pelican 기반 대학원 연구실 홈페이지 생성기로 만든 사이트 예시 스크린샷.
7
18

아마 폰트에 없어서인지 다 네모 박스로 표시되는구나 했는데, 자세히 보니 네모 박스 안에 16진수 값으로 표시해 주고 있었네 👀 이게 어떻게 이렇게 되지 했는데 렌더링 해주는 쪽 재량이라는 듯 하다. Chrome (그리고 Electron) 은 그냥 네모로 보인다.

폰트가 없어 렌더링 되지 않는 글자의 스크린샷입니다. 원본 한자 대신 네모 박스로 표시되고 있으나 안에 16진수 코드가 적혀있습니다. Firefox에서 렌더링된 결과입니다.
2

아는 친구한테 들은 얘기인데, 최근 이직한 회사에서 Python을 쓰는데 린트나 포매터 같은 것도 전혀 설정을 안 해놓고 살고 있기에 도입하자고 했더니 “그런 거 쓸 거면 Python 안 쓰죠”라는 말과 함께 제안을 거절 당했다고 한다. Python에서도 린트나 포매터는 물론이고 타입 체커까지 붙여서 살려면 살 수 있지만, 어쩐지 그런 거 신경 쓸 사람들은 최근 10년 사이에 다들 다른 언어로 넘어가 버리고 그런 거 신경 안 쓰는 사람들만 Python을 계속 쓰게 된 게 아닌가 싶은 생각이 들었다.

8

Juntai Park replied to the below article:

청개구리 스택 찬가

洪 民憙 (Hong Minhee) @hongminhee@hackers.pub

이 글은 저자가 기술 스택을 선택할 때 주류를 따르지 않고 대안적인 기술을 선택하는 경향, 즉 "청개구리 스택"을 추구하는 경험을 공유합니다. 청개구리 스택은 사용자가 적어 문제 해결에 어려움이 있을 수 있지만, 기술에 대한 깊이 있는 이해와 오픈 소스 기여 기회를 제공합니다. 또한, 후발주자로서 대안적인 설계를 통해 정석 스택보다 나은 이해를 제공할 수 있습니다. 여러 부품을 직접 조립하는 과정은 번거롭지만 각 기술에 대한 깊은 이해를 얻을 수 있게 합니다. 저자는 오늘의 정석 스택도 과거에는 청개구리 스택이었을 수 있음을 지적하며, LLM 시대에도 청개구리 스택이 주는 배움의 기회는 여전할 것이라고 주장합니다. Stack Overflow에 답이 없는 길을 걸으며 얻는 깨달음은 온전히 자신의 것이 될 것이라는 메시지를 전달하며, 독자들에게도 주체적인 기술 선택과 도전을 권장합니다.

Read more →
29
1
3

@hongminhee洪 民憙 (Hong Minhee) 최대한 빨리 결과를 낼 수 있는(?) 스택을 선호하는 직업 개발자의 자세로 임하는 저를 반성하게 되네요. 좋은 글 잘 읽었습니다. 순수 즐거움을 찾아가는 개발자의 열정이 느껴져서 많이 배우게 됩니다. (저도 그런 때가 있었는데 없었어요) 감사합니다~. 😅

3

Juntai Park shared the below article:

청개구리 스택 찬가

洪 民憙 (Hong Minhee) @hongminhee@hackers.pub

이 글은 저자가 기술 스택을 선택할 때 주류를 따르지 않고 대안적인 기술을 선택하는 경향, 즉 "청개구리 스택"을 추구하는 경험을 공유합니다. 청개구리 스택은 사용자가 적어 문제 해결에 어려움이 있을 수 있지만, 기술에 대한 깊이 있는 이해와 오픈 소스 기여 기회를 제공합니다. 또한, 후발주자로서 대안적인 설계를 통해 정석 스택보다 나은 이해를 제공할 수 있습니다. 여러 부품을 직접 조립하는 과정은 번거롭지만 각 기술에 대한 깊은 이해를 얻을 수 있게 합니다. 저자는 오늘의 정석 스택도 과거에는 청개구리 스택이었을 수 있음을 지적하며, LLM 시대에도 청개구리 스택이 주는 배움의 기회는 여전할 것이라고 주장합니다. Stack Overflow에 답이 없는 길을 걸으며 얻는 깨달음은 온전히 자신의 것이 될 것이라는 메시지를 전달하며, 독자들에게도 주체적인 기술 선택과 도전을 권장합니다.

Read more →
29
1
3

Juntai Park shared the below article:

OSSCA: Fedify 프로젝트 기여자들을 위한 안내

洪 民憙 (Hong Minhee) @hongminhee@hackers.pub

이 글은 오픈 소스 컨트리뷰션 아카데미 참여자, 더 나아가 Fedify 프로젝트에 기여하고자 하는 모든 이들을 위한 안내서입니다. Fedify 프로젝트 참여를 위한 준비 사항과 소통 채널, 개발 환경 설정, 그리고 프로젝트 구조에 대한 이해를 돕는 것을 목표로 합니다. 먼저 Fedify Discord 서버에 참여하여 자기소개를 하고, 연합우주(fediverse)에 대한 기본적인 이해를 쌓기 위해 계정을 만들어보는 과제가 주어집니다. JavaScript와 TypeScript에 대한 간략한 소개와 함께, Fedify가 ActivityPub 프레임워크로서 연합우주 SNS 소프트웨어 개발을 쉽게 만들어주는 도구임을 설명합니다. 저장소를 포크하고 클론하는 방법, Node.js, Deno, Bun 등 다양한 런타임 환경 설정 방법, 그리고 Visual Studio Code를 활용한 개발 환경 구성 방법을 상세히 안내합니다. 마지막으로, Fedify 저장소의 구조와 린트, 테스트 실행 방법을 소개하며, 기여할 일감을 찾는 방법과 추가 정보 링크를 제공합니다. 이 글을 통해 독자는 Fedify 프로젝트에 실질적으로 기여하기 위한 첫걸음을 내딛을 수 있으며, 오픈 소스 기여에 대한 자신감을 얻을 수 있습니다.

Read more →
11
0
1
6

【OSC京都で :fediverse: に関連したセミナーを開催します!】
2025年8月3日(日)の13:00〜 オープンソースカンファレンス京都 で「分散型SNSユーザー有志」として、

「Fediverseのつくりかた 〜開発者・管理者たちの現場から〜」

と題してセミナー講演を行います!
登壇者として私のほか、
:fedibird1: 運営者の @noellaboのえる さん
:fedify: :hollo: 等の開発者である @hongminhee洪 民憙 (Hong Minhee) さん
京都のMastodon地域サーバー 管理人の @7_nana7_nana🎴マストどす さん
をお呼びして開催します。
ActivityPubを中心としたFediverseの今が知れるセミナーです。ぜひご参加ください!

会場:KRP ルーム2B(2階)
日時:2025年8月3日(日)13:00〜
参加費:無料
セミナー詳細:
event.ospn.jp/osc2025-kyoto/se

3

연구실 홈페이지를 쉽게 만들고 관리 할 수 있는 pelican 기반 bolierplate를 만들고 있습니다...만, 이건 말이 bolierplate지 사실상 theme도 포함인거라 디자인이 좀 들어가있어야하는데... 여기서 막혔습니다,,, 다른 부분은 완전 완성인데ㅜㅜ

1
6
4
5
2

코딩 얘기

  • 어제 Claude API 연동해서, Opus 4 모델로 짤막하게 써봤는데 요청당 거의 0.4$ 정도씩 사라지는 것을 목격하고, API 는 쓰면 안되겠구나 싶었습니다. (대충 5불 순삭)
  • 코드 에이전트 역할로 Claude Code Opus 4gemini-cli gemini-2.5-pro 의 응답 결과물이 개인적으로 꽤 만족스럽네요. Claude Code 는 쓰다 보면 어느 순간 Opus 4 에서 Sonnect 4 로 바뀌어 있네요. 사용제한이 있나 싶습니다.
/status 명령으로 확인 해보면 아래 처럼 적혀 있긴 합니다.

 Model • /model
  LDefault Opus 4 for up to 20% of usage limits, then use Sonnet 4
   (currently Opus)
  • Cursor 를 여전히 쓰고 있고, Cursor Tab 은 훌륭하다고 생각하지만, 연간구독이 만료되고 나면, Cursor 를 계속 사용할지는 고민을 해봐야 할 것 같습니다. VS Code 를 써도 되고, Windsurf 같은 대안도 있고요.
  • 코드 에이전트들이 CLI 에서 동작하니 에디터와는 독립적이지만 Claude Code 는 VS Code 확장으로 (자동 설치되어) 코드 변경사항을 에디터에서 바로 볼 수 도 있어서 좋네요.

그렇게, Claude Codegemini-cli 가 화면의 일정 영역을 차지하기 시작했습니다..

Chat Mode, Claude Code, gemini-cli in Cursor.
2

지금 Fedify 프로젝트가 @fedify/fedify 패키지나 @fedify/cli 패키지만 fedify-dev/fedify 저장소에 있고, 나머지 @fedify/amqp 패키지나 @fedify/postgres 패키지 등은 다 별도 저장소에 있는데, 이걸 fedify-dev/fedify 저장소에 다 합쳐버릴까 고민하고 있다. 릴리스를 매번 따로 하는 게 좀 귀찮기도 해서…

3
0
9
2
6

어제 튜링의 사과를 처음 구경했습니다. 귀인들 만나느라 이용은 안하고 구경만. 조금 과장해서 얘기하면, 다른 공유 오피스와는 다르게 PC방에 개발자 모인 것 같은 느낌이었습니다. 다른 오피스들처럼 조용하고, 조금은 생기 없는 풍경이 아니라, 상대적으로 소음도 좀 있고, 활기가 있어 보여 의외였습니다. 장소 오너분들도 개발자로 알고 있는데, 개발자 이해도가 높은 게, 영향이 있는 것 아닐까요?

(삶에 찌든 사람들 모인 PC방 말고, 젊은이들이 즐겁게 노는 모습의 PC방입니다.)

1

@kkungMinyoung Jeong 글 읽을 때의 번역은 여러 브라우저 확장으로 잘 쓰고 있었는데, 글쓰기를 이렇게 쉽고 편하게, 좋은 퀄리티로 다른 언어로 변환하니, 저에게는 정말 신세계네요! 감사합니다. 😂 (내친김에 일본어용도 살짝 바꿔서 아주 유용하게 쓰고 있습니다.)

0

일전에 @kkungMinyoung Jeong 님께서 올려주신 Vibe Writing 글에, 숟가락을 얹어보았습니다. HammerSpoon 에서 쓰는 lua 코드에서 OpenRouter 의 google/gemini-2.0-flash-001 모델로 살짝 수정했습니다.

  • config, payload, 응답부 변경

바로바로 한영, 영한 변환하니까, 너무 편하고 좋네요. 다른 언어도 추가하고 그외 다른 활용 요소들도 생각 나서, 앞으로도 이것저것 만져볼 것 같네요.

local config = {
  open_router_api_key = "sk-...",
  open_router_api_url = "https://openrouter.ai/api/v1/chat/completions",
  model = "google/gemini-2.0-flash-001",
}

local function callOpenRouter(text, callback)
  if not config.open_router_api_key or config.open_router_api_key ~= "sk-..." then
    hs.alert.show("Config error: Please set your open_router_api_key in modules/ko-en.lua")
    return
  end

  local instruction = "입력된 문장이 영어일 경우 한국어로, 한국어일 경우 영어로 변환해줘. 의미를 모국어 사용자가 자연스럽게 받아들일 수 있게 정확하고 유창하게 전달하고, 불필요한 문장을 생략하여 명료하게 작성해. 번역어 외의 다른 문장을 추가하지 말고 번역 그 자체만 반환해."

  local payload = {
    model = config.model,
    messages = {
      {role = "assistant", content = instruction},
      {role = "user", content = text}
    },
    max_tokens = 4096,
    stream = false
  }

  local request_body = hs.json.encode(payload)

  local headers = {
    ["Content-Type"] = "application/json",
    ["Authorization"] = "Bearer " .. config.open_router_api_key,
    ["HTTP-Referer"] = "https://hammerspoon.ai",
    ["X-Title"] = "Hammerspoon Translator"
  }

  hs.http.asyncPost(config.open_router_api_url, request_body, headers, function(status, response, _)
    if status == 200 then
      local success, data = pcall(hs.json.decode, response)
      if success and data.choices and #data.choices > 0 and data.choices[1].message and data.choices[1].message.content then
        local translated = data.choices[1].message.content
        print("TR: " .. translated)
        callback(translated)
      else
        local error_message = "API call failed. Response: " .. hs.inspect(data)
        print(error_message)
        hs.alert.show(error_message)
        callback(nil)
      end
    else
      local error_message = "HTTP request failed. Status: " .. status .. ", Response: " .. response
      print(error_message)
      hs.alert.show(error_message)
      callback(nil)
    end
  end)
end
3

Juntai Park replied to the below article:

Vibe Writing

Minyoung Jeong @kkung@hackers.pub

Hammerspoon과 OpenAI API를 활용하여 맥에서 선택한 텍스트를 즉시 번역하는 스크립트를 소개합니다. 이 스크립트는 Cmd+Shift+K 단축키를 통해 선택된 텍스트를 OpenAI의 GPT-4o 모델을 사용하여 한-영 또는 영-한 번역을 수행하고, 번역된 텍스트로 선택 영역을 자동으로 대체합니다. Accessibility API를 활용하여 텍스트 선택 및 대체 과정을 자동화했으며, OpenAI API를 호출하여 고품질 번역을 제공합니다. Vibe coding을 통해 개발하려 했으나, API 문제로 직접 구현했으며, 이 스크립트를 통해 영문 작성 시 번거로움을 줄이고 생산성을 향상시킬 수 있습니다.

Read more →
4
1

Juntai Park shared the below article:

Vibe Writing

Minyoung Jeong @kkung@hackers.pub

Hammerspoon과 OpenAI API를 활용하여 맥에서 선택한 텍스트를 즉시 번역하는 스크립트를 소개합니다. 이 스크립트는 Cmd+Shift+K 단축키를 통해 선택된 텍스트를 OpenAI의 GPT-4o 모델을 사용하여 한-영 또는 영-한 번역을 수행하고, 번역된 텍스트로 선택 영역을 자동으로 대체합니다. Accessibility API를 활용하여 텍스트 선택 및 대체 과정을 자동화했으며, OpenAI API를 호출하여 고품질 번역을 제공합니다. Vibe coding을 통해 개발하려 했으나, API 문제로 직접 구현했으며, 이 스크립트를 통해 영문 작성 시 번거로움을 줄이고 생산성을 향상시킬 수 있습니다.

Read more →
4

Juntai Park shared the below article:

OX 테스트 당신은 책중독자인가?

박준규 @curry@hackers.pub

이 글은 톰 라비의 《어느 책중독자의 고백》을 인용하여 독자가 스스로를 "책중독자"로 진단해볼 수 있는 간단한 OX 테스트를 제공합니다. 모르고 같은 책을 두 번 산 적이 있는지, 표지 디자인만 보고 책을 구매한 적이 있는지 등 10가지 질문을 통해 독자 스스로가 책에 대한 애정을 어느 정도 가지고 있는지 되돌아보게 합니다. 이 테스트는 가벼운 마음으로 자신의 독서 습관을 재미있게 평가해보고, 책에 대한 애정을 다시 한번 확인하는 계기를 마련해줍니다.

Read more →
5
1
1
1

아 9월부터 강의를 합니다 (교수가 되었습니다). 무슨 과목을 맡게될지는 모르겠지만 꿈에 그리던 기깔난... 마치 IoT로 도배된 집과도 같은 강의를 해보겠습니다 기대해주세요. 그리고 언젠가 이 경험들이 쌓여서 파이콘에서라도 발표하면 좋겠네요.

0

아 9월부터 강의를 합니다 (교수가 되었습니다). 무슨 과목을 맡게될지는 모르겠지만 꿈에 그리던 기깔난... 마치 IoT로 도배된 집과도 같은 강의를 해보겠습니다 기대해주세요. 그리고 언젠가 이 경험들이 쌓여서 파이콘에서라도 발표하면 좋겠네요.

14

Juntai Park shared the below article:

How to pass the invisible

洪 民憙 (Hong Minhee) @hongminhee@hackers.pub

This post explores the enduring challenge in software programming of how to pass invisible contextual information, such as loggers or request contexts, through applications without cumbersome explicit parameter passing. It examines various approaches throughout history, including dynamic scoping, aspect-oriented programming (AOP), context variables, monads, and effect systems. Each method offers a unique solution, from the simplicity of dynamic scoping in early Lisp to the modularity of AOP and the type-safe encoding of effects in modern functional programming. The post highlights the trade-offs of each approach, such as the unpredictability of dynamic scoping or the complexity of monad transformers. It also touches on how context variables are used in modern asynchronous and parallel programming, as well as in UI frameworks like React. The author concludes by noting that the art of passing the invisible is an eternal theme in software programming, and this post provides valuable insights into the evolution and future directions of this critical aspect of software architecture.

Read more →
11
1
0
7
2
0