Suneditor: Classic Mode์—์„œ ํˆด๋ฐ” ์œ„์น˜ ๋ณ€๊ฒฝ

Created on 17 Jun 2020  ยท  16Comments  ยท  Source: JiHong88/SunEditor

React์—์„œ suneditor-react
Classic ๋ชจ๋“œ๋กœ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ํˆด๋ฐ” ์œ„์น˜๋ฅผ ์—๋””ํ„ฐ ์ž…๋ ฅํ•˜๋Š” ์ปจํ…์ธ  ๋ถ€๋ถ„๊ณผ ๋–จ์–ด๋œจ๋ ค์„œ ํŽ˜์ด์ง€ ์ƒ๋‹จ์— ๊ณ ์ •ํ•˜๊ณ ์‹ถ์€๋ฐ
์ด์ฒ˜๋Ÿผ ํˆด๋ฐ”์— ๋Œ€ํ•œ ์Šคํƒ€์ผ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์˜ต์…˜์ด ๋”ฐ๋กœ ์žˆ์„๊นŒ์š”?

question

Most helpful comment

์Œ..๊ทธ๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ฐฐํฌํ• ๋•Œ๋Š” ์ ์šฉ์ด ์•ˆ๋˜์ง€ ์•Š์„๊นŒ์š”.
์ฐจ๋ผ๋ฆฌ ์ด ํŒจํ‚ค์ง€๋ฅผ react ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•˜๋Š”๊ฒŒ ์ข‹์„๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

All 16 comments

toolbarContainer ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ํ•ด๋‹น element ์•ˆ์— ํˆด๋ฐ”๊ฐ€ ์ƒ์„ฑ ๋ฉ๋‹ˆ๋‹ค.
element ์˜ ํด๋ž˜์Šค ์ด๋ฆ„์— 'sun-editor` ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

<div id="id" class="sun-editor"></div>
{toolbarContainer: '#id' or document.querySelector('#id')}

toolbarContainer ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ํ•ด๋‹น element ์•ˆ์— ํˆด๋ฐ”๊ฐ€ ์ƒ์„ฑ ๋ฉ๋‹ˆ๋‹ค.
element ์˜ ํด๋ž˜์Šค ์ด๋ฆ„์— 'sun-editor` ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

<div id="id" class="sun-editor"></div>
{toolbarContainer: '#id' or document.querySelector('#id')}

์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋•๋ถ„์— ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.
ํ˜น์‹œ ์ถ”๊ฐ€๋กœ ์งˆ๋ฌธ๋“œ๋ ค๋„ ๋ ๊นŒ์š”?

1.ํˆด๋ฐ”๋Š” 1๊ฐœ๋งŒ ์“ฐ๊ณ  ์ปจํ…์ธ ๋Š” 2๊ฐœ์ด์ƒ ์“ฐ๊ณ ์‹ถ์€๋ฐ ๋ฐฉ๋ฒ•์ด ์žˆ์„๊นŒ์š”? ์ฆ‰, ํˆด๋ฐ” 1๊ฐœ๋กœ ๊ฐ๊ฐ์˜ ์ปจํ…์ธ ์— ํšจ๊ณผ๋ฅผ ์ฃผ๋Š”๋ฐฉ์‹.

1๋ฒˆ์€ ํ˜„์žฌ ๊ตฌ์กฐ๋กœ๋Š” ๋ถˆ๊ฐ€๋Šฅ ํ•ฉ๋‹ˆ๋‹ค.
ํฌ์ปค์Šค ์ด๋ฒคํŠธ๋•Œ ๊ฐ๊ฐ์˜ ํˆด๋ฐ”๋ฅผ ์ˆจ๊ธฐ๊ฑฐ๋‚˜ (toolbar.[])
๋˜๋Š” ํฌ์ปค์Šค ์ด๋ฒคํŠธ๋•Œ toolbarContainer ๋ฅผ ์ˆจ๊ธฐ๋Š” ๊ฒƒ๋„ ๋ฐฉ๋ฒ•์ผ ์ˆ˜ ์žˆ๊ฒ ๋„ค์š”.

1๋ฒˆ์€ ํ˜„์žฌ ๊ตฌ์กฐ๋กœ๋Š” ๋ถˆ๊ฐ€๋Šฅ ํ•ฉ๋‹ˆ๋‹ค.
ํฌ์ปค์Šค ์ด๋ฒคํŠธ๋•Œ ๊ฐ๊ฐ์˜ ํˆด๋ฐ”๋ฅผ ์ˆจ๊ธฐ๊ฑฐ๋‚˜ (toolbar.[])
๋˜๋Š” ํฌ์ปค์Šค ์ด๋ฒคํŠธ๋•Œ toolbarContainer ๋ฅผ ์ˆจ๊ธฐ๋Š” ๊ฒƒ๋„ ๋ฐฉ๋ฒ•์ผ ์ˆ˜ ์žˆ๊ฒ ๋„ค์š”.

๊ฐ๊ฐ์˜ ํˆด๋ฐ”๋ฅผ ์ˆจ๊ธฐ๊ณ  ํฌ์ปค์Šค์ค‘์ธ ์—๋””ํ„ฐ์˜ ํˆด๋ฐ”๋ฅผ ๋…ธ์ถœ์‹œํ‚ค๋Š”๊ฑด ์„ฑ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ทผ๋ฐ <SunEditor/><SunEditor/> ์ด๋ ‡๊ฒŒ 2๊ฐœ์˜ ์ฌ์—๋””ํ„ฐ๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ์ฒซ๋ฒˆ์งธ ์ฌ์—๋””ํ„ฐ์—์„œ ์œ ์ง€๋˜๊ณ  ์žˆ๋Š”
์Šคํƒ€์ผ ๊ฐ’(ํˆด๋ฐ”)์˜ ๋‚ด์šฉ์„ ๋‘๋ฒˆ์งธ ์ฌ์—๋””ํ„ฐ์— defaultStyle ์†์„ฑ์œผ๋กœ ์ ์šฉํ•˜๊ณ ์‹ถ์€๋ฐ ๊ฐ€๋Šฅํ•œ ์ด๋ฒคํŠธ๊ฐ€ ์žˆ์„๊นŒ์š”?
์˜ต์…˜ ํŽ˜์ด์ง€๋ฅผ ์ฐธ๊ณ ์ค‘์ธ๋ฐ ๋ชป์ฐพ์•„์„œ ๋„์›€์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค~! ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

defaultStyle ์†์„ฑ์€ setDefaultStyle ํ•จ์ˆ˜๋กœ ๋ฐ”๊ฟ€์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

defaultStyle ์†์„ฑ์€ setDefaultStyle ํ•จ์ˆ˜๋กœ ๋ฐ”๊ฟ€์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋„ค ํ•ด๋‹น์˜ต์…˜์€ ์•Œ๊ณ ์žˆ๋Š”๋ฐ, 2๊ฐœ์˜ ์—๋””ํ„ฐ๊ฐ€ ์žˆ๋Š”๊ฒฝ์šฐ 1๋ฒˆ ์—๋””ํ„ฐ์— ์Šคํƒ€์ผ ์†์„ฑ์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์„๊นŒ์š”?
1๋ฒˆ ์—๋””ํ„ฐ์—์„œ Bold, fontSize:15 ๋กœ ์ž‘์„ฑ์ค‘์ด๋‹ค๊ฐ€ 2๋ฒˆ ์—๋””ํ„ฐ์—๋„ ์ž‘์„ฑ์„ ์‹œ์ž‘ํ• ๋•Œ ๋˜‘๊ฐ™์€ ์Šคํƒ€์ผ์„ ์œ ์ง€ํ•˜๊ณ  ์‹ถ์–ด์„œ์š”!

๋งŒ์•ฝ ๋งˆ์ง€๋ง‰์— ์ปค์„œ๊ฐ€ ์žˆ๋˜ ๋ผ์ธ์˜ ์Šคํƒ€์ผ์„ ์œ ์ง€ ํ•˜๋ ค๋ฉด, ํ˜„์žฌ ๋ผ์ธ์˜ ๋…ธ๋“œ์™€ ์Šคํƒ€์ผ ์ •๋ณด๋ฅผ ๋‹ค ํ™•์ธํ•œ ํ›„์— 2๋ฒˆ์—๋””ํ„ฐ์˜ ์ดˆ๊ธฐ HTML์„ ์„ธํŒ…ํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ•๋ฐ–์—๋Š” ์—†์Šต๋‹ˆ๋‹ค.

let currentNode = core.getSelectionNode() // ๊ฑฐ์˜ ํ…์ŠคํŠธ ๋…ธ๋“œ๊ฐ€ ์˜ค์ง€๋งŒ ํฌ๋งท์—˜๋ฆฌ๋จผํŠธ๊ฐ€ ์˜ฌ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
const tags = [core.util.createElement('br')]

while (!core.util.isFormatElement(currentNode)) {
  if (currentNode.nodeType === 1) {
    tags.push(currentNode.cloneNode(false))
  }
  currentNode = currentNode.parentElement
}
tags.push(currentNode.cloneNode(false))

const init = tags.pop();
while (tags.length > 0) {
  init.appendChild(tags.pop())
}

editor2.setContents(init.outerHTML)

ํ…Œ์ŠคํŠธ ํ•ด๋ณด์ง„ ์•Š์•˜์ง€๋งŒ, ์ด๋Ÿฐ์‹์œผ๋กœ.. ํ˜„์žฌ ์œ„์น˜์—์„œ ํฌ๋งท๊นŒ์ง€ ๋…ธ๋“œ๋ฅผ ๋ณต์‚ฌํ•˜์—ฌ setContents ํ•จ์ˆ˜๋กœ ๋„ฃ์–ด ์ฃผ์„ธ์š”.

getSelectionNode

์ •๋ง ๋น ๋ฅธ ํ”ผ๋“œ๋ฐฑ์œผ๋กœ ๋„์›€์„ ์ฃผ์…”์„œ ๋„ˆ๋ฌด ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๋•๋ถ„์— ํฐ ๋„์›€์„ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค.
๋งˆ์ง€๋ง‰์œผ๋กœ ์งˆ๋ฌธ๋“œ๋ ค๋„ ๋ ๊นŒ์š”?(์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค)

์—๋””ํ„ฐ์— ๊ธ€์ž์˜ ๊ฐœ์ˆ˜, ํŒŒ์ผ์˜ ํฌ๊ธฐ์™€ ์ƒ๊ด€์—†์ด A4 ์šฉ์ง€์˜ ํฌ๊ธฐ์— ๋งž๊ฒŒ๋งŒ ์ž…๋ ฅ์„ ๋ฐ›๊ณ ์‹ถ์€๋ฐ A4์šฉ์ง€์˜ height๊ฐ€ 250mm๋ผ๊ณ  ํ•˜์˜€์„ ๊ฒฝ์šฐ char, byte, html ํฌ๊ธฐ ์ œํ•œ์ด ์•„๋‹Œ ๋ผ์ธ์ˆ˜ ํ˜น์€ height ์ œํ•œ์„ ๊ฑธ์–ด์„œ ๋”ฑ A4์šฉ์ง€ ์ด์ƒ์„ ์ž‘์„ฑํ•  ์ˆ˜ ์—†๋„๋ก ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์„๊นŒ์š”? ํ…์ŠคํŠธ์™€ ๊ทธ๋ฆผ์„ ์ฒจ๋ถ€ํ•˜์—ฌ๋„ A4์šฉ์ง€ ์ด์ƒ์œผ๋กœ ๋„˜์–ด๊ฐ€์ง€ ์•Š๋„๋ก...(์—†๋‹ค๋ฉด ์ถ”์ฒœํ•˜์‹œ๋Š” ๋ฐฉ์‹์ด ์žˆ์œผ์‹ ์ง€..)

๋ฐ”์˜์‹ ๋ฐ ์‹œ๊ฐ„๋‚ด์ฃผ์…”์„œ ์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋„์›€์ด ๋๋‹ค๋‹ˆ ๋‹คํ–‰์ด๋„ค์š”^^
ํ˜„์žฌ๋Š” change ๋‚˜ input ์ด๋ฒคํŠธ๋•Œ๋งˆ๋‹ค ์—๋””ํ„ฐ์˜ ๋†’์ด๋ฅผ ํ™•์ธํ•ด์„œ ๊ธฐ์ค€์„ ๋„˜์–ด๊ฐ€๋ฉด ๊ฒฝ๊ณ ์ฐฝ์„ ๋„์šฐ๊ฑฐ๋‚˜ ํ•  ์ˆ˜ ์žˆ๊ณ ..
๊ฒฝ๊ณ ์ฐฝ: noticeOpen('message'), noticeClose()

ํŠนํžˆ ํ•œ๊ธ€์€ ์ž…๋ ฅ์ด ๋œ ํ›„์— keyDown ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•ด์„œ ํฌ๊ธฐ ์ œํ•œ ์‹œ์—๋„ ์ž…๋ ฅ๋œ ๋ฌธ์ž๋ฅผ ์ง€์›Œ์ฃผ๋Š” ์‹์œผ๋กœ ๊ตฌํ˜„ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์™„์ „ํ•˜๊ฒŒ ๊ตฌํ˜„ํ•˜๊ธฐ๋Š” ์–ด๋ ค์šธ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

editor.onInput = (e, core) {
  const data = (e.data === null ? '' : e.data === undefined ? ' ' : e.data) || ''
  core._getCharLength(data, 'char') // ํ˜„์žฌ ๊ธ€์ž์ˆ˜
  core.context.element.wysiwygFrame.offsetHeight // ์—๋””ํ„ฐ ๋†’์ด
}

์˜ค๋ฒ„๋œ ๊ธ€์ž๋ฅผ ์ง€์šฐ๊ณ  ์‹ถ์œผ๋ฉด ์—ฌ๊ธฐ ์ฝ”๋“œ๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”. https://github.com/JiHong88/SunEditor/blob/master/src/lib/core.js#L4298
์—๋””ํ„ฐ์—์„œ ํฌ๊ธฐ์ œํ•œ์„ ๋ฒ—์–ด๋‚œ ๋ฌธ์ž๋ฅผ ์‚ญ์ œํ•˜๋Š” ์ฝ”๋“œ ์ž…๋‹ˆ๋‹ค.

๋„์›€์ด ๋๋‹ค๋‹ˆ ๋‹คํ–‰์ด๋„ค์š”^^
ํ˜„์žฌ๋Š” change ๋‚˜ input ์ด๋ฒคํŠธ๋•Œ๋งˆ๋‹ค ์—๋””ํ„ฐ์˜ ๋†’์ด๋ฅผ ํ™•์ธํ•ด์„œ ๊ธฐ์ค€์„ ๋„˜์–ด๊ฐ€๋ฉด ๊ฒฝ๊ณ ์ฐฝ์„ ๋„์šฐ๊ฑฐ๋‚˜ ํ•  ์ˆ˜ ์žˆ๊ณ ..
๊ฒฝ๊ณ ์ฐฝ: noticeOpen('message'), noticeClose()

ํŠนํžˆ ํ•œ๊ธ€์€ ์ž…๋ ฅ์ด ๋œ ํ›„์— keyDown ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•ด์„œ ํฌ๊ธฐ ์ œํ•œ ์‹œ์—๋„ ์ž…๋ ฅ๋œ ๋ฌธ์ž๋ฅผ ์ง€์›Œ์ฃผ๋Š” ์‹์œผ๋กœ ๊ตฌํ˜„ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์™„์ „ํ•˜๊ฒŒ ๊ตฌํ˜„ํ•˜๊ธฐ๋Š” ์–ด๋ ค์šธ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

editor.onInput = (e, core) {
  const data = (e.data === null ? '' : e.data === undefined ? ' ' : e.data) || ''
  core._getCharLength(data, 'char') // ํ˜„์žฌ ๊ธ€์ž์ˆ˜
  core.context.element.wysiwygFrame.offsetHeight // ์—๋””ํ„ฐ ๋†’์ด
}

์˜ค๋ฒ„๋œ ๊ธ€์ž๋ฅผ ์ง€์šฐ๊ณ  ์‹ถ์œผ๋ฉด ์—ฌ๊ธฐ ์ฝ”๋“œ๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”. https://github.com/JiHong88/SunEditor/blob/master/src/lib/core.js#L4298
์—๋””ํ„ฐ์—์„œ ํฌ๊ธฐ์ œํ•œ์„ ๋ฒ—์–ด๋‚œ ๋ฌธ์ž๋ฅผ ์‚ญ์ œํ•˜๋Š” ์ฝ”๋“œ ์ž…๋‹ˆ๋‹ค.

์—๋””ํ„ฐ ๋†’์ด๊ตฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค!
๊ทผ๋ฐ ๋ฆฌ์•กํŠธ์—์„  onInput ์ด๋ฒคํŠธ์— e ์ด๋ฒคํŠธ ๊ฐ์ฒด๋งŒ ๋“ค์–ด์˜ค๊ณ  core๋ผ๋Š” ๊ฐ’์€ ์—†๋Š”๋ฐ
์–ด๋–ป๊ฒŒ ์ ์šฉํ• ์ˆ˜ ์žˆ๋Š”๊ฑด๊ฐ€์š”?

์Œ.. ์ฝ”๋“œ๋ฅผ ๋ณด๋‹ˆ๊นŒ ์ผ๋ถ€๋Ÿฌ ๋„˜๊ธฐ์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™๋„ค์š”.
suneditor-react ๋Š” ์ œ๊ฐ€ ๊ด€๋ฆฌํ•˜์ง€ ์•Š์•„์„œใ… 
core ๊ฐ์ฒด๋ฅผ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€, https://github.com/mkhstar/suneditor-react ์—ฌ๊ธฐ ์ด์Šˆ๋ฅผ ๋‚จ๊ฒจ์ฃผ์„ธ์š”.

์Œ.. ์ฝ”๋“œ๋ฅผ ๋ณด๋‹ˆ๊นŒ ์ผ๋ถ€๋Ÿฌ ๋„˜๊ธฐ์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™๋„ค์š”.
suneditor-react ๋Š” ์ œ๊ฐ€ ๊ด€๋ฆฌํ•˜์ง€ ์•Š์•„์„œใ… 
core ๊ฐ์ฒด๋ฅผ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€, https://github.com/mkhstar/suneditor-react ์—ฌ๊ธฐ ์ด์Šˆ๋ฅผ ๋‚จ๊ฒจ์ฃผ์„ธ์š”.

๋„ค ์ด์Šˆ ๋‚จ๊ฒจ๋†“์•˜๋Š”๋ฐ, ์ œ๊ฐ€ node_modules ๋‚ด๋ถ€์—์„œ core ๊ฐ์ฒด๋ฅผ ๋„˜๊ธฐ๋„๋ก ์ปค์Šคํ…€ํ•ด์„œ ์‚ฌ์šฉํ•ด๋„ ๊ดœ์ฐฎ์€๊ฑด๊ฐ€์š” ํ˜น์‹œ?

์Œ..๊ทธ๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ฐฐํฌํ• ๋•Œ๋Š” ์ ์šฉ์ด ์•ˆ๋˜์ง€ ์•Š์„๊นŒ์š”.
์ฐจ๋ผ๋ฆฌ ์ด ํŒจํ‚ค์ง€๋ฅผ react ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•˜๋Š”๊ฒŒ ์ข‹์„๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์Œ..๊ทธ๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ฐฐํฌํ• ๋•Œ๋Š” ์ ์šฉ์ด ์•ˆ๋˜์ง€ ์•Š์„๊นŒ์š”.
์ฐจ๋ผ๋ฆฌ ์ด ํŒจํ‚ค์ง€๋ฅผ react ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•˜๋Š”๊ฒŒ ์ข‹์„๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ผ๋‹จ ๋‚จ๊ฒจ๋†“์€ ์ด์Šˆ์— ๋‹ต๋ณ€์ด ๋‹ฌ๋ฆฐ ํ›„์— core๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•œ๋‹ค๋ฉด ํ•ด๋‹น ๋ฐฉ๋ฒ•๋„ ๊ณ ๋ คํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค!

https://choyongjoon.com/patch-package/
ํ˜น์€, ์œ„ ๋งํฌ์— ๋ฐฉ๋ฒ•์ด ๋ฌธ์ œ๊ฐ€ ์•ˆ๋œ๋‹ค๋ฉด ์œ„ ๋‚ด์šฉ์œผ๋กœ ์‹œ๋„ํ•ด๋ณด๊ณ , ๋ผ์ด์„ผ์Šค๋“ฑ์— ๋ฌธ์ œ๊ฐ€ ๋  ๊ฒฝ์šฐ์—”
๋ง์”€ํ•˜์‹  ๊ฒƒ์ฒ˜๋Ÿผ ์ด ํŒจํ‚ค์ง€๋ฅผ ์ ์šฉํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๋ฐฉ๋ฒ•์ด ์žˆ์—ˆ๊ตฐ์š”.
๊ฐ„๋‹จํ•˜๊ฒŒ ๋˜๊ฒ ๋„ค์š”.
์›๋ณธ์ด MIT ๋ผ์ด์„ ์Šค์ด๋‹ˆ ๋ฌธ์ œ๋Š” ์—†์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๋ฐฉ๋ฒ•์ด ์žˆ์—ˆ๊ตฐ์š”.
๊ฐ„๋‹จํ•˜๊ฒŒ ๋˜๊ฒ ๋„ค์š”.
์›๋ณธ์ด MIT ๋ผ์ด์„ ์Šค์ด๋‹ˆ ๋ฌธ์ œ๋Š” ์—†์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋„ค ์šฐ์„ , ์ปค์Šคํ…€ํ•˜์ง€์•Š๊ณ  core๋ฅผ ์“ธ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ๊ฐ€์žฅ์ข‹์œผ๋‹ˆ ์ด์Šˆ์— ๋Œ€ํ•œ ๋‹ต๋ณ€์„ ๊ธฐ๋‹ค๋ ค๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค!
์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

drnkwati picture drnkwati  ยท  6Comments

redone80 picture redone80  ยท  4Comments

guido-visser picture guido-visser  ยท  3Comments

chbin05 picture chbin05  ยท  3Comments

crying2812 picture crying2812  ยท  3Comments