clojure

소설 연재 플랫폼 개발 일지 008

November 14, 2022
개발일지
clojure

프론트 페이지 라우팅 작업이 끝나고 백엔드 데이터 베이스 구조를 고민하고 있다. 추천 알고리즘을 구현해보고 싶어 조사 중 그래프DB를 알게되어서 공부 중. 소설 연재 플랫폼이면서 동시에 소셜 네트워킹 플랫폼의 역할도 했으면 좋겠다. 내가 좋아하는 소설, 그 소설을 좋아하는 유저들, 그 유저들이 좋아하는 소설. 내가 좋아하는 소설을 쓴 작가가 좋아하는 소설. 좋아한다는게 무엇인지에 대한 생각도 해야할 것 같다. 좋아요를 눌러놓고 잘 보지 않게 되는 글도 있고 그냥 보다보니 끝까지 보게되는 글도 있으니까. ...

소설 연재 플랫폼 개발 일지 007

November 12, 2022
개발일지
clojure

배운 것 # wallmart에서 개발한 graphQL clojure 구현체 lacinia. 그린랩스에서도 이것을 쓰고 있다. graphQL은 정말 편하다. 성능? 성능 이슈에 대한 글도 있지만 DB를 그래프DB를 쓰면 신경쓰지 않아도 되지 않을까 하는 생각이 든다. RDB에서는 복잡한 쿼리를 한 번에 수행하는데 지수 시간이 걸리지만 그래프DB는 상수 시간으로 쿼리할 수 있다. 어쨌거나 모바일 우선 앱을 만들고 싶기 때문에 graphQL은 좋은 선택이 될 것 같다. Web client <-> http-server <-> graphql resolver <-> docker(datalevin) ...

cider로 repl 연결하기

October 25, 2022
emacs
cider, clojure, repl

refs # 이름공간 변경하기 clj tool로 REPL 시작하기 # 이런 deps.edn 파일이 있다고 했을 때 {:aliases {:dev {...} :test {...}}} 다음 명령어로 aliases와 함께 REPL을 실행할 수 있다. clj -M:dev:test # 혹은 clj -A:dev:test Namespace 사용하기 # clojure 프로젝트는 ns(namespace)로 스코프를 분리하고 있다. repl 환경에서 (ns dev.server) 을 실행하면 해당 ns를 만들고, 그 공간으로 넘어간다. 이 때 이전 공간에서 선언했던 이름들에는 접근할 수 없다. user=> (def x 42) #'user/x user=> x 42 user=> (ns server) nil server=> server=> x Syntax error compiling at (REPL:0:0). ...

소설 연재 플랫폼 개발 일지 003

October 25, 2022
개발일지
clojure, clojurescript

목표 # 타 연재 플랫폼 웹 클라이언트에서 서버 데이터 어떤 형식으로 가져오는지 확인할 것 그 형식에 맞춰 API 변경하기 lispy 사용해서 repl 연결하기, repl 활용하는 방법들 익숙해지기 garden으로 css 적용하기 i18n 한국어 영어까지 하기, 접속자 ip 위치에 따라 다른 언어 제공하기 과정 # 후기 # 이 날은 기록을 안했다. 반성. 하루 목표를 투두 리스트로 작성한 것은 잘했다. 다시 시도해보자.