Profile img

lionhairdino

@lionhairdino@hackers.pub · 73 following · 80 followers

여행 기분내며, 여기 저기 낙서하는 https://yearit.com 을 운영 중입니다.

지금까지 다루어 봤던 언어는 아래와 같습니다. MSX Basic Z80 Assembly Pascal GW-Basic C Macromedia Director Visual Basic PHP Flash Actionscript C++ Javascript

그리고 지금은, 하스켈을 비즈니스에 쓰려고 몇 년간 노력하고 있습니다. 지금 상태는, 하스켈 자체를 연구하는 게 아니라, 하스켈 (혹은 함수형 언어) 이해가 어려운 이유를 연구하는 아마추어 연구가쯤 되어버렸습니다. 하스켈 주제로 블로그를 운영 중이지만, 아직은 하스켈 프로그래머라고 자신 있게 말하진 못하고 있습니다. 가끔 이해에 도움이 될만한 측면이 보이면, 가볍게 아이디어를 여러 SNS에 올려보곤 하는데, 그다지 프로그래머에게 쓸모 있는 내용이 포함되진 않는 것 같습니다.

Blog
lionhairdino.github.io
YearIt
yearit.com

저는 재밌게 보고 있는 뉴스레터입니다.
메일링 리스트가 한빛 출판사 홍보 목적도 있을테지만, 직접적인 영리 목적은 아니라 판단돼서 링크 올릴까 말까 했습니다. 저 같으면 많은 분들 보라고 SNS에 올린 제 글이 소개되면 으쓱할 것 같긴 한데, 민희님도 저와 같은 생각일지 어떨지 모르니 멈칫 했습니다. @hongminhee洪 民憙 (Hong Minhee)

1
2

lionhairdino replied to the below article:

레코드 생성자

박준규 @curry@hackers.pub

하스켈에서 레코드 타입을 다루는 다양한 관용구를 소개하는 글입니다. 레코드 생성 시 `NamedFieldPuns`나 `RecordWildCards` 확장 기능을 활용하여 코드를 간결하게 만들 수 있으며, 레코드 필드에 접근할 때는 접근자 함수, 패턴 매칭, 또는 `RecordDotSyntax` 확장을 사용할 수 있습니다. 일부 패키지에서는 레코드 생성자를 숨기고 스마트 생성자를 제공하여 API를 제어하기도 합니다. 저자는 스마트 생성자보다는 레코드 생성자를 직접 내보내는 방식을 선호하며, 이는 하스켈 입문자들의 진입 장벽을 낮추고 코드 기여를 활성화하는 데 도움이 된다고 주장합니다. 장기적으로는 언어 차원에서 기본값을 가지는 필드를 지원하여 레코드 타입 정의를 더욱 유연하게 만들 수 있을 것이라는 전망을 제시하며, 이 글은 하스켈 패키지 작성자와 사용자 모두에게 유용한 정보를 제공합니다.

Read more →
5

언어가 성장하면서, 점점 편의 기능이나 슈퍼 울트라 멋진 이펙티브 패턴들이 나오는 건 양날의 검 같아요. 이들이 많을 수록 입문자들은 더 제대로가 아닌 코딩을 할 확률이 올라가는 것 같습니다. 레코드도 마지막에 언급한 디폴트 기능을 언어 차원에서 지원하면, 모든 게 깔끔한데 말입니다. 물론 대의를 위해 지원하지 못하는 동작들을 위한 패턴들은 어쩔 수 없지만요. @curry박준규

0
0

커뮤니케이션 북스의 어택이 또 시작 되는 군요. 한 번도 본적이 없어 잘 모릅니다만, 책을 출판하기 위한 여러 절차들을 고려했을 때, 이 정도로 빠르게 다량의 책을 쏟아 내는 게 가능한가 싶네요.

0
0
0
0
0

lionhairdino replied to the below article:

하스켈을 잘 모르는 프로그래머도 이해하기 쉬운 하스켈 코드 작성법

박준규 @curry@hackers.pub

이 글은 하스켈 코드의 가독성을 높이기 위한 실용적인 팁을 제시합니다. 저자는 하스켈 입문자들이 흔히 겪는 어려움을 해결하고, 코드를 더 쉽게 이해할 수 있도록 6가지 규칙을 제안합니다. 핵심은 달러 기호($) 사용을 자제하고, 연산자는 결합 가능한 것만 사용하며, do 표기법을 적극적으로 활용하는 것입니다. 또한, 렌즈 라이브러리 사용을 미루고, where와 let을 사용하여 코드를 구조화하며, 포인트 프리 스타일을 적절히 사용하는 것이 중요하다고 강조합니다. 이러한 규칙들을 따르면 하스켈 코드가 더욱 명확해지고, 함수형 프로그래밍에 익숙하지 않은 개발자들도 쉽게 이해할 수 있게 됩니다. 이 글은 하스켈의 진입 장벽을 낮추고, 더 많은 사람들이 이 언어를 배우고 활용할 수 있도록 돕는 데 기여합니다.

Read more →
11

이 글 저자분의 여러 인터넷 문서들로 공부하는데 많은 도움을 받고 있는데요. (업자가 볼만한 글을 진짜 많이 쏟아내는 감사한 분입니다.) 딱히 반론까지는 아니고, 최근 제가 생각하는 방향과 다른 게 하나 보입니다. 함수형에서 적용applicative은 너무나 중요한 요소입니다. (function을 매핑 정도로 인식했었는데, function 단어 뜻 자체가 무언가에 적용하는 것을 말합니다.) 함수형은(하스켈은) 적용을 반복해서 프로그램을 완성시켜 나갑니다. 코드 자체를, 비하스켈러들에게 홍보하기 위한, 홍보물로 본다면, $를 쓰지말자는 충분히 의미 있는 의견이지만, 실제 "하스켈 이해"를 제대로 하는데는 오히려 돌아가는 길이 될 수도 있지 않을까 조심스럽게 생각해 봅니다. $가 단순 괄호 아끼기가 아닌, 적용이란 중요한 동작 표현을 일관성 있게 하는 것으로 받아들이면, 적용의 추상화를 이용한 패턴들에서 $가 있는 것을 당연하게 받아 들일 수 있습니다.

요즘들어, 제가 여러 함수형 코딩 패턴을 이용하는 건, 뭘 알아서가 아니라, 그저 경험으로 쓰고 있다는 생각이 듭니다. 이런 문제에선 이런 패턴을 쓰더라가 경험으로 익혀지기 전에, 원리를 알고 있어 처음 보는 문제들에도, 패턴을 적소에 적용하고 싶은데, 잘 안됩니다. 물론 제 지능의 문제가 제일 크겠지만, 한 편으론 함수형을 제대로 알려주는 텍스트들을 못 만나서 그렇지 않을까 하는 건방진 생각도 듭니다. 좋은 텍스트가 없다는 뜻은 아닙니다. 제가 비전공자라 디폴트로 봐야하는 바이블들을 놓쳤을 확률이 높습니다.

저는 현재의 적용을 바라보는 눈을 갖는데, 매우 오래 걸렸습니다. 그다지 배경 지식을 요하는 것도 아니라서, 짚어주는 텍스트만 만났어도 입문에 크게 도움이 됐을텐데 하는 아쉬움이 있습니다.

지금의 제 생각으론 펑터적용으로 현실을 모델링할 수 있으면, 찐 함수형 프로그래머 아닐까 싶어요. @curry박준규

1

lionhairdino shared the below article:

하스켈을 잘 모르는 프로그래머도 이해하기 쉬운 하스켈 코드 작성법

박준규 @curry@hackers.pub

이 글은 하스켈 코드의 가독성을 높이기 위한 실용적인 팁을 제시합니다. 저자는 하스켈 입문자들이 흔히 겪는 어려움을 해결하고, 코드를 더 쉽게 이해할 수 있도록 6가지 규칙을 제안합니다. 핵심은 달러 기호($) 사용을 자제하고, 연산자는 결합 가능한 것만 사용하며, do 표기법을 적극적으로 활용하는 것입니다. 또한, 렌즈 라이브러리 사용을 미루고, where와 let을 사용하여 코드를 구조화하며, 포인트 프리 스타일을 적절히 사용하는 것이 중요하다고 강조합니다. 이러한 규칙들을 따르면 하스켈 코드가 더욱 명확해지고, 함수형 프로그래밍에 익숙하지 않은 개발자들도 쉽게 이해할 수 있게 됩니다. 이 글은 하스켈의 진입 장벽을 낮추고, 더 많은 사람들이 이 언어를 배우고 활용할 수 있도록 돕는 데 기여합니다.

Read more →
11
1
4
1

오래간만에 모나드 글(준규님이 올리신 글)을 보며 끄덕 끄덕하긴 했습니다.

어떻게든 정착 시키면, 모나드 말고도 재미난 개념들이 널려 있는데, 그 것들도 모두 익히게 해서 하스켈을 주력으로 쓰는 사람이 되게 만들자...면, 모나드를 최대한 숨겨서, 언젠가 모나드 개념을 파야 하는 때가 와도, 본전 생각나게 해서 못나가게 만들자라면, 그렇다면, 충분히 의미가 있는 작전일 것 같습니다.

어디까지나 개인적인 통계인데요. 주변에 하스켈을 짱짱하게 하는 분들이, 하스켈의 여러 개념을 양분 삼아 다른 언어로 경제 활동을 하는 분이 대부분입니다. 그렇다면, 하스켈로 유입시키기 위한 노력으로 모나드같은 것들을 숨기는 게 의미가 있나 싶은 생각도 듭니다. 어차피, 그 난해한 개념들을 이해하고싶어 하스켈을 만지작 하는 분들이 더 많은 것 아닌가 싶어서요.

(아직도 모나드를 찜찜하게 알고 있는 사람의 눈입니다.)

2
1
1
1
0
0

Ailrun (UTC-5/-4) replied to the below article:

공허한 참

박준규 @curry@hackers.pub

하스켈의 `all` 함수에 빈 리스트를 넣었을 때 왜 `True`가 반환되는지에 대한 의문을 "공허한 참(Vacuous truth)"이라는 개념을 통해 탐구합니다. 흔히 '구현이 그렇게 되어 있으니까'라고 생각할 수 있지만, 저자는 이 현상을 논리적으로 분석합니다. `all` 함수의 구현 방식과, 빈 리스트에 대한 연산 결과가 전체 결과에 미치는 영향을 설명하며, 공집합의 모든 원소가 짝수라는 명제가 참인 이유와 유사한 논리적 근거를 제시합니다. 이를 통해 코드와 수학 간의 연결고리를 발견하고, 마지막으로 ChatGPT가 생성한 유머러스한 이미지를 곁들여 독자에게 즐거움을 선사합니다.

Read more →
5

@curry박준규 all을 다음과 같이 정의하면 문제가 무엇일까요?

all p [] = False
all p [x] = p x
all p (x:xs) = p x && all xs

이 질문에 대한 대답 중 all의 의미에 관한 것이 있을 겁니다. 논리적으로 "모든 ...에 대해"를 어떻게 이해해야 하는냐에 대한 것 말이지요.

공집합을 직접 사용하는 것이 가장 간단한 예시겠지만, 좀 더 논리학에서 자주 사용되는 예시로는 "20세기의 모든 프랑스 왕은 대머리다"가 있겠습니다. 이는 무의미하게 (Vacuously) 참인데요, 왜냐면 19세기를 마지막으로 프랑스에는 더 이상 왕이 없기 때문이지요. 즉, 일반적으로 "모든 ...에 대해"에서 "..." 부분이 (결과적으로) 공집합일 경우 "모든 ..."에 의해 수식된 본문이 어떤 문장인지와는 상관 없이 참이라고 이해한다는 것이지요.

5

IQ 테스트로 인간을 판별하고 구분짓는것에는 불편한 느낌이 들지만(그게 쓸모없단 얘긴 아님), 그와중에 우리집 강아지 견종인 요크셔테리어가 똑똑한 견종으로 분류되는 글을 보면 진심으로 뿌듯하다...

1
1
0

자연스럽게 존재한다는 말이 이해 갔다 안갔다 하는데요. 그런 요소들은 체계system가 자연스런 동작을 하게 정의했다고 생각이 들더라고요. 0이나, 2의 0제곱 같은 것들이요. (수학적 철학적으로 심오한 뭔가가 있을 것 같긴 한데 모릅니다.)재귀를 돌며 끝을 보려면 []와 만날텐데, 이 것과 지금까지의 True&&해서 False가 나오면 안되니까 True구나 하는 엔지니어 눈만 있어서, 저는 공부가 더딘가 봅니다.

True && True = True
True && False = False

&&한테는 True가 항등원Identity니까, 재귀를 마무리 짓기에는 항등원이 딱이다 하고 휘리릭 넘어갑니다.

@curry박준규

0

lionhairdino replied to the below article:

공허한 참

박준규 @curry@hackers.pub

하스켈의 `all` 함수에 빈 리스트를 넣었을 때 왜 `True`가 반환되는지에 대한 의문을 "공허한 참(Vacuous truth)"이라는 개념을 통해 탐구합니다. 흔히 '구현이 그렇게 되어 있으니까'라고 생각할 수 있지만, 저자는 이 현상을 논리적으로 분석합니다. `all` 함수의 구현 방식과, 빈 리스트에 대한 연산 결과가 전체 결과에 미치는 영향을 설명하며, 공집합의 모든 원소가 짝수라는 명제가 참인 이유와 유사한 논리적 근거를 제시합니다. 이를 통해 코드와 수학 간의 연결고리를 발견하고, 마지막으로 ChatGPT가 생성한 유머러스한 이미지를 곁들여 독자에게 즐거움을 선사합니다.

Read more →
5

자연스럽게 존재한다는 말이 이해 갔다 안갔다 하는데요. 그런 요소들은 체계system가 자연스런 동작을 하게 정의했다고 생각이 들더라고요. 0이나, 2의 0제곱 같은 것들이요. (수학적 철학적으로 심오한 뭔가가 있을 것 같긴 한데 모릅니다.)재귀를 돌며 끝을 보려면 []와 만날텐데, 이 것과 지금까지의 True&&해서 False가 나오면 안되니까 True구나 하는 엔지니어 눈만 있어서, 저는 공부가 더딘가 봅니다.

True && True = True
True && False = False

&&한테는 True가 항등원Identity니까, 재귀를 마무리 짓기에는 항등원이 딱이다 하고 휘리릭 넘어갑니다.

@curry박준규

1
1
1
0
0
0

편한 분위기여서 생각 나는 대로 막 질문하고, "저 개념이 없습니다"를 부끄러운 줄 모르고 막 쏴댔네요. 해커스펍 매일 들어오지만, 페디파이 뭔지 잘 모릅니다. 지금 만들고 있는 서비스가 페디파이 지원하면 좋지 않을까 막연히 생각 중이었는데, 귀한 답을 해주신 분들 감사합니다.

4
1
0
0
1
0

소스코드 사이의 안정적인 하이퍼링크를 만들수 있는 기능이 없다. 가령 A.hs에서 주석을 쓰면서 B.hs의 foo란 함수의 구현의 특정 부분을 언급하고자 할때, 그냥 B.hs L:77 이렇게, 소스코드가 수정이라도 되면 바로 유효하지 않게되는 방식으로 언급할수 밖에 없다. 만약 소스 코드 어디에서든 전역적인 심볼을 자유롭게 선언할 수 있다면 이 문제를 해결할 수 있을텐데...

0
0
0

우리의 동료가 돼 주세요 케데헌의 열풍으로 우리나라에서 돈 쓰고 싶어하는 외국인들이 엄청나게 많아지고 있습니다. 전 세계가 우리나라 상대로 몰카 찍는 이 판국에 외국인 결제가 막혀있다는건 말이 안됩니다. 외국인 온라인 결제를 뚫어버리는 토모로우에서 혁신을 함께할 개발자 동료를 모십니다. 1. 무슨 일 하나요? 저희는 국가별로 신분증 데이터베이스… | Chanwoo Lee

우리의 동료가 돼 주세요 케데헌의 열풍으로 우리나라에서 돈 쓰고 싶어하는 외국인들이 엄청나게 많아지고 있습니다. 전 세계가 우리나라 상대로 몰카 찍는 이 판국에 외국인 결제가 막혀있다는건 말이 안됩니다. 외국인 온라인 결제를 뚫어버리는 토모로우에서 혁신을 함께할 개발자 동료를 모십니다. 1. 무슨 일 하나요? 저희는 국가별로 신분증 데이터베이스 접근 권한 계약을 해와서 DB 검증 기반 외국인 신분증 인증 서비스를 만들고 있습니다. 기본 웹서비스, 보안, 결제 시스템, 인증 시스템, DB 설계 및 튜닝 등 꽤 복잡한 시스템을 만들고 있고 그에 비해 기술 부채가 거의 없어서 개발 맛이 정말 좋은 팀입니다. 2. 배울 수 있는게 있을까요? 반 년만에 5배 성장을 이뤄냈고 이제 개발에 집중 투자하고 있습니다. 철저히 문제 해결 중심으로 돌아가기 때문에 다른 조직에서 경험하지 못하는 엄청난 속도감과 성장을 경험할 수 있습니다. 극강의 효율을 추구하는 팀이고, 우아한 코드 작성은 덤입니다. 3. 어떤 사람을 찾고 있나요? 공통 기본 스탯 2가지 - 과몰입, Just do it 정신을 겸비한 하드워커 - 함수형 프로그래밍 경험자 특수 스킬 택 1가지 - 하스켈 프로그래머 - AWS 아키텍트 - 보안 전문가 4. 복지는? - 4대보험 - 아침, 점심 샐러드 도시락, 야근 시 저녁 추가 제공 - 기후동행카드 지원 5. 연봉은? 최대 6,000 내에서 협의합니다. 실력, 마인드셋 등을 고려하여 차등 제안합니다. 압도적인 팀을 만들고 있습니다. 코딩하면서 심장이 뛰는 팀에서 일하고 싶으신 분은 지체없이 메시지 주세요.

kr.linkedin.com

0
6

교보 문고 사이트 들어가서 IT 신간 서적을 가끔 훑어보곤 하는데, 어느 때부터 커뮤니케이션 북스란 출판사 책들이 너무 많이 쏟아집니다. 앞표지도 계속 같은 걸로 쓰는게 약간은 성의 없어 보이기도 하고, 한동안 나오는 주제들 보면, 과연 성의 것 쓴 책들인가 선입견이 생기네요. 유행따라 쏟아지는 책들을 별로 안좋아하기도 하고요. 커뮤니케이션 북스 관계자분이 여기 계시다면, 그냥 첫인상 피드백입니다. 이왕이면 책도 멋있으면 좋지 않나요?

신간 IT 서적 알림봇이 주르륵 올렸길래 구시렁 해봤습니다.

1

봇 글을 가끔 보며 그냥 지나쳤는데요. 봇도 팔로우를 해야 뜨는 거지요? 아직까지, 유용한 신간 서적 알림 봇 팔로우를 안하고 있었네요. 문득 신간 서적 알림 봇의 프로필 사진으로 있는 Vim 심벌과 vscode 합친 그림은 어떤 의미일까 궁금하네요. 봇 브랜딩에 도움이 안되는 건 아닐까 싶은데요. 봇 만드신 분의 노동에 합당한 브랜딩이 안되고 있는 건 아닐까요 ㅎ

0
0
  1. 재미난 생각이 떠오른다.
  2. 해커스펍에 올린다.
  3. 다른 분들의 반응을 지켜보다, 특별히 욕!이 없으면, 그럴싸하다고 판단
  4. X와 쓰레드에 해커스펍 글 링크를 올린다. 같은 글을 복붙해서 올리는 것이 아닌, 링크를 올리는 게 중요하다.
2
0