Gatsby: [1.0] ν”„λ‘œμ νŠΈ μ‹œμž‘ - μ†”λ£¨μ…˜ ꡬ쑰

에 λ§Œλ“  2017λ…„ 04μ›” 24일  Β·  1논평  Β·  좜처: gatsbyjs/gatsby

μ•ˆλ…•ν•˜μ„Έμš” νŒ€ κ°œμΈ λΉ„μž…λ‹ˆλ‹€.

탐색을 μ‹œμž‘ν•˜κΈ° μœ„ν•΄ μ‹€ν–‰ν•˜μ§€ μ•Šκ³  λ‹€μŒ ν”„λ‘œμ νŠΈλ₯Ό μ„€μ •ν–ˆμŠ΅λ‹ˆλ‹€. μ§€κΈˆκΉŒμ§€λŠ” κ·Έ λΌˆλŒ€λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€. μ§ˆλ¬Έμ€ λ‚΄ VSCode의 λ‹€μŒ μŠ€ν¬λ¦°μƒ·μ— 넣은 폴더 ꡬ쑰에 λŒ€ν•œ κ²ƒμž…λ‹ˆλ‹€.
solution-questions

  1. 데이터가 사전 컴파일 λ‹¨κ³„λ‘œ contentfulμ—μ„œ λ‚΄ μ½˜ν…μΈ λ₯Ό λ‹€μš΄λ‘œλ“œν•  수 μžˆλŠ” 디렉토리인지 ν™•μΈν•˜μ‹­μ‹œμ˜€.

    • λ‚΄ μ•„μ΄λ””μ–΄λŠ” 자주 λ³€κ²½λ˜μ§€ μ•ŠλŠ” CMS/DMSμ—μ„œ JSON 및 μ΄λ―Έμ§€μ˜ ν…μŠ€νŠΈ μ½˜ν…μΈ λ₯Ό λ‹€μš΄λ‘œλ“œν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ 기사, μƒν’ˆ 상세 νŽ˜μ΄μ§€ λ“±,

  2. μ‚¬μ΄νŠΈμ˜ λ‹€λ₯Έ μ„Ήμ…˜μ— λŒ€ν•΄ μ—¬λŸ¬ 개의 κ°œλ³„ 폴더에 데이터λ₯Ό λ‹€μš΄λ‘œλ“œν•˜μ§€λ§Œ ν™•μΈν•˜κΈ° μœ„ν•΄ μ΄λŸ¬ν•œ 데이터 μ†ŒμŠ€λ₯Ό λ‹€μŒκ³Ό 같이 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
    multiple-filesource
  3. gatsbygram 예제의 λ£¨νŠΈμ— μžˆλŠ” UtilsλŠ” 컴파일 μ‹œκ°„μ— Nodeμ—μ„œ ν˜ΈμΆœν•  수 μžˆλŠ” JavaScript μœ ν‹Έλ¦¬ν‹°λ₯Ό 넣을 수 μžˆλŠ” ν΄λ”μž…λ‹ˆλ‹€.
  4. ꡬ성 μš”μ†Œλ₯Ό μ •μ˜ν•  λ•Œ, 예λ₯Ό λ“€μ–΄ React BootStrap ꡬ성 μš”μ†Œλ₯Ό μ‚¬μš©ν•˜κ±°λ‚˜ μ›μž 섀계 원칙을 λ”°λ₯΄κΈ° μœ„ν•΄ 자체 μ›μž ꡬ성 μš”μ†Œλ₯Ό λ§Œλ“œλŠ” 것을 ꢌμž₯ν•©λ‹ˆκΉŒ?
  5. ν•„μš”ν•œ 경우 λ‹€λ₯Έ 곡개 ꡬ성 μš”μ†Œμ™€ ν•¨κ»˜ μœ„μ˜ μ›μž ꡬ성 μš”μ†Œλ₯Ό μ‚¬μš©ν•˜μ—¬ 볡합 ꡬ성 μš”μ†Œλ₯Ό λ§Œλ“œλŠ” 것이 쒋은 μƒκ°μž…λ‹ˆκΉŒ?
  6. 이름 μžμ²΄μ—μ„œ μ•Œ 수 μžˆλ“―μ΄ default.jsλŠ” λ ˆμ΄μ•„μ›ƒμ΄μ§€λ§Œ μ‹€μ œλ‘œλŠ” html.jsμ—μ„œλ„ 전체 HTML ꡬ쑰λ₯Ό μ •μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€. κ·Έλž˜μ„œ λ ˆμ΄μ•„μ›ƒ 폴더가 ν•„μš”ν•œ μ΄μœ κ°€ λ¬΄μ—‡μž…λ‹ˆκΉŒ?
  7. νŽ˜μ΄μ§€ λ””λ ‰ν† λ¦¬λŠ” μ—¬κΈ°μ—μ„œ νŒŒμΌμ„ λΉŒλ“œ μ‹œ 직접 HTML νŽ˜μ΄μ§€λ‘œ λ³€ν™˜ν•©λ‹ˆλ‹€. ν•˜μ§€λ§Œ 더 κΆκΈˆν•œ 점이 μžˆμŠ΅λ‹ˆλ‹€.
    NS. μœ„ μŠ€ν¬λ¦°μƒ·μ—μ„œ tips-and-articles.jsλŠ” html νŽ˜μ΄μ§€λ‘œ λ³€ν™˜λ©λ‹ˆλ‹€. ν•˜μ§€λ§Œ www.abc.com/en-us/tips-and-articles/how-to-do-this 와 같은 URL ꡬ쑰λ₯Ό 더 μžμ„Ένžˆ ν• κΉŒμš” ?
    NS. λΉ„μ¦ˆλ‹ˆμŠ€ μž‘μ„±μžκ°€ CMSμ—μ„œ νŽ˜μ΄μ§€ 자체λ₯Ό μ •μ˜ν•  수 μžˆλŠ” CMSλ₯Ό μ‚¬μš©ν•˜μ—¬ 전체 IA(정보 μ•„ν‚€ν…μ²˜ λ˜λŠ” μ›Ή μ‚¬μ΄νŠΈ νŽ˜μ΄μ§€ 계측)λ₯Ό μƒμ„±ν•˜λ €λ©΄ μ–΄λ–»κ²Œ ν•©λ‹ˆκΉŒ?
    씨. νŽ˜μ΄μ§€κ°€ ν˜„μž¬ www.abc.com/fr-fr/Conseils-et-articles/how-to-do-ce에 μžˆλŠ” 이 νŽ˜μ΄μ§€λ₯Ό 내일 ν˜„μ§€ν™”ν•˜λ €λ©΄ μ–΄λ–»κ²Œ ν•©λ‹ˆκΉŒ
  8. Gatsbygram μ˜ˆμ—μ„œ λͺ¨λ‹¬ λŒ€ν™” μƒμžμ— Instagram κ²Œμ‹œλ¬Όμ„ ν‘œμ‹œν•©λ‹ˆλ‹€. SEO 및 더 λ‚˜μ€ 좔적 λͺ©μ μ„ μœ„ν•΄ 각 κ°œλ³„ νŽ˜μ΄μ§€λ‘œ κ²Œμ‹œλ¬Όμ„ ν‘œμ‹œν•˜λ €λ©΄ μ–΄λ–»κ²Œ ν•΄μ•Ό ν• κΉŒμš”? ν…œν”Œλ¦Ώμ„ μ‚¬μš©ν•˜μ—¬ ν•΄λ‹Ή νŽ˜μ΄μ§€λ₯Ό μƒμ„±ν•˜λŠ” 방법은 λ¬΄μ—‡μž…λ‹ˆκΉŒ?
  9. ν‚€ κ°’ 쌍 λ˜λŠ” CSS 선언을 μœ μ§€ κ΄€λ¦¬ν•˜λŠ” 것 외에 SRCμ—μ„œ utils 폴더λ₯Ό μ‚¬μš©ν•˜λŠ” 것은 λ¬΄μ—‡μž…λ‹ˆκΉŒ?
  10. λͺ¨λ“  κ²½μš°μ— 인라인 CSSλ₯Ό μ‚¬μš©ν–ˆκ³  μ€‘μš”ν•œ CSS에 μœ μš©ν•˜λ‹€λŠ” 것을 μ•Œκ³  μžˆμ§€λ§Œ PostCSS λ˜λŠ” SaSS λͺ¨λΈμ„ μ‚¬μš©ν•˜λŠ” ꡬ성 μš”μ†Œμ—μ„œ 일반적인 클래슀 기반 CSS κ΅¬ν˜„μ„ λ³Ό 수 μ—†μŠ΅λ‹ˆλ‹€.
  11. κ·€ν•˜μ˜ scrape.jsμ—μ„œ μ˜κ°μ„ λ°›μ•„ Contentfulμ—μ„œ μ½˜ν…μΈ λ₯Ό 생성 및 λ‹€μš΄λ‘œλ“œν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€.
  12. λˆ„κ΅°κ°€ μœ„ μŠ€ν¬λ¦°μƒ·μ˜ 12번 ν•­λͺ©μ—μ„œ κ°•μ‘° ν‘œμ‹œλœ 각 νŒŒμΌμ„ μžμ„Ένžˆ μ„€λͺ…ν•˜λ©΄ 쒋을 κ²ƒμž…λ‹ˆλ‹€.

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

μ•„λž˜ λ‹΅λ³€:

1) ν•©λ¦¬μ μœΌλ‘œ λ“€λ¦°λ‹€. 데이터λ₯Ό 어디에 λ‘˜μ§€λŠ” μ „μ μœΌλ‘œ κ·€ν•˜μ—κ²Œ 달렀 μžˆμ§€λ§Œ data λΌλŠ” λ””λ ‰ν† λ¦¬λŠ” 일반적인 κ·œμΉ™μž…λ‹ˆλ‹€.
2) μž¬κ·€μ μœΌλ‘œ νŒŒμΌμ„ κ²€μƒ‰ν•˜λ―€λ‘œ μ‹€μ œλ‘œ ν”ŒλŸ¬κ·ΈμΈμ˜ 첫 번째 μΈμŠ€ν„΄μŠ€λ§Œ ν•„μš”ν•˜λ―€λ‘œ ν•˜μœ„ 디렉토리가 ν¬ν•¨λ©λ‹ˆλ‹€.
3) πŸ‘
4) 일반적으둜 μžμ‹ μ˜ 것. λΆ€νŠΈμŠ€νŠΈλž©μ„ 기반으둜 ν•˜λŠ” 경우 μ‚¬μ΄νŠΈμ— λŒ€ν•œ κ³ μœ ν•œ λ””μžμΈμ„ κ΅¬μΆ•ν•˜κΈ°κ°€ μ–΄λ ΅μŠ΅λ‹ˆλ‹€. https://react-bootstrap.github.io/의 κ°œλ³„ λΆ€νŠΈμŠ€νŠΈλž© ꡬ성 μš”μ†Œκ°€ 도움이 될 수 μžˆμŠ΅λ‹ˆλ‹€.
5) μ˜€ν”ˆ μ†ŒμŠ€ ꡬ성 μš”μ†Œκ°€ μš”κ΅¬ 사항을 μΆ©μ‘±ν•˜λŠ” 경우 μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” 이유λ₯Ό μ•Œ 수 μ—†μŠ΅λ‹ˆλ‹€.
6) html.jsλŠ” <div id="react-mount"></div> μ™ΈλΆ€ 의 λͺ¨λ“  것을 μ •μ˜ν•˜κΈ° μœ„ν•œ κ²ƒμž…λ‹ˆλ‹€. λ ˆμ΄μ•„μ›ƒ ꡬ성 μš”μ†ŒλŠ” 머리글 및 λ°”λ‹₯κΈ€κ³Ό 같은 ν•­λͺ©μ„ μœ„ν•œ κ²ƒμž…λ‹ˆλ‹€. νŽ˜μ΄μ§€ ꡬ성 μš”μ†ŒλŠ” 머리글/λ°”λ‹₯κΈ€ λ‚΄λΆ€μ˜ νŽ˜μ΄μ§€λ₯Ό μœ„ν•œ κ²ƒμž…λ‹ˆλ‹€.
7)
a) μ›ν•˜λŠ” URLκ³Ό μΌμΉ˜ν•˜λŠ” ν•˜μœ„ 폴더에 νŒŒμΌμ„ λ„£μœΌμ‹­μ‹œμ˜€.
b/c) νŽ˜μ΄μ§€λŠ” λ°μ΄ν„°μ—μ„œ ν”„λ‘œκ·Έλž˜λ° λ°©μ‹μœΌλ‘œ μƒμ„±λ˜λ―€λ‘œ https://github.com/gatsbyjs/gatsby/issues/421을 μˆ˜ν–‰ν•˜λŠ” λ§Žμ€ 방법이 μžˆμŠ΅λ‹ˆλ‹€.
8) 사진이 λͺ¨λ‹¬μΌ λ•Œ κ°œμΈ λΉ„κ·Έλž¨ μ‚¬μ΄νŠΈ μƒˆλ‘œκ³ μΉ¨ ;-)
9) src/utils ν΄λ”λŠ” ν•„μš”ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” 그것듀을 μ‚¬μš©ν•˜μ—¬ μž„μ˜μ˜ "μœ ν‹Έλ¦¬ν‹°" λͺ¨λ“ˆμ„ μˆ¨κΈ°λŠ” 것을 μ’‹μ•„ν•˜μ§€λ§Œ λ‹€λ₯Έ 쑰직 체계가 μžˆμŠ΅λ‹ˆλ‹€.
10) μ‹€μ œλ‘œ 인라인 CSSκ°€ μ•„λ‹™λ‹ˆλ‹€. ꡬ성 μš”μ†Œμ—μ„œ 일반 CSS둜 μŠ€νƒ€μΌμ„ μΆ”μΆœν•˜λŠ” Glamor https://github.com/threepointone/glamorλΌλŠ” css-in-js 라이브러리λ₯Ό μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. css-in-jsμ—λŠ” λ§Žμ€ μž₯점이 μžˆμ§€λ§Œ, 이에 관계없이 Sass/Less/PostCSSκ°€ μ™„λ²½ν•˜κ²Œ μ§€μ›λ˜λ©° μ•žμœΌλ‘œ 이λ₯Ό μ‚¬μš©ν•˜λŠ” 더 λ§Žμ€ μ˜ˆμ œκ°€ μžˆμ„ κ²ƒμž…λ‹ˆλ‹€.
11) πŸ‘
12) gatsby-config.jsλŠ” Gatsbyλ₯Ό μ„€μ •ν•˜κΈ° μœ„ν•œ κ²ƒμž…λ‹ˆλ‹€. gatsby-node/gatsby-browser/gatsby-ssr은 νŽ˜μ΄μ§€ 생성, 슬러그 생성을 μœ„ν•œ 데이터 처리, 경둜 λ³€κ²½ μ‹œ λΈŒλΌμš°μ €μ— 뢄석 μΆ”κ°€ λ“±κ³Ό 같은 μž‘μ—…μ„ μˆ˜ν–‰ν•˜κΈ° μœ„ν•΄ λ‹€μ–‘ν•œ Gatsby API(ν•„μš”μ— 따라)λ₯Ό κ΅¬ν˜„ν•˜κΈ° μœ„ν•œ κ²ƒμž…λ‹ˆλ‹€.

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

μ•„λž˜ λ‹΅λ³€:

1) ν•©λ¦¬μ μœΌλ‘œ λ“€λ¦°λ‹€. 데이터λ₯Ό 어디에 λ‘˜μ§€λŠ” μ „μ μœΌλ‘œ κ·€ν•˜μ—κ²Œ 달렀 μžˆμ§€λ§Œ data λΌλŠ” λ””λ ‰ν† λ¦¬λŠ” 일반적인 κ·œμΉ™μž…λ‹ˆλ‹€.
2) μž¬κ·€μ μœΌλ‘œ νŒŒμΌμ„ κ²€μƒ‰ν•˜λ―€λ‘œ μ‹€μ œλ‘œ ν”ŒλŸ¬κ·ΈμΈμ˜ 첫 번째 μΈμŠ€ν„΄μŠ€λ§Œ ν•„μš”ν•˜λ―€λ‘œ ν•˜μœ„ 디렉토리가 ν¬ν•¨λ©λ‹ˆλ‹€.
3) πŸ‘
4) 일반적으둜 μžμ‹ μ˜ 것. λΆ€νŠΈμŠ€νŠΈλž©μ„ 기반으둜 ν•˜λŠ” 경우 μ‚¬μ΄νŠΈμ— λŒ€ν•œ κ³ μœ ν•œ λ””μžμΈμ„ κ΅¬μΆ•ν•˜κΈ°κ°€ μ–΄λ ΅μŠ΅λ‹ˆλ‹€. https://react-bootstrap.github.io/의 κ°œλ³„ λΆ€νŠΈμŠ€νŠΈλž© ꡬ성 μš”μ†Œκ°€ 도움이 될 수 μžˆμŠ΅λ‹ˆλ‹€.
5) μ˜€ν”ˆ μ†ŒμŠ€ ꡬ성 μš”μ†Œκ°€ μš”κ΅¬ 사항을 μΆ©μ‘±ν•˜λŠ” 경우 μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” 이유λ₯Ό μ•Œ 수 μ—†μŠ΅λ‹ˆλ‹€.
6) html.jsλŠ” <div id="react-mount"></div> μ™ΈλΆ€ 의 λͺ¨λ“  것을 μ •μ˜ν•˜κΈ° μœ„ν•œ κ²ƒμž…λ‹ˆλ‹€. λ ˆμ΄μ•„μ›ƒ ꡬ성 μš”μ†ŒλŠ” 머리글 및 λ°”λ‹₯κΈ€κ³Ό 같은 ν•­λͺ©μ„ μœ„ν•œ κ²ƒμž…λ‹ˆλ‹€. νŽ˜μ΄μ§€ ꡬ성 μš”μ†ŒλŠ” 머리글/λ°”λ‹₯κΈ€ λ‚΄λΆ€μ˜ νŽ˜μ΄μ§€λ₯Ό μœ„ν•œ κ²ƒμž…λ‹ˆλ‹€.
7)
a) μ›ν•˜λŠ” URLκ³Ό μΌμΉ˜ν•˜λŠ” ν•˜μœ„ 폴더에 νŒŒμΌμ„ λ„£μœΌμ‹­μ‹œμ˜€.
b/c) νŽ˜μ΄μ§€λŠ” λ°μ΄ν„°μ—μ„œ ν”„λ‘œκ·Έλž˜λ° λ°©μ‹μœΌλ‘œ μƒμ„±λ˜λ―€λ‘œ https://github.com/gatsbyjs/gatsby/issues/421을 μˆ˜ν–‰ν•˜λŠ” λ§Žμ€ 방법이 μžˆμŠ΅λ‹ˆλ‹€.
8) 사진이 λͺ¨λ‹¬μΌ λ•Œ κ°œμΈ λΉ„κ·Έλž¨ μ‚¬μ΄νŠΈ μƒˆλ‘œκ³ μΉ¨ ;-)
9) src/utils ν΄λ”λŠ” ν•„μš”ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” 그것듀을 μ‚¬μš©ν•˜μ—¬ μž„μ˜μ˜ "μœ ν‹Έλ¦¬ν‹°" λͺ¨λ“ˆμ„ μˆ¨κΈ°λŠ” 것을 μ’‹μ•„ν•˜μ§€λ§Œ λ‹€λ₯Έ 쑰직 체계가 μžˆμŠ΅λ‹ˆλ‹€.
10) μ‹€μ œλ‘œ 인라인 CSSκ°€ μ•„λ‹™λ‹ˆλ‹€. ꡬ성 μš”μ†Œμ—μ„œ 일반 CSS둜 μŠ€νƒ€μΌμ„ μΆ”μΆœν•˜λŠ” Glamor https://github.com/threepointone/glamorλΌλŠ” css-in-js 라이브러리λ₯Ό μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. css-in-jsμ—λŠ” λ§Žμ€ μž₯점이 μžˆμ§€λ§Œ, 이에 관계없이 Sass/Less/PostCSSκ°€ μ™„λ²½ν•˜κ²Œ μ§€μ›λ˜λ©° μ•žμœΌλ‘œ 이λ₯Ό μ‚¬μš©ν•˜λŠ” 더 λ§Žμ€ μ˜ˆμ œκ°€ μžˆμ„ κ²ƒμž…λ‹ˆλ‹€.
11) πŸ‘
12) gatsby-config.jsλŠ” Gatsbyλ₯Ό μ„€μ •ν•˜κΈ° μœ„ν•œ κ²ƒμž…λ‹ˆλ‹€. gatsby-node/gatsby-browser/gatsby-ssr은 νŽ˜μ΄μ§€ 생성, 슬러그 생성을 μœ„ν•œ 데이터 처리, 경둜 λ³€κ²½ μ‹œ λΈŒλΌμš°μ €μ— 뢄석 μΆ”κ°€ λ“±κ³Ό 같은 μž‘μ—…μ„ μˆ˜ν–‰ν•˜κΈ° μœ„ν•΄ λ‹€μ–‘ν•œ Gatsby API(ν•„μš”μ— 따라)λ₯Ό κ΅¬ν˜„ν•˜κΈ° μœ„ν•œ κ²ƒμž…λ‹ˆλ‹€.

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