๋ฐฑ์—”๋“œ(Back-End) ๊ฐœ๋ฐœ 51

์Šคํƒœํ‹ฑ (static) ์ด๋ž€?

static : ์ •์ , ๊ณ ์ •๋œ ์ด๋ž€ ์˜๋ฏธ์ž๋ฐ”์—์„œ์˜ static ํ‚ค์›Œ๋“œ๋ž€? ํด๋ž˜์Šค, ์ •์  ๋ฉค๋ฒ„ => static ๋ณ€์ˆ˜, static ๋ฉ”์„œ๋“œ Static์˜ ํŠน์ง•- ๋ฉ”๋ชจ๋ฆฌ์— ๊ณ ์ •์ ์œผ๋กœ ํ• ๋‹น- ๊ฐ์ฒด ์ƒ์„ฑ ์—†์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ - static ๋ฉ”์„œ๋“œ ๋‚ด์—์„œ๋Š” ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ ์‚ฌ์šฉ ๋ถˆ๊ฐ€- ํ•œ๋ฒˆ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€๋ฉด ๋ฉ”๋ชจ๋ฆฌ์˜ static ์˜์—ญ์— ์ ์žฌ๋˜๊ณ , ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋  ๋•Œ ํ•ด์ œ๋จ => GC๊ฐ€ ํ•„ํ„ฐ๋ง ํ•˜์ง€ ๋ชปํ•จ public class Ex { public void test() { System.out.println("์ถœ๋ ฅ๋ ๊นŒ?"); } public static void main() { // test(); // ๋ฉ”์„ธ์ง€ ์ถœ๋ ฅ๋˜์ง€ ์•Š๊ณ , ์ปดํŒŒ์ผ ์—๋Ÿฌ ๋ฐœ์ƒ! }}  => ์ปดํŒŒ์ผ ์—๋Ÿฌ ๋ฐœ์ƒ ์ด์œ ..

๊ธฐ๋ณธํ˜• ๋ณ€์ˆ˜ vs ์ฐธ์กฐํ˜• ๋ณ€์ˆ˜

๋ณ€์ˆ˜๋ž€?: ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ํ• ๋‹น๋ฐ›์€ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„๋ฐ์ดํ„ฐํƒ€์ž…(์ž๋ฃŒํ˜•) ์ด๋ž€?: ์ ์žฌํ•  ๋ฐ์ดํ„ฐ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ €์žฅ๋˜๊ณ , ํ”„๋กœ๊ทธ๋žจ์—์„œ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌ๋˜์–ด์•ผ ํ•˜๋Š”์ง€ ๋ช…์‹œ์ ์œผ๋กœ ์•Œ๋ ค์ฃผ๋Š” ํ‚ค์›Œ๋“œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์€ ํฌ๊ฒŒ ๊ธฐ๋ณธํ˜• ํƒ€์ž… / ์ฐธ์กฐํ˜• ํƒ€์ž…์œผ๋กœ ๊ตฌ๋ถ„๋จ! ๊ธฐ๋ณธ ์ž๋ฃŒํ˜• 8๊ฐ€์ง€ 1 (byte)248์ •์ˆ˜ํ˜•byteshortintlong์‹ค์ˆ˜ํ˜•  floatdouble๋ฌธ์žํ˜• char  ๋…ผ๋ฆฌํ˜•boolean    ๊ธฐ๋ณธ ์ž๋ฃŒํ˜• ํŠน์ง•- null ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์—†๋‹ค. (๊ธฐ๋ณธ๊ฐ’์ด ์ •ํ•ด์ ธ ์žˆ์Œ)- ๋ณ€์ˆ˜ ์„ ์–ธ๊ณผ ๋™์‹œ์— ๋ฉ”๋ชจ๋ฆฌ ์ƒ์„ฑ- ๋ชจ๋“  ๊ฐ’ ํƒ€์ž…์€ ๋ฉ”๋ชจ๋ฆฌ์˜ ์Šคํƒ(Stack)์— ์ €์žฅ๋จ์ฐธ์กฐ ์ž๋ฃŒํ˜•๋ฐฐ์—ด ํƒ€์ž… / ์—ด๊ฑฐ ํƒ€์ž… / ํด๋ž˜์Šค / ์ธํ„ฐํŽ˜์ด์Šค ์ฐธ์กฐ ์ž๋ฃŒํ˜• ํŠน์ง•- ๊ธฐ๋ณธํ˜•๊ณผ ๋‹ฌ๋ฆฌ ์‹ค์ œ ๊ฐ’์ด ์ €์žฅ๋˜์ง€ ์•Š๊ณ , ์ž๋ฃŒ๊ฐ€ ์ €์žฅ๋œ ๊ณต๊ฐ„์˜ '์ฃผ์†Œ'๋ฅผ ์ €์žฅ..

JAVA๋ž€? ์ž๋ฐ”์˜ ๊ตฌ๋™ ์›๋ฆฌ (JVM์˜ ํŠน์ง•)

์ž๋ฐ”๋Š” ๊ฐ์ฒด ์ง€ํ–ฅ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด !! ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์˜ ๊ตฌ๋™์›๋ฆฌ 1. ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค (.java ํ™•์žฅ์ž์˜ ์†Œ์ŠคํŒŒ์ผ)2. ์ปดํŒŒ์ผ๋Ÿฌ(java.exe)๊ฐ€ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค. (.class ํ™•์žฅ์ž์˜ ํด๋ž˜์Šค ํŒŒ์ผ)3. ๋Ÿฐ์ฒ˜(java.exe)๋กœ ์ž๋ฐ” ๊ฐ€์ƒ๋จธ์‹ (JVM)์„ ๊ตฌ๋™์‹œํ‚จ๋‹ค.4. ์ž๋ฐ” ๊ฐ€์ƒ๋จธ์‹ (JVM)์ด ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ํ•ด์„ํ•˜๋ฉฐ ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋œ๋‹ค.( * bytecode๋Š” ์ž๋ฐ” ๊ฐ€์ƒ ๋จธ์‹ ์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ์–ธ์–ด๋กœ ๋ณ€ํ™˜๋œ ์ฝ”๋“œ. JVM๋งŒ ์„ค์น˜ ๋˜์–ด ์žˆ์œผ๋ฉด bytecode๋Š” ์–ด๋–ค ์šด์˜์ฒด์ œ์—์„œ๋ผ๋„ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋‹ค. )   ์ž๋ฐ” ๊ฐ€์ƒ ๋จธ์‹ (JVM)  * ๊ตฌ์„ฑ ์š”์†Œ 1. ํด๋ž˜์Šค ๋กœ๋”(Class Loader) : ํ•„์š”ํ•œ ํด๋ž˜์Šค ํŒŒ์ผ์„ ์ฐพ๊ณ  ๋™์ ์œผ๋กœ ๋กœ๋“œํ•˜์—ฌ ์‹คํ–‰ ์‹œ์— ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค. ๋กœ๋“œ๋œ ..

์ฟ ํ‚ค(Cookie) vs ์„ธ์…˜(Session)

์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ†ต์‹ ์„ ํ•  ๋•Œ ์š”์ฒญ(Request)/์‘๋‹ต(Response)์„ ์ฃผ๊ณ  ๋ฐ›๋Š”๋‹ค.์ด ๋•Œ ํ†ต์‹ ์ด ์—ฐ์†์ ์œผ๋กœ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š๊ณ  ํ•œ ๋ฒˆ ํ†ต์‹ ์ด ๋˜๋ฉด ๋Š์–ด์ง„๋‹ค.๋”ฐ๋ผ์„œ, ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ˆ„๊ตฌ์ธ์ง€ ๊ณ„์† ์ธ์ฆ์„ ํ•ด์ค˜์•ผํ•œ๋‹ค.์ด๋Ÿฌํ•œ ๋ฒˆ๊ฑฐ๋กœ์›€์„ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ด '์ฟ ํ‚ค์™€ ์„ธ์…˜'์ด๋‹ค. ์ฟ ํ‚ค์™€ ์„ธ์…˜์˜ ์ฐจ์ด์ ์€ ํฌ๊ฒŒ ์ƒํƒœ ์ •๋ณด์˜ ์ €์žฅ ์œ„์น˜ ์ด๋‹ค.์ฟ ํ‚ค๋Š” 'ํด๋ผ์ด์–ธํŠธ(=๋กœ์ปฌPC)'์— ์ €์žฅํ•˜๊ณ , ์„ธ์…˜์€ '์„œ๋ฒ„'์— ์ €์žฅํ•œ๋‹ค.  ์ฟ ํ‚ค(Cookie)์„ธ์…˜(Session)์ €์žฅ์œ„์น˜ํด๋ผ์ด์–ธํŠธ(=์ ‘์†์ž PC)์›น ์„œ๋ฒ„ (ex. ํ†ฐ์บฃ HttpSession)๋งŒ๋ฃŒ์‹œ์ ์ฟ ํ‚ค ์ €์žฅ์‹œ ์„ค์ •(๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ข…๋ฃŒ๋˜์–ด๋„, ๋งŒ๋ฃŒ์‹œ์ ์ด ์ง€๋‚˜์ง€ ์•Š์œผ๋ฉด ์ž๋™ ์‚ญ์ œ ๋˜์ง€ ์•Š์Œ)๋ธŒ๋ผ์šฐ์ € ์ข…๋ฃŒ์‹œ ์‚ญ์ œ(๊ธฐ๊ฐ„ ์ง€์ • ๊ฐ€๋Šฅ)์šฉ๋Ÿ‰์ œํ•œ์ด 300๊ฐœ, ํ•˜๋‚˜์˜ ๋„๋ฉ”์ธ๋‹น 20๊ฐœ, ํ•˜๋‚˜์˜..

๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(Object Oriented Programming, OOP) ์–ธ์–ด

๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(OOP) ์ด๋ž€ ? ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (Object-Oriented Programming, OOP)์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ƒํ™” ์‹œ์ผœ ์ƒํƒœ์™€ ํ–‰์œ„๋ฅผ ๊ฐ€์ง„ ๊ฐ์ฒด๋กœ ๋งŒ๋“ค๊ณ , ๊ฐ์ฒด๋“ค๊ฐ„์˜ ์œ ๊ธฐ์ ์ธ ์ƒํ˜ธ์ž‘์šฉ์„ ํ†ตํ•ด ๋กœ์ง์„ ๊ตฌ์„ฑํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ๋ฒ•.(์ฐธ๊ณ ๋กœ, ์ ˆ์ฐจ ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ž€ ์ˆœ์ฐจ์ ์ธ ์ฒ˜๋ฆฌ๊ฐ€ ์ค‘์š”์‹œ๋˜๋ฉฐ ํ”„๋กœ๊ทธ๋žจ ์ „์ฒด๊ฐ€ ์œ ๊ธฐ์ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜๋„๋ก ๋งŒ๋“  ํ”„๋กœ๊ทธ๋ž˜๋ฐ, ๋ฐ˜๋ณต๋˜๋Š” ๋™์ž‘์„ ํ•จ์ˆ˜ ๋ฐ ํ”„๋กœ์‹œ์ € ํ˜•ํƒœ๋กœ ๋ชจ๋“ˆํ™”ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹)๊ฑฐ๊ธฐ์„œ ๋˜, ๊ฐ์ฒด(๋˜๋Š” ํด๋ž˜์Šค)๋ž€?  ํด๋ž˜์Šค : ์–ด๋–ค ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์ถ”์ƒํ™”๋ฅผ ๊ฑฐ์ณ ์ง‘๋‹จ์— ์†ํ•˜๋Š” ์†์„ฑ(attribute)๊ณผ ํ–‰์œ„๋ฅผ ๋ณ€์ˆ˜์™€ ๋ฉ”์„œ๋“œ๋กœ ์ •์˜ํ•œ ๊ฒƒ๊ฐ์ฒด(์ธ์Šคํ„ด์Šค) : ํด๋ž˜์Šค์—์„œ ์ •์˜ํ•œ ๊ฒƒ์„ ํ† ๋Œ€๋กœ ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹น๋œ ..

์ž๋ฐ”(JAVA) ์š”์•ฝ ์ •๋ฆฌ

์ž๋ฐ”์˜ ํŠน์ง• : ๊ฐ์ฒด์ง€ํ–ฅ, G.C(Garbage Collector), JVM, WORA1) WORA (Write Once Run Anywhere)=> ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์€ ํ•œ ๋ฒˆ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ๋‚˜๋ฉด ์šด์˜์ฒด์ œ ์ƒ๊ด€์—†์ด ์–ด๋””์„œ๋“  ์‹คํ–‰๊ฐ€๋Šฅํ•œ ํŠน์ง•2) JVM ( Java Virtual Machine, ์ž๋ฐ” ๊ฐ€์ƒ ๋จธ์‹  )=> ๊ฐ€์ƒ์˜ CPU ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž๋ฐ”์˜ ํ•ต์‹ฌ ๊ตฌ์„ฑ์š”์†Œ3) Garbage Collector=> ์ž๋ฐ”์—์„œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์—ญํ•  (๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๊ฐ์ฒด๋ฅผ ์ž๋™์œผ๋กœ ์ •๋ฆฌํ•˜๋Š” ์—ญํ• , ์ฐธ์กฐํ•˜๋Š” ๋ณ€์ˆ˜๊ฐ€ ์—†์„ ๋•Œ)๋ณ€์ˆ˜๋ช…, ๋ฉ”์„œ๋“œ ์‹๋ณ„์ž ๊ทœ์น™1) ๊ณต๋ฐฑ ๋ถˆ๊ฐ€2) ์ค‘๋ณต ๋ถˆ๊ฐ€3) ์ˆซ์ž๋กœ ์‹œ์ž‘ X4) ํ‚ค์›Œ๋“œ(์˜ˆ์•ฝ์–ด) ์‚ฌ์šฉ X5) ํŠน์ˆ˜๋ฌธ์ž(_, $) ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ6) ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ณ„----------------..

form ํƒœ๊ทธ ์ž…๋ ฅ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ ํ˜•์‹์œผ๋กœ ํ•œ๊บผ๋ฒˆ์— ๋ฆฌํ„ด๋ฐ›๊ธฐ($("form").serialize() ํ•จ์ˆ˜)

$(function() { const publicKey = '${publicKey}'; // ๊ณต๊ฐœํ‚ค ์ €์žฅ $("form").submit((e) => { // form ํƒœ๊ทธ submit ์ด๋ฒคํŠธ ํ•ธ๋“ค๋ง// e.preventDefault(); // ์ž…๋ ฅ๋ฐ›์€ ํšŒ์› ์ •๋ณด๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ ํ˜•์‹์œผ๋กœ ํ•œ๊บผ๋ฒˆ์— ๋ฆฌํ„ด๋ฐ›๊ธฐ const serializedData = $("form").serialize(); // => ํผ์— ๋Œ€ํ•œ serialize() ๋ฉ”์„œ๋“œ๋Š” ํผ ๋ฐ์ดํ„ฐ๋ฅผ ์ง๋ ฌํ™”ํ•˜๋Š”๋ฐ // ์ด๋•Œ, ์ง๋ ฌํ™”์˜ ์˜๋ฏธ๋Š” ํผ ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ ํ˜•์‹์œผ๋กœ ์ผ๋ ฌ๋กœ ๋‚˜์—ดํ•œ๋‹ค๋Š” ์˜๋ฏธ// console.log(serializedData); // name=bora..

[Spring] DI์™€ AOP์˜ ๊ฐœ๋…

์˜์กด์„ฑ ์ฃผ์ž…(DI) : ์˜์กด์„ฑ ์ฃผ์ž…์€ ๊ฐ์ฒด ๊ฐ„์˜ ์˜์กด ๊ด€๊ณ„๋ฅผ ์™ธ๋ถ€์—์„œ ๊ฒฐ์ •ํ•˜๊ณ  ์ฃผ์ž…ํ•˜๋Š” ๋””์ž์ธ ํŒจํ„ด์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐ ํด๋ž˜์Šค๋Š” ์ž์‹ ์˜ ์˜์กด ๊ฐ์ฒด๋ฅผ ์ง์ ‘ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ , ์™ธ๋ถ€์—์„œ ์ฃผ์ž…๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.์™œ๋ƒํ•˜๋ฉด ์ด ๋ฐฉ์‹์€ ํด๋ž˜์Šค ๊ฐ„์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๊ณ , ์œ ์—ฐ์„ฑ๊ณผ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.@Autowired ์–ด๋…ธํ…Œ์ด์…˜์„ ํ†ตํ•ด DI๋ฅผ ์‰ฝ๊ฒŒ ๊ตฌํ˜„๊ด€์  ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(AOP) :์–ด๋–ค ๋กœ์ง์„ ๊ธฐ์ค€์œผ๋กœ ํ•ต์‹ฌ์ ์ธ ๊ด€์ , ๋ถ€๊ฐ€์ ์ธ ๊ด€์ ์œผ๋กœ ๋‚˜๋ˆ„์–ด์„œ ๋ณด๊ณ  ๊ทธ ๊ด€์ ์„ ๊ธฐ์ค€์œผ๋กœ ๊ฐ๊ฐ ๋ชจ๋“ˆํ™”@Aspect ์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ AOP๋ฅผ ๊ตฌํ˜„ ์ด ๋‘ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” ์ฝ”๋“œ์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๊ณ , ๊ณตํ†ต ๊ธฐ๋Šฅ์˜ ์ค‘๋ณต์„ ์ค„์ด๋ฉฐ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์œ ์ง€๋ณด์ˆ˜์™€ ํ™•์žฅ์„ฑ์„ ๋Œ€ํญ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ

์„ธ์…˜(Session) vs ์ฟ ํ‚ค(Cookie)

1. ์„ธ์…˜- ์„œ๋ฒ„(์ปจํ…Œ์ด๋„ˆ)์— ์ €์žฅ๋˜๋Š” ์ •๋ณด => ์„œ๋ฒ„์—์„œ ๊ด€๋ฆฌ๋˜๋ฏ€๋กœ ์ƒ๋Œ€์ ์œผ๋กœ ๋ณด์•ˆ์— ์œ ๋ฆฌํ•จ- ์›น๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ข…๋ฃŒํ•˜๊ฑฐ๋‚˜ ์„ธ์…˜ ํƒ€์ด๋จธ๊ฐ€ ๋งŒ๋ฃŒ๋˜๊ฑฐ๋‚˜ ์„œ๋ฒ„๊ฐ€ ์žฌ์‹œ์ž‘๋˜๋ฉด ์ดˆ๊ธฐํ™” (๋˜๋Š” ์ž๋ฐ”์˜ ์„ธ์…˜ ๊ฒฝ์šฐ invalidate() ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ๋˜๋ฉด ์ดˆ๊ธฐํ™”)- ์ฃผ๋กœ, ๋กœ๊ทธ์ธ ์ •๋ณด ๋“ฑ์„ ์ €์žฅํ•˜๋Š” ์šฉ๋„๋กœ ์‚ฌ์šฉํ•จ(HTTP ํ”„๋กœํ† ์ฝœ์˜ ๋‹จ์ ์„ ๋ณด์™„) 2. ์ฟ ํ‚ค- ํด๋ผ์ด์–ธํŠธ(์›น๋ธŒ๋ผ์šฐ์ €)์—์„œ ์ €์žฅ๋˜๋Š” ์ •๋ณด => ํด๋ผ์ด์–ธํŠธ์—์„œ ๊ด€๋ฆฌ๋˜๋ฏ€๋กœ ์ƒ๋Œ€์ ์œผ๋กœ ๋ณด์•ˆ์— ์ทจ์•ฝ(ํด๋ผ์ด์–ธํŠธ์ƒ์—์„œ ์œ„๋ณ€์กฐ ์œ„ํ—˜์„ฑ ์žˆ์Œ) => ๋Œ€์‹ , ์„œ๋ฒ„์˜ ์ž์›์„ ์†Œ๋ชจํ•˜์ง€ ์•Š๊ณ  ํด๋ผ์ด์–ธํŠธ์˜ ์ž์›๋งŒ ์†Œ๋ชจํ•จ- ์›น๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ํŠน์ • ์œ„์น˜์— ํŒŒ์ผ(๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ) ํ˜•ํƒœ๋กœ ์ €์žฅ ( key, value ํ˜•์‹์œผ๋กœ ์ •๋ณด๊ฐ€ ์ €์žฅ๋˜๋ฉฐ, ์ฟ ํ‚ค๋ช…, ์ฟ ํ‚ค๊ฐ’, ์œ ํšจ๊ธฐ๊ฐ„ ๋“ฑ์ด ํฌํ•จ๋จ)- ์›น๋ธŒ๋ผ์šฐ์ €๋Š”..