Skip to content

Team-threeI/ppthub-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

98 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

PPTHUB

PPTHUB๋Š” ๋‹ค๋ฅธ PPT ํŒŒ์ผ์„ ๋น„๊ตํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์›น ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ๋‘ ๊ฐœ์˜ PPT ํŒŒ์ผ์„ ๋น„๊ตํ•ด ๋‹ค๋ฅธ ๋ถ€๋ถ„์„ ์ฐพ์•„๋‚ด๊ณ , ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์„ ํƒํ•ด ์ƒˆ๋กœ์šด PPT ํŒŒ์ผ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Œž CONTENTS

๐Ÿ” Preview

ppthub

๐ŸŒ Tech Stacks

Client

JavaScript, React, Redux, Redux Toolkit, styled-components

Server

JavaScript, Node.js, Express.js, MongoDB & Mongoose, Amazon S3

Test

Jest, SuperTest, Cypress

Deployment

Netlify, AWS Elastic Beanstalk

๐Ÿ‘‹ Introduction

ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„

2022.10.10 ~ 2022.10.28 : 3์ฃผ

  • ์•„์ด๋””์–ด ๊ธฐํš, ๋ชฉ์—… ์ž‘์„ฑ, ์• ์ž์ผ ์Šคํ”„๋ฆฐํŠธ ํ”Œ๋žœ : 1์ฃผ
  • ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ, ๋ฐฐํฌ, ํ…Œ์ŠคํŠธ : 2์ฃผ

ํ”„๋กœ์ ํŠธ ๋™๊ธฐ

ํ”ผํ”ผํ‹ฐ ํŒŒ์ผ์„ ๋งŒ๋“ค๋•Œ ์ œ์ผ ์ค‘์š”ํ•œ ์š”์†Œ ์ค‘ ํ•˜๋‚˜๋Š” ๋ฐ”๋กœ ๋””์ž์ธ์ž…๋‹ˆ๋‹ค. ๋‚ด์šฉ์„ ํšจ๊ณผ์ ์œผ๋กœ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด์„œ ํ”ผํ”ผํ‹ฐ ์ œ์ž‘์‹œ์— ์–ด๋–ค ๋””์ž์ธ, ์–ด๋–ค ๊ตฌ์„ฑ์œผ๋กœ ์ „๋‹ฌ์„ ํ•ด์•ผ์ง€์— ๋Œ€ํ•ด์„œ ๋งŽ์€ ์‹œ๊ฐ„์„ ๋“ค์ž…๋‹ˆ๋‹ค. ์ด ๋””์ž์ธ์— ์žˆ์–ด์„œ ์–ด๋–ค ๋””์ž์ธ์ด ๋งˆ์Œ์— ๋“œ๋Š”์ง€ ๋น„๊ตํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋Œ€๋ถ€๋ถ„ ์ด๋Ÿฌํ•œ ๊ณผ์ •์„ ์ทจํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋น„๊ตํ•  ์Šฌ๋ผ์ด๋” ๋‚ด์˜ ๋‚ด์šฉ์„ ๋ณต์‚ฌํ•˜๊ณ , ์›๋ณธ ์Šฌ๋ผ์ด๋” ์•ˆ์— ์žˆ๋Š” ๋‚ด์šฉ์„ ์‚ญ์ œํ•˜๊ณ , ์‚ญ์ œํ•  ์ž๋ฆฌ์— ๋น„๊ตํ•  ๋‚ด์šฉ์„ ๋ถ™์—ฌ ๋†“๊ณ , ๋ง˜์— ๋“ค์ง€ ์•Š์œผ๋ฉด ๋˜๋Œ๋ฆฌ๋Š” ์ž‘์—….

ํ•˜๋‚˜์˜ ๋‚ด์šฉ์„ ๋น„๊ตํ•˜๊ธฐ ์œ„ํ•ด์„œ ์œ„์™€ ๊ฐ™์€ ์ž‘์—…์„ ๊ฑฐ์˜ ์ง„ํ–‰์„ ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ข€ ๋” ์ข‹์€ ๋””์ž์ธ์„ ์œ„ํ•ด ํ”ผํ”ผํ‹ฐ๋ฅผ ๋งŒ๋“œ๋Š” ์‚ฌ๋žŒ๋“ค์€ ๋งŽ์€ ์‹œ๊ฐ„์„ ์จ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋งŒ์•ฝ ์ด๋Ÿฌํ•œ ์ž‘์—…์„ ํ•œ ํ™”๋ฉด ์•ˆ์—์„œ ํ•œ๋ฒˆ์— ๋น„๊ต ํ•ด์ค„ ์ˆ˜ ์žˆ์œผ๋ฉด ํ”ผํ”ผํ‹ฐ ๋งŒ๋“œ๋Š” ์‚ฌ๋žŒ์—๊ฒŒ ๋” ํŽธํ•ด์ง€์ง€ ์•Š์„๊นŒ? ๊ทธ๋ฆฌ๊ณ  ํŒ€ํ”„๋กœ์ ํŠธ์— ์žˆ์–ด์„œ ์„œ๋กœ ๋‹ค๋ฅธ ํ”ผํ”ผํ‹ฐ ๋””์ž์ธ์„ ์ œ์ž‘ํ•  ๋•Œ ์–ด๋–ค ๋””์ž์ธ์ด ๋” ์˜ˆ์œ์ง€ ํ•œ๋ฒˆ์— ํ™•์ธ ๊ฐ€๋Šฅํ•˜์ง€ ์•Š์„๊นŒ? ๋ผ๋Š” ์ƒ๊ฐ์„ ํ•˜๊ฒŒ๋˜์–ด ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ๊ธฐํšํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ํ”„๋กœ์„ธ์Šค

  • ์•„์ด๋””์–ด ๊ธฐํš
  • ๊ธฐ์ˆ  ์Šคํƒ ๊ฒ€ํ† 
  • MockUp ์„ค๊ณ„
  • MongoDb๋ฅผ ์ด์šฉํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค Schema ์„ค๊ณ„
  • Agile Sprint ๊ธฐ๋ฐ˜์˜ ํ…Œ์Šคํฌ ๋งค๋‹ˆ์ง€๋จผํŠธ
  • Git Repo๋ฅผ Client [Frontend]์™€ Server [Backend]๋กœ ๊ฐ๊ฐ ๊ตฌ๋ถ„ํ•˜์—ฌ ๋…๋ฆฝ์ ์œผ๋กœ ๊ด€๋ฆฌ

๐Ÿ”— Links

Deploy

Github Repositories

๐Ÿ“ธ Feature

  • ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์ดํŠธ์— ํ™•์žฅ์ž๋ช…์ด .pptx์ธ PPT ์›๋ณธ ํŒŒ์ผ, ๋น„๊ต๋ณธ ํŒŒ์ผ์„ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜์ง€ ์•Š์€ PPT๋ฅผ ๋“ฑ๋กํ–ˆ์„ ๊ฒฝ์šฐ ๋˜๋Œ๋ฆฌ๊ธฐ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ์ทจ์†Œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ์ž๋Š” ์›๋ณธ ๋น„๊ต๋ณธ์—์„œ ์–ด๋–ค ๋ถ€๋ถ„์ด ๋‹ฌ๋ผ์กŒ๋Š”์ง€ ํ•œ๋ฒˆ์— ํ™•์ธ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
    • ์Šฌ๋ผ์ด๋“œ๊ฐ€ ์ถ”๊ฐ€๋˜๊ฑฐ๋‚˜ ์‚ญ์ œ๋œ ๊ฒฝ์šฐ : ์Šฌ๋ผ์ด๋“œ ์ „์ฒด์— ๋น—๊ธˆ์ฒ˜๋ฆฌ
    • ์Šฌ๋ผ์ด๋“œ ์•ˆ์˜ ์ปจํ…์ธ ๊ฐ€ ์ถ”๊ฐ€๋˜๊ฑฐ๋‚˜ ์‚ญ์ œ ๋œ ๊ฒฝ์šฐ : ์Šฌ๋ผ์ด๋“œ ๋‚ด์šฉ ์•ˆ์— ์ฒ˜๋ฆฌ
  • ์‚ฌ์šฉ์ž๋Š” ์ž์‹ ์ด ์›ํ•˜๋Š” ๋‚ด์šฉ๋งŒ PPT์— ์ถ”๊ฐ€๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. EX) ์ถ”๊ฐ€ - ๋…น์ƒ‰, ์‚ญ์ œ - ๋นจ๊ฐ•
  • ์‚ฌ์šฉ์ž๊ฐ€ ์ตœ์ข… ์„ ํƒ ๋œ ๋‚ด์šฉ์„ ๊ฐ€์ง€๊ณ  PPT๋ฅผ ์ƒˆ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค์šด๋กœ๋“œ ํŽ˜์ด์ง€๋กœ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๊ฒŒ ๋˜๋ฉด ๋‹ค์šด๋กœ๋“œ ํŽ˜์ด์ง€๋กœ ์ด๋™ ๋ฐ ๋งํฌ๊ฐ€ ํด๋ฆฝ๋ณด๋“œ์— ์ €์žฅ์ด ๋ฉ๋‹ˆ๋‹ค.
  • ๋‹ค์šด๋กœ๋“œ ํŽ˜์ด์ง€์—์„œ ์ƒˆ๋กœ ๋งŒ๋“ค์–ด์ง„ PPT๋ฅผ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ ํ•˜๋ฃจ ๋™์•ˆ ํด๋ฆฝ๋ณด๋“œ์— ์ €์žฅ ๋œ ๋งํฌ๋กœ ๋‹ค์šด๋กœ๋“œ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ด ํŒŒ์ผ์„ ๋‹ค์šด ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
mainpage ready
๋ฉ”์ธ ํŽ˜์ด์ง€ ์ค€๋น„ ํ™”๋ฉด
๋น„๊ตํŽ˜์ด์ง€ ๋‹ค์šด๋กœ๋“œํŽ˜์ด์ง€
์„ ํƒ ํ™”๋ฉด ๋‹ค์šด๋กœ๋“œ ํŽ˜์ด์ง€

๐Ÿ”ย Challenges

โšก๏ธ ์–ด๋–ป๊ฒŒ PPT ํŒŒ์ผ์„ javascript์—์„œ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ์„ ๊นŒ?(parsing)

1. ์Šฌ๋ผ์ด๋“œ ๋‚ด๋ถ€ Data ์ ‘๊ทผํ•˜๊ธฐ

  • .pptx ํŒŒ์ผ์€, ๊ฐ xml ํŒŒ์ผ๋“ค์ด ๋ชจ์ธ ํ•˜๋‚˜์˜ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์••์ถ•๋œ ํŒŒ์ผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • xml์€, html๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ element๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ, ์ž์‹ - ๋ถ€๋ชจ ๊ด€๊ณ„๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
  • xml์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด, xml ๋ฐ์ดํ„ฐ๋ฅผ ๋ฌธ์ž์—ดํ™”ํ•ด์„œ ๊ทธ๋Œ€๋กœ ํ•ด์„ํ•ด๊ฑฐ๋‚˜ html์ฒ˜๋Ÿผ DOM์œผ๋กœ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์•ˆ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํ•˜์ง€๋งŒ DOM์œผ๋กœ ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์ด ์กฐ๊ธˆ ๋” ์นœ์ˆ™ํ•˜๋ฉด์„œ ์šฉ์ดํ•œ ๋ฐฉ์‹์œผ๋กœ ์ƒ๊ฐ๋˜์–ด ํ•ด๋‹น ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • DOM์œผ๋กœ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•ด์„œ, ๋ฌธ์ž์—ดํ™” ๋œ xml data๋ฅผ javascript์˜ DOMParser(parseFromString method)๋ฅผ ์ด์šฉํ•˜์—ฌ DOM ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • DOM์œผ๋กœ ์ ‘๊ทผํ•  ์‹œ, querySelector ๋ฐ querySelectorAll ๊ณผ ๊ฐ™์€ DOM method๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์šฉ์ดํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ๊ธฐ์กด์— ์กด์žฌํ•˜๋Š” .pptx ๋ฐ XML Parsing ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋Œ€์‹ , ์ €ํฌ์˜ ์ž์ฒด parsing์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์„œ๋ฒ„(nodejs)๊ฐ€ ์•„๋‹Œ ํด๋ผ์ด์–ธํŠธ(browser) ํ™˜๊ฒฝ์—์„œ parsing์„ ๊ตฌํ˜„ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

2. ๊ตฌ์ฒด์ ์ธ ์„ธ๋ถ€ ๋ฐ์ดํ„ฐ ์ถ”์ถœํ•˜๊ธฐ

  • ๊ฐ ์Šฌ๋ผ์ด๋“œ๋งˆ๋‹ค ํ•˜๋‚˜์˜ xml ํŒŒ์ผ์„ ๊ฐ€์ง€๋ฉฐ, ๋‚ด๋ถ€์˜ ์š”์†Œ๋“ค๊ณผ ๊ทธ ์ •๋ณด๋“ค์„ ํฌํ•จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋‚ด๋ถ€ ์š”์†Œ๋“ค์€ ๊ฐ๊ฐ์˜ tag ์ด๋ฆ„์œผ๋กœ ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, Text Box์˜ ๊ฒฝ์šฐ p:sp tagName์„, ์ด๋ฏธ์ง€์˜ ๊ฒฝ์šฐ p:pic tagName์„ ๊ฐ–์Šต๋‹ˆ๋‹ค.
  • ๊ฐ ์š”์†Œ ๋งˆ๋‹ค ๋‚ด๋ถ€์˜ ์†์„ฑ๊ฐ’์ด ๋‹ฌ๋ผ, ๊ณตํ†ต๋œ ์†์„ฑ๊ฐ’์„ ์ œ์™ธํ•œ ๊ฐ ๊ฐœ๋ณ„ ์†์„ฑ๊ฐ’์„ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ถ”์ถœํ•˜์˜€์Šต๋‹ˆ๋‹ค. Text Box ์š”์†Œ์˜ ๊ฒฝ์šฐ, Text Box ๊ณ ์œ ์˜ ์†์„ฑ(text ๋‚ด์šฉ, ๊ตต๊ธฐ, ์ƒ‰์ƒ, italic ๋“ฑ)์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด ๋‚ด๋ถ€ ์š”์†Œ๋ฅผ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐ ์š”์†Œ์— ๋Œ€ํ•ด์„œ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•˜๋Š” ๊ฒฝ์šฐ, ๊ฐ ์š”์†Œ๋งˆ๋‹ค ํŠน์ • ์†์„ฑ๋“ค์„ ํŒŒ์•…ํ•ด ์ด๋ฅผ ๋ฐ์ดํ„ฐํ™”ํ•˜์—ฌ ํ‘œํ˜„ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
  • ๊ทธ๋Ÿฌ๋‚˜ PPT ํŒŒ์ผ์˜ ๋ชจ๋“  ์ˆ˜๋งŽ์€ ์š”์†Œ๋“ค(ํ…์ŠคํŠธ, ์ด๋ฏธ์ง€, ๋„ํ˜•, ๊ทธ๋ž˜ํ”„ ๋“ฑ)์— ๋Œ€ํ•ด ์ด์™€ ๊ฐ™์€ ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๊ธฐ๋Š” ์‹œ๊ฐ„ ๋ฌธ์ œ ์ƒ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ํŒ๋‹จํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ๊ทธ๋ฆฌํ•˜์—ฌ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์š”์†Œ์ธ, ํ…์ŠคํŠธ์™€ ์ด๋ฏธ์ง€ ์š”์†Œ๋งŒ์„ ์ถ”์ถœํ•˜๋Š” ๊ฒƒ์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

โšก๏ธย ๋‘ ๊ฐœ์˜ PPT ํŒŒ์ผ์„ ์–ด๋–ป๊ฒŒ ๋น„๊ตํ•  ์ˆ˜ ์žˆ์„๊นŒ?(diffing)

1. ๋น„๊ต ๋Œ€์ƒ ์Šฌ๋ผ์ด๋“œ ์„ ํƒํ•˜๊ธฐ

  • ์ €ํฌ๊ฐ€ diffing์—์„œ ๊ฐ€์žฅ ๊ณ ์‹ฌํ•˜์˜€๋˜ ๋ถ€๋ถ„์€, ๋‘ ๊ฐœ์˜ PPT์—์„œ ์–ด๋–ค ์Šฌ๋ผ์ด๋“œ๋“ค์ด ๋น„๊ต๊ฐ€ ๋˜์–ด์•ผํ•˜๋Š” ์ง€ ์˜€์Šต๋‹ˆ๋‹ค.
  • ์™„์ „ํžˆ ์ผ์น˜ํ•˜๋Š” ์Šฌ๋ผ์ด๋“œ๋งŒ์ด ์•„๋‹Œ, ์ผ๋ถ€ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ๋ฐœ์ƒํ•œ ์Šฌ๋ผ์ด๋“œ๋„ ๋น„๊ต๊ฐ€ ์ด๋ฃจ์–ด์ ธ์•ผํ•˜์˜€๊ณ , ์ €ํฌ๋Š” โ€˜์–ด๋А์ •๋„๊นŒ์ง€์˜ ์Šฌ๋ผ์ด๋“œ ๋ณ€๊ฒฝ๋ฅ ์ด, ์ผ์น˜๋˜๋Š” ์Šฌ๋ผ์ด๋“œ๋ผ๊ณ  ๋ด์•ผํ• ๊นŒ?โ€™ ๋ผ๋Š” ๊ณ ๋ฏผ์— ๋น ์ง€๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์Šฌ๋ผ์ด๋“œ๋งˆ๋‹ค, ๊ธฐ์ค€์œผ๋กœ ์ •ํ•œ ์ตœ์†Œ ์ผ์น˜์œจ์„ ๋งŒ์กฑํ•˜๋Š” ๊ฒฝ์šฐ์— ๋งค์นญ์ด ๋˜๋Š” ์Šฌ๋ผ์ด๋“œ๋กœ ํŒ๋‹จํ•˜๋Š” ๋ฐฉ์‹์„ ์ฒ˜์Œ์œผ๋กœ ์ƒ๊ฐํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ๋‹ค๋งŒ ํ•ด๋‹น ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ, ํ•˜๋‚˜์˜ ์Šฌ๋ผ์ด๋“œ๋งˆ๋‹ค ๋น„๊ต ํŒŒ์ผ์˜ ์Šฌ๋ผ์ด๋“œ๋“ค์„ ์ „๋ถ€ ์กฐํšŒํ•ด์•ผํ•˜๋ฏ€๋กœ ๊ทธ ๊ณผ์ •์—์„œ O(n)์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ–๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด ๊ณ ๋ฏผ์ด์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋‹จ์ˆœํžˆ ์Šฌ๋ผ์ด๋“œ๋งˆ๋‹ค index๋ฅผ ๋งค๊ฒจ, ๊ฐ™์€ index์˜ ๋‘ ์Šฌ๋ผ์ด๋“œ๋งŒ์„ ๋น„๊ตํ•˜๋Š” ๊ฒƒ์€, ์Šฌ๋ผ์ด๋“œ ์ˆœ์„œ๊ฐ€ ๋’ค๋ฐ”๋€Œ๊ฑฐ๋‚˜ ์ค‘๊ฐ„์— ์Šฌ๋ผ์ด๋“œ๊ฐ€ ์ถ”๊ฐ€๋˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๋Œ€์‘ํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
  • ๋‹ค๋ฅธ ๋ฐฉ์•ˆ์œผ๋กœ, ๋ฆฌ์•กํŠธ ๋‚ด์—์„œ ์ž์‹ ์š”์†Œ๋“ค์„ map method๋ฅผ ์ด์šฉํ•ด ๋ Œ๋”๋ง ํ•˜๋Š” ๊ฒฝ์šฐ์—, key ๊ฐ’์„ ์ด์šฉํ•ด ๊ตฌ๋ถ„ํ•˜๋Š” ๊ฒƒ์— ์ฐฉ์•ˆํ•ด ๊ฐœ๋ณ„ ์Šฌ๋ผ์ด๋“œ์— ๋ถ€์—ฌ๋˜๋Š” ๊ณ ์œ ํ•œ ๊ฐ’์„ ์ถ”์ถœํ•˜๋Š” ๋ฐฉ์•ˆ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ณ ์œ ํ•œ ๊ฐ’์˜ ๊ฒฝ์šฐ, ์Šฌ๋ผ์ด๋“œ๊ฐ€ ๋ณต์‚ฌ๋˜๋Š” ๊ฒฝ์šฐ ์ƒˆ๋กœ ๋ถ€์—ฌ๋˜์–ด์•ผํ•˜๋ฉฐ, ๋ฐ˜๋Œ€๋กœ ํŒŒ์ผ์ด ๋ณต์‚ฌ๋˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๊ทธ ๊ฐ’์ด ์œ ์ง€๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์Šฌ๋ผ์ด๋“œ์— ๋ถ€์—ฌ๋˜๋Š” ์—ฌ๋Ÿฌ ์†์„ฑ ๊ฐ’๋“ค ์ค‘, ํ•ด๋‹น ์กฐ๊ฑด์— ๋ถ€ํ•ฉํ•˜๋Š” ๊ณ ์œ ํ•œ ๊ฐ’(p:creationId ํƒœ๊ทธ ๊ฐ’)์„ ์‚ฌ์šฉํ•ด ๋™์ผ ์Šฌ๋ผ์ด๋“œ๋ฅผ ๋งค์นญํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํ•ด๋‹น ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ, ์ผ์น˜ํ•˜๋Š” ํ•˜๋‚˜์˜ slideId ๊ฐ’์„ ๊ฐ€์ง„ data๋ฅผ ์กฐํšŒํ•˜๋ฉด ๋˜๋ฏ€๋กœ ์‹œ๊ฐ„ ๋ณต์žก๋„ ๋ฉด์—์„œ๋„ ์œ ๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค. Map ์ž๋ฃŒํ˜•์„ ์ด์šฉํ•ด, ์ˆœํšŒ ์‹œ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ O(1)๋กœ ๊ฐ€์ ธ๊ฐˆ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

2. ๋น„๊ต ๊ฒฐ๊ณผ ๊ตฌ๋ถ„ํ•˜๊ธฐ

  • ๋น„๊ต ๋Œ€์ƒ์ด ๋  ์Šฌ๋ผ์ด๋“œ๋ฅผ ์„ ํƒ ํ›„, ์–ด๋–ป๊ฒŒ diffing๊นŒ์ง€ ์ด๋ฃจ์–ด ์งˆ ์ง€๋„ ๋˜ ํ•˜๋‚˜์˜ ๊ด€๊ฑด์ด์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋‹จ์ˆœํžˆ ๋‘ ๋Œ€์ƒ์„ ๋น„๊ตํ•˜๋Š” ๊ฒƒ์€ ๋‘ ๊ฐ’์ด ์ผ์น˜ํ•˜๋Š” ์ง€๋งŒ ํŒ๋ณ„ํ•˜๋ฉด ๋˜์ง€๋งŒ, ๊ทธ๊ฑธ ๊ฐ€๊ณตํ•˜๊ธฐ ํšจ์œจ์ ์ธ data๋กœ ์ •์˜ํ•˜๋Š” ๊ฒƒ์€ ์ƒ๊ฐ๋ณด๋‹ค ๋” ์–ด๋ ค์šด ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค.
  • diffing์ด ๋œ ๊ฒฐ๊ณผ๋Š”, react์—์„œ renderingํ•˜์—ฌ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ์–ด์•ผํ•˜๊ณ , merge๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ์—๋„ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ๋‘ ๊ฐ€์ง€ ์ž‘์—…์„ ์–ด๋–ป๊ฒŒ ์šฉ์ดํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์„ ์ง€๊ฐ€ ๊ด€๊ฑด์ด์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ž‘์—…์„ ์šฉ์ดํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด, ๋‘ ๊ฐœ์˜ PPT ํŒŒ์ผ์— ๊ฐ๊ฐ์˜ ์˜๋ฏธ๋ฅผ ๋‘์—ˆ์Šต๋‹ˆ๋‹ค. ๋‘ ๊ฐœ์˜ PPT ํŒŒ์ผ์„ ๊ธฐ์กด PPT / ๋ณ€๊ฒฝ ๋œ PPT๋กœ ๊ตฌ๋ถ„ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋‹จ์ˆœํžˆ ๋‘ PPT๋ฅผ ๋น„๊ตํ•˜๋Š” ๊ฐœ๋…๋ณด๋‹ค๋Š”, ๊ธฐ์กด PPT์™€ ๋ณ€๊ฒฝ ๋œ PPT๋ฅผ ๋น„๊ตํ•œ๋‹ค๋Š” ๊ฐœ๋…์œผ๋กœ ์ ‘๊ทผํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  ์ž์ฒด์ ์œผ๋กœ diffType์— ๊ด€ํ•œ ์ข…๋ฅ˜์™€ ๊ทœ๋ฒ”์„ ์ •์˜ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ธฐ์กด PPT ๋‚ด์—์„œ ๋น„๊ต ๋Œ€์ƒ์ด ๋  ์Šฌ๋ผ์ด๋“œ๊ฐ€ ์—†๋Š” ์Šฌ๋ผ์ด๋“œ๋Š” ์‚ญ์ œ๊ฐ€ ๋œ ์Šฌ๋ผ์ด๋“œ(deleted)๋กœ ํŒ๋ณ„ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ ๋œ PPT ๋‚ด์—์„œ ๋น„๊ต ๋Œ€์ƒ์ด ์—†์„ ๊ฒฝ์šฐ๋Š”, ์ถ”๊ฐ€ ๋œ(added) ์Šฌ๋ผ์ด๋“œ๋กœ ํŒ๋ณ„ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ๋น„๊ต ๋Œ€์ƒ์ด ์žˆ๋Š” ๊ฒฝ์šฐ, ์Šฌ๋ผ์ด๋“œ ๋‚ด๋ถ€ ์š”์†Œ๊ฐ€ ๋ชจ๋‘ ์ผ์น˜ํ•˜๋Š” ์ง€ ํŒ๋ณ„ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋‘ ์ผ์น˜ํ•˜๋ฉด ๋ณ€๊ฒฝ์ ์ด ์—†๋Š” ์Šฌ๋ผ์ด๋“œ(none)๋กœ ํŒ๋ณ„ํ•ฉ๋‹ˆ๋‹ค. ํ•œ ์š”์†Œ๋ผ๋„ ๋‹ฌ๋ผ์งˆ ๊ฒฝ์šฐ๋Š” ์ˆ˜์ • ๋œ ์Šฌ๋ผ์ด๋“œ(modified)๋กœ ํŒ๋ณ„ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์š”์†Œ์˜ ๊ฒฝ์šฐ, ์Šฌ๋ผ์ด๋“œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์š”์†Œ ๋‚ด ๊ณ ์œ ๊ฐ’์„ ์ถ”์ถœํ•˜์—ฌ ์ถ”๊ฐ€/์‚ญ์ œ/๋ณ€๊ฒฝ ์š”์†Œ๋ฅผ ํŒ๋ณ„ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ ์ด ๊ฒฝ์šฐ, ๋ณ€๊ฒฝ ๋œ ์š”์†Œ๋ฅผ ๋˜ ๋ณ€๊ฒฝ ์ „๊ณผ ํ›„๋ผ๋Š” diffType ์„ ์ •์˜ํ•ด ์ฃผ๊ฒŒ ๋˜์–ด ๋ถ„๊ธฐ๊ฐ€ ๋˜๋Š” ๋ถ€๋ถ„๋งˆ๋‹ค type์„ ์ถ”๊ฐ€ํ•˜๊ฒŒ ๋˜์–ด ์ฝ”๋“œ์˜ ๋ณต์žก์„ฑ์ด ๋Š˜์–ด๋‚˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฒฐ๊ตญ ์ˆ˜์ • ๋œ ์š”์†Œ์˜ ๊ฒฝ์šฐ ๊ธฐ์กด PPT ํŒŒ์ผ์—์„œ๋Š” ์‚ญ์ œ ๋œ ์š”์†Œ, ๋ณ€๊ฒฝ ๋œ PPT ํŒŒ์ผ์—์„œ๋Š” ์ถ”๊ฐ€ ๋œ ์š”์†Œ๋กœ ํŒ๋ณ„ํ•˜์—ฌ ์ž‘์—…์„ ๋‹จ์ˆœํ™”ํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์˜€์Šต๋‹ˆ๋‹ค.

โšก๏ธย ํ•˜๋‚˜์˜ PPT ํŒŒ์ผ๋กœ ํ•ฉ์น˜๊ธฐ(merge)

1. ๋ฌด์—‡์„ ํ•ฉ์น  ์ง€ ์„ ์ •ํ•˜๊ธฐ

  • ๋น„๊ต๊ฐ€ ๋œ ๋ฐ์ดํ„ฐ์—์„œ, ์‚ฌ์šฉ์ž๊ฐ€ ์„ ํƒํ•œ ํ•ญ๋ชฉ์„ ์ทจํ•ฉํ•ด ์ƒˆ๋กœ์šด PPT ํŒŒ์ผ๋กœ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ๋„ ๋˜ ํ•˜๋‚˜์˜ ์–ด๋ ค์› ๋˜ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค.
  • ์šฐ์„  ์‚ฌ์šฉ์ž๊ฐ€ ์–ด๋–ค data๋ฅผ ์„ ํƒํ•˜์˜€๋Š” ์ง€ ์•Œ ์ˆ˜ ์žˆ๊ฒŒํ•˜๋Š” ๊ฐ’์ด ํ•„์š”ํ•˜์—ฌ, diffData์—์„œ isChecked ํ”„๋กœํผํ‹ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  ์ฝ”๋“œ ๋ณต์žก์„ฑ์„ ์ค„์ด๊ธฐ ์œ„ํ•ด, isChecked์˜ ๊ฐ’์œผ๋กœ ๋‹จ์ˆœ boolean ๊ฐ’์„ ํ™œ์šฉํ•˜์—ฌ merge ๋˜๋Š” data๋ฅผ ์ฒดํฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ๋ณ€๊ฒฝ๋œ ์š”์†Œ์˜ ๊ฒฝ์šฐ, ๋‘ ์š”์†Œ ์ค‘ ์–ด๋–ค ์š”์†Œ๋ฅผ ํ•ฉ์น  ์ง€๋ฅผ ๋”ฐ๋กœ ์š”์†Œ์˜ id ๊ฐ’์œผ๋กœ ์ง€์ •ํ•˜์ง€ ์•Š๊ณ , true false ๊ฐ’์— ๋”ฐ๋ผ ๊ธฐ์กด PPT / ๋ณ€๊ฒฝ ๋œ PPT์˜ data๋ฅผ ์ทจํ•˜๋„๋ก ๋‹จ์ˆœํ™”ํ•˜์—ฌ ์ž‘์—…์ด ์กฐ๊ธˆ ๋” ์šฉ์ดํ•ด์ง€๋„๋ก ์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

2. ์ƒˆ๋กœ์šด PPT ๋งŒ๋“ค๊ธฐ

  • ๊ทธ ๋‹ค์Œ์€, merge data๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ƒˆ๋กœ์šด PPT ํŒŒ์ผ์„ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ œ๊ณตํ•ด์ฃผ์–ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ธฐ์กด์˜ ํŒŒ์ผ์„ ๊ฑด๋“œ๋ ค์„œ ์ˆ˜์ •๋œ .pptx ํŒŒ์ผ์„ ๊ทธ๋Œ€๋กœ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ฒซ ๋ฒˆ์งธ ๋ฐฉ์•ˆ์ด์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํ•˜์ง€๋งŒ ์Šฌ๋ผ์ด๋“œ์˜ ์ •๋ณด๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์€, ๋‹จ์ˆœํžˆ ํŒŒ์ผ์˜ ์ผ๋ถ€๋ถ„๋งŒ์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์Šฌ๋ผ์ด๋“œ ๋‚ด๋ถ€์˜ ์—ฌ๋Ÿฌ ํŒŒ์ผ ๋‚ด์šฉ๋“ค์„ ๋ฐ”๊พธ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•˜์Šต๋‹ˆ๋‹ค.
  • ํŒŒ์ผ์„ ๋‹จ์ˆœํžˆ ๋‚ด์šฉ๋งŒ ๋ฐ”๊พธ๊ฑฐ๋‚˜ ๋ฎ์–ด์“ฐ๊ธฐ๋ฅผ ํ•  ๊ฒฝ์šฐ, ํŒŒ์ผ ์ž์ฒด๊ฐ€ ๊นจ์ง€๋Š” ์ผ์ด ๋งŽ์•˜์Šต๋‹ˆ๋‹ค.
  • ํ•˜๋‚˜์˜ .pptx ํŒŒ์ผ์—๋Š” ์—ฌ๋Ÿฌ ๊ด€๊ณ„๋กœ ๋‘˜๋Ÿฌ์Œ“์ธ .xml ํŒŒ์ผ๋“ค์ด ์žˆ์–ด์„œ, ํ•œ ๋ถ€๋ถ„๋งŒ์ด ์•„๋‹Œ ๊ทธ์™€ ๊ด€๊ณ„๋œ data๊นŒ์ง€ ๋ณ€๊ฒฝํ•ด์ค„ ํ•„์š”๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํ•ด๋‹น ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ, ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„ ๋‚ด์— ์•ˆ์ •์ ์œผ๋กœ ํŒŒ์ผ ์ˆ˜์ • ๋กœ์ง์„ ์ž‘์„ฑํ•˜๊ธฐ์— ํž˜๋“ค ๊ฒƒ์ด๋ผ ํŒ๋‹จํ•˜์—ฌ, ์ƒˆ๋กœ์šด ํŒŒ์ผ์„ ๋งŒ๋“œ๋Š” ๋ฐฉ์•ˆ์„ ๋„์ถœํ•ด๋ƒˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฐ’์„ ์ž…๋ ฅํ•ด ์ƒˆ๋กœ์šด .pptx ํŒŒ์ผ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š”, PptxGenJs ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•ด ์ƒˆ๋กœ์šด PPT ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด ์‚ฌ์šฉ์ž์—๊ฒŒ ์ œ๊ณตํ•ด์ฃผ๋Š” ๋ฐฉ์•ˆ์„ ํƒํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ธฐ์กด์— ๊ฐ€๊ณตํ–ˆ๋˜ merge data๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ, ์ƒˆ๋กœ์šด PPT ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์ƒˆ๋กœ์šด PPT ํŒŒ์ผ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๋กœ์ง์„ ์ž‘์„ฑํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ”ฅย Issues

โšก๏ธ ์‚ฌ์šฉ์ž ๊ด€๋ฆฌ ์ด์Šˆ

์ด์Šˆ ๋‚ด์šฉ

  • ํ”„๋กœ์ ํŠธ์— ์‚ฌ์šฉ์ž ๊ด€๋ฆฌ๋ฅผ ์–ด๋–ป๊ฒŒ ํ•  ๊ฒƒ์ธ ์ง€์— ๋Œ€ํ•ด ๋…ผ์˜๊ฐ€ ๋ฐœ์ƒํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ์œ ์ € ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์œ ์ € ์ •๋ณด๋ฅผ ๊ธฐ์–ตํ•ด ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๊ณ , ๋˜๋Š” ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๊ณ  ํ•ต์‹ฌ์ ์ธ ์„œ๋น„์Šค ๋‚ด์šฉ์— ์ง‘์ค‘ํ•  ์ˆ˜๋„ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๋Œ€์•ˆ

  • ์šฐ์„  ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋” ๋งŽ์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๋ฐฉ์•ˆ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋‹ค๋งŒ ํ•œ์ •์ ์ธ ์‹œ๊ฐ„ ๋‚ด์— ๋” ๋งŽ์€ ๊ธฐ๋Šฅ๋“ค์„ ๊ฐ€์ ธ๊ฐ€๊ฒŒ ๋˜๋ฉด์„œ, ์›๋ž˜์˜ ํ•ต์‹ฌ ์„œ๋น„์Šค์˜ ์™„์„ฑ๋„๊ฐ€ ๋–จ์–ด์งˆ ์ˆ˜๋„ ์žˆ๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  ์ด์Šˆ๊ฐ€ ๋…ผ์˜๋˜์—ˆ๋˜ ์‹œ์  ๋‹น์‹œ, ์ž‘์„ฑ์ด ์–ด๋А์ •๋„ ์ง„ํ–‰๋˜์—ˆ๋˜ mockup, ์œ ์ € ํ”Œ๋กœ์šฐ, api docs ๋“ฑ์„ ์ˆ˜์ •ํ•ด์•ผ ํ•ด, ๊ทธ๋งŒํผ ํ”„๋กœ์ ํŠธ ์ง„ํ–‰์ด ์ง€์ฒด๋  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

  • ์œ ์ € ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์„ ๋„ฃ์ง€ ์•Š๊ณ , cookie๋ฅผ ๋ฐœ๊ธ‰ํ•˜์—ฌ ๊ฒŒ์ŠคํŠธ ์œ ์ €๋ฅผ ๊ธฐ์–ตํ•˜๋Š” ๋ฐฉ์•ˆ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ์ž๊ฐ€ ์ ‘์† ์‹œ, DB์—์„œ ๋งŒ๋ฃŒ์‹œ๊ฐ„์ด ์งง์€ ์œ ์ € ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•ด, ๊ทธ id๊ฐ’์œผ๋กœ ์œ ์ €๋ฅผ ๊ธฐ์–ตํ•˜๊ณ  ๊ตฌ๋ถ„ํ•˜๋„๋ก ์‹œ๋„ํ•˜๋ ค๊ณ  ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ์œ„์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํ•ต์‹ฌ ์„œ๋น„์Šค์— ๋Œ€ํ•ด์„œ ์™„์„ฑ๋„๊ฐ€ ๋–จ์–ด์ง€๊ฒŒ ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์œ ์ € ๊ด€๋ฆฌ ๋ฐฉ์•ˆ์— ๋Œ€ํ•œ ์กฐ์‚ฌ ๋ฐ ๊ธฐ์ˆ  ๊ตฌํ˜„์ด ์ถฉ๋ถ„์น˜ ์•Š๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

  • ๋กœ๊ทธ์ธ ํ˜น์€ ๋‚ด ํŒŒ์ผ๋ณด๊ธฐ ๊ธฐ๋Šฅ์„ ๋„ฃ์ง€ ์•Š๊ณ , download page ๋งํฌ๋ฅผ ๋”ฐ๋กœ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๋ฐฉ์•ˆ๋„ ์ œ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ์ž๋Š” url ์ •๋ณด๋ฅผ ๊ฐ–๊ณ  ์žˆ์œผ๋ฉด, ์–ธ์ œ๋“ ์ง€ ํŒŒ์ผ๋“ค์„ ๋‹ค์‹œ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ์œ ์ € ๊ด€๋ฆฌ์— ๋Œ€ํ•œ DB ์ถ”๊ฐ€๋‚ด์šฉ ์ž‘์„ฑ ๋ฐ ๋ถ€์ˆ˜์ ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„๋ณด๋‹ค, ๋ณธ ํ”„๋กœ์ ํŠธ ๋‚ด์šฉ์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ

  • ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์„ ์ œ์™ธํ•˜๋Š” ๋Œ€์‹ , download page url์„ ํ†ตํ•ด ์ž‘์—…ํ•œ ํŒŒ์ผ์„ ๊ธฐ์–ตํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ์œ ์ €๋ฅผ ๊ธฐ์–ตํ•˜์—ฌ ์ž‘์—…ํ–ˆ๋˜ ํŒŒ์ผ๋“ค์„ ์ €์žฅํ•ด ๋ณด์—ฌ์ฃผ๋Š” ๊ธฐ๋Šฅ์„ ๊ฐ€์ ธ๊ฐ€์ง€ ๋ชปํ•˜์˜€์ง€๋งŒ, ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์™€ ๊ณต์œ ํ•˜๊ฑฐ๋‚˜ url๋กœ ์ €์žฅํ•  ์ˆ˜ ์žˆ๊ฒŒ ๊ธฐ๋Šฅ์„ ๋„์ž…ํ•˜๋„๋ก ๊ฒฐ์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • โ€˜์ž‘์—…ํ•œ ํŒŒ์ผ์„ ๋‹ค์‹œ ๋‚ด๋ ค๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.โ€™๋ผ๋Š” ์›๋ž˜์˜ ์•„์ด๋””์–ด ๋ชฉํ‘œ๋ฅผ ๊ฐ€์ ธ๊ฐ€๋ฉด์„œ, ๊ธฐ๋Šฅ์„ ๊ฑฐ์˜ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ทธ์— ๋”ฐ๋ผ์„œ ๋ถ€๊ฐ€์ ์ธ ๋ถ€๋ถ„์— ๋Œ€ํ•œ ๊ธฐ๋Šฅ ์ˆ˜๊ณ ๋ฅผ ๋œ ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๊ณ , ํ•ต์‹ฌ์ ์ธ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

โšก๏ธ ์ƒํƒœ ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋„์ž… ์ด์Šˆ

์ด์Šˆ ๋‚ด์šฉ

  • ๋‘ PPT ํŒŒ์ผ์˜ ์ฐจ์ด๋ฅผ ๋‚˜ํƒ€๋‚ธ Diff data๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” ๊ณผ์ •์—์„œ, ํ•ด๋‹น ์ด์Šˆ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ํ•˜๋‚˜์˜ Diff data๋ฅผ ์Šฌ๋ผ์ด๋“œ ๋ทฐ์–ด์—์„œ๋„, ์šฐ์ธก Selection Bar์—์„œ๋„ ๊ณตํ†ต์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์ „์—ญ ์ƒํƒœ ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋„์ž…์˜ ์ค‘์š”์„ฑ์„ ๋А๋ผ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ƒํƒœ ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํ•„์š”ํ•  ์ง€, ๋˜ ์–ด๋–ค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋„์ž…ํ•˜๋ฉด ์ข‹์„ ์ง€์— ๋Œ€ํ•ด ๋…ผ์˜๊ฐ€ ์ด๋ฃจ์–ด์ง€๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋Œ€์•ˆ

  • React-query์™€ Recoil์„ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ์•ˆ์ด ๋…ผ์˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ƒํƒœ ๊ด€๋ฆฌ๋ฅผ ํด๋ผ์ด์–ธํŠธ ์ƒํƒœ์™€ ์„œ๋ฒ„ ์ƒํƒœ ๋‘ ๊ฐ€์ง€์˜ ๊ฐœ๋…์œผ๋กœ ๋‚˜๋ˆ„๋Š” ๊ฐœ๋…์œผ๋กœ ์ ‘๊ทผํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ์„œ๋ฒ„ ์ƒํƒœ ๊ด€๋ฆฌ๋ฅผ react-query๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ, data๋ฅผ ํ•ญ์ƒ ์ตœ์‹  ์ƒํƒœ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  PPT ์Šฌ๋ผ์ด๋“œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ง€๋‚˜์น˜๊ฒŒ ๋งŽ์€ ๊ฒฝ์šฐ ๋กœ๋”ฉ ์‹œ๊ฐ„์ด ๊ธธ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ pagination ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•ด ๋ณผ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํด๋ผ์ด์–ธํŠธ ์ƒํƒœ ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š”, Recoil์„ ์‚ฌ์šฉํ•˜์—ฌ ๋น„๊ต์  ์‚ฌ์šฉ๋ฒ•์ด ๊ฐ„๋‹จํ•˜๊ณ , ๋ฌด๊ฒ์ง€ ์•Š์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์•ˆ์œผ๋กœ ๋…ผ์˜๊ฐ€ ์ด๋ฃจ์–ด์กŒ์Šต๋‹ˆ๋‹ค.
  • ๋‹ค๋งŒ react-query๋ฅผ ์‚ฌ์šฉํ•  ์ •๋„๋กœ ํ•ญ์ƒ ์ตœ์‹ ์˜ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•  ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋‹ˆ๋ผ๋Š” ์ , pptx ํŒŒ์‹ฑ์„ ํด๋ผ์ด์–ธํŠธ์—์„œ ์ง์ ‘ ์ˆ˜ํ–‰ํ•˜์—ฌ pagination์„ ์‚ฌ์šฉํ•  ์ผ์ด ์—†๋˜ ๊ฒƒ์ด ๋‹จ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํ˜„์žฌ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ ๋ถ€๋ถ„์€ DiffData์˜ ์ „์—ญ ์ƒํƒœ ๊ด€๋ฆฌ์ด๋ฏ€๋กœ, ์ด์— ์ง‘์ค‘ํ•œ๋‹ค๋ฉด Recoil์ด ์ ํ•ฉํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ๊ฐ€์— ๋Œ€ํ•œ ์˜๋ฌธ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

  • ๊ทธ ๋‹ค์Œ์€ Redux๋ฅผ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ์•ˆ์ด ๋…ผ์˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Redux์˜ flux ํŒจํ„ด์„ ์ƒํƒœ๊ด€๋ฆฌ์— ํ™œ์šฉํ•ด๋ณผ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ DiffData๋Š” Slide๋ฅผ check/uncheck ํ•ด์ฃผ๋Š” ์•ก์…˜๊ณผ ์š”์†Œ๋ฅผ chekck/uncheck ํ•ด์ฃผ๋Š” ์•ก์…˜์„ ํ†ตํ•ด, DiffData๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํŒ๋‹จํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  check ์ƒํƒœ ๋ฟ์•„๋‹ˆ๋ผ, hover์™€ ๊ฐ™์€ ์ถ”๊ฐ€์ ์ธ ๊ธฐ๋Šฅ๋„ ์•ก์…˜์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์šฉ์ดํ•˜๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜๋„ ์žˆ๋‹ค๊ณ  ํŒ๋‹จํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • Redux๋Š” ํƒ€ ์ƒํƒœ ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๋น„๊ตํ•ด, ๋ถˆํ•„์š”ํ•œ boilerplate ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š” ํŽธ์ด๋ผ redux-toolkit์„ ์‚ฌ์šฉํ•˜๋Š” ๋ถ€๋ถ„์„ ๊ฒ€ํ† ํ•˜์˜€์Šต๋‹ˆ๋‹ค. reducer๋“ค๊ณผ ์•ก์…˜ ์ƒ์„ฑํ•จ์ˆ˜๋ฅผ ๋ฒˆ๊ฑฐ๋กญ๊ฒŒ ๋งŒ๋“ค ํ•„์š”๊ฐ€ ์—†์ด ์ž์ฒด ๋ฉ”์„œ๋“œ๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ

  • Redux๋ฅผ ์ด์šฉํ•ด ์ „์—ญ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • redux-toolkit์˜ ์‚ฌ์šฉ์œผ๋กœ boilerplate ์ฝ”๋“œ ์ž‘์„ฑ์„ ์ค„์ผ ์ˆ˜ ์žˆ๋„๋ก ๊ฒฐ์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

โšก๏ธ PPT ํŒŒ์ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์ด์Šˆ

์ด์Šˆ ๋‚ด์šฉ

  • ๊ณ ํ™”์งˆ ์‚ฌ์ง„ ๋“ฑ ์šฉ๋Ÿ‰์ด ํฐ PPT์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ MongoDB์— ์ €์žฅํ•  ์ˆ˜ ์—†๋Š” ์ด์Šˆ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • MongoDB์˜ ์ •์ฑ… ์ƒ, document ํ•˜๋‚˜์˜ ํฌ๊ธฐ๊ฐ€ย ์ตœ๋Œ€ 16MB๋กœ ์ œํ•œ๋˜๊ณ  ๊ทธ ์ด์ƒ์€ ๋ฌด์‹œํ•˜๊ฒŒ ๋˜์–ด ํ•ด๋‹น ์ด์Šˆ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๋Œ€์•ˆ

  • ๋ฐ์ดํ„ฐ๋ฅผ ์••์ถ•ํ•ด์„œ DB์— ์ €์žฅํ•˜์ž๋Š” ์˜๊ฒฌ์ด ๋…ผ์˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํ•˜์ง€๋งŒ MongoDB์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ด์œ ๋Š” Server์—์„œ PPT๋“ค์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋น„๊ตํ•˜๊ณ , mergeํ•˜๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•จ์ธ๋ฐ, ๋ฐ์ดํ„ฐ๋ฅผ ์••์ถ•ํ•œ๋‹ค๋ฉด ๋‹ค์‹œ ๋ถˆ๋Ÿฌ์™€์„œ ์••์ถ• ํ•ด์ œํ•˜๋Š” ์ถ”๊ฐ€์ ์ธ ์‹œ๊ฐ„์ด ์†Œ๋ชจ๋  ๊ฒƒ์ด๋ผ ํŒ๋‹จํ•˜์˜€์Šต๋‹ˆ๋‹ค.

  • ๊ฐ๊ฐ ๊ฐœ๋ณ„ ์Šฌ๋ผ์ด๋“œ๋ฅผ ์ €์žฅํ•˜์—ฌ, PPT Data์—์„œ๋Š” Slide Id ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ์•ˆ์ด ๋…ผ์˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Slide๋“ค์„ ๊ฐœ๋ณ„์ ์œผ๋กœ ์ €์žฅํ•˜๋Š” ๋ฐฉ์•ˆ ์—ญ์‹œ ๋งŽ์€ ์–‘์˜ Slide๋“ค์ด ๋“ค์–ด๊ฐ€๋ฉด ์ปฌ๋ ‰์…˜ ์ž์ฒด ์šฉ๋Ÿ‰์„ ์ดˆ๊ณผํ•˜๋Š” ๋ฆฌ์Šคํฌ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํ•˜์ง€๋งŒ ๋ฐ์ดํ„ฐ์˜ ๋งŒ๋ฃŒ์‹œ๊ฐ„์„ ์„ค์ •ํ•ด, ํšจ์œจ์ ์œผ๋กœ ์šฉ๋Ÿ‰์„ ๊ด€๋ฆฌํ•˜๋„๋ก ๊ฒฐ์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค. CronJob์œผ๋กœ ์Šค์ผ€์ฅด ๊ด€๋ฆฌ๋ฅผ ํ•ด์„œ ์ฃผ๊ธฐ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜๋„๋ก ๊ฒฐ์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ

  • ๊ฐ๊ฐ ๊ฐœ๋ณ„ ์Šฌ๋ผ์ด๋“œ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” PPTSlide ์ปฌ๋ ‰์…˜์„ ๋‘์–ด PPT ์ปฌ๋ ‰์…˜์— ํ•ด๋‹น ์Šฌ๋ผ์ด๋“œ document๋“ค์˜ id๋“ค์„ ๋‘๋Š” ๋ฐฉ์•ˆ์œผ๋กœ ๊ฒฐ์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ๊ฐ ๋ฐ์ดํ„ฐ๋“ค์€ ๋‹ค๋Œ€๋‹ค ๊ด€๊ณ„๋ฅผ ํ˜•์„ฑํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด ํ›„ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ฌ ๋•Œ, populate ๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ „์ฒด PPT ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋„๋ก ๊ฒฐ์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๐ŸŽฅ Execute

Reauirements

  • ์ตœ์‹  ๋ฒ„์ „์˜ Chrome Browser ์‚ฌ์šฉ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.
  • Local์—์„œ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์ „ ์ค€๋น„๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

Installation

  • Frontend Root ๋””๋ ‰ํ† ๋ฆฌ์— .env ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ , ๋‹ค์Œ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    REACT_APP_API_SERVER_URL = 
    REACT_APP_CLIENT_URL =
    REACT_APP_SAMPLE_ORIGINAL_FILE_URL =
    REACT_APP_SAMPLE_COMPARABLE_FILE_URL =
    
    $ git clone https://github.com/Team-threeI/ppthub-client.git
    $ cd ppthub-client
    $ npm install
    $ npm start
    
  • Backend

    Root ๋””๋ ‰ํ† ๋ฆฌ์— .env ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ , ๋‹ค์Œ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    MONGODB_URL = 
    PORT =
    AWS_ACCESS_KEY_ID =
    AWS_SECRET_ACCESS_KEY =
    AWS_REGION =
    AWS_BUCKET =
    
    git clone https://github.com/Team-threeI/ppthub-server.git
    cd ppthub-server
    npm install
    npm start
    

๐Ÿค Memoirs

๊ณต์žฌํ˜ โ€œํŒ€ ํ”„๋กœ์ ํŠธ๊ฐ€ ๊ฐ€์žฅ ํž˜๋“ค๊ณ , ๊ฐ€์žฅ ์žฌ๋ฐŒ์–ด์š”โ€œ. ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ €ํ•œํ…Œ ํŒ€ ํ”„๋กœ์ ํŠธ๊ฐ€ ์–ด๋–ค์ง€ ์•Œ๋ ค๋‹ฌ๋ผ๊ณ  ํ–ˆ์„ ๋•Œ, ์ด๋Ÿฐ ๋ง์„ ํ•ด์ค€ ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ฒ˜์Œ ์ด ์–˜๊ธฐ๋ฅผ ๋“ค์—ˆ์„ ๋•Œ๋Š” โ€˜์ •๋ง ๊ทธ๋Ÿฐ๊ฐ€..?โ€™ ํ•˜๋Š” ์ƒ๊ฐ์ด์—ˆ๋Š”๋ฐ, ์ง€๊ธˆ์€ ์—„์ฒญ ๊ณต๊ฐํ•˜๋Š” ๋ง์ด ๋˜์—ˆ๋„ค์š”.

์ฒ˜์Œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ, ppt ํŒŒ์ผ์„ ์–ด๋–ป๊ฒŒ ์ฝ๊ณ , ๋ณด์—ฌ์ฃผ๊ณ , ๋น„๊ตํ•˜๊ณ , ํ•ฉ์น˜๊ธฐ? ํ•˜๋ฉฐ ๋ง‰๋ง‰ํ•ด ํ–ˆ๋˜ ๊ธฐ์–ต์ด ๋– ์˜ค๋ฅด๊ฒŒ ๋˜๋„ค์š”.

์ €ํฌ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋Œ€๋‹จํžˆ ์ƒˆ๋กœ์šด ๊ธฐ์ˆ ์ด๋‚˜ ์–ด๋ ค์šด ๊ธฐ์ˆ  ์Šคํƒ์„ ์“ฐ์ง€๋Š” ์•Š์•˜๋Š”๋ฐ์š”. ๋‹ค๋งŒ ์ €ํฌ์—๊ฒŒ๋Š” ppt ํŒŒ์ผ์„ ์ž˜ ๋‹ค๋ฃจ์–ด์„œ, ๊ทธ๊ฑธ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ฃผ๋Š” ๊ณผ์ •์ด ์ €ํฌ์—๊ฒŒ๋Š” ํ•˜๋‚˜์˜ ์ฑŒ๋ฆฐ์ง€๋กœ ๋‹ค๊ฐ€์™”์Šต๋‹ˆ๋‹ค.

ppt ํŒŒ์ผ์„ ํ•ด์„ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์งœ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์ง€ ์•Š๋‹ค๋ณด๋‹ˆ, ๊ธฐ์กด์— ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋‚ด๋ถ€ ์ฝ”๋“œ๋“ค์„ ๋งŽ์ด ์ฐธ๊ณ ํ•˜์˜€๋Š”๋ฐ์š”.

์•„์ง์€ ์ €ํฌ์—๊ฒŒ ์ƒ์†Œํ•œ Typescript ์ฝ”๋“œ๋„ ๋งŽ์ด ๋ด์•ผํ–ˆ๊ณ , ์–ด๋–ค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋Œ€๋งŒ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž‘์„ฑํ•ด์„œ ๋Œ€๋งŒ์–ด๋กœ ์ฃผ์„์ด ์ ํ˜€์žˆ์–ด์„œ ๋ฒˆ์—ญ๊ธฐ๋ฅผ ์—ด์‹ฌํžˆ ์ฐธ์กฐํ–ˆ๋˜ ๊ธฐ์–ต์ด ์žˆ์Šต๋‹ˆ๋‹ค.

PPT ํŒŒ์ผ์˜ ๊ตฌ์„ฑ์ด ์ ํžŒ ์˜ค๋ž˜๋œ ์›น์‚ฌ์ดํŠธ ํ•˜๋‚˜๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์„ ๋•Œ๋Š”, ์ •๋ง ๊ธฐ๋ปค์—ˆ๋˜ ๊ธฐ์–ต์ด ๋‚˜๋„ค์š”.

๊ทธ๋งŒํผ ์ด๊ณณ ์ €๊ณณ์˜ ์ฝ”๋“œ์™€ ๋ช…์„ธ๋ฅผ ๋งŽ์ด ์ฐธ์กฐํ•˜๊ฒŒ ๋˜์—ˆ๊ณ , ๋•๋ถ„์— ์–ด๋А์ •๋„์˜ ๊ฒฐ๊ณผ๋ฌผ์ด ๋‚˜์˜ค๊ฒŒ ๋œ ๊ฒƒ ๊ฐ™์•„ ๋ฟŒ๋“ฏํ–ˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ํŒ€์œผ๋กœ์„œ ์ง„ํ–‰ํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋‹ค๋ณด๋‹ˆ, ๊ฐ์ž ์ƒ๊ฐ์ด ๋‹ค ๋‹ค๋ฅธ ์ ๋“ค์„ ํ•˜๋‚˜๋กœ ๋ชจ์œผ๋Š” ๊ณผ์ •์ด ์‰ฝ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์— ๋ฒ„ํŠผ์„ ๋„ฃ๊ณ , ์–ด๋–ค ์–ด๋–ค ์‹์˜ ํ”Œ๋กœ์šฐ๋ฅผ ์งœ๋ฉด ๋  ๊ฒƒ ๊ฐ™์•„์š”!๋ผ๊ณ  ์„œ๋กœ ํ•ฉ์˜๊ฐ€ ๋˜์–ด๋„, ๋ง‰์ƒ mock up ํ™”๋ฉด์„ ์ž‘์„ฑํ•  ๋•Œ๋Š” ์„œ๋กœ ์ƒ๊ฐ์ด ๋‹ฌ๋ž์Œ์„ ํ™•์ธ ํ•œ ์ ๋„ ๋งŽ๊ณ , ํšŒ์˜ ์ค‘์— ์„œ๋กœ ์ฒ™์ฒ™ ํ•ฉ์ด ์ž˜๋งž๋Š” ๊ตฌ๋‚˜! ๋ผ๊ณ  ์ƒ๊ฐํ•ด๋„ ์•Œ๊ณ ๋ณด๋‹ˆ ์„œ๋กœ ๊ฐ์ž ์–˜๊ธฐ๋งŒ์„ ๋งํ•˜๋ฉด์„œ๋„ ์„œ๋กœ ํ†ตํ–ˆ๋‹ค๊ณ  ๋А๊ผˆ์—ˆ๋˜ ์ ๋„ ๋งŽ์•˜์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ํŒ€ ํ”„๋กœ์ ํŠธ๋Š” ์ƒ๊ฐ๋ณด๋‹ค ๊ฝค ๊ตฌ์ฒด์ ์œผ๋กœ ์˜๊ฒฌ์„ ์ผ์น˜์‹œ์ผœ๋‚˜๊ฐ€์•ผ ํ•œ๋‹ค๊ณ  ๋А๊ผˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์ž๊ฐ€ ํ•  ์ผ์„ ๋ถ„๋‹ดํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ, ๊ฒฐ๊ตญ ๋ชจ๋‘๊ฐ€ ํ•˜๋‚˜์˜ ํฐ ์ผ์˜ ์ผ๋ถ€๋ถ„๋งŒ์„ ํ•˜๋Š” ๊ฒƒ์ด๋‹ˆ๊นŒ์š”.

์‚ฌ์†Œํ•œ ๋ถ€๋ถ„ ํ•˜๋‚˜ํ•˜๋‚˜ ์„œ๋กœ ํ™•์ธํ•˜๊ณ , ์•ˆ๋งž๋Š” ๋ถ€๋ถ„์€ ์˜๊ฒฌ์„ ๋งž์ถ”๋ ค๊ณ  ๋…ธ๋ ฅํ•ด์•ผํ•จ์„ ๋А๋ผ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์•„๋ฌด๋ฆฌ ์ž‘์€ ๋ถ€๋ถ„์—์„œ๋ผ๋„, ๊ทธ๋ƒฅ ๋„˜์–ด๊ฐ€๊ฑฐ๋‚˜ โ€˜๋‹ค์Œ์— ๊ฒฐ์ •ํ•˜์ฃ โ€™ ๋ผ๋Š” ์–˜๊ธฐ๊ฐ€ ๋˜๋ฉด ๊ฒฐ๊ตญ ๋‚˜์ค‘์—๋Š” ์† ์“ฐ๊ธฐ๊ฐ€ ํž˜๋“ค ์ •๋„์˜ ์ƒํƒœ๊ฐ€ ๋Œ์•„์˜ฌ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ๋„ ์ž˜ ์•Œ๊ฒŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ฐœ์ธ์ ์œผ๋กœ ๊ฐ€์žฅ ํž˜๋“ค์—ˆ๋˜๊ฑด, ๋‚ด๊ฐ€ ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ๋งˆ๋ฌด๋ฆฌ ํ•  ์ˆ˜ ์žˆ์„๊นŒ? ํ•˜๋Š” ๋ถ€๋‹ด๊ฐ์ด์—ˆ๋Š”๋ฐ์š”. ์•„๋ฌด๋ฆฌ ๊ธฐ์ˆ  ์กฐ์‚ฌ๋ฅผ ์—ด์‹ฌํžˆํ•˜๊ณ , POC๋ฅผ ํ•ด๋„ ์•„์ง ์™„์ „ํ•˜์ง€ ์•Š์€ ๋ถ€๋ถ„์ด ๋‚จ์•„์žˆ์„ ์ˆ˜ ๋ฐ–์— ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ ์ƒํ™ฉ์—์„œ ์ง„ํ–‰ํ•˜๊ธฐ๋กœ ํ–ˆ๋˜ flow์— ์„œ๋กœ ์ƒ๊ฐ์ด ๋‹ฌ๋ผ, ๋ฐฉํ–ฅ์ด ์™„์ „ํžˆ ํ‹€์–ด์งˆ ๋ป”ํ•œ ์ ์ด ์žˆ์—ˆ๋Š”๋ฐ์š”. ์ •๋ง ๊ธฐ์ˆ  ์กฐ์‚ฌ๋ฅผ ๊ฒจ์šฐ ํ•œ ๋ถ€๋ถ„์—์„œ์กฐ์ฐจ flow๊ฐ€ ํ‹€์–ด์ ธ๋ฒ„๋ฆฌ๋‹ˆ, ๊ทธ๋งŒํผ ๋‹นํ™ฉํ–ˆ๊ณ  ์ž์นซํ•˜๋ฉด ํ”„๋กœ์ ํŠธ๋ฅผ ์™„์„ฑ๋ชปํ•˜๊ฒ ๋‹ค๋Š” ์••๋ฐ•๊ฐ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

๋‹คํ–‰ํžˆ ํ”„๋กœ์ ํŠธ๊ฐ€ ์ž˜ ๋งˆ๋ฌด๋ฆฌ๋˜์—ˆ๊ณ , ๊ณ์—์„œ ๋…ธ๋ ฅํ•ด์ค€ ์ €ํฌ ํŒ€์›๋“ค ๋•๋ถ„์— ์ €๋„ ํž˜์„ ๋‚ด์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ฝ”๋“œ๋ฅผ ์†์—์„œ ๋†“๊ณ ์‹ถ์€ ์ˆœ๊ฐ„์ด ์™€๋„, ํŒ€์›๋“ค์ด ์—ด์‹ฌํžˆ ํ”ผ๋“œ๋ฐฑ์„ ์ฃผ๊ณ ๋ฐ›์œผ๋ฉด์„œ ํž˜๋‚ด๋Š” ๋ชจ์Šต์„ ๋ณด๋ฉด์€ ์ €๋„ ๋ชจ๋ฅด๊ฒŒ ์ฝ”๋“œ๋ฅผ ๋ถ™์žก๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ €๋„ ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ๊ทธ๋ ‡๊ฒŒ ํž˜์„ ๋‚ด ์ค„ ์ˆ˜ ์žˆ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ•˜๊ธฐ๋„ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ํž˜์„ ๋‚ด์„œ ์ฝ”๋“œ๋ฅผ ์“ฐ๊ณ , ์„œ๋กœ ์ธ์ •ํ•ด์ฃผ๊ณ  ๋ถ๋‹์•„์ฃผ๋Š” ๊ฒƒ์ด ๋งŽ์€ ํž˜์ด ๋  ์ˆ˜ ์žˆ๊ฒ ๊ตฌ๋‚˜ ๋А๋ผ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!

์–‘์„ ์ข… ๊ฐœ๋ฐœ์ด๋ผ๋Š” ํ•˜๋‚˜์˜ ์ฃผ์ œ๋ฅผ ๊ฐ€์ง€๊ณ  ์‹œ์ž‘ํ•œ ์ฒซ ํ”„๋กœ์ ํŠธ์˜€๋˜ ๋งŒํผ ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋‚˜์—๊ฒŒ ์ฃผ๋Š” ์˜๋ฏธ๋Š” ๋งค์šฐ ํฌ๋‹ค.
ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ ๋ฐฉ๋ฒ• ์ค‘ ์Šคํฌ๋Ÿผ ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด์„œ ํ”„๋กœ์ ํŠธ ๊ณ„ํš, ํšŒ์˜, ์นธ๋ฐ˜ ์ž‘์„ฑ ๋“ฑ์„ ์ง„ํ–‰ํ•˜์˜€๊ณ  ์ด๋ฅผ ํ†ตํ•ด ํ”„๋กœ์ ํŠธ๋ฅผ ํ•จ์— ์žˆ์–ด์„œ ์ด๋Ÿฌํ•œ ํ–‰์œ„๋“ค์ด ์™œ ์ค‘์š”ํ•œ์ง€๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ๊นจ๋‹ซ๊ฒŒ ๋˜์—ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ณผ์ •๋“ค์ด ์—†์—ˆ๋‹ค๋ฉด ๋‚ด๊ฐ€ ๊ฒช์€ 3์ฃผ๋ผ๋Š” ์‹œ๊ฐ„์ด ๊ณ„ํš์ด ์žˆ์—ˆ์Œ์—๋„ ์ •์‹ ์ด ์—†์—ˆ๋Š”๋ฐ ์–ผ๋งˆ๋‚˜ ๋” ์ •์‹ ์ด ์—†์—ˆ์„๊นŒ ๋ผ๋Š” ๊ฒƒ์„ ํ™•์—ฐํ•˜๊ฒŒ ๋А๊ผˆ๋‹ค.

๋˜ํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ๋˜ ๊ฑฑ์ • ๋ฐ˜ ๊ธฐ๋Œ€ ๋ฐ˜์œผ๋กœ ๊ฐ€๋“ ์ฐจ ์žˆ์—ˆ๋˜ ๊ฐ์ •์ด ๊ทธ๋Œ€๋กœ ํŒ€ ํ”„๋กœ์ ํŠธ์—์„œ ๋“œ๋Ÿฌ๋‚ฌ๋‹ค๊ณ  ๊ฐœ์ธ์ ์œผ๋กœ ์ƒ๊ฐํ•˜๊ณ  ์žˆ๋‹ค.

์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ธก๋ฉด์—์„œ์˜ ๊ฑฑ์ •์ด ์กด์žฌํ–ˆ๋Š”๋ฐ ์ฒซ ๋ฒˆ์งธ๋Š” ๋‚ด๊ฐ€ ํŒ€์›๋“ค์—๊ฒŒ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์„๊นŒ ๋ผ๋Š” ๊ฑฑ์ •์ด ์กด์žฌํ–ˆ๊ณ  ํŒ€์›๋ถ„๋“ค์€ ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ• ์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ๋‚˜๋Š” ๋งค์šฐ ์•„์‰ฌ์› ๋‹ค๊ณ  ์ฃผ๊ด€์ ์œผ๋กœ ํ‰๊ฐ€ํ•˜๊ณ  ์‹ถ๋‹ค. ํŒ€ํ”Œ์„ ํ•˜๋ฉด ํ• ์ˆ˜๋ก ๋” ๋„์›€์ด ๋˜๊ณ  ์‹ถ๋‹ค๋Š” ์ƒ๊ฐ์ด ๊ฐ€๋“ํ–ˆ๊ณ  ๋…ธ๋ ฅํ–ˆ๋‹ค๊ณ ๋Š” ์ƒ๊ฐํ•˜์ง€๋งŒ, ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ํ•˜๋‚˜์˜ ์ปดํฌ๋„ŒํŠธ ํ•˜๋‚˜๋ฅผ ๊ฐ€์ง€๊ณ  ์‹œ๊ฐ„์ด ๋”œ๋ ˆ์ด ๋˜๋Š” ๊ฒŒ ์ •๋ง ์ฃ„์†ก์Šค๋Ÿฌ์› ๋˜ ๊ฐ์ •์ด ๋“ค์—ˆ๋‹ค. ๊ทธ๋ž˜๋„ ์ด๋Ÿฌํ•œ ๊ณผ์ •์—์„œ ์šฐ๋ฆฌ์˜ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋‹จ๋‹จํ•ด์ง€๊ณ  ๋” ์™„์„ฑ๋„๊ฐ€ ์žˆ๊ฒŒ ๋งŒ๋“ค์ž๋Š” ํŒ€์›๋ถ„๋“ค์˜ ์ƒ๊ฐ์— ์ •๋ง ๊ฐ์‚ฌํ–ˆ๊ณ  ๊ทธ ๊ณผ์ •์—์„œ ๋‚ด๊ฐ€ ๋ชฐ๋ž๋˜ ๋ฐฉ๋ฒ•๋“ค์„ ์•Œ ์ˆ˜ ์žˆ๊ฒŒ ๋˜์–ด์„œ ์–ป์–ด ๊ฐ€๋Š” ๊ฒŒ ๋งŽ์•˜๋‹ค.

๋‘ ๋ฒˆ์งธ๋Š” ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ๊ด€๋ จ ํ•ด์„œ์˜ ๊ฑฑ์ •์ด์—ˆ๋‹ค. ์•ž์„  ์ปดํฌ๋„ŒํŠธ์™€ ๊ด€๋ จํ•œ ์ฝ”๋“œ ์ž‘์„ฑ๊ณผ๋Š” ๋ณ„๊ฐœ๋กœ ํ”„๋กœ์ ํŠธ์— ์žˆ์–ด์„œ ์•„์ด๋””์–ด ์ธก๋ฉด๊ณผ ์„œ๋กœ ์ƒ๊ฐํ•˜๋Š” ๋ฐฉ๋ฉด์ด ์™„์ „ํ•˜๊ฒŒ ์ผ์น˜ํ•˜์ง€ ์•Š์•˜๊ธฐ์— ์ด๋Ÿฐ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ์‚ฌ์‹ค ํ”„๋กœ์ ํŠธ๋ผ๋Š” ๊ฒƒ ์ž์ฒด๊ฐ€ ์™„์„ฑ๋œ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐ€์ง€๊ณ  ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์—†์—ˆ๋˜ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ธฐํšํ•˜๊ณ  ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋Š” ์—†์œผ๋ฉด ์˜คํžˆ๋ ค ์ด์ƒํ•˜๋‹ค๋Š” ๊ฒƒ์ด ๋งž๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๊ทธ๋ ‡๊ธฐ์— ์•„์ด๋””์–ด์™€ ๊ด€๋ จํ•œ ์ถฉ๋Œ์ด ์ž์ฃผ ์ผ์–ด๋‚˜ ํž˜๋“ค์—ˆ์ง€๋งŒ ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ฒซ ํšŒ์˜ ์ค‘ ํ•˜๋‚˜์˜€๋˜ ๊ทธ๋‚  ์žˆ์—ˆ๋˜ ๊ฐ์ •์€ ๊ทธ๋‚ ์— ํ‘ธ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์„œ๋กœ ๊ทธ๋‚  ์ตœ๋Œ€ํ•œ ์ดํ•ดํ•˜๊ณ  ์ตœ๋Œ€ํ•œ ๊ฐ์ •์„ ํ’€์–ด๋‚˜๊ฐ”๋˜ ๋ถ€๋ถ„์— ์žˆ์–ด์„œ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ๋Šฅ๋ ฅ์—์„œ์˜ ๊ฑฑ์ •๊ณผ ์„ฑ์žฅ์„ ๋™์‹œ์— ์ด๋ฃจ์–ด ๋‚˜๊ฐ”๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ณ  ์žˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ๋Š” ๋‹น์—ฐํžˆ ๊ธฐ๋Šฅ ๊ตฌํ˜„ ๋ฐ ํ”„๋กœ์ ํŠธ ์ง„ํ–‰์— ๋Œ€ํ•œ ๊ฑฑ์ •์ด ๋งค์šฐ ์ปธ๋‹ค. ์‚ฌ์‹ค ์ดˆ๋ฐ˜์—๋Š” ์ด๊ฒŒ ๋ ๊นŒ? ๋ผ๋Š” ์ƒ๊ฐ์ด ์—„์ฒญ ๋งŽ์•˜๊ณ  ์šฐ์—ฌ๊ณก์ ˆ ๋˜ํ•œ ์‹ฌํ•˜๊ฒŒ ๋งŽ์•˜๋‹ค. ํ”ผํ”ผํ‹ฐ๋ผ๋Š” ํŒŒ์ผ ์ž์ฒด๊ฐ€ ํ•˜๋‚˜์˜ xml๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๋งŽ์€ xml๋“ค์˜ ์ง‘ํ•ฉ์ธ ์ ์—์„œ xml ํŒŒ์ผ ๊ฐ„์˜ ์ธ๊ณผ๊ด€๊ณ„๋ฅผ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‹œ๊ฐ„์„ ์“ฐ๊ฒŒ ๋˜์—ˆ๋‹ค๋ฉด ์•„๋งˆ.. ํ”„๋กœ์ ํŠธ๋Š” 3์ฃผ๊ฐ€ ์•„๋‹ˆ๋ผ 3๋‹ฌ์ด ๊ฑธ๋ ค์„œ ๋๋‚˜์ง€ ์•Š์•˜์„๊นŒ ๋ผ๋Š” ์ƒ๊ฐ์„ ํ•œ๋‹ค. ๊ทธ๋ ‡๊ธฐ์— ๋‹น์—ฐํžˆ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ๋ฐ–์— ์—†์—ˆ๋Š”๋ฐ ๋‹คํ–‰ํžˆ pptx๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ† ๋Œ€๋กœ ํŒŒ์‹ฑํ•œ ๋ฐ์ดํ„ฐ๋“ค์„ ๊ฐ€์ง€๊ณ  pptx๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค๋Š” ์•„์‰ฌ์›€์ด ์กด์žฌํ–ˆ๋‹ค. ๋˜ํ•œ ๋ฐ์ดํ„ฐ์˜ ์–‘์ด ๋„ˆ๋ฌด ๋ฐฉ๋Œ€ํ•˜๋‹ค๋Š” ๊ฒƒ์ด ๋งค์šฐ ํฐ ๋”œ๋ ˆ์ด ์š”์†Œ์ด๋‹ค. ํ•˜๋‚˜์˜ ํ…์ŠคํŠธ๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด์„œ xml ํŒŒ์ผ์„ ๋งค์šฐ ๋”ฅํ•˜๊ฒŒ ๋“ค์–ด๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— pptx๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ์ดํ„ฐ๋“ค์„ ๋ชจ๋‘ ํŒŒ์‹ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์‹œ๊ฐ„์ด ์˜ค๋ž˜๊ฑธ๋ฆฐ๋‹ค๋Š” ์‹œ๊ฐ„์ ์ธ ๋ฌธ์ œ๊ฐ€ ๋” ์กด์žฌํ•ด์„œ ์•„์‰ฌ์› ๋‹ค. ๊ทธ๋ž˜๋„ ์ด๋Ÿฌํ•œ ๊ฑฑ์ •๋“ค๊ณผ ๋‹ค๋ฅด๊ฒŒ ๊ฒฐ๊ตญ์€ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋งŒ๋“ค์–ด์ง„๋‹ค๋Š” ๋ถ€๋ถ„์— ์žˆ์–ด์„œ ๋ฟŒ๋“ฏํ•œ ๊ฐ์ •์„ ๋А๊ผˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„ 2022.10.10 ~ 2022.10.28 ์ธ 3์ฃผ ๋™์•ˆ ์ •๋ง ๋งŽ์ด ํž˜๋“ค์—ˆ๊ณ , ๋งŽ์ด ๋ฐฐ์› ๊ณ , ๋งŽ์ด ์ •์‹ ์—†์—ˆ์ง€๋งŒ, ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์™”์„ ๋•Œ๋Š” ๋งŽ์ด ๋ฟŒ๋“ฏํ–ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๊ฐ€ ์–ผ๋งˆ๋‚˜ ํž˜๋“ค์—ˆ๋Š”์ง€๋Š” ์ด๋ฏธ ์ง€๋‚˜๊ฐ„ ์‹œ๊ฐ„์ด๊ธฐ ๋•Œ๋ฌธ์— ํฌ๊ฒŒ ์ค‘์š”ํ•œ ์š”์†Œ๋Š” ์•„๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋๋‚˜๊ณ  ๋‚ด๊ฐ€ ๋งŽ์€ ๊ฒƒ์„ ์–ป์—ˆ๋‹ค๋Š” ๊ฒƒ์ด ์ž์ฒด๋Š” ๋‚˜์—๊ฒŒ ์žˆ์–ด์„œ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ๋„ ๋งค์šฐ ํฐ ๋„์›€์˜ ๋ฐ‘๊ฑฐ๋ฆ„์ด ๋  ์ˆ˜ ์žˆ๊ธฐ์— ์ •๋ง ์ •๋ง ๋œป๊นŠ์€ ์‹œ๊ฐ„์ด ๋˜์—ˆ๋‹ค.

์ด๋™ํ˜„ ์ฒ˜์Œ์œผ๋กœ ์ง„ํ–‰ํ•˜๋Š” ํ˜‘์—… ํ”„๋กœ์ ํŠธ์˜€์Šต๋‹ˆ๋‹ค. ์• ์ž์ผ ๋ฐฉ๋ฒ•๋ก  ๋˜ํ•œ ์ฒ˜์Œ์ด์—ˆ๊ธฐ์—, 3์ฃผ๋ผ๋Š” ์งง์€ ์‹œ๊ฐ„ ๋™์•ˆ ๋งค์ผ ์Šคํฌ๋Ÿผ์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ์ƒํ™ฉ์„ ๊ณต์œ ํ•˜๊ณ , ํšŒ์˜์™€ ํ”ผ๋“œ๋ฐฑ์„ ํ†ตํ•ด ๊ณ„ํš์— ์–ด๊ธ‹๋‚˜๋”๋ผ๋„ ์œ ์—ฐํ•˜๊ฒŒ ๋Œ€์ฒ˜ํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ๊ฒฝํ—˜ ์—ญ์‹œ ์ƒˆ๋กœ์› ์Šต๋‹ˆ๋‹ค.

์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๋А๋‚€ ์ ์€ ํฌ๊ฒŒ 2๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ, ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์˜ ์ค‘์š”์„ฑ์ž…๋‹ˆ๋‹ค.

๋งค์ผ ์˜ค์ „ ๋ฐ์ผ๋ฆฌ ์Šคํฌ๋Ÿผ ๋ฏธํŒ…์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์˜ค๋Š˜ ์šฐ๋ฆฌ ํŒ€์ด ํ•ด์•ผ ํ•  ๊ฒƒ, ํ˜„์žฌ ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ์ƒํ™ฉ ๋ฐ ๋”œ๋ ˆ์ด ์—ฌ๋ถ€ ๋“ฑ์„ ์ด์•ผ๊ธฐํ•˜๋ฉด์„œ ์˜๊ฒฌ์„ ๋‚˜๋ˆ„์—ˆ๊ณ , ๊ทธ ๊ฒฐ๊ณผ ๋‹ค์†Œ ๋”œ๋ ˆ์ด๊ฐ€ ์žˆ๋”๋ผ๋„ ์œ ์—ฐํ•˜๊ฒŒ ๋Œ€์ฒ˜ํ•ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ •ํ•ด์ง„ ๊ธฐํ•œ ๋‚ด์— ๋ฐฐํฌ๊นŒ์ง€ ๋ฌด์‚ฌํžˆ ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ์ค‘์— ์ฝ”๋“œ ์ปจ๋ฒค์…˜๋ถ€ํ„ฐ, ๋””์ž์ธ, ๊ธฐ๋Šฅ์ ์ธ ๋ถ€๋ถ„์—์„œ ์˜๊ฒฌ์ด ๋งŽ์ด ๊ฐˆ๋ฆฌ๊ธฐ๋„ ํ•˜์˜€๋Š”๋ฐ, ํ”„๋กœ์ ํŠธ ๊ณ„ํš์„ ํ•  ๋•Œ ๋” ๋งŽ์€ ์˜๊ฒฌ์„ ๋‚˜๋ˆ„์–ด ๊ทœ์น™ ๋ฐ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ๋ฅผ ์ž์„ธํ•˜๊ฒŒ ์„ค๊ณ„ํ•˜์ง€ ๋ชปํ•œ ๋ถ€๋ถ„์€ ์•„์‰ฌ์›€์ด ๋‚จ์Šต๋‹ˆ๋‹ค.
์ด๋Ÿฌํ•œ ๋ถ€๋ถ„์ด ๊ฐœ๋ฐœ ์ค‘์— ์˜๊ฒฌ์ด ๋‚˜๋‰˜๋‹ค ๋ณด๋‹ˆ, ๊ฐœ๋ฐœ ์ง„ํ–‰ ์ค‘ ๋”œ๋ ˆ์ด๊ฐ€ ๋˜๋Š” ์›์ธ์ด ๋˜๊ธฐ๋„ ํ•˜์˜€๊ณ , ๋‹ค์†Œ ๋‚ ์นด๋กญ๊ฒŒ ๋งํ•  ๋•Œ๋„, ๋ฐฐ๋ คํ•˜์ง€ ๋ชปํ•  ๋•Œ๋„ ์žˆ์–ด์„œ โ€˜์ข€ ๋” ์ž˜ ๋งํ•  ์ˆ˜ ์žˆ์—ˆ์ง€ ์•Š์•˜์„๊นŒ?โ€™ ํ•˜๋Š” ์•„์‰ฌ์›€์ด ํ•ญ์ƒ ๋‚จ์•„์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€๋งŒ ์ด๋Ÿฌํ•œ ํ˜‘์—… ๊ฒฝํ—˜์„ ํ†ตํ•ด ๋‚˜์˜ ์˜๊ฒฌ์„ ์ž˜ ํ‘œํ˜„ํ•˜๊ณ , ๊ทธ๋ฆฌ๊ณ  ์ƒ๋Œ€๋ฐฉ์˜ ์˜๋„๋ฅผ ํŒŒ์•…ํ•˜๋Š” ๋ฐ์— ์žˆ์–ด ๋‹ค์‹œ ํ•œ๋ฒˆ ์ƒ๊ฐํ•ด ๋ณด๋Š” ๊ณ„๊ธฐ๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋‘ ๋ฒˆ์งธ๋Š” ๊ธฐ์ˆ  ๋„์ „์— ๋Œ€ํ•œ ์•„์‰ฌ์›€์ž…๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ๊ณ„ํš ์ค‘์—๋Š” ์ƒˆ๋กœ์šด ๊ธฐ์ˆ ์ ์ธ ์ฑŒ๋ฆฐ์ง€๋„ ๊ณ ๋ คํ–ˆ์—ˆ์ง€๋งŒ, ๊ฐœ๋ฐœ์— ๋“ค์–ด๊ฐ€๋‹ˆ ๊ธฐ๋Šฅ ๊ตฌํ˜„์—๋งŒ ์ง‘์ค‘ํ•˜๊ฒŒ ๋˜์—ˆ๊ณ , ๊ธฐํ•œ ๋‚ด ํ”„๋กœ์ ํŠธ๋ฅผ ์™„์„ฑํ•˜๋Š” ๋ฐ์— ๊ธ‰๊ธ‰ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ด ์ง„ํ–‰๋˜๋Š” ๋™์•ˆ ์ „์—ญ ์ƒํƒœ ๊ด€๋ฆฌ์˜ ํ•„์š”์„ฑ์„ ๋А๊ปด ๋ฆฌ๋•์Šค๋ฅผ ๋„์ž…ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
๋ฆฌ๋•์Šค๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ๋…ผ์˜ํ•˜๊ธฐ๋„ ํ•˜์˜€์ง€๋งŒ, ๊ฐœ๋ฐœ ์ง„ํ–‰ ์ค‘ ๊ธฐ์ˆ  ์กฐ์‚ฌ์— ์‹œ๊ฐ„์„ ํˆฌ์žํ•˜์ง€ ๋ชปํ•˜์—ฌ ๊ธฐ์กด ์‚ฌ์šฉ ๊ฒฝํ—˜์ด ์žˆ๋Š” ๋ฆฌ๋•์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋” ์ข‹์€ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ณ ๋ฏผ์„ ์ถฉ๋ถ„ํžˆ ํ•˜์ง€ ๋ชปํ•ด ๋‹ค์†Œ ์•„์‰ฌ์›€์ด ๋‚จ๋Š” ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค.

์ •์‹ ์—†์ด 3์ฃผ๊ฐ€ ์ง€๋‚ฌ๋Š”๋ฐ, ๋งค์ผ PR์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ํ™œ๋ฐœํ•˜๊ฒŒ ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ์ง„ํ–‰ํ•ด์ฃผ๋Š” ํŒ€์›๋“ค ๋•๋ถ„์— ๋‹ค์–‘ํ•œ ์˜๊ฒฌ์„ ๋‚˜๋ˆ„์–ด ํ”„๋กœ์ ํŠธ์˜ ๋“ค์–ด์˜ค๊ธฐ ์ „๋ณด๋‹ค ํ™•์‹คํžˆ ์„ฑ์žฅํ•œ ์ž์‹ ์„ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฒˆ ์ฒซ ํ”„๋กœ์ ํŠธ๋Š” ์—ฌ๋Ÿฌ๋ชจ๋กœ ๊ธฐ์–ต์— ๋‚จ๊ณ , ํ•ญ์ƒ ๋ฐฐ๋ ค์™€ ์กด์ค‘์„ ์ƒ๊ฐํ•˜๋ฉด์„œ ์„ฑ์žฅํ•ด ๋‚˜๊ฐˆ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •