Json Serialization๊ณผ enum ํƒ€์ž…

์ผ๋ฐ˜์ ์œผ๋กœ Json์—์„œ type์— ํ•ด๋‹นํ•˜๋Š” ์ •๋ณด๋ฅผ serialize/deserialize๋ฅผ ํ•˜๋ ค๊ณ  ํ•  ๋•Œ, type์€ ๋ณดํ†ต ์ž์ฃผ ๋ณ€ํ•˜์ง€ ์•Š๋Š” ์†์„ฑ์„ ์ง€๋‹ˆ๊ณ  ์žˆ๋‹ค๋ณด๋‹ˆ enum ํƒ€์ž…์œผ๋กœ ์ •์˜ํ•ด์„œ ํ™œ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ด๋Š” ๊ทธ๋‹ค์ง€ ์ข‹์€ choice๊ฐ€ ์•„๋‹ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์ตœ๊ทผ์— ๊นจ๋‹ฌ์•˜๋Š”๋ฐ์š”,

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

future-proofํ•œ Json Serialization/Deserialization์„ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค๋ฉด, ํŠนํžˆ ํ†ต์ œ๊ถŒ์ด ๋‚˜์—๊ฒŒ ์—†๋Š” ์™ธ๋ถ€ ์„œ๋น„์Šค์™€์˜ ์—ฐ๋™์„ ๊ณ ๋ คํ•  ๋•Œ๋Š” ์ด๋Ÿฐ ๋ถ€๋ถ„์— ๋Œ€ํ•œ ์œ ์—ฐ์„ฑ์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ๊ฒ ๊ตฌ๋‚˜ ํ•˜๋Š” ์ƒ๊ฐ์ด ๋“ค์–ด ์กฐ๊ธˆ ๊ธ€์„ ์ ์–ด๋ด…๋‹ˆ๋‹ค. :thinking:

7 Likes

์š”์ฆ˜ ์˜ค๋ธŒ์ ํŠธ ๋…์„œํšŒ๋ฅผ ํ•˜๋ฉด์„œ ๋‹ค์‹œ ํ•œ๋ฒˆ ๋А๋ผ์ง€๋งŒ Enum์ด ์ฐธโ€ฆ์ถ”์ƒํ™”๋ž‘ ์ƒ๋ฐ˜๋˜๋Š” ๊ฐœ๋…๊ฐ™์Šต๋‹ˆ๋‹ค.

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

์ž๊ธฐ์†Œ๊ฐœ์˜€์Šต๋‹ˆ๋‹ค.

6 Likes

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

ํ•œ๋•Œ๋Š” ์ฒ˜์Œ initializeํ• ๋–„ db ์ ‘์†ํ•ด์„œ ์ „๋ถ€ Enum Code generation ๋‚ด์ง€๋Š” dictionary ๋“ฑ๋ก๋„ ํ•ด๋ณผ๊นŒ ํ–ˆ๋Š”๋ฐ์š”, ๊ทธ๊ฒŒ ๋Œ€์ฒด ๋ญ” ์˜๋ฐ€๊นŒ ์‹ถ๋”๋ผ๊ณ ์š” ใ…œใ…œโ€ฆ

4 Likes