๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ผ Work/LIFULL

[LIFULL] ๋ถ€์„œ ๋ฐฐ์† 100์ผ ํšŒ๊ณ  (7๋…„ ๋œ legacy system์— ๆ–ฐ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•˜๊ธฐ)

by dev-jaesoon 2022. 9. 4.
๐Ÿง‘๐Ÿป‍๐Ÿ’ป์ž…์‚ฌ 156์ผ์ฐจ / ๐Ÿ‡ฏ๐Ÿ‡ต์ผ๋ณธ ์ž…๊ตญ 128์ผ์ฐจ

 

    22๋…„ 9์›” 3์ผ, ์˜ค๋Š˜๋กœ์จ ๋“œ๋””์–ด ๋ถ€์„œ์— ๋ฐฐ์†์„ ๋ฐ›์€ ์ง€ ๋ฒŒ์จ 100์ผ์ด ๋˜์—ˆ๋‹ค. ๋ฐฐ์† ํ›„, ์ง€๊ธˆ๊นŒ์ง€ ์ด๋Ÿฐ์ €๋Ÿฐ ์ผ๋“ค์ด ์ •๋ง ๋งŽ์ด ์žˆ์—ˆ๋Š”๋ฐ, ๊ทธ ์ค‘์—์„œ๋„ ๋จผ์ € ์ œ์ผ ๊ธฐ์–ต์ด ๋งŽ์ด ๋‚จ๋Š” ๆ–ฐ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„์— ๋Œ€ํ•ด์„œ ๊ธฐ๋กํ•˜๋ ค๊ณ  ํ•œ๋‹ค.

 

ํ˜„์žฌ ๋ถ€์„œ์—์„œ ๋‹ด๋‹นํ•˜๊ณ  ์žˆ๋Š” ์„œ๋น„์Šค

    ๋ฐฐ์†๋œ ๋ถ€์„œ์—์„œ ๋‹ด๋‹นํ•˜๊ณ  ์žˆ๋Š” ์„œ๋น„์Šค๋Š” ๋ช‡๊ฐ€์ง€๊ฐ€ ์žˆ์ง€๋งŒ, ์ œ์ผ ํฐ ๊ทœ๋ชจ๋ฅผ ์ฐจ์ง€ํ•˜๋Š” ๊ฒƒ์ด LIFULL HOME'S ๋ถ€๋™์‚ฐ ์•„์นด์ด๋ธŒ๋ผ๋Š” ์„œ๋น„์Šค์ด๋‹ค. ์„œ๋น„์Šค ์ด๋ฆ„์—์„œ ์–ด๋Š ์ •๋„ ์•Œ ์ˆ˜ ์žˆ๊ฒ ์ง€๋งŒ, ์ผ๋ณธ ๋‚ด์—์„œ LIFULL ์„ ๊ฑฐ์ณ๊ฐ„ ๋ชจ๋“  ๋ถ€๋™์‚ฐ์˜ ๊ณผ๊ฑฐ ์ •๋ณด(์ž„๋Œ€, ๋งค๋งค, ํ† ์ง€ ๋“ฑ์˜ ์‹œ์„ธ, ์ฃผ๋ณ€ ์—ญ ๋“ฑ๋“ฑ ์ œ๊ณตํ•˜๋Š” ์ •๋ณด๊ฐ€ ๋‹ค์–‘) ๋ฅผ archiving ํ•ด๋‘ ์œผ๋กœ์จ ์ง‘์„ ์ฐพ๋Š” ์‚ฌ๋žŒ๋“ค์ด ๋ณด๋‹ค ์‰ฝ๊ฒŒ ์ง€์—ญ๋ณ„ ๋ถ€๋™์‚ฐ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ญํ• ์„ ํ•˜๋Š” ์„œ๋น„์Šค์ด๋‹ค.

LIFULL HOME'S ๋ถ€๋™์‚ฐ ์•„์นด์ด๋ธŒ

    ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ๋ฐ˜์ฏค ์ง€๋‚˜๊ฐ€๋‹ค ๋“ค์€ ๊ฒƒ์ด๋ผ ์ •ํ™•ํ•œ ์‚ฌ์‹ค์€ ์•„๋‹ˆ์ง€๋งŒ, ๋ถ€๋™์‚ฐ ์ •๋ณด ์–ป๊ณ ์ž, ๊ฒ€์ƒ‰ํ•˜์—ฌ LIFULL HOME'S (์ดํ•˜ LH) ์›น ์‚ฌ์ดํŠธ์— ๋“ค์–ด์˜ค๋Š” ์‚ฌ๋žŒ์˜ ์ ˆ๋ฐ˜ ์ •๋„๋Š” ๋ถ€๋™์‚ฐ ์•„์นด์ด๋ธŒ๋ฅผ ํ†ตํ•ด ์œ ์ž…๋œ๋‹ค๊ณ  ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ๋ถ€์„œ ์•ˆ์—์„œ ์‹œ์ฑ…์œผ๋กœ ์ œ์‹œ๋˜๋Š” SEO ์ตœ์ ํ™”๋‚˜ UI ๊ฐœ์„  ๋“ค๋„ ๊ฒฐ๊ตญ ๋ชจ๋‘ LH ์‚ฌ์ดํŠธ๋กœ ์œ ์ €๋“ค์ด ๋„˜์–ด๊ฐ€๋Š” ๋น„์œจ(๋ณดํ†ต, ์†ก๊ฐ๋ฅ ์ด๋ผ๊ณ  ํ•œ๋‹ค)์„ ๋†’์ด๊ธฐ ์œ„ํ•œ ์‹œ์ฑ…์ด ์ฃผ๋ฅผ ์ด๋ฃฌ๋‹ค. ๋‚ด๊ฐ€ ๋‹ด๋‹นํ•˜๊ฒŒ ๋œ ๆ–ฐ๊ธฐ๋Šฅ๋„ ์ด๋Ÿฌํ•œ ํ๋ฆ„์—์„œ ์ œ์‹œ๋œ ์‹œ์ฑ…์ด์—ˆ๋‹ค.

 

๊ตฌํ˜„ํ•˜๊ณ ์ž ํ•˜๋Š” ๆ–ฐ๊ธฐ๋Šฅ

    ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ์‚ด๊ณ  ์‹ถ์€ ์ง‘์„ ๊ฒ€์ƒ‰ํ•ด๋ณด๋Š” ์‚ฌ๋žŒ๋“ค์ด ์ œ์ผ ๋ณด๊ณ  ์‹ถ์–ดํ•˜๋Š” ๊ฒƒ์ด ์•„๋งˆ๋„ ๊ทธ ์ง‘์˜ ๋‚ด/์™ธ๋ถ€ ์‚ฌ์ง„๋“ค์ผ ๊ฒƒ์ด๋‹ค. ๋‚ด๊ฐ€ ๊ตฌํ˜„ํ•œ ๊ธฐ๋Šฅ๋„ ๋ถ€๋™์‚ฐ ์•„์นด์ด๋ธŒ์— ๋ชจ์—ฌ์žˆ๋Š” ๊ฑด๋ฌผ๋“ค์˜ ๊ฐ ํ˜ธ์ˆ˜์˜ ์‚ฌ์ง„๋“ค์„ ๋ชจ์•„์„œ ๋ณด์—ฌ์ฃผ๋Š” ๊ธฐ๋Šฅ(ํ†ต์นญ ๊ฐค๋Ÿฌ๋ฆฌ ํŽ˜์ด์ง€)์ด์—ˆ๋‹ค. ๊ฐ ๊ฑด๋ฌผ ๋ณ„๋กœ ์žˆ๋Š” ์—ฌ๋Ÿฌ ํ˜ธ์ˆ˜์˜ ๋ฐฉ, ์ฃผ๋ฐฉ, ํ™”์žฅ์‹ค ๋“ฑ์˜ ์‚ฌ์ง„์„ ํ•œ ํŽ˜์ด์ง€์— ๋ชจ์•„์„œ ๋ณด์—ฌ์ฃผ๋Š” ๊ธฐ๋Šฅ์ด์—ˆ๋‹ค.

์‹ค์ œ ๊ฐค๋Ÿฌ๋ฆฌ ํŽ˜์ด์ง€์˜ ๋ชจ์Šต

    ๊ตฌํ˜„์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „, ๊ธฐ๋Šฅ ์‚ฌ์–‘์„œ๋ฅผ ํ™•์ธํ•˜๊ณ  DB ๋ฅผ ํ™•์ธํ•  ๋•Œ๊นŒ์ง€๋Š” ํฌ๊ฒŒ ๊นŒ๋‹ค๋กญ์ง€ ์•Š์€ ๊ธฐ๋Šฅ ๊ตฌํ˜„์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ๋‹จ์ˆœํžˆ, ๊ฐ ๊ฑด๋ฌผ์˜ ID ๊ฐ’๊ณผ 1:N ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง€๋Š” ๊ฐ ํ˜ธ์˜ ID ๋ฅผ ์กฐํšŒํ•ด์„œ ๊ฐ€์ง€๊ณ  ์˜ค๊ณ , ๊ทธ์™€ ๊ด€๋ จ๋œ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ๋งŒ ํ•˜๋ฉด ๋˜์—ˆ๊ณ , ๋ณ„๋„์˜ pagination ๋„ ์—†์ด, S3 Bucket ์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” URL์„ ๊ฐ€์ ธ์˜ค๊ธฐ๋งŒ ํ–ˆ์œผ๋ฉด ๋˜์—ˆ๋‹ค.

 

ํ”„๋กœ์ ํŠธ Source code ๋ฅผ ๋งˆ์ฃผํ•˜๋‹ค

    ๊ทธ๋ ‡๊ฒŒ ์‹œ์ž‘์€ ๋งค์šฐ ๊ฐ€๋ฒผ์šด ๋งˆ์Œ์œผ๋กœ ์‹œ์ž‘ํ–ˆ์ง€๋งŒ, ๊ทธ ๋งˆ์Œ์€ ์˜ค๋ž˜ ๊ฐ€์ง€ ์•Š์•˜๋‹ค. ๋ถ€๋™์‚ฐ ์•„์นด์ด๋ธŒ ํ”„๋กœ์ ํŠธ๋Š” 2016๋…„์— ์‹œ์ž‘๋˜์–ด PHP ๋กœ ๊ตฌ์„ฑ๋œ ํ”„๋กœ์ ํŠธ์ด๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ MVC ํŒจํ„ด๊ณผ DI ๋ฅผ ๋„์ž…ํ•˜๊ณ  ์žˆ์—ˆ์ง€๋งŒ, ๋”ฐ๋กœ ํ”„๋ ˆ์ž„ ์›Œํฌ๋‚˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋ˆ„๊ตฐ๊ฐ€(?)๊ฐ€ ๋งŒ๋“  Custom framework ์— ์˜ค๋žœ ์‹œ๊ฐ„๋™์•ˆ ์—ฌ๋Ÿฌ ์—”์ง€๋‹ˆ์–ด๋“ค์˜ ์†์„ ๊ฑฐ์ณ์™€ ์ง€๊ธˆ์˜ ์ฝ”๋“œ๊ฐ€ ๋˜์–ด์žˆ์—ˆ๋‹ค.

    ๊ทธ๋ž˜์„œ ์ผ๊นŒ...? ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋ฐฐ์šฐ๊ณ  ์ฒ˜์Œ์œผ๋กœ ๋ณด๋Š” Biz ๋ผ๊ณ  ํ•˜๋Š” ๋ถ€๋ถ„์— Business logic ๋“ค์ด Controller ์™€ 1:1 ๊ด€๊ณ„๋กœ ๋ชจ๋‘ ๋ถ„๋ฆฌ๋˜์–ด ์žˆ์—ˆ๊ณ , ๊ทธ ์ค‘๊ฐ„ ์–ด๋”˜๊ฐ€ ์• ๋งคํ•œ ์œ„์น˜์— Service ๋“ค๋„ ์ด๊ณณ์ €๊ณณ์— ๋ผ์—ฌ ์žˆ์—ˆ๋‹ค. Front End ๋Š” Responsive design ์ด ์•„๋‹Œ HTML, CSS, ์‹ฌ์ง€์–ด JS ๊นŒ์ง€ ๊ฐ™์€ ๋‚ด์šฉ์˜ ์ค‘๋ณต๋œ ์ฝ”๋“œ๋“ค์ด PC์™€ SP๋กœ ๊ฐ๊ฐ ๋ถ„๋ฆฌ(๋‚˜์ค‘์— ์ด๋ถ€๋ถ„์—์„œ ๋งŽ์ด ๋ฒˆ๊ฑฐ๋กœ์› ๋‹ค...)๋˜์–ด ์žˆ์—ˆ๋‹ค.

    ์•ฝ 7๋…„์ด๋ผ๋Š” ์งง๋‹ค๋ฉด ์งง๊ณ , ๊ธธ๋‹ค๋ฉด ๊ธด ๊ธฐ๊ฐ„ ๋™์•ˆ ํฐ ๋ณ€๊ฒฝ์ด๋‚˜ ๋ฒ„์ „ ์—…์ด ์žˆ์—ˆ๋Š”์ง€๋Š” ๋ชจ๋ฅด์ง€๋งŒ, ์‹ค์ œ Product ์˜ ์†Œ์Šค์ฝ”๋“œ๋Š” ์—ญ์‹œ ๊ทœ๋ชจ๊ฐ€ ํฌ๊ตฌ๋‚˜ํ•˜๋Š” ๋†€๋žŒ๊ณผ ํ•จ๊ป˜ ํ•œ ํŽธ์œผ๋กœ๋Š” ์ด๋ ‡๊ฒŒ ๋ณต์žกํ•œ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„ ์ฝ”๋“œ๋“ค์„ ์–ธ์ œ ๋‹ค ํŒŒ์•…ํ•˜์ง€ ํ•˜๋Š” ๊ฑฑ์ •์ด ๋” ์ปธ๋‹ค. ๋˜ํ•œ, Back End ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ Front End ๋„ ๋ชจ๋‘ ๊ตฌํ˜„์„ ๋‹ด๋‹นํ•˜๊ธฐ๋กœ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—, Routing ์„ ์‹œ์ž‘์œผ๋กœ ์กฐ๊ธˆ์”ฉ ์ฝ”๋“œ์˜ ์—ฌ๊ธฐ์ €๊ธฐ๋ฅผ ๋งŒ์ง€์ž‘ ๋งŒ์ง€์ž‘ ํ•˜๋ฉด์„œ, ๊ตฌํ˜„์— ํ•„์š”ํ•œ ๋ชจ๋“  ๊ตฌ์กฐ๋ฅผ ํŒŒ์•…ํ•˜๋Š”๋ฐ ์•ฝ 2~3์ผ ๋™์•ˆ ์†Œ์š”๋˜์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.

 

๊ธฐ๋Šฅ ๊ตฌํ˜„์„ ์™„๋ฃŒํ•˜๊ณ  ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ›๋‹ค

    ๊ทธ๋ž˜๋„ ์„ ๋ฐฐ๋“ค์—๊ฒŒ ์–ด์ฐŒ์ €์ฐŒ ๋„์›€์„ ๋ฐ›์•„์„œ, ์•ฝ ์ผ์ฃผ์ผ์— ๊ฑธ์ณ Front ์™€ Back End ๊ตฌํ˜„์„ ๋งˆ์ณค๋‹ค. ํ•˜์ง€๋งŒ, ์ง„์งœ ์–ด๋ ค์› ๋˜ ๊ฒƒ์€ ๊ทธ ๋’ค Front ์™€ Back End ๋กœ ๋‚˜๋ˆ„์–ด 2๋ช…์˜ ์„ ๋ฐฐ ์—”์ง€๋‹ˆ์–ด๋“ค์—๊ฒŒ ์†Œ์Šค ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ›๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด์„œ ์‹œ์ž‘๋˜์—ˆ๋‹ค. ๋‚˜ ์Šค์Šค๋กœ๋Š” ํ™”๋ฉด์ด ๋””์ž์ธ๋Œ€๋กœ ์ž˜ ๋‚˜์™€์žˆ์œผ๋‹ˆ๊นŒ ๊ดœ์ฐฎ๊ฒ ์ง€? ํ•˜๋ฉด์„œ ํ•ฉ๋ฆฌํ™”๋ฅผ ํ•˜๊ณ  ์žˆ์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.... ํ•˜์ง€๋งŒ, ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋“ค์€ ๊ธฐ์กด ํ”„๋กœ์ ํŠธ์˜ ๊ตฌ์กฐ๋ฅผ ์ „ํ˜€ ๊ณ ๋ คํ•˜์ง€ ์•Š์€์ฑ„ ๋‚˜๋งŒ์˜ ์Šคํƒ€์ผ๋กœ ๋ถ„๋ฅ˜๋˜์–ด ์žˆ์—ˆ๊ณ , ๋ณ€์ˆ˜๋‚˜ ๋ฉ”์„œ๋“œ ์ด๋ฆ„, ์‹ฌ์ง€์–ด ํŒŒ์ผ์˜ ์œ„์น˜์™€ ์ด๋ฆ„ ๋“ฑ๋“ฑ๋„ ๋ชจ๋‘ ๊ธฐ์กด ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ์— ๋งž์ถฐ์„œ ์ˆ˜์ •ํ•ด์•ผํ–ˆ๋‹ค.

    ๊ทธ๋ฆฌ๊ณ  ์ƒˆ๋กญ๊ฒŒ ์ถ”๊ฐ€๋œ ์ฝ”๋“œ์˜ ์•ˆ์ •์„ฑ์„ ๋‹ด๋ณดํ•˜๊ธฐ ์œ„ํ•œ E2E ์™€ Unit test ์ž‘์„ฑ๋„ ๋ฐ˜๋“œ์‹œ ํ•ด์•ผํ–ˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์—, ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ํ•œ๋ฒˆ๋„ ์ž‘์„ฑํ•ด๋ณธ์  ์—†๋˜ ๋‚˜์—๊ฒŒ๋Š” ์ •๋ง ํž˜๋“  ์‹œ๊ฐ„์ด์—ˆ๋‹ค. ์ง€๊ธˆ ์ด ์ˆœ๊ฐ„์—๋„ Mock data ๋ฅผ ์œ„ํ•œ allow / andReturn, Unit test ๋ฅผ ์œ„ํ•œ exptext / toBe ๊ฐ€ ๋จธ๋ฆฌ ์†์— ๋น™๋น™ ๋„๋Š” ๊ฒƒ ๊ฐ™๋‹ค. (์ด ํ›„, ์‹œ๋‚˜๋ฆฌ์˜ค ํ…Œ์ŠคํŠธ ์‚ฌ์–‘์„œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ๋„ ์‰ฝ์ง€ ์•Š์•˜๋‹ค... )

    ์ด๋ ‡๊ฒŒ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•œ ๊ฒฐ๊ณผ, ๋งˆ์ง€๋ง‰ Approve ๋ฅผ ๋ฐ›๊ณ  Merge ๊ฐ€ ๋˜๊ธฐ ์ง์ „ ์†Œ์Šค ๋ฆฌ๋ทฐ์˜ ๊ฐฏ์ˆ˜๋Š” 205๊ฐœ๊ฐ€ ๋˜์–ด์žˆ์—ˆ๋‹ค. Front ์™€ Back End ๊ตฌํ˜„์„ ๋™์‹œ์— ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฆฌ๋ทฐ๋‚ด์šฉ์ด ๋งŽ์•˜๋˜ ๊ฒƒ๋„ ์žˆ์—ˆ์ง€๋งŒ, ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ์ž์ž˜ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ๋“ค์„ ๊ณ„์† ๋‹ค์‹œ ๋ฐ˜์˜ํ•˜๊ณ  ๋ฐ˜์˜ํ•˜๋‹ค ๋ณด๋‹ˆ ์‹ค์ˆ˜๋ฅผ ํ•˜๊ฑฐ๋‚˜ ๋†“์นœ ๋ถ€๋ถ„๋„ ์ •๋ง ๋งŽ์•˜๋‹ค. ์ด ๋•Œ ์ฒ˜์Œ์œผ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์•„๋‹Œ ๋‹จ์ˆœ ๊ธฐ๋Šฅ ๊ตฌํ˜„์—์„œ ๋‚ด๊ฐ€ ์ƒ๊ฐ๋ณด๋‹ค ์ฝ”๋”ฉ์„ ์ž˜ ๋ชปํ•˜๋Š” ๊ฑฐ์ผ ์ˆ˜๋„ ์žˆ๊ฒ ๊ตฌ๋‚˜... ๋ผ๊ณ  ๋งŽ์ด ๋Š๋ผ๊ณ  ๋ฐ˜์„ฑํ–ˆ๋‹ค.

์‹ค์ œ Merge ํ›„, ๊ฐค๋Ÿฌ๋ฆฌ ํŽ˜์ด์ง€์˜ PR

 

์‹ค์ œ ์„œ๋น„์Šค ์ค‘์ธ ํ”„๋กœ์ ํŠธ์˜ ๆ–ฐ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ ํ•˜๋ฉด์„œ ๋Š๋‚€ ๊ฒƒ๋“ค...

    ์ฒซ ๋ฒˆ์งธ๋กœ ๋ฌด์—‡๋ณด๋‹ค ์ œ์ผ ํฌ๊ฒŒ ๋Š๋‚€ ๊ฒƒ์ด ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์ฝ๊ณ  ๊ตฌ์กฐ๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์˜ ์ค‘์š”์„ฑ์ด์—ˆ๋‹ค. ๊ธฐ๋Šฅ ๊ตฌํ˜„์— ์‚ฌ์šฉํ–ˆ๋˜ ์•ฝ 3์ฃผ๊ฐ„์˜ ๊ธฐ๊ฐ„ ์ค‘ 30~40% ์ด์ƒ์˜ ์‹œ๊ฐ„์„ ๊ธฐ์กด ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์ฝ๋Š”๋ฐ ์‚ฌ์šฉํ–ˆ๋‹ค. ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ฝ”๋“œ ๊ตฌ์กฐ๋ฅผ ๋‚ด ๋งˆ์Œ๋Œ€๋กœ ๋ถ„๋ฅ˜ํ•ด๋ฒ„๋ ธ๊ณ , ๊ทธ ๊ตฌ์กฐ๋“ค์„ ๋‹ค์‹œ ๊ณ ์น˜๋Š”๋ฐ ๊ฝค ๋งŽ์€ ์‹œ๊ฐ„์„ ์‚ฌ์šฉํ•ด๋ฒ„๋ ธ๋‹ค.

    ๋‘ ๋ฒˆ์งธ๋กœ ๋Š๋‚€ ๊ฒƒ์€ ํ…Œ์ŠคํŠธ์˜ ์ค‘์š”์„ฑ์ด๋‹ค. ์ด๋ ‡๊ฒŒ ๊ตฌํ˜„๋œ ๊ธฐ๋Šฅ์€ develop ๋ธŒ๋žœ์น˜๋กœ merge ๋˜์–ด ๋ฐ”๋กœ ๋‚ด๋ถ€ ํ…Œ์ŠคํŠธ ์„œ๋ฒ„๋กœ ๋ฐฐํฌ๋˜๋Š”๋ฐ, ๊ตฌํ˜„ ๋•Œ ํ•จ๊ป˜ ์ž‘์„ฑํ•œ ํ…Œ์ŠคํŠธ ์‚ฌ์–‘์„œ ๋Œ€๋กœ ํ™•์ธ์„ ํ•˜๊ณ ์ž ์ฐฝ์„  ํ•˜์˜€๋Š”๋ฐ, ๋ฐ”๋กœ 500 ์—๋Ÿฌ๊ฐ€ ์ƒ๊ฒผ๋‹ค. ์•„๋ฌด๋ฆฌ ์—๋Ÿฌ๊ฐ€ ๋‚  ์ด์œ ๊ฐ€ ์—†๋Š”๋ฐ ํ•˜๊ณ  ์žˆ๋˜ ์ค‘ ์„ ๋ฐฐ ์—”์ง€๋‹ˆ์–ด๊ฐ€ JS Minify ๊ฐ€ ๋ฌธ์ œ์ผ ์ˆ˜๋„ ์žˆ๋‹ค๊ณ  ์ด์•ผ๊ธฐ ํ•ด์ฃผ์—ˆ๊ณ , ๋ฐ”๋กœ ๊ฐœ๋ฐœ์šฉ ์„œ๋ฒ„์—์„œ ํ™•์ธํ•ด๋ณด์ž ๋˜‘๊ฐ™์ด 500 ์—๋Ÿฌ๊ฐ€ ์žฌํ˜„๋˜์—ˆ๋‹ค. (์›์ธ์€ Minify ํŒจํ‚ค์ง€๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” uglify-js ๊ฐ€ ES6 ์ด์ƒ์„ ์ง€์›ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค...) ๋งŒ์•ฝ ์ด๊ฒŒ ํ…Œ์ŠคํŠธ ์„œ๋ฒ„ ํ™•์ธ์—†์ด ๋ฐ”๋กœ ๋ผ์ด๋ธŒ์„œ๋ฒ„์— ๋ฐฐํฌ ๋˜์—ˆ๋‹ค๋ฉด, ์ •๋ง ๋”์ฐํ•˜๋‹ค..

    ์„ธ ๋ฒˆ์งธ๋กœ๋Š” ์ •๋ง ๊ผผ๊ผผํ•œ ํ™•์ธ์ด ์—”์ง€๋‹ˆ์–ด๋กœ ๋ถ€ํ„ฐ ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๊ธฐ๋Šฅ ๊ตฌํ˜„์„ ๋‹คํ•˜๊ณ  ๋‚œ ๋’ค์—๋„ ๋ฌด๋ถ„๋ณ„ํ•œ Flow control ์‚ฌ์šฉ์œผ๋กœ ๋ฐœ์ƒํ•œ Cognitive complexity ๋ฅผ ํ•ด์†Œํ•˜๊ณ , ์ด๋ฏธ์ง€๊ฐ€ ํ•œ ์žฅ๋„ ์—†๋Š”๋ฐ ์—†๋Š”๋ฐ ํƒ€์ดํ‹€์ด ๋‚˜์˜ค๋Š” ๋ฒ„๊ทธ๋ฅผ ํ•ด์†Œํ•˜๊ธฐ ์œ„ํ•ด, ํ•œ 3๊ฐœ์˜ PR์ •๋„ ๋‹ค์‹œ ์ˆ˜์ •ํ•˜๋Š” ์ž‘์—…์„ ํ–ˆ๋‹ค. ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋ฆฌ๋ทฐ๋ฅผ ํ•˜๋Š” ์‚ฌ๋žŒ, ์•„์ด๋””์–ด๋ฅผ ๋‚ธ ๊ธฐํš์ž, ๋””์ž์ธ์„ ์ž‘์„ฑํ•œ ๋””์ž์ด๋„ˆ ๋“ฑ๋“ฑ ์ •๋ง ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์ˆ˜์ฐจ๋ก€ ๋”๋ธ” ์ฒดํฌ๋ฅผ ๋ฐ›์Œ์—๋„ ๊ฒฐ๊ตญ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ ์ƒํ™ฉ๋งˆ๋‹ค ์™œ ๊ทธ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ์ œ์ผ ์ž˜ ์•Œ๊ณ  ์žˆ๋Š” ๊ฒƒ์€ ๊ฒฐ๊ตญ ๋‚˜์˜€๋‹ค. ๊ทธ ๋œป์€ ๊ธฐ๋Šฅ ๊ตฌํ˜„์„ ๋งก์€ ์—”์ง€๋‹ˆ์–ด๊ฐ€ ๊ผผ๊ผผํ•˜๊ฒŒ ์ž˜ ์ฒดํฌํ•œ๋‹ค๋ฉด ์ผ์„ 2, 3๋ฒˆ ๋‹ค์‹œ ํ•˜๋Š” ์ผ์ด ์—†์„ ๊ฒƒ์ด๋ผ๋Š” ๊ฒƒ์ด๋‹ค.

    ๋งˆ์ง€๋ง‰์œผ๋กœ ๋„ค ๋ฒˆ์งธ๋Š” ๊ธฐ๋Šฅ ๊ตฌํ˜„ ์™ธ์—๋„ ๋น„์ง€๋‹ˆ์Šค ์ ์œผ๋กœ๋„ ๊ณ ๋ คํ•ด์•ผ ํ•  ์ ์ด ์ •๋ง ๋งŽ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๊ธฐ๋Šฅ ๊ตฌํ˜„์„ ํ•˜๋ฉด์„œ ๊นŒ๋‹ค๋กญ๊ฒŒ ๋Š๊ปด์ง€๊ธฐ๋„ ํ–ˆ๊ณ , ํ•™์ƒ ๋•Œ ํ•œ ๋ฒˆ๋„ ๊ฒฝํ—˜ํ•ด๋ณด์ง€ ๋ชปํ–ˆ๋˜ ๊ฒƒ์ด SEO ์ตœ์ ํ™”์™€ ๊ณ ๊ฐ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ์™€ ๊ฐ™์€ ๋ถ€๋ถ„์ด์—ˆ๋‹ค. ๊ฒฐ๊ตญ ์‹ค์ œ๋กœ ์‚ฌ์šฉ์ค‘์ธ ๋ถ€๋™์‚ฐ ์•„์นด์ด๋ธŒ์™€ ๊ฐ™์€ Product ๋“ค์€ ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๋ฅผ ๋Š์ž„์—†์ด ๋ถ„์„ํ•˜๊ณ , ๋…ธ์ถœ ๋นˆ๋„๋ฅผ ๋†’์ž„์œผ๋กœ์จ ๊ฐ€์น˜ ์ฐฝ์ถœ ๋˜๋Š” ์ˆ˜์ต์„ ๋‚ด๊ธฐ ์œ„ํ•ด์„œ ์กด์žฌํ•œ๋‹ค. ๊ทธ๋ฅผ ์œ„ํ•ด์„œ ๊ฐ ํŽ˜์ด์ง€์— ์ ์ ˆํ•œ Tag ๋‚˜ ์ˆ˜ ์—†์ด ๋งŽ์€ Cookie ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ , Sitemap ์„ ์ƒ์„ฑํ•ด์•ผํ•˜๊ธฐ๋„ ํ•œ๋‹ค. LIFULL ์˜ ์—”์ง€๋‹ˆ์–ด ์กฐ์ง์—์„œ ๋งํ•˜๋Š” "๊ธฐ์ˆ ๋กœ ๊ฒฝ์˜์„ ๋ฆฌ๋“œํ•œ๋‹ค" ๋ผ๊ณ  ํ•˜๋Š” ์Šฌ๋กœ๊ฑด์ด ์ด๋•Œ ์ •๋ง ํฌ๊ฒŒ ์™€ ๋‹ฟ์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.

 

๊ฒฐ๋ก 

    ์ด๋ ‡๊ฒŒ ์—ฌ๋Ÿฌ ๊ณ ๋‚œ(?)์„ ๊ฒช์œผ๋ฉด์„œ ์–ด๋Š์ •๋„ 8~90% ์ •๋„ ๊ตฌํ˜„์„ ๋งˆ์น˜๊ณ , ์Šค์Šค๋กœ์—๊ฒŒ ํ˜„ํƒ€๋ฅผ ๋Š๋ผ๊ณ  ์žˆ๋˜ ๋‚˜์—๊ฒŒ ์„ ๋ฐฐ ์‚ฌ์›๋“ค์ด ์ด๋ ‡๊ฒŒ ๆ–ฐ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•  ๊ธฐํšŒ ์ž์ฒด๊ฐ€ ์ž˜ ์—†๊ธฐ๋„ ํ•˜๊ณ , 0 ๋ถ€ํ„ฐ 100 ๊นŒ์ง€ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์€ ๋‚ด๊ฐ€ ๋งก์•˜์–ด๋„ ์–ด๋ ค์› ์„ ๊ฑฐ๋‹ค. Front, Back End ๋„ ์ฃผ๋กœ ๋ถ„๋‹ดํ•ด์„œ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ ์ฒ˜์Œ์œผ๋กœ ๋งก์€ ์—…๋ฌด์น˜๊ณ  ์–‘ ์ชฝ ๋‹ค ์ž˜ ๊ตฌํ˜„ ํ–ˆ๋‹ค๊ณ  ๋งํ•ด์ฃผ์—ˆ์„ ๋•Œ๋Š”

๋‹ค์Œ์—๋Š” ๋” ์ž˜ํ•ด์•ผ๊ฒ ๋‹ค!

๋ผ๊ณ  ์ •๋ง ๋งŽ์ด ์ƒ๊ฐํ–ˆ๋‹ค. ์ง€๊ธˆ ์ด ๊ฐ์ •์„ ์žŠ์ง€ ๋ง๊ณ , ์•ž์œผ๋กœ 200์ผ, 300์ผ ์ด์ƒ ๊พธ์ค€ํ•˜๊ณ  ๋ถ€์ง€๋Ÿฐํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋…ธ๋ ฅํ•ด์•ผ๊ฒ ๋‹ค..!!

 

๋Œ“๊ธ€