Skip to content

97Fekim/work-we-out

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

work-we-out

๐Ÿ”˜ ๋ชฉ์ฐจ

1. ์†Œ๊ฐœ

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

3. ์„ค๊ณ„

4. ์‚ฌ์šฉ ๊ธฐ์ˆ 

5. ๋ฐ์ดํ„ฐ ๊ด€๊ณ„ ๋ชจ๋ธ

6. ์ธํ”„๋ผ ์•„ํ‚คํ…์ฒ˜

7. CI / CD

8. ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ… ๋ฐ ๋ฐฐ์šด์ 

๐Ÿ”˜ ์†Œ๊ฐœ

(์†Œ๊ฐœ ์ด๋ฏธ์ง€ ํŽผ์น˜๊ธฐ)

๐Ÿ“† 1st. ๋‚ ์งœ๋ณ„ ์šด๋™๋ถ€์œ„๋ฅผ ์š”์•ฝํ•œ ์šด๋™์บ˜๋ฆฐ๋”๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • ์นผ๊ฐ™์€ ์šด๋™๋ฃจํ‹ด์„ ์ง€ํ‚ค๋Š” "ํ—ฌ์ฐฝ"์œ ์ €๋“ค์—๊ฒŒ ํŽธ์˜์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“† 2nd. ์šด๋™์„ ๊ณต์œ ํ•˜๋Š” ๊ทธ๋ฃน์šด๋™์บ˜๋ฆฐ๋”๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • ๊ทธ๋ฃน์˜ ๋ฉค๋ฒ„๊ฐ„ ์šด๋™์Šค์ผ€์ค„ ๊ณต์œ , ๋™๊ธฐ๋ถ€์—ฌ๋ฅผ ๋„๋ชจํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Š 3rd. ์šด๋™ ํ†ต๊ณ„ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • [๋‚ด ์šด๋™ํ†ต๊ณ„] , [์šฐ๋ฆฌ ๊ทธ๋ฃน์˜ ์šด๋™ํ†ต๊ณ„] ์ž๋ฃŒ๋ฅผ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • [์ฃผ๊ฐ„ ์šด๋™ํ†ต๊ณ„] , [์›”๊ฐ„ ์šด๋™ํ†ต๊ณ„] ๋ชจ๋‘ ํ•œ ๋ˆˆ์— ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ฉ 4th. ๋‚ด ์šด๋™ํ†ต๊ณ„ ์ž๋ฃŒ๋ฅผ ๋ฌธ์ž๋กœ ๋ฐ›๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • ์ง์ ‘ ์กฐํšŒํ•˜๊ธฐ ๋ฐ”์œ ์œ ์ €๋ฅผ ์œ„ํ•ด, ์ฃผ๊ฐ„/์›”๊ฐ„ ์šด๋™ํ†ต๊ณ„ ์ž๋ฃŒ๋ฅผ ์ •๊ธฐ์ ์œผ๋กœ ๋ฐœ์†กํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฌธ์ž ์ˆ˜์‹ ์—ฌ๋ถ€๋Š” ์„ ํƒ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ›  5th. ๋ฌธ์ž ๋ฐœ์†ก์ด ์‹คํŒจํ•œ ์ž๋ฃŒ๋ฅผ ์žฌ๋ฐœ์†ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํ”„๋กœ๊ทธ๋žจ ๊ด€๋ฆฌ์ž์— ํ•œํ•˜์—ฌ ์ด์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

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

๐Ÿ—“๏ธ์ด ์†Œ์š”๊ธฐ๊ฐ„ ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย [2023.12.20 ~ 2024.03.02 โ†’ 74์ผ๊ฐ„]
ย ย ย โฐ์„ค๊ณ„ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย [2023.12.20 ~ 2024.01.05 โ†’ 17์ผ๊ฐ„] ย ย ย ย ย ย ย ย ย ย ย ย โณ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย [2023.12.20 ~ 2023.12.25 โ†’ 6์ผ๊ฐ„]
ย ย ย ย ย ย ย ย ย ย ย ย โณUI ์„ค๊ณ„ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย [2023.12.26 ~ 2023.12.29 โ†’ 4์ผ๊ฐ„]
ย ย ย ย ย ย ย ย ย ย ย ย โณDB ์„ค๊ณ„ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย [2023.12.30 ~ 2024.01.02 โ†’ 4์ผ๊ฐ„]
ย ย ย ย ย ย ย ย ย ย ย ย โณ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ค๊ณ„ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย [2024.01.03 ~ 2024.01.05 โ†’ 3์ผ๊ฐ„]
ย ย ย โฐ๊ฐœ๋ฐœย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย [2024.01.06 ~ 2024.02.03 โ†’ 30์ผ๊ฐ„] ย ย ย ย ย ย ย ย ย ย ย ย โณํ…Œ์ด๋ธ”-์—”ํ‹ฐํ‹ฐ ๋งคํ•‘ย ย ย ย ย ย ย ย ย ย ย ย ย ย [2024.01.03 ~ 2024.01.04 โ†’ 2์ผ๊ฐ„]
ย ย ย ย ย ย ย ย ย ย ย ย โณ๋„๋ฉ”์ธ, ์„œ๋น„์Šค ๊ณ„์ธต ๊ฐœ๋ฐœย ย ย ย ย [2024.01.05 ~ 2024.01.15 โ†’ 11์ผ๊ฐ„]
ย ย ย ย ย ย ย ย ย ย ย ย โณ๋ฐฐ์น˜JOB, ์Šค์ผ€์ค„๋Ÿฌ ๊ฐœ๋ฐœย ย ย ย ย ย ย [2024.01.16 ~ 2024.01.17 โ†’ 2์ผ๊ฐ„]
ย ย ย ย ย ย ย ย ย ย ย ย โณ์ธ์ฆ/์ธ๊ฐ€ ํ™˜๊ฒฝ ๊ตฌ์ถ•ย ย ย ย ย ย ย ย ย ย ย ย ย [2024.01.18 ~ 2024.01.21 โ†’ 4์ผ๊ฐ„]
ย ย ย ย ย ย ย ย ย ย ย ย โณAPI ๋ฐ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœย ย ย ย ย ย ย ย [2024.01.22 ~ 2024.02.02 โ†’ 12์ผ๊ฐ„]
ย ย ย ย ย ย ย ย ย ย ย ย โณ๋ณด์•ˆ์ทจ์•ฝ์  ๋ณด์™„ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย [2024.02.03 ~ 2024.02.03 โ†’ 1์ผ๊ฐ„]
ย ย ย โฐ๋ฐฐํฌ ๋ฐ ํ†ตํ•ฉํ…Œ์ŠคํŠธย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย [2024.02.04 ~ 2024.03.02 โ†’ 28์ผ๊ฐ„] ย ย ย ย ย ย ย ย ย ย ย ย โณ์ดˆ๊ธฐ ์šด์˜์„œ๋ฒ„ ๊ตฌ์ถ•ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย [2024.02.04 ~ 2024.02.17 โ†’ 14์ผ๊ฐ„]
ย ย ย ย ย ย ย ย ย ย ย ย โณ์šด์˜ ์„œ๋ฒ„ ์ปจํ…Œ์ด๋„ˆ ์ „ํ™˜ย ย ย ย ย ย ย [2024.02.18 ~ 2024.02.24 โ†’ 7์ผ๊ฐ„]
ย ย ย ย ย ย ย ย ย ย ย ย โณCI/CD ํ™˜๊ฒฝ ๊ตฌ์ถ•ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย [2024.02.25 ~ 2024.03.02 โ†’ 7์ผ๊ฐ„]

๐Ÿ”˜ ์„ค๊ณ„

๐Ÿ“š์„ค๊ณ„์„œ (์ด๋™)
ย ย ย ๐Ÿ“— 01. ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„ ย ย ย ย ย ย ย ย ย ย ย ย ๐Ÿ“œ 01. ์‚ฌ์šฉ ๊ธฐ์ˆ  ์ •์˜
ย ย ย ย ย ย ย ย ย ย ย ย ๐Ÿ“œ 02. ์ธํ”„๋ผ ์ •์˜
ย ย ย ๐Ÿ“˜ 02. UI ์„ค๊ณ„ ย ย ย ย ย ย ย ย ย ย ย ย ๐Ÿ“œ 01. ํŽ˜์ด์ง€ ๋ชฉ์—…
ย ย ย ย ย ย ย ย ย ย ย ย ๐Ÿ“œ 02. ์Šคํ† ๋ฆฌ๋ณด๋“œ
ย ย ย ๐Ÿ“™ 03. DB ์„ค๊ณ„ ย ย ย ย ย ย ย ย ย ย ย ย ๐Ÿ“œ 01. ๊ฐœ๋… ๋ชจ๋ธ๋ง
ย ย ย ย ย ย ย ย ย ย ย ย ๐Ÿ“œ 02. ๋…ผ๋ฆฌ ๋ชจ๋ธ๋ง
ย ย ย ย ย ย ย ย ย ย ย ย ๐Ÿ“œ 03. ๋ฌผ๋ฆฌ ๋ชจ๋ธ๋ง
ย ย ย ย ย ย ย ย ย ย ย ย ๐Ÿ“œ 04. ์ตœ์ข… DDL
ย ย ย ย ย ย ย ย ย ย ย ย ๐Ÿ“œ 05. ์ดˆ๊ธฐํ™” DDL
ย ย ย ๐Ÿ“• 04. ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ค๊ณ„
ย ย ย ย ย ย ย ย ๐Ÿ“œ 01. ์ธ์ฆ ๋ฐ ์ธ๊ฐ€ ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ๐Ÿ“œ 01-1. ๊ธฐ์ˆ  ๋ถ„์„ ๋ฐ ์‹œ์Šคํ…œ ์‚ฌ์–‘ ํŒŒ์•…
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ๐Ÿ“œ 01-2. ํ›„๋ณด ๋ฐฉ์‹ ๋ถ„๋ฅ˜
ย ย ย ย ย ย ย ย ย ย ย ย ๐Ÿ“œ 02. ํ™”๋ฉด๋ณ„ API ์ •์˜
ย ย ย ย ย ย ย ย ย ย ย ย ๐Ÿ“œ 03. API ์ •์˜
ย ย ย ย ย ย ย ย ย ย ย ย ๐Ÿ“œ 04. ๋ฐฐ์น˜ JOB ์ •์˜
ย ย ย ย ย ย ย ย ย ย ย ย ๐Ÿ“œ 05. ๊ฐœ๋ฐœ ํ‘œ์ค€ ์ •์˜

๐Ÿ”˜ ์‚ฌ์šฉ ๊ธฐ์ˆ 

ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

๋นŒ๋“œ ๋ฐ ๋ฐฐํฌ

ํ˜•์ƒ๊ด€๋ฆฌ

๐Ÿ”˜ ๋ฐ์ดํ„ฐ ๊ด€๊ณ„ ๋ชจ๋ธ

  • domain1 - ํšŒ์› ๋„๋ฉ”์ธ
  • domain2 - ์šด๋™์ผ์ง€ ๋„๋ฉ”์ธ
  • domain3 - ๊ทธ๋ฃน ๋„๋ฉ”์ธ
  • domain4 - ์šด๋™ํ†ต๊ณ„ ๋„๋ฉ”์ธ

image

๐Ÿ”˜ ์ธํ”„๋ผ ์•„ํ‚คํ…์ฒ˜

1๏ธโƒฃ ์ดˆ๊ธฐ ์•„ํ‚คํ…์ฒ˜

์ œ๋ชฉ ์—†๋Š” ๋‹ค์ด์–ด๊ทธ๋žจ drawio (1)


2๏ธโƒฃ ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜

์ธํ”„๋ผ Release1 0 1 (1)


3๏ธโƒฃ ์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜

2024.06 ๊ฐœ๋ฐœ ์˜ˆ์ •




๐Ÿ”˜ CI / CD

์ธํ”„๋ผ Release 1 0 2

๐Ÿ”˜ ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ… ๋ฐ ๋ฐฐ์šด ์ 

๐Ÿ“’ MPA์™€ SPA ํ˜ผ์šฉ ์„ค๊ณ„์˜ ์•„์‰ฌ์›€
o ํ˜„์ƒ : ํ”„๋ก ํŠธ ์—”๋“œ ๊ฐœ๋ฐœ ๋‹จ๊ณ„์—์„œ ์ค‘๋ณต๋˜๋Š” ์ปดํฌ๋„ŒํŠธ์™€ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋‹ค์ˆ˜ ๋ฐœ์ƒํ•˜์˜€๋‹ค. ํ•˜์ง€๋งŒ ์ด๋ฏธ ํŽ˜์ด์ง€ ๋ชฉ์—… ๋‹จ๊ณ„์—์„œ ํŽ˜์ด์ง€์˜ ๊ฐฏ์ˆ˜์™€ ๊ธฐ๋Šฅ์ด ์ •ํ•ด์กŒ๊ธฐ ๋•Œ๋ฌธ์—, ๊ตฌ์กฐ๋ฅผ ์žฌ์ •์˜ํ•˜๊ธฐ๋Š” ์–ด๋ ค์› ๋‹ค. ์ด๋กœ ์ธํ•ด Copy&Paste๋กœ ๊ฐœ๋ฐœํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋งŽ์•„์กŒ๊ณ , ์ด๋ ‡๊ฒŒ ๊ฐœ๋ฐœ๋œ ์ปดํฌ๋„ŒํŠธ์— ์ˆ˜์ •์ด ์ƒ๊ฒผ์„๋•Œ ์ผ์ผ์ด ๋ชจ๋‘ ์ˆ˜์ •ํ•ด์•ผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐœ๋ฐœ ์ƒ์‚ฐ์„ฑ์˜ ์ €ํ•˜๋ฅผ ์•ผ๊ธฐํ–ˆ๋‹ค.

o ์›์ธ : UI์„ค๊ณ„ ๋‹น์‹œ ๋ช…ํ™•ํ•œ SPA๋กœ ์ •์˜ํ•˜์ง€ ์•Š๊ณ , MPA์™€ ํ˜ผ์šฉํ•˜์—ฌ ์„ค๊ณ„ํ•œ ํƒ“์ด ํฌ๋‹ค. ๊ฒฐ๊ณผ๋ก ์ ์ด์ง€๋งŒ ๊ฐœ๋ฐœ์ด ๋๋‚˜๊ณ  ๋˜๋Œ์•„๋ณด๋‹ˆ, ๋ ˆ์ด์•„์›ƒ์œผ๋กœ ํ•˜๋‚˜์˜ ํŽ˜์ด์ง€๋งŒ ๋‘๊ณ  ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์ด ์žˆ์„๋•Œ๋งˆ๋‹ค ๋ฐ์ดํ„ฐ์˜ ๋ Œ๋”๋ง๋งŒ CSR ๋ฐฉ์‹์œผ๋กœ ํ•ด๋„ ๋˜์—ˆ์„ ๊ฒƒ ์ฒ˜๋Ÿผ ๋ณด์˜€๋‹ค.

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

๐Ÿ“’ ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๋ถ€์žฌ๋กœ ์ธํ•œ ๊ฐœ๋ฐœ ์ƒ์‚ฐ์„ฑ ์ €ํ•˜
o ํ˜„์ƒ : ๋ฌด๊ฒ๊ณ  ๋ณต์žกํ•œ CSR ์Šคํฌ๋ฆฝํŠธ.

o ์›์ธ : ํ™”๋ฉด ๋ฐ์ดํ„ฐ์˜ ๋ Œ๋”๋ง ๋ฐฉ์‹์˜ 90%๋Š” CSR(Client Side Rendaring)๋ฐฉ์‹์ด์—ˆ๋‹ค. ํ”„๋ก ํŠธ์—”ํŠธ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ , CSR๋ฅผ ๋ฐ”๋‹๋ผ Javascript ๋งŒ์œผ๋กœ ๊ตฌํ˜„ํ•œ ํƒ“์— createElement, setAttribute, appendChild ๋“ฑ์˜ ๋‚จ๋ฐœ์„ ํ•˜๊ฒŒ ๋˜์–ด ์Šคํฌ๋ฆฝํŠธ๋Š” ๋ณต์žกํ•˜๊ณ  ๋ฌด๊ฑฐ์›Œ์กŒ์œผ๋ฉฐ, ๊ธฐ์ˆ ์ ์ธ ํ•œ๊ณ„์— ๋ถ€๋”ชํ˜”๋‹ค.

o ํ•ด๊ฒฐ์•ˆ : ๋ฆฌ์•กํŠธ ๋“ฑ์˜ ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์กด์žฌ ์ด์œ ๋ฅผ ๋ชธ์†Œ ์ฒด๊ฐํ•˜๊ฒŒ ๋˜์—ˆ๊ณ , ํ•™์Šต์˜ ํ•„์š”์„ฑ์„ ๋Š๊ผˆ๋‹ค. ๋งŽ์€ ์‹ ๊ทœ ๊ธฐ๋Šฅ์˜ ์ถ”๊ฐ€๊ฐ€ ํ™•์‹ ๋œ๋‹ค๋ฉด, ํ”„๋ก ํŠธ์—”๋“œ ์†Œ์Šค์˜ ์žฌ ์„ค๊ณ„ ๋ฐ ๊ฐœ๋ฐœ์ด ํ•„์š”ํ•  ๋“ฏ ์‹ถ๋‹ค.

๐Ÿ“’ ์žฆ์€ ๋ณ€๊ฒฝ/์‚ญ์ œ ๊ฐ€ ์ผ์–ด๋‚˜๋Š” PK์— ๋Œ€ํ•œ ์ธ๋ฑ์Šค ์„ค๊ณ„ ๋ฏธํก
o ํ˜„์ƒ : "์šด๋™์ผ์ง€์šด๋™์ข…๋ชฉ" ํ…Œ์ด๋ธ”์˜ PK์ด๋ฉฐ Unique Index์ธ ์šด๋™์ผ์ง€์šด๋™์ข…๋ชฉID์˜ ๋นˆ๋ฒˆํ•œ ์ˆ˜์ • ๋ฐ ์‚ญ์ œ ๋ฐœ์ƒ. ์ด๋กœ ์ธํ•ด ์ธ๋ฑ์Šค ์ปฌ๋Ÿผ์ž„์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์กฐํšŒ ์„ฑ๋Šฅ์˜ ์ €ํ•˜.

o ์›์ธ : "์šด๋™์ผ์ง€์šด๋™์ข…๋ชฉ: ํ…Œ์ด๋ธ”์€ ์ˆ˜์ • ๋ฐ ์‚ญ์ œ๊ฐ€ ๋งค์šฐ ๋นˆ๋ฒˆํ•˜๊ฒŒ ์ผ์–ด๋‚˜๋Š” ํ…Œ์ด๋ธ”์ด๋‹ค. ๊ทธ ์ด์œ ๋Š” ์šด๋™์ผ์ง€์ˆ˜์ • ํŠธ๋žœ์žญ์…˜์ด ์•„๋ž˜์˜ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
1) ๊ธฐ์กด์˜ ์šด๋™์ผ์ง€์šด๋™์ข…๋ชฉ cascade all ์‚ญ์ œ
2) ์ž…๋ ฅ๋ฐ›์€ ์ƒˆ๋กœ์šด ์šด๋™์ผ์ง€์šด๋™์ข…๋ชฉ์œผ๋กœ ๋ชจ๋‘ INSERT
๋”ฐ๋ผ์„œ ์‹ค์ œ๋กœ "์šด๋™์ผ์ง€์šด๋™์ข…๋ชฉ" ํ…Œ์ด๋ธ”์— ์กด์žฌํ•˜๋Š” row์˜ ๊ฐฏ์ˆ˜๋ณด๋‹ค ์ธ๋ฑ์Šค์˜ ์–‘์ด ๋น„๋Œ€ํ•ด์ ธ ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค.

o ํ•ด๊ฒฐ์•ˆ : ํ…Œ์ด๋ธ” ๊ตฌ์กฐ ์ˆ˜์ • or ์ธ๋ฑ์Šค ์‚ญ์ œ๊ฐ€ ๊ฐ•์š”๋œ๋‹ค. ๊ทธ ์ด์œ ๋Š” ์šด๋™์ผ์ง€ ์ˆ˜์ • ํŠธ๋žœ์žญ์…˜์˜ ์ฒ˜๋ฆฌ ๋กœ์ง์„ ๋ฐ”๊พธ๋Š” ๊ฒƒ์€ ์‰ฝ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.(ํ™”๋ฉด์—์„œ ํ…Œ์ด๋ธ”์˜ PK๋ฅผ ์ถ”์ ํ•˜๊ธฐ ์‰ฝ์ง€ ์•Š์Œ) ๋”ฐ๋ผ์„œ ๊ณ ์•ˆํ•œ ํ•ด๊ฒฐ ๋ฐฉ์•ˆ์€ ์•„๋ž˜์˜ ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด๋‹ค.
1) ํ…Œ์ด๋ธ”์— del_yn ์ปฌ๋Ÿผ์„ ๋‘๊ณ , row์˜ ์‚ญ์ œ๊ฐ€ ์ผ์–ด๋‚ ๋•Œ ๋…ผ๋ฆฌ์  ์‚ญ์ œ์ฒ˜๋ฆฌ๋งŒ ํ•˜์—ฌ ๋ถˆํ•„์š”ํ•œ ์ธ๋ฑ์Šค row ์ฆ๊ฐ€๋ฅผ ๋ฐฉ์ง€ํ•œ๋‹ค.
2) PK์— ๋Œ€ํ•œ ์ธ๋ฑ์Šค๋ฅผ ์‚ญ์ œ์ฒ˜๋ฆฌํ•œ ํ›„, ๋‹ค๋ฅธ ์ปฌ๋Ÿผ์˜ ์กฐํ•ฉ์œผ๋กœ Unique ์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

๐Ÿ“’ ๊ฐœ๋… ๋ชจ๋ธ๋ง ๋‹จ๊ณ„์—์„œ ๋†“์นœ ์—”ํ‹ฐํ‹ฐ์˜ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ๋‚œํ•ด
o ํ˜„์ƒ : ๊ฐœ์ธ์šด๋™์บ˜๋ฆฐ๋”์—์„œ ๋ณด์—ฌ์ง€๋Š” [์šด๋™๋ถ€์œ„ ์ปดํฌ๋„ŒํŠธ์˜ ์ƒ‰๊น”] ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋ฃน์šด๋™์บ˜๋ฆฐ๋”์—์„œ ๋ณด์—ฌ์ง€๋Š” [ํšŒ์› ์ปดํฌ๋„ŒํŠธ์˜ ์ƒ‰๊น”] ์ด ๋‘ ๊ฐ€์ง€ ๋งคํ•‘ ์ •๋ณด๋Š” DB๊ฐ€ ์•„๋‹Œ, ํ™”๋ฉด ์Šคํฌ๋ฆฝํŠธ์—์„œ Map์œผ๋กœ ๊ด€๋ฆฌ๋˜๊ณ  ์žˆ๋‹ค.

o ์›์ธ : "์ƒ‰๊น” ์ •๋ณด"์˜ ๊ด€๋ฆฌ ๋ฐฉ์‹์„ ๊ฐœ๋… ๋ชจ๋ธ๋ง ๋‹จ๊ณ„์—์„œ ๋ช…ํ™•ํ•˜๊ฒŒ ์ •์˜ํ•˜์ง€ ์•Š์€ ํƒ“์ด๋‹ค. ์ƒ‰๊น”์— ๊ด€๋ จ๋œ ์ •๋ณด๋Š” ๋žœ๋ค์œผ๋กœ ๋ถ€์—ฌ๋˜๊ธฐ ๋ณด๋‹ค, ๋ช…ํ™•ํ•˜๊ฒŒ ์ •ํ•ด์ ธ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋ฅผ ์Šคํฌ๋ฆฝํŠธ์—์„œ ๊ด€๋ฆฌํ•˜๊ฒŒ ๋  ๊ฒฝ์šฐ ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ฃผ๊ธฐ์ ์œผ๋กœ ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋Š” ํ•„์š”์„ฑ์ด ์ƒ๊ธด๋‹ค.

o ํ•ด๊ฒฐ์•ˆ : DB์„ค๊ณ„์˜ ๋ณ€๊ฒฝ์€ ๋‹ค๋ฅธ ๋ฌด์—‡๋ณด๋‹ค ์‚ฌ์ด๋“œ ์ดํŽ™ํŠธ๊ฐ€ ํฌ๊ธฐ ๋•Œ๋ฌธ์—, ๊ฐœ๋… ๋ชจ๋ธ๋ง ๋‹จ๊ณ„์—์„œ ๋ช…ํ™•ํ•œ ์—”ํ‹ฐํ‹ฐ ์‹๋ณ„์˜ ์ค‘์š”์„ฑ์„ ๋‹ค์‹œ ํ•œ๋ฒˆ ๋Š๋‚€๋‹ค. ๊ทธ๋Ÿผ์—๋„ ๊ณ ์•ˆ์•ˆ ํ•ด๊ฒฐ์•ˆ์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

1) ์ƒ‰๊น” ์ •๋ณด ๋งˆ์Šคํ„ฐ ํ…Œ์ด๋ธ”์˜ ์ถ”๊ฐ€
2) ์šด๋™๋ถ€์œ„-์ƒ‰๊น” ์ •๋ณด ๋ฆด๋ ˆ์ด์…˜ ํ…Œ์ด๋ธ”์˜ ์ถ”๊ฐ€
3) ํšŒ์›-์ƒ‰๊น” ์ •๋ณด ๋ฆด๋ ˆ์ด์…˜ ํ…Œ์ด๋ธ”์˜ ์ถ”๊ฐ€

๐Ÿ“’ Native Query ๊ฐ•์š”์— ์˜ํ•œ JPA์˜ DBMS ์ข…์†
o ํ˜„์ƒ : JPQL์ด ์•„๋‹Œ Native Query๋กœ ์ž‘์„ฑ๋œ SQL๋กœ ์ธํ•œ, DBMS์˜ ์ „ํ™˜ ์‹œ ์ค‘๋ณต ๊ฐœ๋ฐœ ๋ฐœ์ƒ.

o ์›์ธ : ์„œ๋ธŒ์ฟผ๋ฆฌ ํ˜น์€ Oracle์˜ ๊ทธ๋ฃนํ•จ์ˆ˜ ๋“ฑ์ด ๋ถˆ๊ฐ€ํ”ผํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜์—ˆ๋‹ค. ์„œ๋ธŒ์ฟผ๋ฆฌ๋Š” ๋ฉ”์ธ ์บ˜๋ฆฐ๋”์˜ ๋ Œ๋”๋ง์‹œ ์†๋„ ์ €ํ•˜๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•œ One Query ์„œ๋น„์Šค์— ์‚ฌ์šฉ๋˜์—ˆ๊ณ , ๋‚ ์งœ์™€ ๊ด€๋ จ ๋‹ค์–‘ํ•œ ์ •๋ณด๋ฅผ ํ…Œ์ด๋ธ”์—์„œ ์กฐํšŒํ•˜๊ธฐ ์œ„ํ•ด Oracle์˜ ๊ทธ๋ฃน ํ•จ์ˆ˜ ๋ช‡ ๊ฐœ๊ฐ€ ์‚ฌ์šฉ๋˜์—ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์˜ ๋Œ€๋ถ€๋ถ„ SQL์€ JQPL๋กœ ์ž‘์„ฑ๋˜์—ˆ์ง€๋งŒ, DBMS ์ „ํ™˜์‹œ์—๋Š” ์ƒ๊ธฐ์˜ Native Query์„ ์ผ์ผ์ด ๋ชฉํ‘œ DBMS์— ๋งž๊ฒŒ ์ˆ˜์ •ํ•ด์•ผ ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์ค‘๋ณต ๊ฐœ๋ฐœ์ด ๋ฐœ์ƒํ•œ๋‹ค.

o ํ•ด๊ฒฐ์•ˆ : ๋ช…ํ™•ํ•œ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์€ ์ฐพ์ง€ ๋ชปํ•˜์˜€์ง€๋งŒ, Native Query๋ฅผ JPQL๋กœ ๋Œ€์ฒดํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ณ ์•ˆํ•ด์•ผ ํ•œ๋‹ค. ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ๋Œ€์ฒดํ•˜๋ฉฐ ์„ฑ๋Šฅ์ €ํ•˜๋ฅผ ๋ง‰๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๊ณ ์•ˆํ•˜๊ฑฐ๋‚˜, QueryDSL์„ ์‚ฌ์šฉํ•˜๋Š” ๋“ฑ์˜ ๋ฐฉ๋ฒ•์„ ์ฐพ์•„๋ณผ ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ“’ Stateless ์„ธ์…˜ ์ •์ฑ…์— ์˜ํ•ด, ๋ชจ๋“  Ajax ์š”์ฒญ์˜ ์ธ์ฆ ์‹คํŒจ
o ํ˜„์ƒ : Ajax ์š”์ฒญ์—๋งŒ ์œ ํšจํ•˜์ง€ ์•Š์€ ์„ธ์…˜ID๊ฐ€ ๋‹ด๊ฒจ์žˆ์—ˆ๋‹ค. ์˜์•„ํ•จ์„ ๋Š๊ปด Ajax ๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ์š”์ฒญ์˜ ์„ธ์…˜ID ๋ฅผ ๋ถ„์„ํ•ด ๋ณธ ๊ฒฐ๊ณผ, ์„œ๋ฒ„์—์„œ ์ธ์ฆ ๊ฐ€๋Šฅํ•œ ์„ธ์…˜ID๋ฅผ ๋งค๋ฒˆ ์ƒˆ๋กœ ๋งŒ๋“ค์–ด์ฃผ๊ณ  ์žˆ์—ˆ๋‹ค.

o ์›์ธ : ์„ธ์…˜ ์ •์ฑ…์„ Stateless ๋กœ ์„ค์ •ํ•ด ๋‘” ๊ฒƒ์ด ์›์ธ. ๋น„๋™๊ธฐ ํ†ต์‹ ์ธ AJAX๋Š” Statelessํ•œ SessionID๋ฅผ ๋ณด์žฅํ•˜์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

o ํ•ด๊ฒฐ์•ˆ : ์„ธ์…˜ ๊ด€๋ฆฌ ๋ฐฉ์‹์„ Default ๋ฐฉ์‹์ธ IF_REQUIRED๋กœ ์ˆ˜์ •. ๋”ฐ๋ผ์„œ ํ•˜๋‚˜์˜ ์„ธ์…˜ID๊ฐ€ ์œ ์ง€๋˜๋„๋ก ํ•จ(Statefull).
์›์ธ๋ถ„์„์„ ํ•˜๋ฉด์„œ ์˜๋„์น˜ ์•Š๊ฒŒ CORS์ •์ฑ…์— ๊ด€ํ•ด์„œ ๋งŽ์ด ๊ณต๋ถ€ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ์ดˆ๊ธฐ์—๋Š” "CORS์ •์ฑ…์— ์˜ํ•œ ์ธ์ฆ ๊ฑฐ๋ถ€"๋ฅผ ์›์ธ์œผ๋กœ ๊ฐ€์ •ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋˜ํ•œ ๋ฌธ์ œ ํ•ด๊ฒฐ ๊ณผ์ •์—์„œ AuthenticationEntryPoint(์ธ์ฆ ์‹คํŒจ)์™€ AccessDeniedHandler(์ธ๊ฐ€ ์‹คํŒจ) ๊ฐœ๋…์„ ์ˆ™์ง€ํ•˜์˜€๊ณ , Session์™€ Cookie์˜ ๊ด€๋ฆฌ๋ฐฉ์‹์„ ๋ˆˆ์œผ๋กœ ๋ณด๋ฉฐ ์ฒด๊ฐํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

๐Ÿ“’ ๋‹ค๋ฅธ ์„œ๋ฒ„์™€ ์š”์ฒญ๊ฐ„ CORS ์ •์ฑ… ์œ„๋ฐ˜
o ํ˜„์ƒ : ์˜จ๋””๋งจ๋“œ๋ฐฐ์น˜ ์‹คํ–‰ ์š”์ฒญ(API์„œ๋ฒ„ -> ๋ฐฐ์น˜์„œ๋ฒ„)์‹œ ๋„๋ฉ”์ธ ๋ถˆ์ผ์น˜๋กœ ์ธํ•œ CORS ์ •์ฑ… ์œ„๋ฐ˜

o ์›์ธ : ํ”„๋กœ๊ทธ๋žจ์˜ ์„ค๊ณ„์ƒ, ์ž์›์ด ์„œ๋น„์Šค๋˜๋Š” ์ตœ์ดˆ ๋„๋ฉ”์ธ์€ API์„œ๋ฒ„(8080 port)์˜ ๋„๋ฉ”์ธ์ด์ง€๋งŒ ์˜จ๋””๋งจ๋“œ ๋ฐฐ์น˜ ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰์€ ๋ฐฐ์น˜ ์„œ๋ฒ„(8081 port)์—์„œ ์ฒ˜๋ฆฌ๋˜๊ธฐ ๋•Œ๋ฌธ์— CORS์ •์ฑ…์˜ ์œ„๋ฐ˜์„ ํ”ผํ•  ์ˆ˜ ์—†์—ˆ๋‹ค.

o ํ•ด๊ฒฐ์•ˆ : JSONP๋ฅผ ์ด์šฉํ•œ GET๋ฐฉ์‹ ์š”์ฒญ์„ ํ†ตํ•ด, CORS๋ฅผ ์šฐํšŒํ•œ ์š”์ฒญ์„ ๋ฐฐ์น˜์„œ๋ฒ„๋กœ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์ด๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ •๊ธฐ ๋ฐฐ์น˜ ๋„์ค‘ ์‹คํŒจํ•œ ๋Œ€์ƒ์„ ์žฌ์ˆ˜ํ–‰ํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ๊ตฌํ˜„ ๊ฐ€๋Šฅํ–ˆ๋‹ค.

๐Ÿ“’ JpaPagingItemReader์˜ N+1 ๋ฌธ์ œ
o ํ˜„์ƒ : chunk size = 1 ์กฐ๊ฑด์—์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒ. ์˜ˆ๋ฅผ ๋“ค์–ด 6๊ฑด์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ์—, [2,4,6] ๋ฒˆ์งธ Item์€ processor๋กœ ์ „๋‹ฌ๋˜์ง€ ์•Š๋Š” ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒ.

o ์›์ธ : ๋กœ๊ทธ ๋ถ„์„ ๊ฒฐ๊ณผ, [1,3,5] ๋ฒˆ์งธ Item์„ ์กฐํšŒํ• ๋•Œ ๊ฐ๊ฐ 2๋ฒˆ์˜ select qeury๊ฐ€ ์‹คํ–‰๋˜์–ด [2,4,6] ๋ฒˆ์งธ Item์ด through pass ์ฒ˜๋ฆฌ๋จ.

o ํ•ด๊ฒฐ์•ˆ : ์ž„์‹œ์ ์œผ๋กœ chunk size = 1000 ์œผ๋กœ ์„ค์ •ํ•˜์—ฌ ํ•ด๊ฒฐํ•จ. ItemReader์˜ queryString join๋ฌธ ๋ถ€๋ถ„์— fetch๋ฅผ ์‚ฝ์ž…ํ•˜์—ฌ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ์•ˆ์„ ํ…Œ์ŠคํŠธํ•  ์˜ˆ์ •.

๐Ÿ“’ ๋‹ค์ค‘์„œ๋ฒ„ ํ™˜๊ฒฝ์—์„œ ์ธ์ฆ/์ธ๊ฐ€ ๋ฉ”์ปค๋‹ˆ์ฆ˜์˜ ์ดํ•ด
o ํ˜„์ƒ : 2๊ฐœ์˜ ์„œ๋ฒ„(API์„œ๋ฒ„, ๋ฐฐ์น˜์„œ๋ฒ„) ์™€ ๋‹จ์ผ DB์˜ ์•„ํ‚คํ…์ฒ˜๋กœ ์„ค๊ณ„ํ•˜์˜€๋‹ค.

o ์›์ธ : ์ธ์ฆ/์ธ๊ฐ€ ์ •๋ณด๋ฅผ ๋‘ ์„œ๋ฒ„๊ฐ€ ๊ณต์œ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ–ˆ๋‹ค. ๋กœ๊ทธ์ธ์€ API์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ์ฒ˜๋ฆฌ๋˜์–ด์•ผ ํ•˜์ง€๋งŒ, ๋ฐฐ์น˜์„œ๋ฒ„ ๋˜ํ•œ ์ธ์ฆ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ–ˆ๋‹ค. ์ด์œ ๋Š” [API์„œ๋ฒ„ -> ๋ฐฐ์น˜์„œ๋ฒ„] ์š”์ฒญ ์ค‘ ADMIN ๊ถŒํ•œ์„ ์š”๊ตฌํ•˜๋Š” API๊ฐ€ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

o ํ•ด๊ฒฐ์•ˆ : ๋‹ค์–‘ํ•œ ์†”๋ฃจ์…˜์ด ์กด์žฌํ•˜์ง€๋งŒ, ๊ทธ ์ค‘ Redis Cach DB ๋ฅผ ๋‘์–ด ์„ธ์…˜ ์ €์žฅ์†Œ๋กœ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํƒํ–ˆ๋‹ค. ๋นˆ๋ฒˆํ•œ ๋กœ๊ทธ์ธ ๊ณผ์ •์—์„œ Main DB์— I/O๊ฐ€ ๊ฐ€ํ•ด์ง€์ง€ ์•Š๋Š” ๋‹ค๋Š” ์ ์ด ํฐ ์žฅ์ ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ํ”„๋กœ๊ทธ๋žจ์— ๊ฐ€์žฅ ์ ํ•ฉํ•œ ์ธ์ฆ/์ธ๊ฐ€ ํ™˜๊ฒฝ์„ ์„ค๊ณ„ํ•˜๊ณ  ๊ตฌ์ถ•ํ•˜๋Š” ๊ณผ์ •์—์„œ ๋‹ค์–‘ํ•œ ์•„ํ‚คํ…์ฒ˜์˜ ๋ฉ”์ปค๋‹ˆ์ฆ˜๊ณผ ์žฅ๋‹จ์ ์„ ๊ณต๋ถ€ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

๐Ÿ“’ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ณ€์กฐ ์ทจ์•ฝ์  ๋ฐ ๋ฐฉ์–ด์˜ ์ดํ•ด
o ํ˜„์ƒ : ์ ‘๊ทผ ๊ถŒํ•œ์ด ์—†๋Š” ์ž์›(๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์šด๋™์ผ์ง€, ํƒ€ ๊ทธ๋ฃน์˜ ๊ทธ๋ฃน์ •๋ณด ๋“ฑ)์˜ ์ ‘๊ทผ์ด ํ—ˆ์šฉ๋จ

o ์›์ธ : ๋Œ€ํ‘œ์ ์ธ ์›น ํ•ดํ‚น ๋ณด์•ˆ ์ทจ์•ฝ์ ์ธ "ํŒŒ๋ผ๋ฏธํ„ฐ ๋ณ€์กฐ" ์ทจ์•ฝ์ ์ด ๋…ธ์ถœ ๋˜์–ด์žˆ์—ˆ๋‹ค.

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

About

Let's work we out!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published