๐Ÿš€
Growth log
  • About me
  • I LEARNED
    • General
      • ๊ฐœ๋ฐœ์ž ๊ฟ€ํŒ
      • ๊ทธ๋กœ์Šคํ•ดํ‚น ๊ธฐ์ดˆ
      • ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋„๋ฉ”์ธ ์ง€์‹์€ ์–ผ๋งˆ๋‚˜ ์ค‘์š”ํ• ๊นŒ?
      • DTO ๋…ผ์Ÿ์— ๋Œ€ํ•˜์—ฌ
      • MSA๋ž€?
    • Seminar
      • ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€ 100% - SLASH 21
      • TDD๊ฐ€ ์‹คํŒจํ•˜๋Š” ์ด์œ  - by ์ด๊ทœ์›๋‹˜
      • ๋Œ€๊ทœ๋ชจ ํŠธ๋ž˜ํ”ฝ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ ํŠœ๋‹ ๋…ธํ•˜์šฐ ๋‹ค ์•Œ๋ ค ๋“œ๋ฆผ|๋ผ์ธ๊ฐœ๋ฐœ์‹ค๋ก
      • ๊ฒฐ์ œ ์‹œ์Šคํ…œ์˜ SDK์™€ API ๋””์ž์ธ - SLASH 21
    • Web
      • SOP์™€ CORS
    • Spring & OOP
      • DTO vs VO
    • Ruby On Rails
      • Rails lib ๋””๋ ‰ํ† ๋ฆฌ์— ๋Œ€ํ•˜์—ฌ
      • Rails์˜ concerns๋ž€?
      • Rails์—์„œ์˜ GC ์ž‘๋™์›๋ฆฌ
      • Eager loading vs Lazy loading
      • Rails ํ™˜๊ฒฝ ๊ตฌ์„ฑ
      • ActionCable
      • ๐Ÿ“”Perfect ruby on rails
        • MVC ํŒจํ„ด์ธ Rails
        • Ruby on Rails ๊ธฐ๋ณธ - ์ปจํŠธ๋กค๋Ÿฌ
        • Ruby on Rails ๊ธฐ๋ณธ - ๋ทฐ
        • Ruby on Rails ๊ธฐ๋ณธ - ๋ชจ๋ธ
        • ์Šค์บํด๋”ฉ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•œ Rails ๊ฐœ๋ฐœ ๊ธฐ์ดˆ
        • ๋ทฐ ๊ฐœ๋ฐœ
        • ๋ชจ๋ธ ๊ฐœ๋ฐœ
        • ๋ชจ๋ธ ๊ฐœ๋ฐœ - ๋‚™๊ด€์  ๋™์‹œ ์‹คํ–‰ ์ œ์–ด
        • ๋ชจ๋ธ ๊ฐœ๋ฐœ - ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๊ตฌํ˜„
        • ๋ชจ๋ธ ๊ฐœ๋ฐœ - Association
        • ๋ชจ๋ธ ๊ฐœ๋ฐœ - ์ฝœ๋ฐฑ
        • ๋ชจ๋ธ ๊ฐœ๋ฐœ - ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜
        • ๋ชจ๋ธ ๊ฐœ๋ฐœ - ๋ฐ์ดํ„ฐ ์ดˆ๊ธฐํ™”
        • ์ปจํŠธ๋กค๋Ÿฌ ๊ฐœ๋ฐœ - ์š”์ฒญ ์ •๋ณด ์ถ”์ถœ
        • ์ปจํŠธ๋กค๋Ÿฌ ๊ฐœ๋ฐœ - ์‘๋‹ต
        • ์ปจํŠธ๋กค๋Ÿฌ ๊ฐœ๋ฐœ - ์ƒํƒœ ๊ด€๋ฆฌ
        • ๋ผ์šฐํŒ… - RESTful
        • ๋ผ์šฐํŒ… - RESTful ์ธํ„ฐํŽ˜์ด์Šค์˜ ์‚ฌ์šฉ์ž ์ •์˜ํ™”
        • ๋ผ์šฐํŒ… - RESTful ํ•˜์ง€ ์•Š์€ ๋ผ์šฐํŠธ ์ •์˜
        • ํ…Œ์ŠคํŠธ
        • ํ…Œ์ŠคํŠธ - ์ค€๋น„
        • ํ…Œ์ŠคํŠธ - Unit ํ…Œ์ŠคํŠธ
        • ํ…Œ์ŠคํŠธ - Functional ํ…Œ์ŠคํŠธ
        • ํ…Œ์ŠคํŠธ - Integration ํ…Œ์ŠคํŠธ
        • ํด๋ผ์ด์–ธํŠธ ๊ฐœ๋ฐœ - Sprockets vs Webpacker
        • ํด๋ผ์ด์–ธํŠธ ๊ฐœ๋ฐœ - Sprockets
    • Node.js & Express
      • ๊ธฐ๋ณธ ๊ฐœ๋…
      • npx
    • Programing Language
      • Java
        • JavaDoc์— ๋Œ€ํ•ด
        • invocation์— ๋Œ€ํ•ด์„œ
        • ์–ด๋…ธํ…Œ์ด์…˜
        • ์ถ”์ƒํด๋ž˜์Šค & ์ธํ„ฐํŽ˜์ด์Šค
        • Package
        • ์˜ค๋ฒ„๋กœ๋”ฉ vs ์˜ค๋ฒ„๋ผ์ด๋”ฉ
      • Javascript
        • TCP School ํ›‘์–ด๋ณด๊ธฐ
          • ํƒ€์ž…
          • ํ˜• ๋ณ€ํ™˜
          • ๋ณ€์ˆ˜
          • ์—ฐ์‚ฐ์ž
          • ๋ฐ˜๋ณต๋ฌธ
          • ๋ฐฐ์—ด(array)
          • ํ•จ์ˆ˜
          • ํ•จ์ˆ˜ - ์Šค์ฝ”ํ”„์™€ ํ˜ธ์ด์ŠคํŒ…
          • ํ•จ์ˆ˜ - ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ์ธ์ˆ˜
          • ํ•จ์ˆ˜ - ๋ฏธ๋ฆฌ ์ •์˜๋œ ์ „์—ญ ํ•จ์ˆ˜
          • ๊ฐ์ฒด
          • ํ”„๋กœํ† ํƒ€์ž…
          • DOM
          • BOM - Window ๊ฐ์ฒด
          • ์ด๋ฒคํŠธ(event)
      • Ruby
        • ๐Ÿ“”ํผํŽ™ํŠธ ๋ฃจ๋น„
    • DB
      • Redis
        • Redis ๊ฐœ์š”
      • Index(์ธ๋ฑ์Šค)?
      • DB Transaction & Lock
      • ๋™์‹œ์„ฑ ์ œ์–ด์— ๊ด€ํ•˜์—ฌ
      • Lock(์ž ๊ธˆ)์ด๋ž€?
      • ActiveRecord lock vs with_lock
      • Table lock vs Row lock
      • WHERE 1=1 ๊ตฌ๋ฌธ์— ๋Œ€ํ•˜์—ฌ
      • COUNT(*) vs COUNT(indexed column)
      • ๐Ÿ“•๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹ค์ „์ž…๋ฌธ
      • ๐Ÿ“”SQL ์ฒซ๊ฑธ์Œ
      • ๐Ÿ“”๋ชจ๋‘์˜ SQL
    • Design Patterns
      • Observer pattern
      • Flyweight pattern
      • Singleton pattern
    • OOP
      • ๐Ÿ“”์˜ค๋ธŒ์ ํŠธ
        • 6์žฅ ๋ฉ”์‹œ์ง€์™€ ์ธํ„ฐํŽ˜์ด์Šค
      • ํด๋ž˜์Šค๊ฐ„ ๊ด€๊ณ„ ๊ฐ„๋‹จ ์ •๋ฆฌ
    • Regex
    • Collaboration
      • Git
      • Sourcetree
  • DAILY REVIEW
    • 2021
      • August
        • 2021-08-25(Wed)
        • 2021-08-23(Mon)
        • 2021-08-11(Wed)
        • 2021-08-04(Wed)
        • 2021-08-03(Tue)
        • 2021-08-02(Mon)
      • July
        • 2021-07-29(Thu)
        • 2021-07-26(Mon)
        • 2021-07-23(Fri)
        • 2021-07-22(Thu)
        • 2021-07-21(Wed)
        • 2021-07-20(Tue)
        • 2021-07-19(Mon)
        • 2021-07-15(Thu)
        • 2021-07-14(Wed)
        • 2021-07-13(Tue)
        • 2021-07-12(Mon)
      • June
        • 2021-06-05(Sat)
        • 2021-06-04(Fri)
        • 2021-06-03(Thu)
        • 2021-06-02(Wed)
        • 2021-06-01(Tue)
      • May
        • 2021-05-31(Mon)
        • 2021-05-29(Sat)
        • 2021-05-28(Fri)
        • 2021-05-27(Thu)
        • 2021-05-26(Wed)
        • 2021-05-25(Tue)
        • 2021-05-24(Mon)
        • 2021-05-22(Sat)
        • 2021-05-21(Fri)
        • 2021-05-20(Thu)
        • 2021-05-19(Wed)
        • 2021-05-18(Tue)
        • 2021-05-17(Mon)
        • 2021-05-15(Sat)
        • 2021-05-13(Thu)
        • 2021-05-12(Wed)
        • 2021-05-11(Tue)
        • 2021-05-10(Mon)
        • 2021-05-03(Mon)
      • April
        • 2021-04-30(Fri)
        • 2021-04-29(Thu)
        • 2021-04-28(Wed)
        • 2021-04-27(Tue)
        • 2021-04-26(Mon)
        • 2021-04-24(Sat)
        • 2021-04-23(Fri)
        • 2021-04-21(Wed)
        • 2021-04-20(Tue)
        • 2021-04-19(Mon)
        • 2021-04-18(Sun)
        • 2021-04-16(Fri)
        • 2021-04-15(Thu)
        • 2021-04-14(Wed)
        • 2021-04-12(Mon)
        • 2021-04-11(Sun)
        • 2021-04-09(Fri)
        • 2021-04-08(Thu)
        • 2021-04-06(Tue)
        • 2021-04-05(Mon)
        • 2021-04-04(Sun)
        • 2021-04-03(Sat)
        • 2021-04-02(Fri)
        • 2021-04-01(Thu)
      • March
        • 2021-03-29(Mon)
        • 2021-03-28(Sun)
        • 2021-03-26(Fri)
        • 2021-03-25(Thu)
        • 2021-03-24(Wed)
        • 2021-03-23(Tue)
        • 2021-03-22(Mon)
        • 2021-03-21(Sun)
        • 2021-03-20(Sat)
        • 2021-03-17(Wed)
        • 2021-03-16(Tue)
        • 2021-03-15(Mon)
        • 2021-03-12(Fri)
        • 2021-03-11(Thu)
        • 2021-03-10(Wed)
        • 2021-03-09(Tue)
        • 2021-03-08(Mon)
        • 2021-03-07(Sun)
        • 2021-03-05(Fri)
        • 2021-03-03(Wed)
        • 2021-03-02(Tue)
        • 2021-03-01(Mon)
      • Feb
        • 2021-02-26(Fri)
        • 2021-02-25(Thu)
        • 2021-02-24(Wed)
        • 2021-02-23(Tue)
        • 2021-02-22(Mon)
        • 2021-02-19(Fri)
        • 2021-02-18(Thu)
        • 2021-02-17(Wed)
        • 2021-02-16(Tue)
        • 2021-02-15(Mon)
        • 2021-02-14(Sun)
        • 2021-02-13(Sat)
        • 2021-02-12(Fri)
        • 2021-02-10(Wed)
        • 2021-02-09(Tue)
        • 2021-02-08(Mon)
        • 2021-02-07(Sun)
        • 2021-02-05(Fri)
        • 2021-02-03(Wed)
        • 2021-02-02(Tue)
        • 2021-02-01(Mon)
      • Jan
        • 2021-01-29(Fri)
        • 2021-01-28(Thu)
        • 2021-01-27(Wed)
        • 2021-01-26(Tue)
        • 2021-01-25(Mon)
        • 2021-01-23(Sat)
        • 2021-01-22(Fri)
        • 2021-01-20(Wed)
        • 2021-01-19(Tue)
        • 2021-01-18(Mon)
        • 2021-01-12(Tue)
        • 2020-01-11(Mon)
        • 2021-01-08(Fri)
        • 2021-01-07(Thu)
        • 2021-01-06(Wed)
        • 2021-01-05(Tue)
        • 2021-01-04(Mon)
        • 2021-01-01(Fri)
    • 2020
      • Dec
        • 2020-12-30(Thu)
        • 2020-12-25(Fri)
        • 2020-12-24(Thu)
        • 2020-12-23(Wed)
        • 2020-12-22(Tue)
        • 2020-12-21(Mon)
        • 2020-12-18 (Fri)
      • Nov
        • 2020-11-30(Mon)
        • 2020-11-28(Sat)
        • 2020-11-26(Thu)
        • 2020-11-25(Wed)
        • 2020-11-24(Tue)
        • 2020-11-23(Mon)
        • 2020-11-22(Sun)
        • 2020-11-20(Fri)
        • 2020-11-19(Thu)
        • 2020-11-18(Wed)
        • 2020-11-17(Tue)
        • 2020-11-14(Sat)
        • 2020-11-13(Fri)
        • 2020-11-12(Thu)
        • 2020-11-11(Wed)
        • 2020-11-09(Mon)
        • 2020-11-07(Sat)
        • 2020-11-05(Thu)
        • 2020-11-04(Wed)
        • 2020-11-03(Tue)
        • 2020-11-02(Mon)
    • Good article ์•„์นด์ด๋น™
Powered by GitBook
On this page
  • ์ƒ์„ธ ํ•™์Šต ๋‚ด์šฉ
  • ๊ฒช์€ ๋ฌธ์ œ์ 
  • ๋А๋ ค์ง€๋Š” ํ…Œ์ŠคํŠธ
  • ์ง„์งœ ์–ด๋ ค์šด ํ…Œ์ŠคํŠธ๊ฐ€ ์žˆ๋‹ค.
  • ์—ฌ์ „ํžˆ ํ•ด๊ฒฐํ•ด์•ผํ•  ๋ฌธ์ œ
  • ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๊ฐ€ ๋ถ€์กฑํ•  ๋•Œ
  • ๊ฐœ๋ฐœ์ž๊ฐ€ ์š”๊ตฌ์‚ฌํ•ญ์„ ์˜คํ•ดํ•˜๋Š” ๊ฒฝ์šฐ
  • ์ปดํฌ๋„ŒํŠธ๊ฐ„ ํ˜‘์—… ์‹คํŒจ
  • ์ถœ์ฒ˜
  • ํ•™์Šต ๋‚ด์šฉ์— ๋Œ€ํ•œ ๊ฐœ์ธ์ ์ธ ์ดํ‰
  • ๋‹ค์Œ ํ•™์Šต ๊ณ„ํš

Was this helpful?

  1. DAILY REVIEW
  2. 2021
  3. April

2021-04-28(Wed)

ํ•ญ๋ชฉ

๋‚ด์šฉ

ํ•™์Šต ๋‚ ์งœ

2021-04-28(์ˆ˜)

ํ•™์Šต ์‹œ๊ฐ„

09:00~23:00

ํ•™์Šต ๋ฒ”์œ„ ๋ฐ ์ฃผ์ œ

ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€

ํ•™์Šต ๋ชฉํ‘œ

SLASH21 ์ค‘ ํฅ๋ฏธ๊ฐ€๋Š” ๋ถ€๋ถ„์„ ํ™•์ธํ•˜์ž. Opensource CMS ๊ตฌํ˜„ ๊ณ„ํš์„ ์„ธ์›Œ๋ณด์ž.

๋™๋ฃŒ ํ•™์Šต ๋ฐฉ๋ฒ•

ํ—ˆ๊ด‘๋‚จ ๋ฉ˜ํ† ๋‹˜ ์™ธ 2๋ช…์˜ ์นด๋Žƒ๊ณผ Opensource CMS ๊ตฌํ˜„ ๊ณ„ํš์„ ์„ธ์› ๋‹ค.

์ƒ์„ธ ํ•™์Šต ๋‚ด์šฉ

ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ 70% ์ •๋„๋ฉด ์ ์ •ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ด์™”๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ํด๋ฆฐ์ฝ”๋“œ์—์„œ ์•„๋ž˜์™€ ๊ฐ™์ด ๋ฌธ๊ตฌ๊ฐ€ ์žˆ์—ˆ๋‹ค.

์–ผ๋งˆ๋งŒํผ์˜ ์ฝ”๋“œ๋ฅผ ์ž๋™ํ™”ํ•œ ๋‹จ์œ„ ํ…์ŠคํŠธ๋กœ ๊ณ„์‚ฐํ•ด์•ผ ํ• ๊นŒ?
๋Œ€๋‹ตํ•  ํ•„์š”์กฐ์ฐจ ์—†๋‹ค. ๋ชจ์กฐ๋ฆฌ ๋‹ค ํ•ด์•ผ ํ•œ๋‹ค. ๋ชจ.์กฐ.๋ฆฌ!
โ€‹
100% ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ๊ถŒ์žฅํ•˜๋ƒ๊ณ ? ๊ถŒ์žฅ์ด ์•„๋‹ˆ๋ผ ๊ฐ•๋ ฅํžˆ ์š”๊ตฌํ•œ๋‹ค.
์ž‘์„ฑํ•œ ์ฝ”๋“œ๋Š” ํ•œ ์ค„๋„ ๋น ์ง์—†์ด ์ „๋ถ€ ํ…Œ์ŠคํŠธํ•ด์•ผ ํ•œ๋‹ค.
๊ตฐ๋ง์€ ํ•„์š”์—†๋‹ค. - ๋กœ๋ฒ„ํŠธ ๋งˆํ‹ด, ํด๋ฆฐ ์ฝ”๋”(2016)

๋„์ €ํžˆ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ํž˜๋“  ๋ถ€๋ถ„๋„ ์žˆ๊ณ , ์ฝ”๋“œ์–‘๋„ ๋„ˆ๋ฌด ๋งŽ์„๊ฑฐ๋ผ ์ƒ๊ฐํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ง‰์—ฐํžˆ ๋ง๋„ ์•ˆ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š๊ณ  ์‹ค์ œ๋กœ ํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค.

์˜์™ธ๋กœ ํ•ด๋ณด๋‹ˆ ๊ฐ€๋Šฅํ–ˆ๋‹ค.

๊ฐ€๋Šฅํ–ˆ์ง€๋งŒ ์œ ์ง€๊ฐ€ ๊ฐ€๋Šฅํ•œ์ง€๋„ ๊ถ๊ธˆํ•ด์กŒ๋‹ค.

๋‹คํ–‰ํžˆ 1๋…„ 6๊ฐœ์›”๊ฐ„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ž์‹ ์žˆ๊ฒŒ ๋ฐฐํฌ๋ฅผ ๋ˆ„๋ฅผ ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.

๋•๋ถ„์— ๊ฑฐ์นจ์—†์ด ๋ฆฌํŒฉํ† ๋ง์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค. ๋ฆฌํŒฉํ† ๋ง์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๋ฉด ํ…Œ์ŠคํŠธ๊ฐ€ ์•Œ๋ ค์ค„ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๋ถˆํ•„์š”ํ•œ ํ”„๋กœ๋•์…˜ ์ฝ”๋“œ๊ฐ€ ์‚ฌ๋ผ์ง„๋‹ค. ๋‚จ์•„ ์ž‡๋‹ค๋ฉด ๊ทธ๊ฒƒ ๋˜ํ•œ ํ…Œ์ŠคํŠธํ•ด์•ผ ํ•œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ํ”„๋กœ๋•์…˜ ์ฝ”๋“œ์— ๋Œ€ํ•œ ์ดํ•ด๋„๊ฐ€ ์ƒ์ƒํ–ˆ๋‹ค. ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๋ฉด ํ…Œ์ŠคํŠธ ์ž‘์„ฑ์ด ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์ ์  ํ…Œ์ŠคํŠธ ์ž‘์„ฑ์ด ์‰ฌ์›Œ์กŒ๋‹ค. ์ด๋ฏธ ์ž‘์„ฑํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์ฐธ๊ณ ํ•ด์„œ ์ƒˆ๋กœ์šด ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ์˜ฌ๋ฆฌ๊ธฐ ์œ„ํ•ด์„œ ํ•„์š”ํ•œ ๊ฒƒ์€ ๋ฌด์—‡์ผ๊นŒ? ๋ฏฟ์Œ๊ณผ ์‹œ๊ฐ„์ด๋‹ค.

ํ…Œ์ŠคํŠธ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋Š” ๋ฏฟ์Œ์ด ํ•„์š”ํ•˜๋‹ค.

  • ํ…Œ์ŠคํŠธ๊ฐ€ ์—†์œผ๋ฉด ๋ฆฌํŒฉํ† ๋ง ๋ชปํ•˜๊ณ , ๋ฆฌํŒฉํ† ๋ง ๋ชปํ•˜๋ฉด ์ฝ”๋“œ๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์—†์œผ๋ฉฐ, ์ดํ•ดํ•  ์ˆ˜ ์—†๋Š” ์ฝ”๋“œ๋Š” ์ˆ˜์ •ํ•  ์ˆ˜ ์—†์–ด์ง„๋‹ค๊ณ  ๋ฏฟ์—ˆ๋‹ค.

  • ์–ด๋–ค ์ฝ”๋“œ๋“  ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ฏฟ์Œ์ด ํ•„์š”ํ•˜๋‹ค. ์กฐ๊ธˆ๋งŒ ํ…Œ์ŠคํŠธ๊ฐ€ ์–ด๋ ค์šด ์ฝ”๋“œ๋ฅผ ๋งŒ๋‚˜๋„ ํ…Œ์ŠคํŠธ๋ฅผ ํฌ๊ธฐํ•  ๊ฒƒ์ด๋‹ค.

๋ฏฟ์Œ์ด ์žˆ์–ด๋„ ์‹œ๊ฐ„์ด ์žˆ์–ด์•ผ ๊ฐ€๋Šฅํ•˜๋‹ค. ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐ๋ถ€ํ„ฐ ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ๋†’๊ฒŒ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.

ํ•„์š”ํ•˜์ง€ ์•Š์€ ๊ฒƒ์€ ์˜์ง€์ด๋‹ค.

๋ฌด์Šจ ๋ง์ธ๊ฐ€? ์ธ๊ฐ„์˜ ์˜์ง€๋Š” ๋„๊ตฌ๊ฐ€ ๋Œ€์‹ ํ•  ์ˆ˜ ์žˆ๋‹ค. Gradle์˜ JaCoCo ํ”Œ๋Ÿฌ๊ทธ์ธ์— ๋“ค์–ด ์žˆ๋Š” JacocoTestCoverageVerification์€ ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€ ์ˆ˜์น˜์— ๋”ฐ๋ผ ๋นŒ๋“œ๋ฅผ ์‹คํŒจ์‹œํ‚จ๋‹ค.

๊ฒช์€ ๋ฌธ์ œ์ 

๋А๋ ค์ง€๋Š” ํ…Œ์ŠคํŠธ

ํ…Œ์ŠคํŠธ์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋Š˜์–ด๊ฐˆ ์ˆ˜๋ก ํ…Œ์ŠคํŠธ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. (ํ…Œ์ŠคํŠธ 400๊ฐœ์ผ ๋•Œ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์‹œ๊ฐ„ 1๋ถ„) ์ „์ฒด ํ…Œ์ŠคํŠธ๋ฅผ ํ™•์ธํ•  ๋•Œ๋งˆ๋‹ค 1๋ถ„ ๊ธฐ๋‹ค๋ ค์•ผํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์Šคํ”„๋ง ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ปจํ…์ŠคํŠธ ๋กœ๋”ฉ์„ ์ œ๊ฑฐํ–ˆ๋‹ค. WebTestClient๋Š” ์ปจํ…์ŠคํŠธ ๋กœ๋”ฉ ์—†์ด ํ…Œ์ŠคํŠธ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

๋˜ ํ…Œ์ŠคํŠธ๊ฐ€ 1600๊ฐœ๋ฅผ ๋„˜์–ด์„œ๋‹ˆ ๋‹ค์‹œ ์‹คํ–‰์‹œ๊ฐ„์— 1๋ถ„์ด ์ดˆ๊ณผ๋˜์—ˆ๋‹ค. ๋А๋ ค์ง€๋Š” ์›์ธ์„ ์ฐพ์œผ๋ ค๋ฉด ํ”„๋กœํŒŒ์ผ๋ง์ด ํ•„์š”ํ–ˆ๋‹ค.

๋ˆ์„ ์จ์„œ ํ•ด๊ฒฐํ•˜๊ธฐ๋„ ํ–ˆ๋‹ค. ๋” ์ข‹์€ ๋…ธํŠธ๋ถ ์‚ผใ…Žใ…Ž

์ง„์งœ ์–ด๋ ค์šด ํ…Œ์ŠคํŠธ๊ฐ€ ์žˆ๋‹ค.

์ปค๋ฒ„๋ฆฌ์ง€ ๊ธฐ์ค€์ด ๋ผ์ธ ์ปค๋ฒ„๋Ÿฌ์ง€๊ฐ€ ์•„๋‹Œ ์ธ์ŠคํŠธ๋Ÿญ์…˜ ์ปค๋ฒ„๋ฆฌ์ง€ ์˜€๊ธฐ ๋•Œ๋ฌธ.

์ปค๋ฒ„๋ฆฌ์ง€ ๊ฒ€์‚ฌ๋„๊ตฌ์—์„œ ๊ทธ ํŒŒ์ผ์„ ์ œ์™ธํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค.

์™œ ์ด๋ ‡๊ฒŒ 100%์— ์ง‘์ฐฉํ–ˆ๋‚˜?

100%๋Š” ๋‹จ์ˆœํ•˜๋‹ค. ์ปค๋ฒ„๊ฐ€ ์•ˆ๋˜๋ฉด ๋นŒ๋“œ๊ฐ€ ์‹คํŒจํ•˜๊ณ , ๊ทธ ๊ณณ์„ ํ™•์ธํ•ด์„œ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ๋œ๋‹ค.

99%๋Š” ๋ณต์žกํ•˜๋‹ค. ์šด ์ข‹๊ฒŒ ๋„˜์–ด๊ฐˆ ์ˆ˜๋„, ์–ต์šธํ•˜๊ฒŒ ์‹คํŒจํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

์—ฌ์ „ํžˆ ํ•ด๊ฒฐํ•ด์•ผํ•  ๋ฌธ์ œ

100% ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ๋งŒ๋“ค์–ด๋„ ๋ฒ„๊ทธ๋Š” ์žˆ๋‹ค.

  • ํ…Œ์ŠคํŠธ๋ฅผ ์ž˜๋ชป ์ž‘์„ฑํ•˜๋Š” ๊ฒฝ์šฐ

  • ์š”๊ตฌ ์‚ฌํ•ญ์— ์˜คํ•ด๊ฐ€ ์ƒ๊ธด ๊ฒฝ์šฐ

  • ์ปดํฌ๋„ŒํŠธ๊ฐ„ ํ˜‘์—…์— ์‹คํŒจํ•œ ๊ฒฝ์šฐ

ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๊ฐ€ ๋ถ€์กฑํ•  ๋•Œ

์œ„ ์ผ€์ด์Šค์—์„œ๋Š” sum์„ + ์—ฐ์‚ฐ์ž๋ฅผ ๋‚ด๋ถ€์—์„œ ์‹คํ–‰ํ•˜๋”๋ผ๋„, - ์—ฐ์‚ฐ์ž๋ฅผ ๋‚ด๋ถ€์—์„œ ์‹คํ–‰ํ•˜๋”๋ผ๋„ ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€ 100%๋ฅผ ๋‹ฌ์„ฑํ•˜๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค. ์ด๋Ÿฐ ๋ฌธ์ œ๋Š” ์–ด๋–ป๊ฒŒ ํšŒํ”ผํ• ๊นŒ?

๋ฎคํ…Œ์ด์…˜ ํ…Œ์ŠคํŒ…์ด๋ผ๋Š” ๊ธฐ๋ฒ•์ด ์žˆ๋‹ค.

ํ”„๋กœ๋•์…˜ ์ฝ”๋“œ๋ฅผ ๋ฌด์ž‘์œ„๋กœ ์กฐ์ž‘ํ•˜๊ณ  ํ…Œ์ŠคํŠธ๊ฐ€ ํ†ต๊ณผํ•˜๋ฉด ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๊ฐ€ ๋ถ€์กฑํ•œ ๊ฒƒ์ด๋‹ค.

Pitest๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฎคํ…Œ์ด์…˜ ํ…Œ์ŠคํŒ…์„ ํ•˜์—ฌ ๋ถ€์กฑํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์žก์•„๋‚ด์ค€๋‹ค. ํ•˜์ง€๋งŒ ๊ต‰์žฅํžˆ ๋А๋ฆฌ๋‹ค๋Š” ๋‹จ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ค‘์š”ํ•œ ๋กœ์ง์—๋งŒ ๋ถ€๋ถ„์ ์œผ๋กœ ์ ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. (๋„์ž…ํ•˜์ง€ ๋ชปํ•จ)

๊ฐœ๋ฐœ์ž๊ฐ€ ์š”๊ตฌ์‚ฌํ•ญ์„ ์˜คํ•ดํ•˜๋Š” ๊ฒฝ์šฐ

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

์ปดํฌ๋„ŒํŠธ๊ฐ„ ํ˜‘์—… ์‹คํŒจ

๊ณ„์•ฝ์„ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” Pactflow๋ผ๋Š” ๋„๊ตฌ๊ฐ€ ์กด์žฌํ•œ๋‹ค.

์ถœ์ฒ˜

ํ•™์Šต ๋‚ด์šฉ์— ๋Œ€ํ•œ ๊ฐœ์ธ์ ์ธ ์ดํ‰

ํ•ด์•ผํ• ๊ฒŒ ๋งŽ์€ ์ƒํ™ฉ์—์„œ ๊ฐœ์ธ์ ์ธ ์š•์‹ฌ์œผ๋กœ Opensource CMS ํ”„๋กœ์ ํŠธ๋ฅผ ์ฐธ์—ฌํ•˜์˜€๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ typescript + nest.js๋ฅผ ์จ๋ณด๊ณ  ์‹ถ์—ˆ๋Š”๋ฐ, ๋ชป ์“ฐ๊ฒŒ ๋˜์–ด ์•„์‰ฝ๋‹ค..

๋‹ค์Œ ํ•™์Šต ๊ณ„ํš

  • SLASH 21 ์ฆ๊ธฐ๊ธฐ!

  • Opensource CMS ์‚ฌ์šฉ์ž ์‹œ๋‚˜๋ฆฌ์˜ค & ์™€์ด์–ดํ”„๋ ˆ์ž„ ๊ตฌ์„ฑํ•˜๊ธฐ

Previous2021-04-29(Thu)Next2021-04-27(Tue)

Last updated 4 years ago

Was this helpful?

image-20210428202357427
image-20210428203224841
image-20210428203426965
image-20210428203926735

https://toss.im/slash-21/sessions/1-6