logo
logo
언어
Clojure
리스프 프로그래밍 언어의 방언으로서, 범용 함수형 언어이다
StackOverflow 질문 수: 17742
Github Stars : ★ 10580
사용 기업
기타
techstack-logo
그린랩스
기술 블로그 글
베이글코드
SQL을 몰라도 데이터 활용하기 - Metabase 도입기
안녕하세요. 이번에 Bagelcode에서 새로운 BI 툴로 Metabase를 도입했는데 그 과정에 대해서 소개해 드리려 합니다.목차Bagelcode의 Data Delivery- Bagelcode의 Data Delivery 현황- 추가적인 BI 툴 필요성 제기Metabase 배포 과정- EKS 환경 배포- 초기설정- 트러블 슈팅 과정메모리 점유sync, scan 병목schema 하나당 데이터베이스 하나로 등록이 되는 문제,driver 커스텀하기 (feat. clojure)쿼리 timeout 문제마무리Bagelcode의 Data DeliveryBagelcode의 Data Delivery 현황Redshift 제거 과도기Bagelcode에서는 데이터를 추출해서 S3에 저장 후 Databricks에서 가공해서 사용합니다. 기존에는 end-user에게 데이터를 제공하기 위한 툴로 Redshift, Tableau를 이용 중이었습니다.그런데 테이블이 점점 늘어나면서 lock에 걸려서 write, read 시간이 오래 걸리고 비용 문제 등의 이유로 Databricks SQL warehouse를 통해 Superset으로 쿼리할 수 있도록 변경했고 Redshift와 Superset을 동시에 이용하는 과도기를 지나 Superset만을 이용하는 방식으로 변경했습니다.Redshift를 제거하는 과정에 대해서 궁금하시다면 ‘Databricks SQL Serverless 도입기’를 참고해 주세요.Before Metabase과도기를 지난 후 데이터를 사용하는 end-user가 사용할 수 있는 툴은 Superset과 Tableau 두 가지가 되었습니다.직접 테이블에서 바로 쿼리를 해서 사용하고 싶을 때는 Superset으로, 시각화가 필요할 때는 Tableau를 이용하였습니다.추가적인 BI 툴 필요성 제기하지만 신작팀이 점점 늘어나면서 추가적인 BI 툴의 필요성을 느꼈습니다. 신작팀은 인원이 많지 않은 관계로 데이터를 직접적으로 다룰 수 있는 인원이 없는 경우가 많았습니다. 이 경우 데이터 팀에게 직접적으로 요청하는 방법이 존재하지만, 빠른 사이클이 필요한 신작팀에게는 일분일초가 소중합니다.After Metabase‘SQL 쿼리를 할 줄 모르는 사용자’도 ‘빠르게’ 데이터를 다룰 수 있는 BI 툴의 필요성을 느껴서 Metabase를 도입하게 되었습니다.Metabase에서는 question이라는 기능을 통해 template화된 GUI 쿼리 툴이 존재하기 때문에 SQL을 모르는 사용자도 쉽게 쿼리를 할 수 있도록 해주고 자체 시각화 기능 및 alert 설정 등 다양한 기능이 있기 때문에 도입을 결정하게 되었습니다.정리하자면 아래와 같습니다.Superset: SQL 쿼리를 다룰 줄 아는 사용자가 데이터를 추출하기 위해 사용.Tableau: SQL 쿼리를 다룰 줄 아는 사용자가 시각화를 위해 사용. 또는 SQL 쿼리를 모르는 사용자도 데이터 팀에 요청해 사용.Metabase: SQL 쿼리를 다룰 줄 모르는 사용자가 빠르게 데이터를 다루거나 시각화할 때 사용.Metabase 배
awsredshift
clojure
github
metabase
spark
superset
tableau
unity
그린랩스
제목은 그린랩스 1년 후기로 하겠습니다. 근데 이제 클로저를 곁들인
2022년 7월 21일 — 2 min read차민철 신선하이 백엔드 개발자입사 전안녕하세요. 신선하이 백엔드 개발자 차민철입니다. 그린랩스에 입사한지 이제 막 1년이 지났습니다. 지난 3년간 자바스크립트를 사용하여 웹 어플리케이션 개발을 했었고, 그린랩스에 합류하면서 클로저란 언어를 처음 접하고 사용하게 되었습니다. 오늘은 그 1년의 경험을 공유해보려고 합니다.입사 전부터 함수형 프로그래밍에 관심이 많았었는데요. 이 글을 읽고 계실 여러분처럼 실제로 현업에서 함수형 언어를 어떻게 사용하고 있는지도 궁금했고, 또 한 번 쯤은 함수형 언어로 개발해보고 싶은 마음에 지원했습니다.국내에서 클로저라는 언어를 사용하는 기업은 그린랩스가 거의 유일하다고 볼 수 있어 커리어에 대한 걱정도 조금 있었습니다. 하지만 회사에서 사용하는 언어를 클로저로 선택하는 것은 분명 쉽지 않았을 테고, 사용하기로 결정했다면, 이 언어만의 확실한 장점이 있으리라 생각했습니다. 그리고 이런 결정을 할 수 있는 회사라면 실무자들의 의사결정을 존중하는 문화를 가졌을 거라는 믿음이 있었습니다.능서불택필 - 글씨를 잘 쓰는 이는 붓을 가리지 않는다. 즉 일에 능한 사람은 도구를 탓하지 않는다개발자의 성장에는 어떤 언어를 쓰느냐보다 누구와 함께 일하는지가 더 중요하다고 생각합니다. 그린랩스에 이미 합류하신, 그리고 앞으로 합류하실 분들 모두 변화를 두려워하지 않고 도전하는 멋진 분들이라고 확신할 수 있었습니다. 한편으로는, 도구를 가리지 않는 장인들의 모임일 수도 있겠다고 생각했습니다. 1년이 지난 지금 돌이켜보면, 제 인생에서 잘한 선택 중 하나라고 생각합니다.?((클로저))의 첫 인상클로저(Clojure) 뿐 아니라 리습(Lisp) 계열의 언어를 처음 접해보는 터라 걱정이 많았습니다.처음에는 괄호가 너무 많아서 (특히, 맨 끝의 괄호모음... )))) ) 당황하기도 했고 코드를 읽는게 어렵게 느껴졌습니다. 이런 문법 에러를 만나기도 하구요.Copy copy code to clipboard 1 Unmatched delimiter: )하지만, 퍼레딧(paredit)과 퍼린퍼(parinfer) 같은 리습용 편집 도구를 사용하면 이런 괄호를 쉽게 다룰 수 있습니다. 괄호가 익숙해지면서는 오히려 평가 순서가 명확하게 보이고 필요한 부분만 한 눈에 볼 수 있어 가독성이 훨씬 좋아진 것을 느꼈습니다.클로저를 사용하는 유저들의 경력이 많아서인지 입문자를 위한 문서화, 튜토리얼 등이 다른 언어에 비해 부족하다고 느껴지기도 했고, 종종 라이브러리 코드를 직접 살펴봐야 하는 경우도 있었습니다. 하지만 지금 돌이켜보면 이런 부분 덕분에 다양한 것들을 학습할 수 있었습니다.그린랩스에 입사하면 3주간 클로저를 학습하는 부트캠프 과정을 진행합니다. 부트캠프의 커리큘럼이 잘 짜여있고 좋은 리뷰어와 함께하는 과정이라 클로저의 사고방식(The Clojure Way)으로 전환하는데 크게 어렵지 않았습니다. 부트캠프 과정과 후기가 궁금하시다면 "그린랩스에서 클로저 시작하기"라는 글을 추천합니다.그린랩스에서 만난
clojure
그린랩스
클로저(Clojure) 코드는 정말 읽기 어려운가?
2022년 6월 17일 — 8 min read박연오 프로그래머/개구리 애호가이 글은 2022 송파 클로저 밋업 행사의 발표입니다. 유튜브에서 비디오를 볼 수 있습니다. 발표 보기: https://www.youtube.com/watch?v=2bIpCf53x6w여러분 안녕하세요? 소중한 금요일 저녁 시간에 클로저 밋업에 참석해주셔서 감사합니다. “클로저 코드는 정말 읽기 어려운가?”라는 주제로 발표를 맡았습니다. 발표 주제의 이름을 잘못 지은 것 같기도 합니다. "클로저 코드는 왜 이렇게 읽기 쉬울까?"라고 했으면 더 좋았을 것 같네요. 클로저가 어렵다는 편견이 있는 편인데, 그렇지 않다는 걸 말씀드리려고 합니다.리스프(LISP)클로저는 리스프라는 프로그래밍 언어의 한 방언입니다. 리스프는 1958년에 처음 나온, 무려 64년이나 된 옛날 언어입니다. 리스프는 항상 새로운 아이디어로 가득한 혁신적인 언어였습니다. 하지만 리스프의 방언들은 인기가 높지는 않습니다. 그 이유가 뭘까요?리스프가 배우기 어렵고 코드를 읽기 어렵기 때문이라는 주장을 종종 들어요. 이런 주장에는 두 가지 가정이 있는데요, 하나는 언어의 인기가 언어의 내재적인 특성에 근거한다는 가정입니다. 두번째 가정은 리스프가 어렵다는 것입니다.저는 이런 가정에 동의하지 않습니다. 먼저, 언어의 인기에는 언어의 특성보다는 외부적인이 더 영향이 커요. 예를 들어, 에스페란토보다는 영어가 훨씬 널리 쓰입니다. 그건 영어가 에스페란토보다 더 쉽기 때문이 아닙니다. 최근에 외국인들 사이에서 한국어의 인기가 높아졌고, 1980년대에 나온 파이썬이 최근에야 널리 사랑받게 되었죠. 이 또한 한국어나 파이썬이 갑자기 전보다 쉬워졌기 때문이 아닙니다. 언어를 둘러싼 사회적 배경이 더 중요하죠.Write-only Language?리스프를 놀리는 말 중에 '쓰기 전용'이라는 말이 있어요. 코드 작성자도 코드를 못 읽는다는 거죠.“유지보수하기 어렵게 코딩하는 방법”이라는 책이 있는데요 나쁜 코딩 스타일을 반어법으로 소개하는 재미있는 책입니다. 이 책은 반쯤은 유머로 이루어져 있는데요. 리스프로 환상적으로 읽기 어려운 코드를 작성할 수 있다고 소개하는 내용이 있습니다.그런데 이 코드는 읽기가 매우 어려운 게 사실입니다. 이건 일부러 읽기 어렵게 짠 코드이니까요. 하지만 일부러 읽기 어렵게 만든다면, 다른 프로그래밍 언어로도 읽기 어려운 코드를 만들 수 있습니다.Copy copy code to clipboard 1 (function(_0x26ea4d,_0x1a7432){var _0x32fcab=_0x4ac1,_0x459153=_0x26ea4d();while(!![]){try{var _0x3aa247=-parseInt(_0x32fcab(0x188))/0x1+parseInt(_0x32fcab(0x187))/0x2*(parseInt(_0x32fcab(0x18d))/0x3)+parseInt(_0x32fcab(0x18b))/0x4*(-parseInt(_0x32fcab(0x18c))/0x5)+-parseInt(_0x32
clojure
그린랩스
그린랩스 클로저 사용 실태 조사 2022
2022년 1월 11일 2 min read2022년 새해를 맞아 그린랩스의 클로저(Clojure) 사용자들을 대상으로 가벼운 설문조사를 진행했습니다. 응답자는 총 17명이고, 팜모닝 혹은 신선마켓의 백엔드를 개발하시는 분들께서 주로 응답을 주셨습니다.Q. 클로저를 사용하기 이전에는 어떤 언어를 주력으로 사용하셨나요? 업계에서 많이 쓰이는 JavaScript, Java, Python 순으로 결과가 집계됐습니다. 이어지는 항목에서도 알 수 있듯 기존에 함수형 언어를 사용하다 오신 분은 많지 않았습니다.Q. 직업적으로 개발을 몇 년간 해오셨나요? 약 40%가 5년 이내의 경력을 가지고 있었습니다. 전체 개발자의 약 1/4은 10년 이상 개발을 해오신 분들로 구성되어 있었습니다.클로저는 처음이지만 이미 개발 경력이 20년이 넘으시는 분도 있으셨습니다. 기존의 습관을 버리는 것이 쉽지 않겠지만 그래도 도전해보고 싶었다고 하시네요.Q. 그린랩스 이전에 함수형 프로그래밍 경험은 얼마나 있으셨나요? 경험이 전혀 없었다고 답한 분이 무려 절반 이상이었으며, 2년 이상 경험한 분들은 1/5 미만이었습니다. 하지만 아래 질문에서 짐작할 수 있듯, 평소에 개인적인 흥미를 가지고 공부를 해오셨던 분들도 꽤 있으셨습니다.Q. 어떤 계기로 클로저에 관심을 갖게 되셨나요? 그린랩스의 회사 소개 혹은 지인을 통해 관심을 갖게 되셨다는 분들이 가장 많았습니다. 특히 하루개발 그린랩스 편을 많이 꼽았습니다.크게 놀랍지 않은 사실일지 모르지만, 리습(Lisp)에 관심을 갖고 계시던 분들이 많았습니다. 경로는 주로 폴 그레이엄의 해커와 화가라는 에세이와 SICP(컴퓨터 프로그램의 구조와 해석) 였습니다.Q. 클로저 개발에 있어 다음 항목들이 얼마나 중요하다고 생각하시나요? 압도적으로 많은 지지를 받은 기능은 "불변성", "함수형 프로그래밍", "REPL" 이었습니다. 아마 클로저만의 독특한 REPL의 편리함을 기본으로, 여기에 강력함을 더하는 불변성과 함수형 프로그래밍 때문이 아닐까 추측해봅니다.클로저 REPL이 어떻게 특별한지 궁금하시다면, 함수형 컨퍼런스 liftIO 발표자료 REPL, 클로저의 수퍼 파워도 살펴보세요.클로저는 동시성과 관련한 매우 훌륭한 기능들을 제공하고 있음에도 불구하고, 그린랩스에서는 클로저가 웹 개발에 사용되기 때문에 설문에서는 별로 주목받지 못했습니다.Q. 어떤 개발 환경을 이용하시나요? IntelliJ + Cursive 조합이 가장 많은 인기가 있었습니다. 아마 온보딩 과정이 IntelliJ 기반으로 설명되어있기 때문에 주류를 차지한 것으로 보입니다.손가락의 건강을 포기한 Emacs 사용자가 10%가 넘는 것도 주목할만 합니다. 최근 그린랩스에 합류하신 기계인간님을 주축으로 앞으로는 Vim당의 약진도 기대해봅니다.Q. 구조적 편집을 사용하시나요? 클로저는 S-표현식 언어이기 때문에 괄호 단위로 코드를 편집하게 됩니다. 이를 구조적 편집(Structural Editing)이라 합니다.일반적으로 리습 사용자들은 Paredit을 사용하지만, 단축키
clojure
Copyright © 2025. Codenary All Rights Reserved.