Pushpin: 농μž₯μ—μ„œ 아이디어 κ°€μ Έμ˜€κΈ°

에 λ§Œλ“  2019λ…„ 11μ›” 06일  Β·  4μ½”λ©˜νŠΈ  Β·  좜처: automerge/pushpin

μ••μ • #310κ³Ό #316을 가지고 놀닀가 λ‚΄κ°€ μ •λ§λ‘œ λ‹¬μ„±ν•˜κ³  싢은 것이 dat://code.gozala.io/ μ‹€ν—˜μ—μ„œ λ‚΄κ°€ μ›ν–ˆλ˜ 것과 거의 λΉ„μŠ·ν•˜λ‹€λŠ” 것을 μ•Œκ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. https://observablehq.com/κ³Ό 닀름) 데이터 쑰각을 κ°€μ Έμ™€μ„œ μœ„μ ―μ΄λ‚˜ μž¬μ‚¬μš© κ°€λŠ₯ν•œ μœ„μ ―μ„ λ§Œλ“€ 수 μžˆλŠ” μ•½κ°„μ˜ μ½”λ“œλ₯Ό μž‘μ„±ν•˜λŠ” λ°©λ²•μž…λ‹ˆλ‹€. νŠΉμ • μž‘μ—…μ— λ§žμΆ€ν™”λœ λ§žμΆ€ν˜• μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ œμ™Έν•˜κ³ λŠ” μŠ€ν”„λ ˆλ“œμ‹œνŠΈ 라인을 따라 λ‹€μ†Œ μ‚¬μš©ν•˜κ³  μžˆλ‹€κ³  κ°€μ •ν•©λ‹ˆλ‹€.

사싀 νŒœμ€ μ •ν™•νžˆ 그와 κ°™μ•˜μŠ΅λ‹ˆλ‹€. μ‹€μ œλ‘œ μœ„μ•„λž˜λ‘œ μŠ€ν¬λ‘€ν•΄μ•Ό ν•˜λŠ” λ©”λͺ¨μž₯μ΄λ‚˜ μŠ€ν”„λ ˆλ“œμ‹œνŠΈλ³΄λ‹€ λ³΄λ“œκ°€ 이런 μ’…λ₯˜μ˜ μƒν˜Έ μž‘μš©μ— 훨씬 더 λ‚˜μ€ ν‘œλ©΄μ΄λΌλŠ” 것을 μ•Œκ²Œ λ˜μ—ˆκΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€.

κ·Έλž˜μ„œ μ €λŠ” 농μž₯을 그토둝 맀λ ₯적으둜 λ§Œλ“œλŠ” μš”μ†Œλ₯Ό λΆ€ν™œμ‹œν‚¬ 수 μžˆλŠ”μ§€ κΆκΈˆν•©λ‹ˆλ‹€. @pvhμ™€μ˜ λŒ€ν™”μ—μ„œ Elm은 정말 쒋은 μ–Έμ–΄μ΄μ§€λ§Œ μ‹€μ œλ‘œλŠ” 맀우 μ œν•œμ μ΄λΌλŠ” 것이 증λͺ…λ˜μ—ˆλ‹€λŠ” λŠλ‚Œμ„ λ°›μ•˜μŠ΅λ‹ˆλ‹€. github.com/browserhtml/browserhtml λ˜λŠ” μ–ΈκΈ‰λœ https://observablehq.com/). κ·ΈλŸ¬λ‚˜ λ‚˜λŠ” 농μž₯의 더 맀λ ₯적인 μš”μ†ŒλŠ” lens μžμ²΄κ°€ 일뢀 λ¬Έμ„œμ—λ„ μ €μž₯된 μ½”λ“œμ˜ 일뢀인 (doc, lens) λ₯Ό μ‚¬μš©ν•˜μ—¬ ν™”λ©΄μ˜ λͺ¨λ“  것을 ν‘œν˜„ν•œλ‹€λŠ” μ•„μ΄λ””μ–΄μ˜€λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

λ‚˜λŠ” 이것을 λ‹€μ‹œ κ°€μ Έμ˜€κ³  μ‹Άμ§€λ§Œ (적어도 μ²˜μŒμ—λŠ”) Elm 컴파일러λ₯Ό μƒλž΅ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ 컴파일 단계가 ν•„μš”ν•˜μ§€ μ•Šμ€ JS의 Elm μ•„ν‚€ν…μ²˜μΈ https://github.com/mozilla/reflex/ 라이브러리λ₯Ό μ‚¬μš©ν•˜κ³  μžˆμ—ˆμŠ΅λ‹ˆλ‹€. .

κ·Έλž˜μ„œ 이 λͺ¨λ“  것을 ν•©μΉ˜λ©΄ 이것이 μ œκ°€ μ‹œλ„ν•˜κ³  싢은 κ²ƒμž…λ‹ˆλ‹€:

  1. #310을 "렌즈 νŽΈμ§‘" ꡬ성 μš”μ†Œλ‘œ μ„±μž₯μ‹œμΌœ 기본적으둜 URL을 톡해 μ°Έμ‘° 및 λ‘œλ“œν•  수 μžˆλŠ” μ•½κ°„μ˜ JSλ₯Ό μž‘μ„±ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λΆˆν–‰νžˆλ„ hypermerge:/ URL은 hyperfile:/... ν•˜λ‚˜λ§Œ λ‘œλ“œν•  수 μ—†μ§€λ§Œ 해결될 수 μžˆκ±°λ‚˜ μ΅œμ•…μ˜ 경우 ꡬ성 μš”μ†Œκ°€ λ³€κ²½ ν›„ μƒˆλ‘œμš΄ hyperfile:/ URL을 생성할 수 μžˆμŠ΅λ‹ˆλ‹€.

  2. "렌즈 μ €μž‘" ꡬ성 μš”μ†Œλ₯Ό ν¬ν•¨ν•˜λŠ” λ‹€λ₯Έ "νŒŒμ΄ν”„λΌμΈ" ꡬ성 μš”μ†Œ λ˜λŠ” κΈ°μ‘΄ λ Œμ¦ˆμ— λŒ€ν•œ 선택기와 데이터 "λ¬Έμ„œ" 선택기λ₯Ό λ§Œλ“€μ–΄ μ„œλ‘œ νˆ¬μ˜ν•©λ‹ˆλ‹€. _νŒŒμ΄ν”„λΌμΈμ΄ 렌즈 ν”„λ‘œμ νŠΈ(HTML)κ°€ λ³΄λŠ” κ³³(데이터, 렌즈)μ—λ§Œ κ΅­ν•œλ˜μ§€ μ•Šκ³  데이터 ν”„λ‘œμ μ…˜μ— 데이터λ₯Ό ν—ˆμš©ν•˜μ—¬ 사물이 더 큰 νŒŒμ΄ν”„λΌμΈμœΌλ‘œ 연결될 수 μžˆλ„λ‘ ν•˜κ³  μ‹Άμ§€λ§Œ μ§€κΈˆμ€ μ•½κ°„ λŠ˜μ–΄λ‚  수 μžˆμŠ΅λ‹ˆλ‹€) _. κΈ°λ³Έ λ Œμ¦ˆλŠ” μΈμŠ€νŽ™ν„°(#316 μ°Έμ‘°)κ°€ 될 수 μžˆμœΌλ―€λ‘œ λ¬Έμ„œλ§Œ 무언가λ₯Ό λ Œλ”λ§ν•˜κ³  κ±°κΈ°μ—μ„œ λ‹€λ₯Έ 렌즈λ₯Ό μ‚¬μš©ν•˜κ±°λ‚˜ μƒˆλ‘œ λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.

이와 같이 λ‚΄κ°€ 자주 μ‚¬μš©ν•˜λŠ” 도ꡬλ₯Ό μ‰½κ²Œ λ‹€μ‹œ λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€ https://hackmd.io/ μ—¬κΈ°μ—μ„œ λ§ˆν¬λ‹€μš΄μ„ μž…λ ₯ν•˜κΈ° μœ„ν•œ "μ½”λ“œ νŽΈμ§‘κΈ°" ꡬ성 μš”μ†Œμ™€ 미리보기λ₯Ό λ‚˜λž€νžˆ λ Œλ”λ§ν•˜λŠ” "νŒŒμ΄ν”„λΌμΈ" ꡬ성 μš”μ†Œλ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ˜λŠ” 무엇이든 이해가 될 κ²ƒμž…λ‹ˆλ‹€.

μΆ”μ‹ : λ‚˜λŠ” μ—¬μ „νžˆ 이 아이디어에 λŒ€ν•΄ μƒκ°ν•˜κ³  μžˆμ§€λ§Œ ν”Όλ“œλ°±μ„ μœ„ν•΄ κ³΅μœ ν•˜κ³  λ¬Έμ„œν™”ν•˜λ €κ³  μ‹œλ„ν•©λ‹ˆλ‹€.

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

cc @pfrazee λŠ” Beakerμ—μ„œ "파일 보기"둜 μˆ˜ν–‰ν•˜λŠ” μž‘μ—…κ³Ό μœ μ‚¬ν•©λ‹ˆλ‹€.

λͺ¨λ“  4 λŒ“κΈ€

cc @pfrazee λŠ” Beakerμ—μ„œ "파일 보기"둜 μˆ˜ν–‰ν•˜λŠ” μž‘μ—…κ³Ό μœ μ‚¬ν•©λ‹ˆλ‹€.

이것은 Wireline이 ν•˜λ €λŠ” 것과 맀우 μœ μ‚¬ν•˜λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

κ³„μ†ν•΄μ„œ 머릿속을 λ§΄λ„λŠ” 또 λ‹€λ₯Έ 것은 data -> view 와 data -> data 에 λŒ€ν•΄ 생각할 λ•Œ 항상 첫 λ²ˆμ§Έμ—μ„œ 두 번째둜 λ„μ•½ν•œλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. http://offlinefirst.org/camp/ 의 ν† λ‘  쀑 ν•˜λ‚˜μ—μ„œ "λ Œλ”λ§λœ λ·°"에 λŒ€ν•œ 데이터 블둝(μ••μ •κ³Ό κ΄€λ ¨λœ λ¬Έμ„œ)에 λŒ€ν•œ 링크와 "μ†ŒμŠ€ μ½”λ“œ"에 λŒ€ν•œ 링크λ₯Ό μ²¨λΆ€ν•˜λŠ” 아이디어가 μžˆμ—ˆλ˜ 것을 κΈ°μ–΅ν•©λ‹ˆλ‹€. κ·Έ 보기λ₯Ό λ Œλ”λ§ν•©λ‹ˆλ‹€.

data -> view λ₯Ό data -> data 둜 μΌλ°˜ν™”ν•˜λ©΄ html λ¬Έμ„œκ°€ 좜λ ₯λ©λ‹ˆλ‹€(μ‹€μ œλ‘œ κ·ΈλŸ¬ν•œ λ¬Έμ„œλ‘œ μœ μ§€ν•  κ°€μΉ˜κ°€ μžˆμ„ 수 있음). 그런 μ‹μœΌλ‘œ 압정은 HTML 인 λ¬Έμ„œμ™€ data inspector κ°€ μ•„λ‹Œ λ¬Έμ„œλ₯Ό 직접 λ Œλ”λ§ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

κΈ°μ‘΄ μœ„μ ―μ˜ 경우 Note : data -> html , Thread: data -> html λ“±μœΌλ‘œ 생각할 수 μžˆμŠ΅λ‹ˆλ‹€.

HTML μœ μ§€ 및 λ³΅μ›μ˜ μ£Όμš” λ¬Έμ œλŠ” 이벀트 λ¦¬μŠ€λ„ˆμ΄μ§€λ§Œ 메인 μŠ€λ ˆλ“œμ—μ„œ λͺ¨λ“  μ‘μš© ν”„λ‘œκ·Έλž¨ 논리 λ₯Ό κ°€μ Έμ˜€λ €κ³  ν•  λ•Œ μ²˜λ¦¬ν•œ λ¬Έμ œμ΄κΈ°λ„ ν•©λ‹ˆλ‹€. 이 문제λ₯Ό ν•΄κ²°ν•˜λŠ” 방법에 λŒ€ν•œ 아이디어가 μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

λ‚΄κ°€ μ •μ°©ν•œ 메인 μŠ€λ ˆλ“œ μ†”λ£¨μ…˜μ—μ„œ μž‘λ™ν•˜λ„λ‘ ν•˜λ €λ©΄ 디코더가 μ§λ ¬ν™”λ˜κ³  메인 μŠ€λ ˆλ“œμ— λ‘œλ“œλ˜κ³  μ‚¬μš©ν•  수 μžˆλŠ” 선언적 νŒŒμ„œ comibantor 인 Elm의 JSON 디코더 λΌμ΄λΈŒλŸ¬λ¦¬μ—μ„œ μ˜κ°μ„ 받은 디코더.ν”Œλ‘œμš° 라이브러리λ₯Ό μ‚¬μš©ν•˜λŠ” κ²ƒμ΄μ—ˆμŠ΅λ‹ˆλ‹€. μ΄λ²€νŠΈμ—μ„œ κ΄€λ ¨ 정보λ₯Ό μΆ”μΆœ/μΈμ½”λ”©ν•˜κ³  ν”„λ‘œκ·Έλž¨μ΄ μ‹€ν–‰ 쀑인 μŠ€λ ˆλ“œλ‘œ λ‹€μ‹œ μ „λ‹¬ν•©λ‹ˆλ‹€.

이 νŠΉμ • μ‚¬μš© μ‚¬λ‘€μ—μ„œλŠ” κ΅¬μ„±λœ 인코더λ₯Ό λ Œλ”λ§λœ html 좜λ ₯κ³Ό λ™μΌν•œ λ¬Έμ„œμ— μ €μž₯ν•˜κ³  ν•΄λ‹Ή μ£Όμ†Œ(μ•„λ§ˆλ„ μ½˜ν…μΈ  ν•΄μ‹œ)λ₯Ό μ‚¬μš©ν•˜μ—¬ ν•΄μ‹œμ—μ„œ μ°Έμ‘°ν•  수 μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰