Profile img

Hi, I'm who's behind Fedify, Hollo, BotKit, and this website, Hackers' Pub! My main account is at @hongminhee洪 民憙 (Hong Minhee).

Fedify, Hollo, BotKit, 그리고 보고 계신 이 사이트 Hackers' Pub을 만들고 있습니다. 제 메인 계정은: @hongminhee洪 民憙 (Hong Minhee).

FedifyHolloBotKit、そしてこのサイト、Hackers' Pubを作っています。私のメインアカウントは「@hongminhee洪 民憙 (Hong Minhee)」に。

Website
hongminhee.org
GitHub
@dahlia
Hollo
@hongminhee@hollo.social
DEV
@hongminhee
velog
@hongminhee
Qiita
@hongminhee
Zenn
@hongminhee
Matrix
@hongminhee:matrix.org
X
@hongminhee
4

요즘 일본어 공부할 때 사전형 단어 같은 거 학습할 땐 파파고에다가 단일 단어 위주로 해서 바로바로 그냥 한국어 입력해서 번역된 거로 배우고 (예문이랑 같이 떠서 좋음), 맥락이라든가 뉘앙스 혹은 collocation이 어떻게 이루어지는지 알고싶을 때(소위 말하는 '어감')는 LLM이 출력해준 걸로 배운다. 어릴 때 영어 배울 땐 후자에 대한 학습을 명시적으로 받지 않아서 직접 원서 읽거나 드라마나 영화 보면서 자연스럽게 체득하거나, SKELL 같은 collocation/thesaurus 사전을 활용한다든가, 원어민들한테 하나하나 물어보면서 깨부하면서 배웠는데 LLM이 그 역할을 완벽히까지는 아니더라도 어느 정도는 하는 것 같아서 좀 편함...

그나저나 나 지금까지 파파고 규칙기반+인공신경망 조합으로 학습된 건 줄 알았는데 (연식이 좀 된 플랫폼이니깐) 문서 보니깐 인공신경망만 썼나보네...정확히 무슨 모델을 썼는지는 안 나와있는데 인코더 디코더랑 병렬코퍼스가 언급되어 있는 걸 보니 seq2seq 같은 거 쓰는 걸까 싶다.

2
1
1
1
3
7
1

@hongminhee洪 民憙 (Hong Minhee) 님의 추천으로 클로드 코드를 쓰고나서 결국 커서 구독을 해지했다. 깃헙 코파일럿의 에이전트보다도 커서의 에이전트가 플래닝을 못한다는건 알고 있었는데, 클로드 코드는 그것보다 몇단계는 더 잘한다는 느낌이다. 그렇다보니 점점 탭 컴플리션을 안쓰게 되어서, 코드로 충분하다는 생각.

2

이제 자바 메인을 이렇게 써도 된다니 놀랍군요

void main() {  
    var name = IO.readln("What is your name? ");  
    IO.println("Hello, " + name);  
}  
5
4

Public static void main(String[] args)는 죽었다
------------------------------
- 이제 Java의 첫 번째 프로그램은 더 이상 *public static void main(String[] args)* 로 시작하지 않고, 단순화된 *void main()* 문법으로 작성 가능해짐
- 새로운 문법에서는 *IO.readln* 과 *IO.println* 같은 간단한 호출만으로 입출력을 처리할 수 있어 코드가 훨씬 직관적으로 바뀜
- 기존의 *new Sc…
------------------------------
https://news.hada.io/topic?id=23138&utm_source=googlechat&utm_medium=bot&utm_campaign=1834

4
2
4
1
2

洪 民憙 (Hong Minhee) shared the below article:

Mobile Attribution in The Privacy-First Era

01010011 @01010011@hackers.pub

이 글은 개인 정보 보호가 강화되는 시대에 모바일 어트리뷰션 획득 방식이 어떻게 변화하고 있는지 설명합니다. 과거에는 IDFA, GAID와 같은 광고 식별자를 통해 정확한 측정이 가능했지만, 이제는 Apple의 SKAdNetwork(SKAN)와 Google의 Privacy Sandbox와 같은 개인 정보 보호 프레임워크를 통해 확률론적으로 어트리뷰션을 획득해야 합니다. SKAN은 Apple이 데이터 측정의 심판 역할을 하며 제한된 정보(Conversion Value)만 제공하는 반면, Privacy Sandbox는 광고 생태계 참여자들이 자체적인 프라이버시 보호 솔루션을 구축할 수 있도록 빌딩 블록을 제공합니다. 특히 Privacy Sandbox는 사용자 디바이스 안에서 Ad Network 정보와 매칭되는 어트리뷰션을 생성하고, Attribution Reporting API(ARA)를 통해 익명화된 리포트를 수집합니다. Ad Tech 기업들은 암호화된 리포트를 받아 클라우드 보안 환경(TEE)에 Aggregation Service를 구축하고 운영하여 데이터를 처리해야 합니다. 이 글을 통해 독자는 개인 정보 보호 시대에 모바일 어트리뷰션을 어떻게 획득하고 활용할 수 있는지에 대한 인사이트를 얻을 수 있습니다.

Read more →
2
8
1
1
5
3
3
1
3
2
3
6
1
3
2
9

갑자기 불현듯 하이텔이나 나우누리 같은 옛날 PC통신이 떠올라서 난 한 번도 그 시절을 겪어본 적이 없었는데 어떤 느낌일까 싶어서 해보고 싶어가지고 검색 해봤는데 생각보다 쉽게 사설 BBS를 접속하는 프로그램을 찾아내서 탐방했음. 미국은 사설 BBS가 아직 명맥을 이어가는 것 같은데 국내 거는 사실상 멸종한 것 같다...여튼 하니깐 어릴 때 친구네집 펜티엄 컴퓨터 갖고 스치듯 했던 MS-DOS 갬성이 엄청 느껴져서 하는 내내 헤벌레 미소 지으면서 했다 ㅋㅋㅋ 나갈 때 작별인사 페이지도 따로 있어서 살짝 감동 먹음 🥹

참고로 사용한 프로그램은 MuffinTerm이고 애플 계열 기기에서 돌아간다 (아이패드 포함). 접속한 BBS는 8bit-boyz라는 미국 레트로 컴퓨팅 커뮤니티다.

8bit-boyz BBS 접속 사진
7

대학원 다닐 때 썼던 학술용 개인홈피 몇 주 전에 싹 다 뒤엎고 맘에 드는 블로그 테마 하나 포크해서 다시 만들고 있는데 포크한 리포가 Astro 프레임워크랑 타입스크립트로 쓰인 거다. 근데 난 자바/타입스크립트 둘 다 제대로 써보기는 커녕 강의도 들어본 적이 없어서 포스트도 하나 테스트로 쓸 겸 로컬 호스트로 띄워놓고 파일들 이것 저것 하나하나 건들면서 깨부하는 중...어차피 맛이 가도 나한테만 맛이 가니깐(??) 맘 편하게 하고 있다. 어릴 때 게임 파일 소스 코드나 .config 파일 갖고 이것저것 뜯어보는 느낌이 들어서 재밌음 ㅋㅋ

3
2

DDIA (Designing Data Intensive Application) 2판을 읽고 있다.

처음 빌딩블록 얘기부터 정리를 잘해주는듯..

DB: 데이터를 저장하여, 자신 또는 다른 애플리케이션이 나중에 다시 찾을 수 있도록 한다 (데이터베이스)

Cache: 비싼 연산의 결과를 기억하여 읽기 속도를 높입니다 (캐시)

Index: 사용자가 키워드로 데이터를 검색하거나 다양한 방법으로 필터링할 수 있도록 허용합니다 (검색 인덱스)

Stream: 이벤트와 데이터 변경이 발생하는 즉시 처리합니다 (스트림 처리)

Batch: 주기적으로 축적된 많은 데이터를 분석합니다 (배치 처리)

4

동일한 DB 스키마를 사용하는 4개의 프로젝트를 만들었다. UI 컴포넌트가 공통적으로 겹치는 부분도 있어서 이참에 Monorepo 구성을 검토했다가 (ChatGPT와 Claude의 답변 최우선순위도 Monorepo 구성으로 추천받았다) 결론적으로는 Private Package Registry를 사용해서 패키지 공유해서 쓰는 쪽으로 방향을 잡았다.

1
1
1

살짝 다른 차원에서 확장해서 바라보는 얘기이긴 한데 그냥 첨언하자면 언어학의 하위 분야인 화용론에서 전제(Presuppositions)라는 주제랑 연결되는 것 같네요. 댓글에 프랑스 왕은 머머리다 예문도 써주신 걸 보니 더욱 더 그런 것 같고요. 간단하게 설명드리자면, 일단 한국어 예문으로 하면 살짝 오해의 소지가 있어[1] 영어 예문을 갖고 쓰면 다음과 같이 생각해볼 수 있습니다.

  • P: The King of France is bald.[2]
  • Q: There exists an entity that is King of France.

이 때 P의 명제가 참일 수 있는 이유는 Q를 전제로 깔고 가기 때문입니다. 이렇게 Q를 전제로 갖고 가면 P에 부정을 넣어도 (The King of France is not bald 혹은 ¬(The King of France is bald)) 여전히 그 명제는 참입니다. 하지만 실제 현실에서 Q는 거짓입니다. 왜냐하면 오늘날 프랑스는 군주국가가 아니니깐요. 그럼에도 불구하고 P는 여전히 참을 진리값으로 가지죠.

따라서 실제로 전제를 이렇게 정의하기도 합니다 (Levinson, 1983, p. 175).

  • A sentence P sematically presupposes a sentence Q iff:
  • (a) P ⊨ Q
  • (b) ~P ⊨ Q

참고로 여기서 "⊨"는 "함의한다"를 지칭하는 기호입니다 (예: "하스켈은 함수형 언어다."란 문장은 "하스켈은 언어다"란 걸 함의하죠.).

그렇다면 Q가 전제되는 건 알겠는데, 이 진리값이 무엇이느냐에 대한 질문이 생길 수 있습니다. 이에 대해서 언어학자들은 보통 크게 두 가지로 봅니다. 하나는 참으로 간주하는 거고, 다른 하나는 참도 거짓도 아니다라고 보는 거죠. 전자같은 경우엔 어떻게 보면 기계적으로 바라보는 거고, 후자의 경우엔 참/거짓이라는 기존 이치논리(two-valued logic) 혹은 1 또는 0으로 하는 불 논리에서 확장해서 Kleene의 삼치논리(three-valued logic)로 가게 되죠.

참고로 전제 성립 여부 포함 화용론 전체에서 깔고 가는 가장 큰 가정이 하나 있는데, 이 경우에는 바로 해당 발화(utterance) P, 즉 '프랑스왕은 머머리다'라는 명제가 이루어질 때 화자와 청자가 프랑스에는 왕이란 개체가 존재한다(=Q)라고 암묵적으로 서로 동의한다라는 가정입니다.


  1. 사실 문제가 영어 관사 'The'에서 시작되기 때문이라서 그렇습니다. ↩︎

  2. 논리형으로 치환하면 다음과 같습니다: ∃x(KoF(x) & ∀y(KoF(y) → y=x) & Bald(x)) where KoF stands for "King of France". ↩︎

5
10
6
3

클라우드플레어가 원래 캐시를 하는 CDN이다 보니(근거없음) 터널을 주로 로컬 디버깅 용도로 사용하면 각종 캐시 문제에 맞닥뜨리긴 하는데 그치만 무료면서 커스텀 도메인 연결이 되는 터널링 서비스를 이거 말고는 못 찾았어요

2

하스켈 쪽에는 《Finding Success (and Failure) in Haskell》이라는 책이 있습니다. 이 책에서는 크게 다음과 같은 타입을 소개합니다.

  • Maybe의 한계를 극복한 Either.
  • Either의 한계를 극복한 Validate.
6