Skip to main content

๋‹ค์ด์–ด๊ทธ๋žจ ๋งŒ๋“ค๊ธฐ

์ฐจํŠธ ๋ฐ ๊ทธ๋ž˜ํ”„๋ฅผ ํ†ตํ•ด ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋‹ค์ด์–ด๊ทธ๋žจ ๋งŒ๋“ค๊ธฐ

๋ˆ„๊ฐ€ ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

Markdown์€ GitHub ์›น ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์ด์–ด๊ทธ๋žจ ๋งŒ๋“ค๊ธฐ ์ •๋ณด

Mermaid, geoJSON, topoJSON, ASCII STL์˜ ๋„ค ๊ฐ€์ง€ ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ Markdown์œผ๋กœ ๋‹ค์ด์–ด๊ทธ๋žจ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์ด์–ด๊ทธ๋žจ ๋ Œ๋”๋ง์€ GitHub Issues, GitHub Discussions, ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ, wiki ๋ฐ Markdown ํŒŒ์ผ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Mermaid ๋‹ค์ด์–ด๊ทธ๋žจ ๋งŒ๋“ค๊ธฐ

Mermaid๋Š” Markdown์—์„œ ์˜๊ฐ์„ ๋ฐ›์€ ๋„๊ตฌ๋กœ, ํ…์ŠคํŠธ๋ฅผ ๋‹ค์ด์–ด๊ทธ๋žจ์œผ๋กœ ๋ Œ๋”๋งํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Mermaid๋Š” ์ˆœ์„œ๋„, ์‹œํ€€์Šค ๋‹ค์ด์–ด๊ทธ๋žจ, ์›ํ˜• ์ฐจํŠธ ๋“ฑ์„ ๋ Œ๋”๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ์ •๋ณด๋Š” Mermaid ์„ค๋ช…์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

Mermaid ๋‹ค์ด์–ด๊ทธ๋žจ์„ ๋งŒ๋“ค๋ ค๋ฉด mermaid ์–ธ์–ด ์‹๋ณ„์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŽœ์‹ฑ๋œ ์ฝ”๋“œ ๋ธ”๋ก ๋‚ด์— Mermaid ๊ตฌ๋ฌธ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ ๋ธ”๋ก ๋งŒ๋“ค๊ธฐ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋Š” ์ฝ”๋“œ ๋ธ”๋ก ๋งŒ๋“ค๊ธฐ ๋ฐ ๊ฐ•์กฐ ํ‘œ์‹œ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

์˜ˆ๋ฅผ ๋“ค์–ด ๊ฐ’๊ณผ ํ™”์‚ดํ‘œ๋ฅผ ์ง€์ •ํ•˜์—ฌ ํ๋ฆ„๋„๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Here is a simple flow chart:

```mermaid
graph TD;
    A-->B;
    A-->C;
    B-->D;
    C-->D;
```

A, B, C, D๋ผ๋Š” ๋ ˆ์ด๋ธ”์ด ์ง€์ •๋œ 4๊ฐœ์˜ ๋ผ๋ฒค๋”์ƒ‰ ์ƒ์ž๊ฐ€ ์žˆ๋Š” ๋ Œ๋”๋ง๋œ ๋จธ๋ฉ”์ด๋“œ ํ”Œ๋กœ์ฐจํŠธ์˜ ์Šคํฌ๋ฆฐ์ƒท. ํ™”์‚ดํ‘œ๋Š” A์—์„œ B๋กœ, B์—์„œ D๋กœ, A์—์„œ C๋กœ, C์—์„œ D๋กœ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ  ํ•ญ๋ชฉ

GitHub์—์„œ Mermaid ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•  ๋•Œ ํƒ€์‚ฌ Mermaid ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‹คํ–‰ํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Mermaid ๋ฒ„์ „ ํ™•์ธ

GitHub์ด(๊ฐ€) Mermaid ๊ตฌ๋ฌธ์„ ์ง€์›ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ํ˜„์žฌ ์‚ฌ์šฉ ์ค‘์ธ Mermaid ๋ฒ„์ „์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

```mermaid
  info
```

GeoJSON ๋ฐ TopoJSON ๋งต ๋งŒ๋“ค๊ธฐ

GeoJSON ๋˜๋Š” TopoJSON ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋Œ€ํ™”ํ˜• ๋งต์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งต์„ ๋งŒ๋“ค๋ ค๋ฉด geojson ๋˜๋Š” topojson ๊ตฌ๋ฌธ ์‹๋ณ„์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŽœ์‹ฑ๋œ ์ฝ”๋“œ ๋ธ”๋ก ๋‚ด์— GeoJSON ๋˜๋Š” TopoJSON์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ฝ”๋“œ ๋ธ”๋ก ๋งŒ๋“ค๊ธฐ ๋ฐ ๊ฐ•์กฐ ํ‘œ์‹œ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

GeoJSON ์‚ฌ์šฉ

์˜ˆ๋ฅผ ๋“ค์–ด ์ขŒํ‘œ๋ฅผ ์ง€์ •ํ•˜์—ฌ ๋งต์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

```geojson
{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "id": 1,
      "properties": {
        "ID": 0
      },
      "geometry": {
        "type": "Polygon",
        "coordinates": [
          [
              [-90,35],
              [-90,30],
              [-85,30],
              [-85,35],
              [-90,35]
          ]
        ]
      }
    }
  ]
}
```

์•Œ๋ผ๋ฐ”๋งˆ์™€ ๋ฏธ์‹œ์‹œํ”ผ ์ผ๋ถ€ ์ง€์—ญ์— ๋ณด๋ผ์ƒ‰ ์‚ฌ๊ฐํ˜• ์˜ค๋ฒ„๋ ˆ์ด๊ฐ€ ์žˆ๋Š” ๋‚จ๋™๋ถ€ ๋ฏธ๊ตญ์˜ ๋ Œ๋”๋ง๋œ GeoJSON ๋งต ์Šคํฌ๋ฆฐ์ƒท

TopoJSON ์‚ฌ์šฉ

์˜ˆ๋ฅผ ๋“ค์–ด ์ขŒํ‘œ ๋ฐ ์…ฐ์ดํ”„๋ฅผ ์ง€์ •ํ•˜์—ฌ TopoJSON ๋งต์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

```topojson
{
  "type": "Topology",
  "transform": {
    "scale": [0.0005000500050005, 0.00010001000100010001],
    "translate": [100, 0]
  },
  "objects": {
    "example": {
      "type": "GeometryCollection",
      "geometries": [
        {
          "type": "Point",
          "properties": {"prop0": "value0"},
          "coordinates": [4000, 5000]
        },
        {
          "type": "LineString",
          "properties": {"prop0": "value0", "prop1": 0},
          "arcs": [0]
        },
        {
          "type": "Polygon",
          "properties": {"prop0": "value0",
            "prop1": {"this": "that"}
          },
          "arcs": [[1]]
        }
      ]
    }
  },
  "arcs": [[[4000, 0], [1999, 9999], [2000, -9999], [2000, 9999]],[[0, 0], [0, 9999], [2000, 0], [0, -9999], [-2000, 0]]]
}
```

ํŒŒ๋ž€์ƒ‰ ์ , ๋ณด๋ผ์ƒ‰ ์ง์‚ฌ๊ฐํ˜• ์˜ค๋ฒ„๋ ˆ์ด, ํŒŒ๋ž€์ƒ‰ ์ง€๊ทธ์žฌ๊ทธ ์„ ์ด ์žˆ๋Š” ์ธ๋„๋„ค์‹œ์•„, ์‹ฑ๊ฐ€ํฌ๋ฅด, ๋ง๋ ˆ์ด์‹œ์•„ ์ง€์—ญ์˜ ๋ Œ๋”๋ง๋œ TopoJSON ์ง€๋„ ์Šคํฌ๋ฆฐ์ƒท.

.geojson ๋ฐ .topojson ํŒŒ์ผ ์ž‘์—…์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋Š” ์ฝ”๋“œ๊ฐ€ ์•„๋‹Œ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•œ ์ž‘์—…์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

STL 3D ๋ชจ๋ธ ๋งŒ๋“ค๊ธฐ

Markdown์—์„œ ์ง์ ‘ ASCII STL ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋Œ€ํ™”ํ˜• 3D ๋ชจ๋ธ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋ธ์„ ํ‘œ์‹œํ•˜๋ ค๋ฉด stl ๊ตฌ๋ฌธ ์‹๋ณ„์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŽœ์‹ฑ๋œ ์ฝ”๋“œ ๋ธ”๋ก ๋‚ด์— ASCII STL ๊ตฌ๋ฌธ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ฝ”๋“œ ๋ธ”๋ก ๋งŒ๋“ค๊ธฐ ๋ฐ ๊ฐ•์กฐ ํ‘œ์‹œ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

์˜ˆ๋ฅผ ๋“ค์–ด ๊ฐ„๋‹จํ•œ 3D ๋ชจ๋ธ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

```stl
solid cube_corner
  facet normal 0.0 -1.0 0.0
    outer loop
      vertex 0.0 0.0 0.0
      vertex 1.0 0.0 0.0
      vertex 0.0 0.0 1.0
    endloop
  endfacet
  facet normal 0.0 0.0 -1.0
    outer loop
      vertex 0.0 0.0 0.0
      vertex 0.0 1.0 0.0
      vertex 1.0 0.0 0.0
    endloop
  endfacet
  facet normal -1.0 0.0 0.0
    outer loop
      vertex 0.0 0.0 0.0
      vertex 0.0 0.0 1.0
      vertex 0.0 1.0 0.0
    endloop
  endfacet
  facet normal 0.577 0.577 0.577
    outer loop
      vertex 1.0 0.0 0.0
      vertex 0.0 1.0 0.0
      vertex 0.0 0.0 1.0
    endloop
  endfacet
endsolid
```

๊ฒ€์€์ƒ‰ ์„ ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๊ฒฉ์ž ์œ„์— ์žˆ๋Š” ํŒŒ๋ž€์ƒ‰ ํ”ผ๋ผ๋ฏธ๋“œ์˜ 3D ๋ชจ๋ธ ์Šคํฌ๋ฆฐ์ƒท "์™€์ด์–ดํ”„๋ ˆ์ž„", "ํ‘œ๋ฉด ๊ฐ๋„" ๋˜๋Š” "๋‹จ์ƒ‰" ์˜ต์…˜์ด ํ•˜๋‹จ์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

.stl ํŒŒ์ผ ์ž‘์—…์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋Š” ์ฝ”๋“œ๊ฐ€ ์•„๋‹Œ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•œ ์ž‘์—…์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.