profile
Functional Programmer @Constacts, Inc.

새로운 시리즈

어제 오랜만에 하스켈 이야기로 발표했습니다. 항상 그렇지만 어제는 유난히 아쉬웠습니다. 1년 동안 하스켈로 제품을 만들면서 얻은 지식이라고 하지만 너무 깊이 있게 다룰 수 없어서 겉핥기식으로 발표한 것 같다는 느낌이었습니다. 조금 더 자세히 다루면 좋겠지만 하스켈을 모

2022년 11월 9일
·
1개의 댓글
·
post-thumbnail

Haskell Style Guide - kowaink

이 문서는 kowaink 스타일 가이드를 번역한 글입니다. 원문의 마지막 수정일은 2020년 11월 22일입니다. 하스켈 스타일 가이드 > 이 스타일 가이드는 Kowainik에서 사용합니다. 이 문서는 상업적 또는 오픈 소스에서 쓰고 있는 좋은 관례를 모아 작성한

2022년 7월 19일
·
0개의 댓글
·
post-thumbnail

프로그래밍 흑마법: TemplateHaskell - 2

어제 시간이 없어서 완성하지 못한 Bson Val(https://hackage.haskell.org/package/bson-0.4.0.1/docs/Data-Bson.html어쨌든 똑똑한 인공 지능에게 도움을 받아 다음과 같이 어떤 타입 레코드 타입(범용적이지는

2022년 6월 22일
·
1개의 댓글
·
post-thumbnail

프로그래밍 흑마법: TemplateHaskell - 1

오늘은 잘못 손대면 어둠의 길로 빠질 수 있는 프로그래밍 기술인 메타프로그래밍에 대해 살펴보려고 한다. 대부분의 언어는 코드를 생성할 수 있는 메타프로그래밍을 지원하고 잘 활용하면 코드를 많이 줄일 수 있지만 잘못 쓰면 디버깅이 어려운 애물단지가 돼버린다. 하스켈도 역

2022년 6월 21일
·
1개의 댓글
·
post-thumbnail

bracket과 resource-pool

지난 금요일은 미루고 있던 mongoDB 패키지에서 연결 관리를 어떻게 하는지 살펴보기로 했다. 일단은 잘 동작하고 기능 개발도 바쁘기 때문에 나중에 살펴보려고 했지만 개발 중에도 가끔 데이터베이스에 연결이 끊겨 불편함이 있었기 때문에 살펴봤다. mongoDB 패키지는

2022년 6월 18일
·
0개의 댓글
·
post-thumbnail

타입 레벨 프로그래밍을 어디에 쓸까?

지난주 여행을 다녀오고 일기를 조금 쉬었다. 쓰고 싶을 때마다 마음대로 쓰는 일기라서 부담은 없다. 우리 회사는 매주 하스켈 위클리를 하고 있다. 사실 일정 맞추기가 어려워 1회를 진행했다. 나도 그렇지만 아직 모두 하스켈을 잘 아는 것이 아니기 때문에 서로 새로 알게

2022년 6월 15일
·
4개의 댓글
·
post-thumbnail

Apple Silicon과 Stack

오늘은 하스켈 개발 환경 세팅에 관련해서 기록해보자. 지금 업무용으로 사용하고 있는 랩탑은 Apple Macbook Pro(M1 Pro)이다. 올 초만 해도 하스켈 생태계에서 M1을 잘 지원하지 않아 조금 고생했지만 지금은 자주 쓰는 툴은 모두 M1 버전을 지원해서 크

2022년 6월 7일
·
5개의 댓글
·
post-thumbnail

하스켈에서 어떤 Logger를 쓸까?

오늘은 Logger에 대해 지금까지 탐구한 내용을 적어보려고 한다. 지금 만들고 있는 API 서버는 Docker로 빌드해서 GPC에 있는 쿠버네티스(GKE)에 배포한다. 카카오에 있을 때는 로그 플랫폼을 전담하는 팀이 있어 서비스 개발팀은 로그 플랫폼을 구성할 필요가

2022년 6월 6일
·
0개의 댓글
·
post-thumbnail

하스켈 GraphQL 서버 맛보기

오늘은 하스켈로 GraphQL 서버를 가볍게 만들어보자. 이전에 Clojure나 Kotlin(Spring)으로 프로젝트할 때 GraphQL 서버를 만들어 본 적이 있고 각각 자주 사용하는 라이브러리가 있어 어떤 라이브러리를 쓸지 고민을 하지 않았다. 하지만 하스켈로 G

2022년 6월 5일
·
0개의 댓글
·
post-thumbnail

Relude 살펴보기

오늘은 노는 날이니 짧게 쓰자. 요즘 하스켈 사용하면서 가장 많이 보이는 것이 많은 프로젝트에서 Prelude 대신 Relude를 사용한다는 점이다. Relude의 목표 중 하나가 생산성이기 때문에 팀원 분들에게 소개하고 프로젝트에 도입할 수 있을지 고민해보려고 한다.

2022년 6월 5일
·
0개의 댓글
·
post-thumbnail

하스켈에서 테스트 mocking 하기

어제는 어니언 아키텍처에 대해 적어봤다. 어니언 아키텍처는 Tagless Final이라고 하는 패턴으로 구현했다. 타입 변수로 만들어진 모나드 컨텍스트를 사용하는 곳에서 타입에 따라 결정할 수 있었다. 테스트 코드 역시 테스트를 위한 모나드 타입을 만들어 의존성의 목(

2022년 6월 3일
·
0개의 댓글
·

하스켈에서 어니언 아키텍처 구현하기

오늘은 서비스에 하스켈에서 어니언 아키텍처를 어떻게 구현했는지 적어보려고 한다. 어니언 아키텍처는 헥사고날 아키텍처, 포트 어뎁터 아키텍처, 클린 아키텍처 등 여러 가지 아키텍처로 불리지만 사실 나는 세부적인 차이는 잘 모른다. (하지만 우리 서비스는 포트 어뎁터 아키

2022년 6월 2일
·
0개의 댓글
·

하스켈 GHC.Generics 탐험기

역시 하스켈은 알아야 할 내용이 많은 것 같다. 어떤 발표에서 하스켈 4단계인가 5단계인가로 되어 있는 피라미드를 보여주고 대부분의 하스켈 개발자들은 4단계에 있고 그 정도에 있으면 실무에서 하스켈 사용하는데 무리가 없다고 했던 말에 위로를 받아본다. 국내에 하스켈에

2022년 6월 1일
·
0개의 댓글
·