Jieunny์˜ ๋ธ”๋กœ๊ทธ

Section 3. [๊ธฐ์ˆ  ๋ฉด์ ‘] ๋ณธ๋ฌธ

CodeStates/learning contents

Section 3. [๊ธฐ์ˆ  ๋ฉด์ ‘]

Jieunny 2023. 3. 13. 11:39

๐Ÿญ. ์žฌ๊ท€

Q. ์žฌ๊ท€๋ฅผ ํ™œ์šฉํ•˜๊ธฐ ์ข‹์€ ์ƒํ™ฉ์€ ์–ธ์ œ์ธ์ง€ ์˜ˆ์‹œ๋ฅผ ๋“ค์–ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

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

๋Œ€ํ‘œ์ ์ธ ์˜ˆ์‹œ๋กœ๋Š” ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด, ํŒฉํ† ๋ฆฌ์–ผ ๊ตฌํ•˜๊ธฐ ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด๋กœ ์˜ˆ๋ฅผ ๋“ค์–ด๋ณด์ž๋ฉด, ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์˜ n๋ฒˆ์งธ ์ˆ˜๋Š” n-2๋ฒˆ์งธ ์ˆ˜์™€ n-1๋ฒˆ์งธ ์ˆ˜๋ฅผ ํ•ฉํ•œ ๊ฐ’์ด๋ฏ€๋กœ ๋ช‡ ๋ฒˆ์งธ ๊ฐ’์„ ๊ตฌํ•˜๋“ ์ง€ ๋™์ผํ•œ ๊ตฌ์กฐ๋กœ ๊ตฌํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ž‘์€ ๋ฌธ์ œ๋กœ ๋‚˜๋ˆ„์–ด ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๐Ÿฎ. UI/UX

Q. UI, UX์˜ ๊ฐœ๋…๊ณผ ๋‘ ๊ฐœ๋…์˜ ๊ด€๊ณ„์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

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

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

UX๋Š” UI๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ๋‘˜์€ ์„œ๋กœ ๋—ผ ์ˆ˜ ์—†๋Š” ๊ด€๊ณ„๋กœ ์„œ๋กœ๋ฅผ ๋ณด์™„ํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ข‹์€ UX๊ฐ€ ์ข‹์€ UI๋ฅผ ์˜๋ฏธํ•˜๊ฑฐ๋‚˜, ์ข‹์€ UI๊ฐ€ ํ•ญ์ƒ ์ข‹์€ UX๋ฅผ ๋ณด์žฅํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‚˜์œ UI๋Š” ๋ณดํ†ต ๋‚˜์œ UX๋ฅผ ์œ ๋ฐœํ•ฉ๋‹ˆ๋‹ค.

 

๐Ÿฏ. Custom Component

Q. Styled Components๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๋ฉด์„œ ๋Š๋‚€ ์žฅ์ ์„ ์ด์•ผ๊ธฐํ•ด์ฃผ์„ธ์š”.

A. ์ฒซ๋ฒˆ์งธ๋กœ, Styled Components๋Š” jsํŒŒ์ผ์— CSS๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•จ์œผ๋กœ์จ ๋ถˆํ•„์š”ํ•œ ํŒŒ์ผ ์ƒ์„ฑ์„ ๋ง‰์•„์ค๋‹ˆ๋‹ค. ๋•Œ๋ฌธ์— CSS์„ ๋”ฐ๋กœ ๊ด€๋ฆฌํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๋‘๋ฒˆ์งธ๋กœ, id๋‚˜ class์ด๋ฆ„์„ ์ง์ ‘ ์ž‘์„ฑํ•  ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— id๋‚˜ class๋ช…์ด ๊ฒน์น˜๊ฑฐ๋‚˜ ์˜คํƒ€๊ฐ€ ๋‚˜๋Š” ์ƒํ™ฉ๋„ ์‚ฌ์ „์— ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„ธ๋ฒˆ์งธ๋กœ, react์—์„œ๋Š” props๋ฅผ ํ™œ์šฉํ•ด์„œ ๋™์  ์Šคํƒ€์ผ๋ง์„ ํŽธํ•˜๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

Q. useRef๊ฐ€ ํ•„์š”ํ•œ ์ƒํ™ฉ์„ ์˜ˆ์‹œ๋ฅผ ๋“ค์–ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

A. useRef๊ฐ€ ํ•„์š”ํ•œ ์ƒํ™ฉ์€ ํฌ๊ฒŒ 2๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ๋ฒˆ์งธ๋Š” ์ €์žฅ๊ณต๊ฐ„์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. useState๋Š” ๋ฆฌ๋ Œ๋”๋ง์ด ์ผ์–ด๋‚˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณ€์ˆ˜ ๊ฐ’์ด ์ดˆ๊ธฐํ™”๋˜๋Š” ๋ฐ˜๋ฉด, useRef๋Š” ๋ฆฌ๋ Œ๋”๋ง์„ ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ณ€์ˆ˜์˜ ๊ฐ’์ด ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์„ ๋•Œ key๊ฐ’์„ id๋กœ ์ค€๋‹ค๋ฉด, id ๋ณ€์ˆ˜๋Š” ๋ฆฌ๋ Œ๋”๋ง์ด ๋˜์–ด๋„ ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š๊ณ  ๋ฐ์ดํ„ฐ๊ฐ€ ์ถ”๊ฐ€๋  ๋•Œ ๋งˆ๋‹ค 1์”ฉ ์ฆ๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿด ๋•Œ id๋ฅผ useRef๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค.

๋‘๋ฒˆ์งธ๋Š” DOM ์š”์†Œ์— ์ ‘๊ทผํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. React์—์„œ๋Š” querySelector๋ฅผ ์‚ฌ์šฉํ•ด์„œ DOM ์š”์†Œ์— ์ง์ ‘์ ์œผ๋กœ ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— useRef๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด input ์—˜๋ฆฌ๋จผํŠธ์— focus๋ฅผ ์ฃผ๊ณ  ์‹ถ์„ ๋•Œ useRef์— ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ , input์š”์†Œ์— ref ๊ฐ’์„ ์ค€๋‹ค๋ฉด current.focus() ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๐Ÿฐ. Redux

Q. ์ƒํƒœ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ํ•„์š”์„ฑ์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

A. ๋ฆฌ์•กํŠธ์—์„œ ์ƒํƒœ๋Š” state๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ, state๋Š” ์˜ค๋กœ์ง€ ์ž์‹ ์ปดํฌ๋„ŒํŠธ์—๊ฒŒ๋งŒ ์ „๋‹ฌํ•ด์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์‹์˜ ์ž์‹์˜ ์ž์‹ ์ด๋ ‡๊ฒŒ ๊ณ„์† ์ด์–ด์„œ state๋ฅผ ์ „๋‹ฌํ•ด์ฃผ๊ฒŒ ๋˜๋ฉด ์ƒํƒœ ๊ด€๋ฆฌ๊ฐ€ ๊ต‰์žฅํžˆ ๋ณต์žกํ•ด์ง‘๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ทธ state๊ฐ€ ํ•„์š”์—†๋Š” ์ปดํฌ๋„ŒํŠธ์—๊ฒŒ๋„ ์ „๋‹ฌํ•˜๊ฒŒ ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉฐ, ์ด๋ฅผ props Drilling Issue๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ƒํƒœ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋“ฑ์žฅํ–ˆ์œผ๋ฉฐ, state๋ฅผ ์ „์—ญ ๋ณ€์ˆ˜์ฒ˜๋Ÿผ ๋งŒ๋“ค์–ด์„œ ์–ด๋–ค ์ปดํฌ๋„ŒํŠธ๋“ ์ง€ ๋ฐ”๋กœ ํ•„์š”ํ•œ state์— ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋ฆฌ์•กํŠธ์˜ ๋Œ€ํ‘œ์ ์ธ ์ƒํƒœ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—๋Š” Redux๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

Q. Redux์˜ ์ฃผ์š” ๊ฐœ๋…๋“ค๊ณผ ์—ฐ๊ฒฐ ๊ด€๊ณ„๋ฅผ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

A. Redux์˜ ์ฃผ์š” ๊ฐœ๋…์—๋Š” Action, Dispatch, Reducer, Store๊ฐ€ ์žˆ์œผ๋ฉฐ Action -> Dispatch -> Reducer -> Store ์ˆœ์„œ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹จ๋ฐฉํ–ฅ์œผ๋กœ ํ๋ฅด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

Action์€ ์–ด๋–ค ์•ก์…˜์„ ์ทจํ•  ๊ฒƒ์ธ์ง€ ์ •์˜ํ•ด ๋†“์€ ๊ฐ์ฒด๋กœ, ํ•ด๋‹น Action ๊ฐ์ฒด๊ฐ€ ์–ด๋–ค ๋™์ž‘์„ ํ•˜๋Š”์ง€ ๋ช…์‹œํ•ด์ฃผ๋Š” type ์†์„ฑ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

Dispatch๋Š” Reducer๋กœ Action์„ ์ „๋‹ฌํ•ด์ฃผ๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. Action ๊ฐ์ฒด๋ฅผ ์ „๋‹ฌ๋ฐ›์€ Dispatch๋Š” Reducer๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.

Reducer๋Š” ์ „๋‹ฌ๋ฐ›์€ Action ๊ฐ์ฒด์˜ type ๊ฐ’์— ๋”ฐ๋ผ์„œ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝ์‹œํ‚ค๋Š” ํ•จ์ˆ˜๋กœ, Reducer๊ฐ€ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฐ’์ด ์ƒํƒœ์˜ ์ƒˆ๋กœ์šด ๊ฐ’์ด ๋ฉ๋‹ˆ๋‹ค.

์ด๋•Œ, Reducer๋Š” ์ˆœ์ˆ˜ํ•จ์ˆ˜์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Store๋Š” ์ „์—ญ ์ €์žฅ์†Œ๋กœ, state๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ๋Š” ์ €์žฅ์†Œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

 

๐Ÿฑ. ์›น ํ‘œ์ค€ & ์›น ์ ‘๊ทผ์„ฑ

Q. Semantic HTML์˜ ํ•„์š”์„ฑ์„ ์˜ˆ์‹œ๋ฅผ ๋“ค์–ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

A. Semantic HTML์€ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ๋„˜์–ด์„œ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์‹œ๋งจํ‹ฑ ์š”์†Œ์—๋Š” header, main, nav, footer, section ๋“ฑ์ด ์žˆ์œผ๋ฉฐ ๊ฐ์ž๊ฐ€ ์˜๋ฏธํ•˜๋Š” ๊ฒƒ์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ํ™”๋ฉด์˜ ๊ตฌ์กฐ๋ฅผ ๋‹ด๋‹นํ•˜๋Š” div์™€ span ํƒœ๊ทธ๋Š” ์ด๋ฆ„์— ์˜๋ฏธ๊ฐ€ ๋”ฐ๋กœ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์š”์†Œ๋งŒ ๋ดค์„ ๋•Œ๋Š” ์–ด๋–ค ์—ญํ• ์„ ํ•˜๋Š”์ง€ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์‹œ๋งจํ‹ฑ ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ์š”์†Œ์˜ ์ด๋ฆ„๋งŒ ๋ณด๊ณ ๋„ ์–ด๋–ค ์—ญํ• ์„ ํ•˜๋Š” ์ง€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ฐ ํƒญ์„ ๋ˆ„๋ฅด๋ฉด ํŠน์ • ํŽ˜์ด์ง€๋กœ ๊ฐ€๊ฒŒ ํ•˜๋Š” ์š”์†Œ๊ฐ€ ์žˆ์„๋•Œ, ์ด ์š”์†Œ์˜ ํƒœ๊ทธ๋ฅผ nav๋กœ ์ค€๋‹ค๋ฉด ์ด ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœํ•˜์ง€ ์•Š์€ ์ œ3์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ดค์„๋•Œ ์ด๋ฆ„๋งŒ ๋ณด๊ณ ๋„ ์š”์†Œ๊ฐ€ ๋ฉ”๋‰ด๋ฅผ ์˜๋ฏธํ•˜๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ฒ˜๋Ÿผ ์‹œ๋งจํ‹ฑ HTML์„ ์ž‘์„ฑํ•˜๋ฉด ๊ฐœ๋ฐœ์ž๊ฐ„ ์†Œํ†ต์„ ์›ํ™œํ•˜๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.

๋˜ํ•œ ๊ฒ€์ƒ‰ ์—”์ง„์€ HTML ์ฝ”๋“œ๋ฅผ ๋ณด๊ณ  ๋ฌธ์„œ์˜ ๊ตฌ์กฐ๋ฅผ ํŒŒ์•…ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹œ๋งจํ‹ฑ ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ HTML์— ์˜๋ฏธ๋ฅผ ๋ถ€์—ฌํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋„ ๊ฒ€์ƒ‰ ํšจ์œจ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

 

๐Ÿฒ. ๋„คํŠธ์›Œํฌ ์‹ฌํ™”

Q. IP ํ”„๋กœํ† ์ฝœ์˜ ํ•œ๊ณ„์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

A. IP ํ”„๋กœํ† ์ฝœ์€ ์ง€์ •ํ•œ IP ์ฃผ์†Œ์— ํŒจํ‚ท์ด๋ผ๋Š” ํ†ต์‹ ๋‹จ์œ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ํ†ต์‹  ๊ทœ์•ฝ์„ ๋งํ•˜๋ฉฐ,  IPํ”„๋กœํ† ์ฝœ์˜ ํ•œ๊ณ„์—๋Š” ํฌ๊ฒŒ ๋น„์—ฐ๊ฒฐ์„ฑ๊ณผ ๋น„์‹ ๋ขฐ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. 

์ฒซ๋ฒˆ์งธ๋กœ ๋น„์—ฐ๊ฒฐ์„ฑ์€ ํŒจํ‚ท์„ ๋ฐ›์„ ๋Œ€์ƒ์ด ์—†๊ฑฐ๋‚˜, ๋ถˆ๋Šฅ ์ƒํƒœ์—ฌ๋„ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์˜ ์ƒํƒœ๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ํŒจํ‚ท์„ ๊ทธ๋Œ€๋กœ ์ „์†กํ•˜๋Š” ๊ฒƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค.

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

 

Q. HTTP ํ”„๋กœํ† ์ฝœ์˜ ํŠน์ง•์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

A. HTTP๋Š” ์ธํ„ฐ๋„ท์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ํ”„๋กœํ† ์ฝœ๋กœ, ํฌ๊ฒŒ 4๊ฐ€์ง€ ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ๋ฒˆ์งธ๋Š” ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ตฌ์กฐ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๊ณ , ๋‘๋ฒˆ์งธ๋Š” ๋ฌด์ƒํƒœ์„ฑ, ์„ธ๋ฒˆ์งธ๋Š” ๋น„์—ฐ๊ฒฐ์„ฑ์ž…๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ๋Š” ๋‹จ์ˆœํ•˜๊ณ  ํ™•์žฅ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

์ด๋•Œ, ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š์œผ๋ฉฐ, ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ๋ฐ›์œผ๋ฉด ๋ฐ”๋กœ ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ๊ฐ๊ฐ ๋ฌด์ƒํƒœ์„ฑ๊ณผ ๋น„์—ฐ๊ฒฐ์„ฑ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

HTTP ํ”„๋กœํ† ์ฝœ์€ ์ด๋ ‡๊ฒŒ ๋‹จ์ˆœํ•œ ๊ณผ์ •์„ ๊ฑฐ์น˜๋ฉด์„œ๋„ ํ™•์žฅ์ด ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ง€๊ธˆ์˜ ์ˆ˜์ค€๊นŒ์ง€ ์„ฑ์žฅํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

 

๐Ÿณ. ์ธ์ฆ / ๋ณด์•ˆ

Q. Cookie์˜ MaxAge, Expires ์˜ต์…˜์ด ๋ฌด์—‡์ธ์ง€, ์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ์–ด๋–ป๊ฒŒ ๋˜๋Š”์ง€ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

A. Cookie๋Š” HTTP ํ”„๋กœํ† ์ฝœ์˜ ๋น„์ƒํƒœ์„ฑ์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•œ ์ˆ˜๋‹จ์œผ๋กœ, ๋ธŒ๋ผ์šฐ์ €์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. MaxAge์™€ Expires ์˜ต์…˜์€ ๋ชจ๋‘ ์ฟ ํ‚ค์˜ ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ์„ค์ •ํ•˜๋Š” ์˜ต์…˜์œผ๋กœ, MaxAge ์˜ต์…˜์€ ์ฟ ํ‚ค๋ฅผ ์–ผ๋งˆ๋‚˜ ์œ ์ง€ํ•  ๊ฒƒ์ธ์ง€, Expires ์˜ต์…˜์€ ์ฟ ํ‚ค๋ฅผ ์–ธ์ œ ํ๊ธฐํ•  ๊ฒƒ์ธ์ง€ ์„ค์ •ํ•˜๋Š” ์˜ต์…˜์ž…๋‹ˆ๋‹ค. MaxAge๋Š” ์ฟ ๊ธฐ๊ฐ€ ์‚ญ์ œ๋˜๋Š” ์‹œ๊ฐ„์„ ์ดˆ ๋‹จ์œ„๋กœ ์„ค์ •ํ•˜๊ณ , Expires๋Š” ๋งŒ๋ฃŒ ์ผ์ž๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๋‘ ์˜ต์…˜์„ ๋™์‹œ์— ์„ค์ •ํ•˜๋ฉด MaxAge๊ฐ€ ๋” ๋†’์€ ์šฐ์„ ์ˆœ์œ„๋กœ ์ ์šฉ๋˜๋ฉฐ, ๋‘ ์˜ต์…˜์„ ๋ชจ๋‘ ์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ทธ ์ฟ ํ‚ค๋Š” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ข…๋ฃŒ๋  ๋•Œ ํ๊ธฐ ๋ฉ๋‹ˆ๋‹ค. ๋•Œ๋ฌธ์— ์ฟ ํ‚ค๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๋‘ ์˜ต์…˜ ์ค‘ ํ•˜๋‚˜๋ผ๋„ ์„ค์ •ํ•ด์ฃผ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ข…๋ฃŒํ•˜๋ฉด ์‚ญ์ œ๋˜๋Š” ์ž„์‹œ ์ฟ ํ‚ค๋ฅผ ์„ธ์…˜ ์ฟ ํ‚ค๋ผ๊ณ  ํ•˜๊ณ , ์„ค์ •ํ•œ ์˜ต์…˜๋งŒํผ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ์ฟ ํ‚ค๋ฅผ ์˜์†์„ฑ ์ฟ ํ‚ค๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค.

 

HTTP ํ”„๋กœํ† ์ฝœ์˜ ๋น„์ƒํƒœ์„ฑ : ์ด์ „์— ๋ณด๋ƒˆ๋˜ ์š”์ฒญ์„ ๊ธฐ์–ตํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ