Skip to content

feelwjd/GachonINFO

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

9 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๊ตญ๋‚ด ๋Œ€ํ•™์ƒ์„ ์œ„ํ•œ ํ†ตํ•ฉ์‹œ๊ฐ„ํ‘œ ์ œ๊ณต์„œ๋น„์Šค

์—ฐ๊ณ„์ธํ„ฐํŽ˜์ด์Šค ์„ค๊ณ„ ๋ฐ ์—ฐ๊ณ„์‹œํ—˜๊ฒฐ๊ณผ์„œ

2022.5.10

๊ฐ€์ฒœ๋Œ€ํ•™๊ต ์ปดํ“จํ„ฐ๊ณตํ•™๊ณผ

๋ฏผ์ •ํ•„(201735951)

์˜ค์ œ๋ฏผ(201735991)

**
**

๋ชฉ ์ฐจ

1. ์„œ๋น„์Šค ๋ถ„์„

1.1 ํ†ตํ•ฉ ์‹œ๊ฐ„ํ‘œ ์„œ๋น„์Šค์˜ ๊ตฌ์„ฑ

1.2 ์—ฐ๊ณ„ ์š”๊ตฌ์กฐ๊ฑด

1.3 A๋Œ€ํ•™(์†ก์‹ ์‹œ์Šคํ…œ)์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์„ฑ(ERD, ํ…Œ์ด๋ธ”๋ช…์„ธ์„œ)

1.4 B๋Œ€ํ•™(์†ก์‹ ์‹œ์Šคํ…œ)์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์„ฑ(ERD, ํ…Œ์ด๋ธ”๋ช…์„ธ์„œ)

1.5 C๋Œ€ํ•™(์†ก์‹ ์‹œ์Šคํ…œ)์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์„ฑ(ERD, ํ…Œ์ด๋ธ”๋ช…์„ธ์„œ)

1.6 ๊ฐ€์ฒœ์ •๋ณด(์ˆ˜์‹ ์‹œ์Šคํ…œ)์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์„ฑ(ERD, ํ…Œ์ด๋ธ”๋ช…์„ธ์„œ)

1.7 ์—ฐ๊ณ„์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„

2. ์—ฐ๊ณ„ ๋ฐ์ดํ„ฐ ๊ตฌ์„ฑํ•˜๊ธฐ

2.1 ์—ฐ๊ณ„ํ•ญ๋ชฉ ์ถ”์ถœ

2.2 ์—ฐ๊ณ„์ฝ”๋“œ ๋งคํ•‘ํ…Œ์ด๋ธ”

2.3 ํ‘œ์ค€ํ™”ํ•  ์ฝ”๋“œํ…Œ์ด๋ธ” ์ •์˜

2.4 ์—ฐ๊ณ„์ธํ„ฐํŽ˜์ด์Šค์˜ ์ •์˜ ๋ฐ ๋ช…์„ธ

3. ์—ฐ๊ณ„ ๋ฉ”์นด๋‹ˆ์ฆ˜ ๊ตฌ์„ฑ

3.1 ์—ฐ๊ณ„ ๋ฉ”์นด๋‹ˆ์ฆ˜ ์ •์˜

3.2 ์ธํ„ฐํŽ˜์ด์Šค ํŒŒ์ผ(ํ…Œ์ด๋ธ”)์ •์˜

3.3 ์ „์†กAPI ์ •์˜(REST API)

3.4 ์˜ค๋ฅ˜์ฝ”๋“œ์™€ ๋กœ๊ทธ์ •๋ณด์˜ ์ •์˜

3.5 ์—ฐ๊ณ„ ๋ฐ์ดํ„ฐ ๋ณด์•ˆ์ ์šฉ

4. ๋‚ด์™ธ๋ถ€ ์—ฐ๊ณ„๋ชจ๋“ˆ ๊ตฌํ˜„

4.1 ๊ฐœ๋ฐœํ™˜๊ฒฝ์˜ ์„ค์ •

4.2 ์šด์˜ํ™˜๊ฒฝ์˜ ์„ค์ •

4.3 ๋ฌด๊ฒฐ์„ฑ ์นจํ•ด์˜ ๋Œ€์‘๋ฐฉ์•ˆ ์„ค๊ณ„

4.4 ์—ฐ๊ณ„ ์ฃผ์š”์†Œ์Šค์ฝ”๋“œ ๋ฐ ์„ค๋ช…

4.5 ์†ก์ˆ˜์‹  ํ˜„ํ™ฉ ๋ชจ๋‹ˆํ„ฐ๋งํ™”๋ฉด ์บก์ณ

5. ์—ฐ๊ณ„ ํ…Œ์ŠคํŠธ

5.1 ํ…Œ์ŠคํŠธ๊ฐœ์š”

5.2 ๋‹จ์œ„ ํ…Œ์ŠคํŠธ

5.3 ์—ฐ๊ณ„ ํ…Œ์ŠคํŠธ

5.4 ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ๊ตฌ์ถ•

5.5 ์—ฐ๊ณ„ํ…Œ์ŠคํŠธ ์ˆ˜ํ–‰๊ฒฐ๊ณผ ๊ฒ€์ฆ

์„œ๋น„์Šค ๋ถ„์„

ํ†ตํ•ฉ ์‹œ๊ฐ„ํ‘œ ์„œ๋น„์Šค์˜ ๊ตฌ์„ฑ

ใˆœ๊ฐ€์ฒœ์ •๋ณด๋Š” ๋Œ€ํ•™์ƒ๋“ค์—๊ฒŒ ์‹œ๊ฐ„ํ‘œ๋ฅผ ๋ฌด๋ฃŒ๋กœ ์ œ๊ณตํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœํ•˜๊ธฐ๋กœ ํ•˜์˜€์œผ๋ฉฐ, ํ˜„์žฌ 3๊ฐœ๋Œ€ํ•™(A, B, C)๊ณผ ๊ณ„์•ฝ์„ ๋งบ์–ด, ๊ฐ ๋Œ€ํ•™์˜ ํ•™์‚ฌDB์˜ ์ผ๋ถ€๋‚ด์šฉ์„ ์ œ๊ณตํ•˜๊ธฐ๋กœ ํ•ฉ์˜ํ•˜์˜€๋‹ค. ํ–ฅํ›„์— ์ถ”๊ฐ€๋กœ ํ†ตํ•ฉ๋  ๋Œ€ํ•™๋“ค์€ ์ด ๋ฌธ์„œ(์ธํ„ฐํŽ˜์ด์Šค ์„ค๊ณ„์„œ)์— ๊ธฐ์ˆ ๋œ ์—ฐ๊ณ„๋ฐฉ์‹์œผ๋กœ ๊ทธ๋Œ€๋กœ ๋”ฐ๋ฅผ ๊ฒฝ์šฐ์— ์—ฐ๊ณ„๊ณผ์ •์—์„œ์˜ ๋น„์šฉ๊ณผ ๋…ธ๋ ฅ์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

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

[๊ทธ๋ฆผ 1-1] ์‹œ์Šคํ…œ ๊ตฌ์„ฑ๋„

์—ฐ๊ณ„ ์š”๊ตฌ์กฐ๊ฑด

์š”๊ตฌ์‚ฌํ•ญ1) ๊ฐ ๋Œ€ํ•™์˜ ์žฌํ•™์ƒ๋“ค์—๊ฒŒ๋งŒ (์šฐ์ธก๊ทธ๋ฆผ์ฒ˜๋Ÿผ) ์‹œ๊ฐ„ํ‘œ UI๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

์š”๊ตฌ์‚ฌํ•ญ2) ๋ชจ๋“  ์‚ฌ์šฉ์ž(ํ•™์ƒ)๊ฐ€ ์ž์‹ ์˜ ์‹œ๊ฐ„ํ‘œ๋ฅผ ๋ณด๋ ค๋ฉด ๋ฐ˜๋“œ์‹œ ๋กœ๊ทธ์ธํ•˜์—ฌ์•ผ ํ•˜๋ฉฐ, ์•„์ด๋””์™€ ์•”ํ˜ธ๋กœ ์ธ์ฆํ•œ๋‹ค.

์š”๊ตฌ์‚ฌํ•ญ3) ๋กœ๊ทธ์ธ์ด ์„ฑ๊ณตํ•˜๋ฉด, ๋Œ€ํ•™๋ช…,ํ•™๊ณผ๋ช…,ํ•™์ƒ๋ช…์ด ์ž๋™์œผ๋กœ ์ถœ๋ ฅ๋˜๋„๋ก ํ•œ๋‹ค.

[๊ทธ๋ฆผ 1-2] ํ†ตํ•ฉ์‹œ๊ฐ„ํ‘œ(ํ•™์ƒview)

์š”๊ตฌ์‚ฌํ•ญ4) ๊ทธ๋ฆผ1-2 ํ†ตํ•ฉ์‹œ๊ฐ„ํ‘œ UI์—์„œ๋Š” ํ•ด๋‹น์š”์ผ/๊ต์‹œ์— ํ•ด๋‹น๊ณผ๋ชฉ๋ช…, ๋‹ด๋‹น๊ต์ˆ˜๋ช…, ๊ฐ•์˜์‹คํ˜ธ์ˆ˜๊ฐ€ ํ‘œ๊ธฐ๋˜์–ด์•ผ ํ•œ๋‹ค.

์š”๊ตฌ์‚ฌํ•ญ5) ์ˆ˜๊ฐ•์‹ ์ฒญ๊ธฐ๊ฐ„์ด ์ข…๋ฃŒ๋œ ์งํ›„์™€ ์ •์ •๊ธฐ๊ฐ„์ด ์ข…๋ฃŒ๋œํ›„์—๋งŒ ์ค‘๊ณ„์‹œ์Šคํ…œ ๋ชจ๋‹ˆํ„ฐ๋ง์šด์˜์ž๊ฐ€ ์—ฐ๊ณ„๋ชจ๋‹ˆํ„ฐ๋ง์„œ๋ฒ„๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด ์—ฐ๊ณ„๊ฐ€ ์‹คํ–‰๋˜๋„๋ก ํ•œ๋‹ค.

์š”๊ตฌ์‚ฌํ•ญ6) ์—ฐ๊ณ„๊ฐ€ ์‹คํ–‰๋ ๋•Œ๋Š” ๋ฐ˜๋“œ์‹œ ์—ฐ๊ณ„๊ด€๋ฆฌ์ •๋ณด๊ฐ€ DB์— ์ €์žฅ๋˜๊ณ  ๊ด€๋ฆฌ๋˜์–ด์ ธ์•ผ ํ•œ๋‹ค.

์š”๊ตฌ์‚ฌํ•ญ7) ๊ฐ ๋Œ€ํ•™ ํ•™์‚ฌ์„œ๋ฒ„์—์„œ๋Š” ๊ฐœ์ธ์ •๋ณด(์˜ˆ, ์ด๋ฆ„, ์ฃผ๋ฏผ๋ฒˆํ˜ธ, ํ•™๋ฒˆ, ์‚ฌ๋ฒˆ, ์•”ํ˜ธ)๊ฐ€ ์•”ํ˜ธํ™”๋˜์–ด ์žˆ์œผ๋ฉฐ, ใˆœ๊ฐ€์ฒœ์ •๋ณด์˜ DB์—์„œ๋„ ํ•ด๋‹น ๊ฐœ์ธ์ •๋ณด๋“ค์€ ์•”ํ˜ธํ™”ํ•˜์—ฌ์•ผ ํ•œ๋‹ค.

์š”๊ตฌ์‚ฌํ•ญ8) ๋ชจ๋“  ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ AES192 ๋กœ ํ†ต์ผํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค.

์š”๊ตฌ์‚ฌํ•ญ9) ํ•œ ๊ฐœ์˜ ๋Œ€ํ•™์ด๋ผ๋„ ์ฝ”๋“œํ™”๊ฐ€ ๋˜์–ด ์žˆ๋Š” ํ•ญ๋ชฉ์€ ์ˆ˜์‹ ์‹œ์Šคํ…œ์—์„œ๋„ ์ฝ”๋“œํ™”๊ฐ€ ๋˜์–ด์•ผ ํ•œ๋‹ค.

์š”๊ตฌ์‚ฌํ•ญ10) ์‹œ๊ฐ„ํ‘œ์„œ๋น„์Šค๋ฅผ ํ•˜๋Š”๋ฐ ์žˆ์–ด์„œ ๊ผญ ํ•„์š”ํ•œ ์ •๋ณด๋งŒ ์—ฐ๊ณ„ํ•˜๊ณ  ๊ทธ ์ด์™ธ์˜ ์ •๋ณด๋Š” ๋ณด์•ˆ์ƒ ์—ฐ๊ณ„ํ•˜์ง€ ์•Š๋Š”๋‹ค.

์š”๊ตฌ์‚ฌํ•ญ11) ์„ค๋ฌธ์ง€๋กœ ํ•˜๋Š” ์„ค๋ฌธ์กฐ์‚ฌ๋Š” ์—†๋‹ค.

์š”๊ตฌ์‚ฌํ•ญ12) ๊ฐ ๋Œ€ํ•™์—์„œ๋Š” ๊ฐ ๋Œ€ํ•™DB์˜ ์–ด๋–ค ํ•ญ๋ชฉ๋„ ์ ˆ๋Œ€๋กœ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•˜์ง€ ์•Š๋Š”๋‹ค.

์š”๊ตฌ์‚ฌํ•ญ13) ์—ฐ๊ณ„ํŒŒ์ผํ˜•์‹์€ JSON ํฌ๋งท์œผ๋กœ ํ•˜๋ฉฐ, REST API๋ฐฉ์‹์œผ๋กœ ์—ฐ๊ณ„ํ•œ๋‹ค

์š”๊ตฌ์‚ฌํ•ญ14) ์ œ์‹œํ•œ 3๊ฐœ ๋Œ€ํ•™(A, B, C)์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ทœ๊ฒฉ๊ณผ ๋‚ด์šฉ์„ ๊ธฐ์ค€์œผ๋กœ ํ•œ๋‹ค.

์š”๊ตฌ์‚ฌํ•ญ15) A๋Œ€ํ•™์—์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”๋กœ ๋กœ๊ทธ์ •๋ณด์™€ ์˜ค๋ฅ˜์ •๋ณด๋ฅผ ๊ธฐ๋กํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, B๋Œ€ํ•™๊ณผ C๋Œ€ํ•™์—์„œ๋Š” ํŒŒ์ผํ˜•ํƒœ๋กœ ๋กœ๊ทธ์ •๋ณด์™€ ์˜ค๋ฅ˜์ •๋ณด๋ฅผ ๊ธฐ๋กํ•˜๋„๋ก ํ•˜์—ฌ์•ผ ํ•œ๋‹ค.

์š”๊ตฌ์‚ฌํ•ญ16) ์ค‘๊ณ„์‹œ์Šคํ…œ์—์„œ์˜ ์—ฐ๊ณ„๋ชจ๋‹ˆํ„ฐ๋ง ์„œ๋ฒ„๋Š” ๋กœ๊ทธ์ •๋ณด์™€ ์˜ค๋ฅ˜์ •๋ณด๋ฅผ ๊ฐ๊ฐ ํŒŒ์ผ๋กœ ๊ธฐ๋กํ•œ๋‹ค

์š”๊ตฌ์‚ฌํ•ญ17) A๋Œ€ํ•™, B๋Œ€ํ•™, C๋Œ€ํ•™์˜ ๋ฐ์ดํ„ฐ์ •๋ณด๋Š” ๊ฐ๊ฐ ๊ทธ๋ฆผ1-3, ๊ทธ๋ฆผ1-4, ๊ทธ๋ฆผ1-5์— ๋‚˜์™€ ์žˆ๋‹ค.

์š”๊ตฌ์‚ฌํ•ญ18) ๋ณธ ์–‘์‹์Šคํƒ€์ผ์„ ์ ˆ๋Œ€๋กœ ๊นจํŠธ๋ฆฌ๋ฉด ์•ˆ๋˜๋ฉฐ, ๊ทธ์™ธ์— ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์š”๊ตฌ์‚ฌํ•ญ์„ ๊ฐ์ž ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

[๊ทธ๋ฆผ 1-3] A๋Œ€ํ•™ DB์ •๋ณด

[๊ทธ๋ฆผ 1-4] B๋Œ€ํ•™ DB์ •๋ณด

[๊ทธ๋ฆผ 1-5] C๋Œ€ํ•™ DB์ •๋ณด

A๋Œ€ํ•™(์†ก์‹ ์‹œ์Šคํ…œ)์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์„ฑ(ERD, ํ…Œ์ด๋ธ”๋ช…์„ธ์„œ)

ERD

[๊ทธ๋ฆผ 2-1] A๋Œ€ํ•™ ์šด์˜DB์˜ ERD

ํ…Œ์ด๋ธ”๋ช…์„ธ์„œ ๋ฐ ์ฝ”๋“œ์ •์˜

<A๋Œ€ํ•™ ํ…Œ์ด๋ธ” ๋ช…์„ธ์„œ>

โ€ป Student ํ…Œ์ด๋ธ”์˜ social_security_num ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” crypto๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•ด hexํ˜•ํƒœ๋กœ ์ €์žฅํ•˜๊ธฐ์— Char(40)์œผ๋กœ ๋Š˜๋ ธ๋‹ค.

B๋Œ€ํ•™(์†ก์‹ ์‹œ์Šคํ…œ)์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์„ฑ(ERD, ํ…Œ์ด๋ธ”๋ช…์„ธ์„œ)

ERD

[๊ทธ๋ฆผ 2-2] B๋Œ€ํ•™ ์šด์˜DB์˜ ERD

ํ…Œ์ด๋ธ”๋ช…์„ธ์„œ ๋ฐ ์ฝ”๋“œ์ •์˜

<B๋Œ€ํ•™ ํ…Œ์ด๋ธ” ๋ช…์„ธ์„œ>

โ€ป Student ํ…Œ์ด๋ธ”์˜ SS_number๊ฐ™์€ ๊ฒฝ์šฐ๋Š” crypto๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•ด hexํ˜•ํƒœ๋กœ ์ €์žฅํ•˜๊ธฐ์— Char(40)์œผ๋กœ ๋Š˜๋ ธ๋‹ค.

C๋Œ€ํ•™(์†ก์‹ ์‹œ์Šคํ…œ)์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์„ฑ(ERD, ํ…Œ์ด๋ธ”๋ช…์„ธ์„œ)

ERD

[๊ทธ๋ฆผ 2-2] C๋Œ€ํ•™ ์šด์˜DB์˜ ERD

ํ…Œ์ด๋ธ”๋ช…์„ธ์„œ ๋ฐ ์ฝ”๋“œ์ •์˜

โ€ป Student ํ…Œ์ด๋ธ”์˜ SS_number๊ฐ™์€ ๊ฒฝ์šฐ๋Š” crypto๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•ด hexํ˜•ํƒœ๋กœ ์ €์žฅํ•˜๊ธฐ์— Char(40)์œผ๋กœ ๋Š˜๋ ธ๋‹ค.

๊ฐ€์ฒœ์ •๋ณด(์ˆ˜์‹ ์‹œ์Šคํ…œ)์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์„ฑ(ERD, ํ…Œ์ด๋ธ”๋ช…์„ธ์„œ)

[๊ทธ๋ฆผ 2-4] ๊ฐ€์ฒœ์ •๋ณด ์šด์˜DB์˜ ERD

ํ…Œ์ด๋ธ”๋ช…์„ธ์„œ ๋ฐ ์ฝ”๋“œ์ •์˜

์—ฐ๊ณ„์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„

์—ฐ๊ณ„ ๋ฐ์ดํ„ฐ ๊ตฌ์„ฑํ•˜๊ธฐ

์—ฐ๊ณ„ํ•ญ๋ชฉ ์ถ”์ถœ

์—ฐ๊ณ„์ฝ”๋“œ ๋งคํ•‘ํ…Œ์ด๋ธ”

<์—ฐ๊ณ„ ๋งคํ•‘ ์ฝ”๋“œ ํ•„์š” ๋ฐ์ดํ„ฐ>

<๊ณผ๋ชฉ์ฝ”๋“œ ๋งคํ•‘ ํ…Œ์ด๋ธ”>

<๊ฐ•์˜์‹ค ์ฝ”๋“œ ๋งคํ•‘ ํ…Œ์ด๋ธ”>

<ํ•™๊ณผ์ฝ”๋“œ ๋งคํ•‘ ํ…Œ์ด๋ธ”>

ํ‘œ์ค€ํ™”ํ•  ์ฝ”๋“œํ…Œ์ด๋ธ” ์ •์˜

<๊ณผ๋ชฉ์ฝ”๋“œ ๋งคํ•‘ ํ…Œ์ด๋ธ”>

<๊ฐ•์˜์‹ค ์ฝ”๋“œ ๋งคํ•‘ ํ…Œ์ด๋ธ”>

<ํ•™๊ณผ์ฝ”๋“œ ๋งคํ•‘ ํ…Œ์ด๋ธ”>

์—ฐ๊ณ„์ธํ„ฐํŽ˜์ด์Šค์˜ ์ •์˜ ๋ฐ ๋ช…์„ธ

<์—ฐ๊ณ„ ์ธํ„ฐํŽ˜์ด์Šค ์ •์˜์„œ>

<์—ฐ๊ณ„ ์ธํ„ฐํŽ˜์ด์Šค ๋ช…์„ธ์„œ>

์—ฐ๊ณ„ ๋ฉ”์นด๋‹ˆ์ฆ˜ ๊ตฌ์„ฑ

์—ฐ๊ณ„ ๋ฉ”์นด๋‹ˆ์ฆ˜ ์ •์˜

[๊ทธ๋ฆผ 3-1] ์—ฐ๊ณ„ ๋ฉ”์ปค๋‹ˆ์ฆ˜ ๊ตฌ์„ฑ๋„

.

์ธํ„ฐํŽ˜์ด์Šค ํŒŒ์ผ(ํ…Œ์ด๋ธ”)์ •์˜

<์ธํ„ฐํŽ˜์ด์Šค ํŒŒ์ผ ์ •์˜(JSON)>

<ํŒŒ์ผ๋กœ ๋กœ๊ทธ ๊ธฐ๋ก ์‹œ ๊ฒฐ์ • ์‚ฌํ•ญ>

ํŒŒ์ผ๋กœ๊ทธ ๊ธฐ๋ก์‹œ ์œ„์™€ ๊ฐ™์€ ๊ธฐ์ค€์œผ๋กœ ์ž‘์„ฑํ•œ๋‹ค.

<์†ก์‹  ์‹œ์Šคํ…œ ์ธํ„ฐํŽ˜์ด์Šค ํ…Œ์ด๋ธ”(ํŒŒ์ผ) ๋‹จ์œ„ ๋กœ๊ทธ(Log) ํ…Œ์ด๋ธ”(ํŒŒ์ผ) ๋ ˆ์ด์•„์›ƒ(Layout)>

ํŒŒ์ผ ๋กœ๊ทธ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ‘œ์˜ ์–‘์‹์œผ๋กœ ์ž‘์„ฑํ•œ๋‹ค.

์ „์†กAPI ์ •์˜(REST API)

<๊ฐ ๋Œ€ํ•™ API Docs>

<๊ฐ€์ฒœ์ •๋ณด API Docs>

์˜ค๋ฅ˜์ฝ”๋“œ์™€ ๋กœ๊ทธ์ •๋ณด์˜ ์ •์˜

<์—๋Ÿฌ ์ฝ”๋“œ ๊ธฐ์ค€ ํ…Œ์ด๋ธ”>

์—ฐ๊ณ„ ๋ฐ์ดํ„ฐ ๋ณด์•ˆ์ ์šฉ

Npm์„ ํ†ตํ•ด crypto๋ชจ๋“ˆ์˜ 128bit ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‚ฌ์šฉ.

AES192 ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํ‚ค ์ƒ์„ ์œ„ํ•ด developcrypto Seed๊ฐ’๊ณผ salt ํ•ด์‹ฑ ๊ฐ’๊ณผ IV ๋žœ๋ค Seed๊ฐ’์„ ํ†ตํ•ด ํ‚ค๋ฅผ ์ƒ์„ฑํ•œ ํ›„ 128bit ๋ธ”๋ก๋‹จ์œ„๋กœ ์•”ํ˜ธํ™”๋ฅผ ์‹คํ–‰ํ•œ๋‹ค. ํ‚ค ๊ฐ’์€ .env์— MYPASSWD๊ฐ’์œผ๋กœ ์ €์žฅํ•˜์—ฌ ๊ด€๋ฆฌํ•œ๋‹ค.

์ดํ›„ ์•”ํ˜ธํ™”๋œ ์ •๋ณด๋Š” ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์— ์ €์žฅ๋œ๋‹ค.

๊ฐ€์ฒœ์ •๋ณด ์ค‘๊ณ„ ์‹œ์Šคํ…œ์—์„œ ๊ฐœ์ธ์ •๋ณด ์š”์ฒญ ์‹œ ๊ฐ ๋Œ€ํ•™์—์„œ๋Š” AES192 ์•”ํ˜ธํ™” ๋œ ๊ฐœ์ธ์ •๋ณด๋ฅผ .envํŒŒ์ผ๊ณผ

ํ•จ๊ป˜ ๋ณด๋‚ด์ค€๋‹ค.

๋‚ด์™ธ๋ถ€ ์—ฐ๊ณ„๋ชจ๋“ˆ ๊ตฌํ˜„

๊ฐœ๋ฐœํ™˜๊ฒฝ์˜ ์„ค์ •

Server : Node.js โ€“ Express (Web Framework)

DB : Server โ€“ Mysql

IDE : VScode-Server (SSH remote)

์šด์˜ํ™˜๊ฒฝ์˜ ์„ค์ •

<winston.js>
Winston ๋ชจ๋“ˆ์„ ์ด์šฉํ•œ ๋กœ๊ทธ ๊ธฐ๋ก/๊ด€๋ฆฌ

Winston ๋ชจ๋“ˆ์„ ์ด์šฉํ•˜์—ฌ ์œ„์—์„œ ์ •์˜ํ•œ ๋กœ๊ทธ ํŒŒ์ผ์„ ์ •์˜ ํ•œ๋Œ€๋กœ info ํŒŒ์ผ๊ณผ error ํŒŒ์ผ์— .log ํ™•์žฅ์ž ํ˜•ํƒœ์˜ ๋กœ๊ทธํŒŒ์ผ์„ ์ €์žฅํ•œ๋‹ค.

Error ๋กœ ์ง€์ •๋œ ๋กœ๊ทธ์ธ ๊ฒฝ์šฐ info ํŒŒ์ผ๊ณผ error ํŒŒ์ผ์— ๋‘˜๋‹ค ์ €์žฅ๋˜๋ฉฐ errorํŒŒ์ผ์—์„œ ๋”ฐ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

๋กœ๊ทธํŒŒ์ผ์€ 30์ผ ๋™์•ˆ ์ €์žฅ์ด ๋˜๋ฉฐ ๊ทธ ์ดํ›„์—๋Š” ์ƒˆ๋กœ ์ €์žฅ๋œ๋‹ค.

<๋กœ๊ทธ ํŒŒ์ผ ๋””๋ ‰ํ† ๋ฆฌ>

<๋กœ๊ทธํŒŒ์ผ ์˜ˆ์‹œ>

๋ฌด๊ฒฐ์„ฑ ์นจํ•ด์˜ ๋Œ€์‘๋ฐฉ์•ˆ ์„ค๊ณ„

<crypto.js ํŒŒ์ผ>

Crypto ์—์„œ ์‚ฌ์šฉํ•˜๋Š” KEY ๊ฐ’์˜ ๊ฒฝ์šฐ .envํŒŒ์ผ์— ๋”ฐ๋กœ ์ €์žฅํ•˜์—ฌ ๊ด€๋ฆฌํ•œ๋‹ค.

<ํšŒ์›๊ฐ€์ž… ์‹œ ์‚ฌ์šฉ๋œ crypto ๋ชจ๋“ˆ ์˜ˆ์‹œ>

<๋กœ๊ทธ์ธ ์‹œ ์‚ฌ์šฉ๋œ crypto ๋ชจ๋“ˆ ์˜ˆ์‹œ>

์—ฐ๊ณ„ ์ฃผ์š”์†Œ์Šค์ฝ”๋“œ ๋ฐ ์„ค๋ช…

<๊ฐ€์ฒœ์ •๋ณด ์„œ๋ฒ„ ์ฝ”๋“œ>

๊ฐ€์ฒœ์ •๋ณด ์„œ๋ฒ„์˜ ์ฃผ์š” ๊ธฐ๋Šฅ์œผ๋กœ ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ, ์•”ํ˜ธ๋ณ€๊ฒฝ, ๋กœ๊ทธ์ถœ๋ ฅ์ด ์žˆ๋‹ค.

๊ฐ ๋Œ€ํ•™๋ณ„ ์ฃผ์š” ๊ธฐ๋Šฅ์œผ๋กœ๋Š” ์—ฐ๊ณ„๋ฐ์ดํ„ฐ ์ „์†กํ•˜๋Š” Send์™€ ๊ฐ€์ฒœ์ •๋ณด์—์„œ ํšŒ์›๊ฐ€์ž… ์‹œ ๋Œ€ํ•™์ธ์ฆ์„ ํ•˜๋Š” identify, ๊ทธ๋ฆฌ๊ณ  ๋Œ€ํ•™๋‚ด ์ฝ”๋“œ ๋งคํ•‘ํ•˜๋Š” Mapping์ด ์žˆ๋‹ค.

  1. ํšŒ์›๊ฐ€์ž…

<ํšŒ์›๊ฐ€์ž… ํ™”๋ฉด>

<์ž…๋ ฅ๋ž€ ๋ฏธ์ž…๋ ฅ์‹œ>

์ž…๋ ฅ๋ž€ ๋ฏธ์ž…๋ ฅ์‹œ Javascript๋กœ ๋ฐ์ดํ„ฐ ์ „์†ก์ด ๋ถˆ๊ฐ€ํ•˜๊ฒŒ ํ•˜์˜€์œผ๋ฉฐ ํŠน์ •๋ž€์„ ์ž…๋ ฅํ•˜๋ผ๊ณ  ๊ฒฝ๊ณ ๋ฌธ์„ ๋„์šด๋’ค ํ•ด๋‹น ์นธ์ด focus๋œ๋‹ค.

<๋น„๋ฐ€๋ฒˆํ˜ธ ์ฒดํฌ๋ž€ ์˜ค๋ฅ˜ ์‹œ>

๋˜ํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์ผ์น˜ํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฐ์ดํ„ฐ ์ „์†ก์ด ๋ถˆ๊ฐ€ํ•˜๋ฉฐ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ฒดํฌ๋ž€์— focus๋œ๋‹ค.

<ํšŒ์›๊ฐ€์ž… ๊ณผ์ •>

์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ์•„์ด๋””์˜ @๋ฅผ splitํ•˜์—ฌ ๊ฐ ๋Œ€ํ•™์— identify๋ฅผ ์š”์ฒญํ•œ๋‹ค. ์š”์ฒญ๋ฐ›์€ ๋Œ€ํ•™์€ ํ•™์ƒ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จ ํ›„ ํ•™์ƒ์˜ ๊ธฐ๋ณธ ์ •๋ณด(ํ•™๋ฒˆ, ์ด๋ฆ„, ํ•™๊ณผ)๋ฅผ ๊ฐ€์ฒœ์ •๋ณด ์„œ๋ฒ„๋กœ ๋ณด๋‚ด์ค€๋‹ค.

<๋Œ€ํ•™์˜ identify ์ฝ”๋“œ>

๋Œ€ํ•™์œผ๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ํ•™์ƒ์˜ ๊ธฐ๋ณธ์ •๋ณด(ํ•™๋ฒˆ, ์ด๋ฆ„, ํ•™๊ณผ)๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ ํ›„ ํšŒ์›๊ฐ€์ž…์„ ์™„๋ฃŒํ•œ๋‹ค.

  1. ๋กœ๊ทธ์ธ

<๋กœ๊ทธ์ธ ํ™”๋ฉด>

์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์ธ ์‹œ ์„ธ์…˜์— ์•„์ด๋”” ์ •๋ณด์™€ ํ•™์ƒ์˜ ํ•™๋ฒˆ์„ ์„ธ์…˜์— ์ €์žฅํ•œ๋‹ค.

๋˜ํ•œ ์‚ฌ์šฉ์ž์˜ ๋Œ€ํ•™์— ์‹œ๊ฐ„ํ‘œ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ๊ณ„ํ•˜์—ฌ ๋ฉ”์ธ ํ™”๋ฉด์— ๋„์šด๋‹ค.

  1. ๋ฉ”์ธ

<๋ฉ”์ธํ™”๋ฉด>

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

<ํŠน์ • ๊ด€๋ฆฌ์ž ์‚ฌ์šฉ์ž ๋กœ๊ทธ์ธ>

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

  1. ๋Œ€ํ•™ ๋ฐ์ดํ„ฐ ์—ฐ๋™

<๋Œ€ํ•™ ๋ฐ์ดํ„ฐ ์—ฐ๋™ ํŽ˜์ด์ง€>

๊ฐ ๋Œ€ํ•™ ๋ฐ์ดํ„ฐ ์—ฐ๋™ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๊ฒŒ ๋˜๋ฉด ๊ฐ ๋Œ€ํ•™์˜ ๋ณ€๊ฒฝ๋œ ์‹œ๊ฐ„ํ‘œ ์ •๋ณด๋ฅผ ๋ฐ›์•„์™€์„œ ์ €์žฅํ•œ๋‹ค.

์‹œ๊ฐ„ํ‘œ์˜ ๊ฒฝ์šฐ ๊ฐ€์ฒœ์ •๋ณด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ฐ์ดํ„ฐ ๊ฒ€์ฆ์„ ์ง„ํ–‰ํ•˜๋Š”๋ฐ ๊ธฐ์กด์˜ ์‹œ๊ฐ„ํ‘œ ๋ฐ์ดํ„ฐ์™€ ์—ฐ๊ณ„๋ฐ์ดํ„ฐ์™€ ๋น„๊ตํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธ ํ•˜๊ฑฐ๋‚˜ ๊ทธ๋Œ€๋กœ ๋‘์–ด์„œ ๋ฆฌ์†Œ์Šค ๊ฐ’์„ ์ค„์ธ๋‹ค.

<์‹œ๊ฐ„ํ‘œ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ๋ชจ๋“ˆ scheduleValidation>

<์‹œ๊ฐ„ํ‘œ ๋ฐ์ดํ„ฐ ๊ฒ€์ฆ ํ•จ์ˆ˜์‚ฌ์šฉ ๋ฐ ์„ธ์…˜ ์˜ˆ์‹œ>

๋ชจ๋“ˆ ์‚ฌ์šฉ์‹œ ํ•ด๋‹น ํ•จ์ˆ˜์˜ ์ฝœ๋ฐฑ์ด ๋Šฆ์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ํ•จ์ˆ˜๋ฅผ Promise ํŒจํ„ด์„ ์ ์šฉํ•˜์—ฌ ๋น„๋™๊ธฐ๋ฅผ ์œ ์ง€ํ•˜์˜€๊ณ  ํ•จ์ˆ˜ ์‚ฌ์šฉ์— ์žˆ์–ด async ๊ณผ await๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ•ด๋‹น ์ฝ”๋“œ๊ฐ€ ๋น„๋™๊ธฐ๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ ๋™๊ธฐ์ ์ธ ๋ชจ์Šต์˜ ์ฝ”๋“œ์Šคํƒ€์ผ์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์˜€๋‹ค.

  1. ๋กœ๊ทธ์•„์›ƒ

๋กœ๊ทธ์•„์›ƒ์€ navbar์˜ ๋กœ๊ทธ์•„์›ƒ ๋ฒ„ํŠผ์„ ํ†ตํ•ด์„œ Session Destroy ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์†์‰ฝ๊ฒŒ ๋กœ๊ทธ์•„์›ƒ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ค์—ˆ๋‹ค.

<๋กœ๊ทธ์•„์›ƒ ์ฝ”๋“œ>

์†ก์ˆ˜์‹  ํ˜„ํ™ฉ ๋ชจ๋‹ˆํ„ฐ๋งํ™”๋ฉด ์บก์ณ

<์—ฐ๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋‹ˆํ„ฐ๋ง ํ™”๋ฉด>

ํŠน์ • ๊ด€๋ฆฌ์ž๋กœ ๋กœ๊ทธ์ธํ•œ ๊ฒฝ์šฐ ์—ฐ๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋‹ˆํ„ฐ๋ง ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

์—ฐ๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ์€ winston ๋ชจ๋“ˆ๋กœ ์‹œ์Šคํ…œ์˜ ๋กœ๊ทธ๋ฅผ .log ํ˜•ํƒœ์˜ ํŒŒ์ผ๋กœ ์ €์žฅํ•œ ํŒŒ์ผ์„ ์ฝ์–ด์„œ ํŽ˜์ด์ง€์— ๋ณด์—ฌ์ค€๋‹ค.

๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„, ์ƒํƒœ, I/F๋ช…, ์ฒ˜๋ฆฌ์ฝ”๋“œ, ์ฒ˜๋ฆฌ๊ฑด์ˆ˜, ์„ฑ๊ณต๊ฑด์ˆ˜, ์‹คํŒจ๊ฑด์ˆ˜๋ฅผ ๋ณด์—ฌ์ฃผ๋ฉฐ JQuery๋ฅผ ์ด์šฉํ•˜์—ฌ ์‹œ๊ฐ„, ์ƒํƒœ, I/F๋ช…, ์ฒ˜๋ฆฌ์ฝ”๋“œ๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์˜€๋‹ค.

๋˜ํ•œ Log List๋ฅผ ๋ˆ„๋ฅด๋ฉด ํ˜„์žฌ ์กด์žฌํ•˜๋Š” ๋กœ๊ทธํŒŒ์ผ์„ ์ฐพ์•„๋ณผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ•ด๋‹น ๋กœ๊ทธ๋ฅผ ์„ ํƒํ•˜๋ฉด ํ•ด๋‹น ๋‚ด์šฉ์ด ํ™”๋ฉด์— ์ถœ๋ ฅ๋œ๋‹ค.

<์ฒ˜๋ฆฌ์ฝ”๋“œ ๊ฒ€์ƒ‰ํ•œ ๊ฒฐ๊ณผ>

<Log ๋ชฉ๋ก ๋ฒ„ํŠผ>

<์—ฐ๊ณ„ ๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹  ํ˜„ํ™ฉ ์—๋Ÿฌ ๋ชจ๋‹ˆํ„ฐ๋ง ํŽ˜์ด์ง€>

์—ฐ๊ณ„ ๋ฐ์ดํ„ฐ ์—๋Ÿฌ ๋ชจ๋‹ˆํ„ฐ๋ง ํŽ˜์ด์ง€ ๋˜ํ•œ ์œ„์˜ ๋ชจ๋‹ˆํ„ฐ๋ง ํŽ˜์ด์ง€์™€ ๊ธฐ๋Šฅ์€ ๊ฐ™์œผ๋ฉฐ, ์—ฐ๊ณ„ ๋ฐ์ดํ„ฐ ์—๋Ÿฌ ๋ชจ๋‹ˆํ„ฐ๋ง ํŽ˜์ด์ง€๋Š” ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„, ์ƒํƒœ, I/F๋ช…, ์ฒ˜๋ฆฌ์ฝ”๋“œ, ์—๋Ÿฌ์ฝ”๋“œ, ์—๋Ÿฌ ์œ„์น˜๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์—ฐ๊ณ„ ํ…Œ์ŠคํŠธ

ํ…Œ์ŠคํŠธ๊ฐœ์š”

<๋‹จ๊ณ„๋ณ„ ํ…Œ์ŠคํŠธ์˜ ํ…Œ์ŠคํŠธ ๊ตฌ๊ฐ„ ๋ฐ ๋ฒ”์œ„>

๋‹จ์œ„ ํ…Œ์ŠคํŠธ ๊ตฌ๊ฐ„์œผ๋กœ A๋Œ€ํ•™, B๋Œ€ํ•™, C๋Œ€ํ•™, ๊ฐ€์ฒœ์ •๋ณด๋ฅผ ๊ฐ ์„œ๋ฒ„ ๋ณ„ ์—ฐ๊ณ„ ๋ฐ์ดํ„ฐ ๋กœ๋“œ ๋ฐ ๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹  ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค.

  1. A๋Œ€ํ•™ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ๋ฒ”์œ„
  • Identify (A๋Œ€ํ•™ ํ•™์ƒ ํŒ๋ณ„) [์—ฐ๊ณ„ ํ…Œ์ŠคํŠธ]
  • Send aunivdata (A๋Œ€ํ•™ ํ•™์ƒ ์ •๋ณด ์†ก์‹ ) [์—ฐ๊ณ„ ํ…Œ์ŠคํŠธ]
  • Mapping (์†ก์‹  ๋ฐ์ดํ„ฐ ๋งคํ•‘)
  1. B๋Œ€ํ•™ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ๋ฒ”์œ„
  • Identify (B๋Œ€ํ•™ ํ•™์ƒ ํŒ๋ณ„) [์—ฐ๊ณ„ ํ…Œ์ŠคํŠธ]
  • Send bunivdata (B๋Œ€ํ•™ ํ•™์ƒ ์ •๋ณด ์†ก์‹ ) [์—ฐ๊ณ„ ํ…Œ์ŠคํŠธ]
  • Mapping (์†ก์‹  ๋ฐ์ดํ„ฐ ๋งคํ•‘)
  1. C๋Œ€ํ•™ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ๋ฒ”์œ„
  • Identify (C๋Œ€ํ•™ ํ•™์ƒ ํŒ๋ณ„) [์—ฐ๊ณ„ ํ…Œ์ŠคํŠธ]
  • Send cunivdata (C๋Œ€ํ•™ ํ•™์ƒ ์ •๋ณด ์†ก์‹ ) [์—ฐ๊ณ„ ํ…Œ์ŠคํŠธ]
  • Mapping (์†ก์‹  ๋ฐ์ดํ„ฐ ๋งคํ•‘)
  1. ๊ฐ€์ฒœ์ •๋ณด ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ๋ฒ”์œ„
  • Signin (๋กœ๊ทธ์ธ) [์—ฐ๊ณ„ ํ…Œ์ŠคํŠธ]
  • Signup (ํšŒ์›๊ฐ€์ž…) [์—ฐ๊ณ„ ํ…Œ์ŠคํŠธ]
  • Pw_change (์•”ํ˜ธ ๋ณ€๊ฒฝ)
  • Crypto (์•”ํ˜ธํ™” / ๋ณตํ˜ธํ™”)
  • Logsearch (๋กœ๊ทธ ๊ธฐ๋ก ๊ด€๋ฆฌ)
  • Schedule (ํ•™์ƒ ์‹œ๊ฐ„ํ‘œ ๊ด€๋ฆฌ) [์—ฐ๊ณ„ ํ…Œ์ŠคํŠธ]

๋‹จ์œ„ ํ…Œ์ŠคํŠธ

<A๋Œ€ํ•™ ๋‹จ์œ„ํ…Œ์ŠคํŠธ>

A๋Œ€ํ•™์— ์ •์˜๋œ ์ฝ”๋“œ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ค‘๊ณ„์„œ๋ฒ„์—์„œ ์‚ฌ์šฉํ•  ์ฝ”๋“œ๋ฅผ ๋งคํ•‘ํ•œ๋‹ค.

์‚ฌ์šฉ๋œ Mapping์œผ๋กœ MapDepartment_code, MapSubject_code, MapClassroom, MapSubject_Professor, MapProfessor_code๋กœ 5๊ฐ€์ง€๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋‹ค.

ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ = ํ•ฉ๊ฒฉ

<B๋Œ€ํ•™ ๋‹จ์œ„ํ…Œ์ŠคํŠธ>

B๋Œ€ํ•™์— ์ •์˜๋œ ์ฝ”๋“œ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ค‘๊ณ„์„œ๋ฒ„์—์„œ ์‚ฌ์šฉํ•  ์ฝ”๋“œ๋ฅผ ๋งคํ•‘ํ•œ๋‹ค.

์‚ฌ์šฉ๋œ Mapping์œผ๋กœ MapSubject_code 1๊ฐœ๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋‹ค.

ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ = ํ•ฉ๊ฒฉ

<C๋Œ€ํ•™ ๋‹จ์œ„ํ…Œ์ŠคํŠธ>

C๋Œ€ํ•™์— ์ •์˜๋œ ์ฝ”๋“œ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ค‘๊ณ„์„œ๋ฒ„์—์„œ ์‚ฌ์šฉํ•  ์ฝ”๋“œ๋ฅผ ๋งคํ•‘ํ•œ๋‹ค.

์‚ฌ์šฉ๋œ Mapping์œผ๋กœ MapSubejct_code, MapDepartment_code 2๊ฐœ๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋‹ค.

ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ = ํ•ฉ๊ฒฉ

<๊ฐ€์ฒœ์ •๋ณด ๋‹จ์œ„ ํ…Œ์ŠคํŠธ>

๊ฐ€์ฒœ ์ •๋ณด์—์„œ ํšŒ์›์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ณ€๊ฒฝํ•  ๋•Œ crypto.js๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ณตํ˜ธํ™” ํ•œ๋‹ค์Œ์— ์ƒˆ๋กœ์šด ๋น„๋ฐ€๋ฒˆํ˜ธ๋กœ ์•”ํ˜ธํ™”ํ•˜์—ฌ ์ €์žฅํ•œ๋‹ค.

ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ = ํ•ฉ๊ฒฉ

์—ฐ๊ณ„ ํ…Œ์ŠคํŠธ

์—ฐ๊ณ„ ํ…Œ์ŠคํŠธ ๋ฒ”์œ„

  • A๋Œ€ํ•™ -> ๊ฐ€์ฒœ์ •๋ณด ์ค‘๊ณ„์„œ๋ฒ„
  • B๋Œ€ํ•™ -> ๊ฐ€์ฒœ์ •๋ณด ์ค‘๊ณ„์„œ๋ฒ„
  • C๋Œ€ํ•™ -> ๊ฐ€์ฒœ์ •๋ณด ์ค‘๊ณ„์„œ๋ฒ„
  • ๊ฐ€์ฒœ์ •๋ณด ์ค‘๊ณ„์„œ๋ฒ„ -> ๊ฐ€์ฒœ์ •๋ณด ํด๋ผ์ด์–ธํŠธ

<A๋Œ€ํ•™ ์—ฐ๊ณ„ ํ…Œ์ŠคํŠธ>

ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ = ํ•ฉ๊ฒฉ

<B๋Œ€ํ•™ ์—ฐ๊ณ„ ํ…Œ์ŠคํŠธ>

ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ = ํ•ฉ๊ฒฉ

<C๋Œ€ํ•™ ์—ฐ๊ณ„ ํ…Œ์ŠคํŠธ>

ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ = ํ•ฉ๊ฒฉ

<๊ฐ€์ฒœ ์ •๋ณด ์—ฐ๊ณ„ ํ…Œ์ŠคํŠธ>

ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ = ํ•ฉ๊ฒฉ

ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ๊ตฌ์ถ•

ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ๊ตฌ์ถ•์„ ์œ„ํ•˜์—ฌ ๋งจ์ฒ˜์Œ์œผ๋กœ ์—ฐ๊ณ„๋ฅผ ์œ„ํ•ด Adapter ์„ค์น˜ ๋ฐ ์„ค์ •ํ•˜๊ณ  ์†ก์ˆ˜์‹  ์‹œ์Šคํ…œ๊ณผ ์—ฐ๊ณ„ ์‚ฌ์šฉํ•  IP ๋ฐ ํฌํŠธ ํ—ˆ์šฉ, ๋ฐ ์™ธ๋ถ€ ๋ชจ๋“ˆ ์„ค์น˜ ๋ฐ ๊ฒฝ๋กœ ๋””๋ ‰ํ† ๋ฆฌ ์„ค์ •์„ ํ–ˆ๋‹ค.

๊ทธ ๋‹ค์Œ์œผ๋กœ๋Š” ์ˆ˜์‹  ๊ธฐ๊ด€๊ณผ ์—ฐ๊ณ„ํ•  IP๋ฐ ํฌํŠธ ํ—ˆ์šฉ ์‹ ์ฒญ ๋ฐ Mapping ์ฝ”๋“œ ๋ฐ์ดํ„ฐ ์„ค์ •์„ ํ•ด์˜€๊ณ  ์šด์˜ํ•  ๋•Œ ํ•„์š”ํ•œ DB ๊ตฌ์ถ•์„ํ–ˆ๋‹ค.

๊ตฌ์ถ•ํ•œ DB๋ฅผ ํ† ๋Œ€๋กœ ํ•™์ƒ์ •๋ณด, ํ•™์ƒ ์‹œ๊ฐ„ํ‘œ, ๊ณผ๋ชฉ ๊ฐ•์˜์‹ค, ํ•™๊ต ๊ต์ˆ˜, ํ•™๊ต ๊ณผ๋ชฉ ์ •๋ณด ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ์ถ•ํ•˜์˜€๊ณ  ์ค‘๊ณ„ ์„œ๋ฒ„์™€ ์—ฐ๊ณ„ ์‹œ ์„œ๋กœ ๋‹ค๋ฅธ ์ฝ”๋“œ๋“ค์„ Mapping ํ•˜์—ฌ ์ฝ”๋“œ๋“ค์„ ๋งž์ถ”์—ˆ๋‹ค.

๊ทธ๋ ‡๊ฒŒ ์ค€๋น„๋œ ๋ฐ์ดํ„ฐ์™€ ์ฝ”๋“œ๋“ค์„ ์ด์šฉํ•˜์—ฌ ์ค‘๊ณ„ ์„œ๋ฒ„์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์†ก์ˆ˜์‹  ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐ ๋Œ€ํ•™๋“ค๊ณผ ์ค‘๊ณ„ ์ชฝ ์ฝ”๋“œ ๊ตฌํ˜„์„ ํ–ˆ๋‹ค.

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

๋‹ค์Œ์œผ๋กœ๋Š” ๋ฐ์ดํ„ฐ์˜ ์†ก์ˆ˜์‹  ์‹œ ๋กœ๊ทธ ํŒŒ์ผ ๋ฐ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜๋„๋ก ํ–ˆ๊ณ  ์˜ค๋ฅ˜ ๋กœ๊ทธ ํŒŒ์ผ์„ ์„ค์ •ํ•˜์—ฌ ์—๋Ÿฌ ๋ฐœ์ƒ์‹œ ์—๋Ÿฌ ๋กœ๊ทธ๋ฅผ ๋งŒ๋“ค์–ด ์ €์žฅํ•˜๊ณ  ์—๋Ÿฌ ์œ„์น˜๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ ์—ฐ๊ณ„ํ•˜์—ฌ ๊ฐ€์ ธ์˜จ ๋ฐ์ดํ„ฐ๋“ค์„ ์ด์šฉํ•˜์—ฌ ๋ฏธ๋ฆฌ ์„ค์น˜ํ•ด ๋†“์€ ejs ์—”์ง„์œผ๋กœ ์›น ํŽ˜์ด์ง€๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ์‹œ๊ฐ„ํ‘œ ๋ฐ์ดํ„ฐ๋“ค์„ ๊ฐ€์ ธ์™€ ์‹œ๊ฐ„ํ‘œ๋ฅผ ํ•œ๋ˆˆ์— ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ๋‹ค.

์—ฐ๊ณ„ํ…Œ์ŠคํŠธ ์ˆ˜ํ–‰๊ฒฐ๊ณผ ๊ฒ€์ฆ

์—ฐ๊ณ„ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ์‹œํ—˜ ํ•ญ๋ชฉ ๋ฐ ์ฒ˜๋ฆฌ ์ ˆ์ฐจ ์ˆœ์„œ์— ๋”ฐ๋ผ

ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์ˆ˜ํ–‰ํ•œ ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ๊ฐ€ ์˜ˆ์ƒํ•œ ์ •์ƒ์ ์ธ ๊ฒฐ๊ณผ์ธ์ง€๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๊ฒ€์ฆ์„ ์ˆ˜ํ–‰ํ•˜์˜€๋‹ค.

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

ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ ํ…Œ์ŠคํŠธ ์˜ˆ์ƒํ•œ ๊ฐ’๊ณผ ๊ฐ™์ด ๋‚˜์™€ ํ…Œ์ŠคํŠธ์— ํ†ต๊ณผํ•˜์˜€๋‹ค.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors