December 9, 2022
기술 관련 # cljs -> js # 클로저스크립트를 사용하여 개발해보고 싶었지만 프로토타입까지는 자바스크립트로 개발해야겠다. 여러 이유가 있는데 가장 큰 이유는 지금 당장의 생산성 문제가 컸다. fulcro 외의 다른 프레임워크를 찾아보던 중 리액트 17+를 지원하는 가벼운 리액트 래퍼 프로젝트들(helix, uix)을 발견했고, 리액트의 대안으로 solid를 발견했는데 리액트와 동일한 생산성이 나오면서 컴파일 후 번들 사이즈도 훨씬 작은 solid를 사용해야겠다고 생각했다.
cljs 코드로 solid를 작성할 수 있는 프로젝트는 아직 없기에-squint는 cljs가 아니다. squint를 사용하면 solid 같은 프레임워크가 필요없다고 말하긴 하지만 내가 원하는 것은 solid를 레버리징 할 수 있는, 말 그대로 solid 문법 js로 컴파일되는 더 축약된 문법의 clj 매크로 라이브러리가 있으면 좋겠다.
...
November 23, 2022
datomic을 로컬에서 테스트 해보려면 com.datomic:dev-local 라이브러리가 필요한데 이는 공개 저장소에서 받을 수 없다. dev-tools 링크에서 이메일 입력하면 다운로드 링크를 보내준다.
maven으로 설치할 수도 있다. maven 설정에 서버를 설정해준다. 발급된 개인 비밀번호와 계정을 입력한다.
<!-- in ~/.m2/settings.xml --> <settings> <servers> <server> <id>cognitect-dev-tools</id> <username>krapjost@gmail.com</username> <password>PASSWORD</password> </server> </servers> </settings> 프로젝트를 deps.edn으로 관리할 경우 다음 전역 설정을 해주면 된다.
;; in ~/.clojure/deps.edn {:mvn/repos {"cognitect-dev-tools" {:url "https://dev-tools.cognitect.com/maven/releases/"}}} Leiningen은 프로젝트별로 설정해주어야 하는데 나는 안 쓸 것이기 때문에 넘어가기로…
November 23, 2022
원문 개인적인 학습을 위해 번역합니다. 건너뛰면서 번역할 수 있습니다.
1. About this book # fulcro3를 위한 개발자 가이드입니다. 초보자와 경험 많은 개발자들에게 이 라이브러리의 세부적인 내용들을 안내하기 위해 쓰여졌습니다. fulcro 관련 자료는 웹 상에 많이 있어 당신의 학습 스타일에 맞춰 배울 수 있습니다.
Clojure docs Youtube videos Fulcro community 1.1. Common Prefixes and Namespaces # (ns your-ns (:require [com.fulcrologic.fulcro.components :as comp :refer [defsc]] [com.fulcrologic.fulcro.application :as app] [com.fulcrologic.fulcro.data-fetch :as df] [com.
...
November 17, 2022
fulcro를 사용해보고 있다. fulcro는 graph 데이터를 다룰 수 있도록 특화된 풀 스택 프레임워크이다.
자바스크립트 리액트를 처음 배울 때 느낌이다. 속이 꽉 답답한 게 내 멍청함에 화가 난다. 오늘 꼭 이해해서 좀 후련하게 집에 가고 싶다.
이제는 시간이 없다. 죽이 되든 밥이 되든 이 스택으로 끝까지 만들어야지.
November 14, 2022
프론트 페이지 라우팅 작업이 끝나고 백엔드 데이터 베이스 구조를 고민하고 있다. 추천 알고리즘을 구현해보고 싶어 조사 중 그래프DB를 알게되어서 공부 중.
소설 연재 플랫폼이면서 동시에 소셜 네트워킹 플랫폼의 역할도 했으면 좋겠다. 내가 좋아하는 소설, 그 소설을 좋아하는 유저들, 그 유저들이 좋아하는 소설. 내가 좋아하는 소설을 쓴 작가가 좋아하는 소설.
좋아한다는게 무엇인지에 대한 생각도 해야할 것 같다. 좋아요를 눌러놓고 잘 보지 않게 되는 글도 있고 그냥 보다보니 끝까지 보게되는 글도 있으니까.
...
November 12, 2022
배운 것 # wallmart에서 개발한 graphQL clojure 구현체 lacinia. 그린랩스에서도 이것을 쓰고 있다. graphQL은 정말 편하다. 성능? 성능 이슈에 대한 글도 있지만 DB를 그래프DB를 쓰면 신경쓰지 않아도 되지 않을까 하는 생각이 든다. RDB에서는 복잡한 쿼리를 한 번에 수행하는데 지수 시간이 걸리지만 그래프DB는 상수 시간으로 쿼리할 수 있다. 어쨌거나 모바일 우선 앱을 만들고 싶기 때문에 graphQL은 좋은 선택이 될 것 같다. Web client <-> http-server <-> graphql resolver <-> docker(datalevin)
...
November 9, 2022
컴포넌트 리스트 그리는 방법 # 아래와 같은 데이터와
(def book-list {:section "Today" :list [{:id "0" :name "book1" :author "doong" :description "rorlame edalkwdqd qwlmdkwmd ql"} {:id "1" :name "book2" :author "ojo" :description "heleld qwdmlkqwd awlkda wk"}]} {:section "Weekly" :list [{:id "4" :name "book5" :author "asdw" :description "asdawd"} {:id "6" :name "book7" :author "qw w w" :description "wqlwd qwldkm qwlkdasd asd"}]}) 아래와 같은 컴포넌트가 있을 때
(defc book-card [{:keys [name author description]}] (render (<< [:a {:class (css :relative :block :h-96)} [:span {:class (css :absolute :inset-0 :border-2 :border-dashed :border-black)}] [:div {:class (css :relative :flex :h-full :items-end :border-2 :border-black :bg-white :transition-transform [:hover {:transform "translate(-0.
...
November 8, 2022
함수형은 # 익숙해? 고등학교 2학년 과정에 있음
http://blog.jenkster.com/2015/12/what-is-functional-programming.html
두 뿌리 # 튜링 기계 언어 # 기계에 명령하기 위함
람다 계산 언어 ( Alonzo church ) # 값을 계산하기 위함 ( Applicative language )
자바 스트림?
추상화의 스펙트럼 # goto ->> for loop ->> map/filter/reduce https://www.youtube.com/watch?v=mVVNJKv9esE
닐 포드 함수형 사고
Dev dive 2022 # Why functional programming matters # https://www.cs.kent.ac.uk/people/staff/dat/miranda/whyfp90.pdf 모듈식 설계 분해와 좋은 조립이 핵심이다.
조립 수단 # 고차 함수 지연 평가 (lazy eval) 지연평가가 왜 좋은가 rtfeldman - why functional programming isn’t norm # IEEE 잡지 Why functional programming should be the future of software development # constacts liftIO 김은민 # 쏙쏙 들어오는 함수형 코딩 저자
...
November 7, 2022
익숙해지는 중 # shadow-css에는 tailwind 방식의 별칭을 사용해 스타일링 할 수 있다. 다른 점은, tailwind가 별칭마다 클래스를 부여하고 그 클래스들은 다 이미 정의되어 있는데 반해, shadow-css는 styled-component처럼 컴포넌트마다 하나의 클래스를 배정한다. tailwind는 프로덕션 빌드 때 사용되지 않는 클래스들을 날린(purge)한 css파일을 얻을 수 있다. shadow-css는 개발 중 저장할 때마다 수정된 부분이 있으면 css를 새로 만들어 준다.
빠르게 개발하고 싶어서 클로저를 선택했지만 빨라지기까지 엄청 오랜 시간이 걸릴 것 같다. 개발 속도가 빠르다는 것은 개발 중 고려해야할 세부적인 부분들을 다 알고 있기 때문이고 클로저를 해보며 느끼는 점은 그 세부적인 부분들을 알아야 다음으로 넘어갈 수 있다는 것이다.
...
November 1, 2022
가입하면 -> 하면 기분 좋아지는 선행을 투두 리스트 ( 구글 투두? ) 등 사용 중인 투두 리스트에? 할일로 보내준다. 랜덤 발송되는 선행 목록, 프로필에 달 수 있는 뱃지 추가? 많이 수행하면 프로필에 레벨 표시?