๐Ÿš€
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
  • Facts (์‚ฌ์‹ค, ๊ฐ๊ด€)
  • Feelings (๋А๋‚Œ, ์ฃผ๊ด€)
  • Findings (๋ฐฐ์šด ์ )
  • Affimation (์ž๊ธฐ ์„ ์–ธ)

Was this helpful?

  1. DAILY REVIEW
  2. 2021
  3. July

2021-07-14(Wed)

Previous2021-07-15(Thu)Next2021-07-13(Tue)

Last updated 3 years ago

Was this helpful?

Facts (์‚ฌ์‹ค, ๊ฐ๊ด€)

  • ๊ฐ์‚ฌ์ผ๊ธฐ๋ฅผ 8์ผ์งธ ์ ๋Š” ๊ฒƒ์„ ์„ฑ๊ณตํ–ˆ๋‹ค.

  • ๋ฃจํ‹ด์— ๋„ฃ์„ ํ™œ๋™์„ ์ •๋ฆฌํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.

  • ๋žœ๋”ฉ๊ณผ์ œ ํ”ผ๋“œ๋ฐฑ์— ๋‹ตํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ๊ฐœ์„ ํ–ˆ๋‹ค.

  • Table lock์— ๋Œ€ํ•ด์„œ ์กฐ์‚ฌ๋ฅผ ์ง„ํ–‰ํ–ˆ๋‹ค.

Feelings (๋А๋‚Œ, ์ฃผ๊ด€)

๋™๊ธฐ์˜ PR์—์„œ save!๋ฅผ ์ž˜๋ชป ์“ด ์ผ€์ด์Šค๋ฅผ ์ฝ”๋ฉ˜ํŠธ ์ฃผ๊ณ  ์‹ถ์—ˆ์ง€๋งŒ, ๋‹ค๋ฅธ ๋™๋ฃŒ๋“ค์ด ์ด๋ฏธ ๋ฆฌ๋ทฐ ์ค‘์ด์—ˆ๊ณ  ๋ฐ˜๋“œ์‹œ ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ• ๊ฑฐ๋ผ๋Š” ์ƒ๊ฐ์— ์„ฃ๋ถˆ๋ฆฌ ์ฝ”๋ฉ˜ํŠธ๋ฅผ ๋‚จ๊ธฐ์ง€ ์•Š์•˜๋‹ค. ์•„๋‚ด์™€์˜ ๋Œ€ํ™”๋ฅผ ํ†ตํ•ด ๊ฒ€์ฆํ•ด๋ดค์„ ๋•Œ, ๊ฐ™์ด ๋ฆฌ๋ทฐ ๋ฐ›๋Š” ์ž…์žฅ์ธ๋ฐ ๊ตณ์ด ๋‹ค๋ฅธ ๋ฆฌ๋ทฐ์ด์—๊ฒŒ ์ฝ”๋ฉ˜ํŠธ๋ฅผ ๋‚จ๊ธฐ๋Š”๊ฑด ๊ด€๊ณ„์— ์ฉ ์ข‹์ง€ ์•Š์„ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ํŒ๋‹จ์ด ๋“ค์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ํ  ๊ฒฐ๊ณผ์ ์œผ๋กœ ์ •์„ฑ๋“ค์—ฌ ์ผ๋˜ ์ฝ”๋ฉ˜ํŠธ๋Š” ํ๊ธฐํ–ˆ์ง€๋งŒ, ๊ด€๊ณ„๋Š” ์ง€ํ‚จ ๊ฒƒ ๊ฐ™์•„์„œ ๋‹คํ–‰์ด๋‹ค. ์†Œํ”„ํŠธ ์Šคํ‚ฌ์€ ์ •๋ง ์–ด๋ ต๋„ค.. ๊ทธ๋ƒฅ ๋งˆ๋ƒฅ ์†”์งํ•˜๊ฒŒ ํ–‰๋™ํ•˜๊ณ  ์‹ถ๊ธดํ•˜๋‹ค.

๋‹ค๋“ค ๋ฐ”์˜๋‹ค๋ณด๋‹ˆ ๋žœ๋”ฉ ๊ณผ์ œ ํ”ผ๋“œ๋ฐฑ์€ ์žฌ์›๋‹˜๋งŒ ์ง„ํ–‰ํ•ด์ฃผ์…จ๋‹ค. ๊ดœ์ฐฎ๋‹ค, ์งˆ ์ข‹์€ ํ”ผ๋“œ๋ฐฑ๊ณผ ํ‚ค์›Œ๋“œ๊ฐ€ ์žˆ๋‹ค๋ฉด ๋‚˜๋Š” ์ž˜ ์„ฑ์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€ ์ž˜ํ•ด์™”๊ณ , ์•ž์œผ๋กœ๋„ ์ž˜ํ•ด๋ด์•ผ๊ฒ ๋‹ค.

์†”์งํžˆ ์˜ negative conditions ๊ฒ€์‚ฌ๋ฅผ ์ง€์–‘ํ•˜๋ผ๋Š” ๊ฒƒ์€ ์•„๋ž˜ 1,2,3๋ฒˆ ์ผ€์ด์Šค ์ค‘ 3๋ฒˆ ์ผ€์ด์Šค๋ฅผ ์„ ํƒํ•˜๋ผ๋Š” ๊ฒƒ์œผ๋กœ ์ดํ•ดํ–ˆ์—ˆ๊ธด ํ•œ๋ฐ, ํŒ€ ์ปจ๋ฒค์…˜์„ ๋”ฐ๋ผ๊ฐ€์ž :)

action if !obj.nil? # 1๋ฒˆ ์ผ€์ด์Šค
action if not obj.nil? # 2๋ฒˆ ์ผ€์ด์Šค
action unless obj.nil? # 3๋ฒˆ ์ผ€์ด์Šค

๋™์‹œ์„ฑ ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•œ ์œ ํ‹ธ ๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“ค์–ด๋ณด์•˜๋Š”๋ฐ, ๋‚˜๋ฆ„ ์ž˜ ๋งŒ๋“  ๊ฒƒ ๊ฐ™์•„์„œ ๊ธฐ๋ถ„์ข‹์•˜๋‹ค. Proc & yield ํ™œ์šฉ๋ฒ•์„ ๋งŒ์กฑ์Šค๋Ÿฝ๊ฒŒ ์ตํžŒ ๊ฒƒ ๊ฐ™์•„์„œ ๋ฟŒ๋“ฏํ•˜๋‹ค.

Findings (๋ฐฐ์šด ์ )

DB, ruby์™€ rails๋ฅผ ํŒŒ๋ณด๋Š” ํ•˜๋ฃจ์˜€๋‹ค.

DB

  • SQL column์„ ์ƒ์„ฑํ•  ๋•Œ, limit ๊ตฌ๋ฌธ์„ ํ™œ์šฉํ•ด์„œ bytes๊นŒ์ง€ ์‹ ๊ฒฝ์จ์„œ ๋งŒ๋“ค์–ด์•ผํ•˜๋Š” ๊ฒƒ์„ ์ƒˆ์‚ผ ๊นจ๋‹ฌ์•˜๋‹ค.

  • InnoDB์˜ Snapshot์— ๋Œ€ํ•ด ํ•™์Šตํ–ˆ๋‹ค.

  • Non repetable read ์™€ Phantom read ์˜ ์ฐจ์ด์ ์— ๋Œ€ํ•ด ํ•™์Šตํ–ˆ๋‹ค.

    • ํ›„์ž๋Š” ์ „์ž์™€ ๋‹ฌ๋ฆฌ ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ์ˆ˜์ •์ด ๋ถˆ๊ฐ€ํ•˜์ง€๋งŒ, ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ ์ƒ์„ฑ์€ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ์—์„œ ๋ฐœ์ƒํ•œ๋‹ค.

  • MySQL์—์„œ๋Š” REPEATABLE READ์™€ READ COMMITTED ๋ ˆ๋ฒจ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์—์„œ SELECT ์ฟผ๋ฆฌ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์˜ฌ ๋•Œ, ํ…Œ์ด๋ธ”์— lock์„ ๊ฑธ์ง€ ์•Š๊ณ , ํŠธ๋žœ์žญ์…˜ ์ตœ์ดˆ์— snapshot์„ ๊ตฌ์ถ•ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.

    • ๋•Œ๋ฌธ์— REPEATABLE READ์—์„œ phantom read๋„ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค.

  • WHERE 1=1 ๊ตฌ๋ฌธ์„ ์™œ ์“ฐ๋Š”์ง€ ํ™•์ธํ•˜์˜€๋‹ค.

    • ๋””๋ฒ„๊น…์ด ์‰ฝ๋‹ค.

    • ๋™์  ์ฟผ๋ฆฌ ๋“ฑ ์กฐ๊ฑด์„ ๊ฒ€์‚ฌํ•˜๋ฉฐ ์ฟผ๋ฆฌ๋ฅผ ๋‚ ๋ ค์•ผํ•  ๋•Œ ๊ตฌ๋ฌธ์„ ๋ง๋ถ™์ด๊ธฐ ์‰ฝ๋‹ค.

Ruby์™€ Rails

  • ActiveRecord์˜ ๋ฉค๋ฒ„๋ณ€์ˆ˜์— ๊ฐ’์„ ๋Œ€์ž…ํ•  ๋•Œ, self๋ฅผ ๋ถ™์—ฌ์•ผํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜์˜€๋‹ค.

    • ๊ฒฐ๊ตญ =๊ณผ ํ•จ๊ป˜ ์“ธ ๋•Œ๋Š” self๋ฅผ ๋ถ™์—ฌ์•ผํ•œ๋‹ค. = ์—ฐ์‚ฐ์ž๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋“œํ•œ ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ๊ณผ ์ง€์—ญ๋ณ€์ˆ˜ ํ• ๋‹น ๊ฐ„์— ๊ตฌ๋ณ„์ด ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ.

  • ๋™์‹œ์„ฑ ํ…Œ์ŠคํŠธ์‹œ ์“ธ๋งŒํ•œ ์œ ํ‹ธ ๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์„ ์ตํ˜”๋‹ค.

    • Proc & yield๋ฅผ ์‘์šฉํ•˜์—ฌ, ์›ํ•˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์›ํ•˜๋Š” ๊ฐฏ์ˆ˜์˜ ์“ฐ๋ ˆ๋“œ์—์„œ ์›ํ•˜๋Š” ํšŸ์ˆ˜๋งŒํผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์œ ํ‹ธ ๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค.

Affimation (์ž๊ธฐ ์„ ์–ธ)

  • ๋‚˜๋Š” ๋ฌด์ง€๋ฅผ ์ธ์ง€ํ•˜์—ฌ ์ ๊ทน์ ์œผ๋กœ ๋“œ๋Ÿฌ๋‚ด๊ณ ,

  • ๋ฌด์ง€๋ฅผ ์•„๋Š” ์˜์—ญ์œผ๋กœ ๋ฐ”๊พธ์–ด๋‚ด๋ฉฐ,

  • ๊ฒฐ๊ตญ์—” ์„ฑ์žฅํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋‹ค.

๋ฃจ๋น„์Šคํƒ€์ผ ๊ฐ€์ด๋“œ