E D R , A S I H C RSS

Replace Temp With Query

μ–΄λ–€ μˆ˜μ‹μ˜ 결과값을 μ €μž₯ν•˜κΈ° μœ„ν•΄μ„œ μž„μ‹œλ³€μˆ˜λΌ μ‚¬μš©ν•˜κ³  μžˆλ‹€λ©΄,

μˆ˜μ‹μ„ λ½‘μ•„λ‚΄μ„œ λ©”μ†Œλ“œλ‘œ λ§Œλ“€κ³ , μž„μ‹œλ³€μˆ˜λΌ μ°Έμ‘°ν•˜λŠ” 곳을 μ°Ύμ•„ λͺ¨λ‘ λ©”μ†Œλ“œ 호좜둜 λ°”κΎΌλ‹€. μƒˆλ‘œ λ§Œλ“  λ©”μ†Œλ“œλŠ” λ‹€λ₯Έ λ©”μ†Œλ“œμ—μ„œλ„ μ‚¬μš©λ  수 μžˆλ‹€.


    double basePrice = _quantity * _itemPrice;
    if (basePrice > 1000)
        return basePrice * 0.95;
    else
        return basePrice * 0.98;

λΌ λ‹€μŒκ³Ό 같이 μž‘μ„±ν•œλ‹€.

    if (basePrice() > 1000)
        return basePrice() * 0.95;
    else
        return basePrice() * 0.98;
...

double basePrice() {
    return _quantity * _itemPrice;
}

μœ„μ˜ μ˜ˆλŠ” 맀우 κ·Ήλ‹¨μ μœΌλ‘œ 보일지도 λͺ¨λ₯Έλ‹€. ν•˜μ§€λ§Œ μœ„μ˜ μ˜ˆλΌ λ§€μš° λ³΅μž‘ν•œ μ‹œμŠ€ν…œμ˜ 일뢀뢄이라 κ°€μ •ν•˜κ³  생각해보길 λ°”λž€λ‹€. μž„μ‹œλ³€μˆ˜λΌ μ‚¬μš©ν•˜λŠ” μ½”λ“œλŠ” ν•΄λ‹Ή λΈ”λŸ­μ—μ„œλ§Œ μ ‘κ·Ό κ°€λŠ₯ν•˜κΈ° λ•Œλ¬Έμ—, κΈΈμ–΄μ§€λŠ” μ„±ν–₯이 μžˆλ‹€. μ΄λŸ¬ν•œ μž„μ‹œλ³€μˆ˜λΌ μ§ˆμ˜ λ©”μ†Œλ“œ(query method)둜 λ°”κΏˆμœΌλ‘œμ¨ μ–΄λŠκ³³μ—μ„œλΌλ„, μž„μ‹œλ³€μˆ˜μ—μ„œ μ‚¬μš©λ  μ •λ³΄λΌ μ–»μ„ 수 있고, 클래슀 μ½”λ“œλŠ” 더 깔끔해진닀.

κ·ΈλŸ¬λ‚˜,

ν”„λ‘œκ·Έλž˜λ° κ²½λ ₯이 μžˆλŠ” μ‚¬λžŒμΌμˆ˜λ‘, μ΄λŸ¬ν•œ μ‚¬μ‹€μ—λŠ” λ™μ˜λΌ ν•˜μ§€λ§Œ νΌν¬λ¨ΌμŠ€λΌ μš°λ €ν•΄μ„œ κΊΌλ¦¬λŠ” κ²½ν–₯이 μžˆλ‹€. 'λ™μΌν•œ 연산을 μ™œ μ΄λ ‡κ²Œ μˆ˜ν–‰ν•˜λŠ”κ±°μ§€?' , 'μ΄λŸ¬ν•œ λΈ”λŸ­μ€ 지역적이기 λ•Œλ¬Έμ— μž„μ‹œ λ³€μˆ˜ μ‚¬μš©μ€ λ¬Έμ œκ°€ λ˜μ§€ μ•Šμ•„!' .

ν•˜μ§€λ§Œ,

κ·ΈλŸ¬ν•œ μš°λ €λŠ” ' 단지 κ·ΈλŸ΄μ§€λ„ λͺ¨λ₯Έλ‹€. ' λΌλŠ” 가정일 뿐이닀. λˆ„κ΅¬λ„ μ‹€μ œλ‘œ ν”„λ‘œνŒŒμΌλ§(profiling)해보기 μ „κΉŒμ§€λŠ” μ•Œ 수 μ—†λ‹€. μ‹€μ œλ‘œ λ¬Έμ œκ°€ λ˜λŠ”μ§€ μ•„λ‹Œμ§€λŠ”.

μ–΄λŠμ •λ„ 수μ€μ— 였λ₯Έ ν”„λ‘œκ·Έλž˜λ¨ΈμΌμˆ˜λ‘, 반볡적으둜 μ‚¬μš©λ˜λŠ” 값에 λŒ€ν•΄ μž„μ‹œλ³€μˆ˜λΌ μ‚¬μš©ν•˜κ³  μ΄λŸ¬ν•œ μ΅œμ ν™”(?)λΌ λ‚˜λ¦„λŒ€λ‘œ μˆ˜ν–‰ν•˜λ € ν•œλ‹€. κ·ΈλŸ¬λ‚˜, μ΄λŸ¬ν•œ λΈμ‹œμ μΈ μ΅œμ ν™”λŠ” 결과적으둜 κ±°μ‹œμ  μ΅œμ ν™”μ˜ κΈ°νšŒλΌ λ°•νƒˆν•˜κ²Œ ν•œλ‹€. 심지어 μ΅œμ•…μ˜ κ²½μš°λΌλ„ μž„μ‹œλ³€μˆ˜λΌ λ‹€μ‹œ λ„£λŠ” 일은 쉽닀(λ¬Όλ‘ , ν”„λ‘œνŒŒμΌλ§ ' κ²°κ³Ό ', ' μ‹€μ œλ‘œ ' νΌν¬λ¨ΌμŠ€μ— μ‹¬κ°ν•œ λ¬Έμ œλΌ μ£ΌλŠ” 경우라면).


μ΄λŸ¬ν•œ 방법을 μ‚¬μš©ν•˜λ©΄μ„œ λΆ€κ°€μ μœΌλ‘œ 얻을 수 μžˆλŠ” μž₯점이 ν•˜λ‚˜ 더 μžˆλ‹€. μ‹€μ œλ‘œ 도움이 될지 μ•ˆλ μ§€ λͺ¨λ₯΄λŠ” μ΅œμ ν™”λΌ ν•˜λŠ”λ° μŸλŠ” μ‹œκ°„μ„ μ ˆμ•½ν•  수 μžˆλ‹€. μž„μ‹œλ³€μˆ˜ μ‚¬μš©λΏ μ•„λ‹ˆλΌ μ΄λŸ¬ν•œ λΈμ„Έν•œ λΆ€λΆ„μ˜ 쑰정은, 해놓고 보면 λ³„λ‘œ μœ„λŒ€ν•΄λ³΄μ΄μ§€ μ•ŠλŠ” 일을, ν• λ•ŒλŠ” μ•Œμ§€ λͺ»ν•˜κ³  κ²°κ΅­ μ‹œκ°„μ€ λ‚­λΉ„ν•œκ²Œ λœλ‹€. 돌이켜보면 λ‚˜μ˜ μ΄λŸ¬ν•œ λ…Έλ ₯이 μ œλŒ€λ‘œ νš¨κ³Όκ°€ μžˆμ—ˆλŠ”μ§€λ„ λͺ¨λ₯Έλ‹€. μ™œ? ν”„λ‘œνŒŒμΌλ§ 해보지 μ•Šμ•˜μœΌλ‹ˆκΉŒ. λ‹¨μˆœνžˆ μ‹œμŠ€ν…œμ„ 더 빨리 돌릴 수 μžˆμ„μ§€λ„ λͺ¨λ₯Έλ‹€λŠ” μš°λ €μ—μ„œ μž‘μ„±ν•œ κ²ƒμ΄μ—ˆμœΌλ‹ˆκΉŒ. DoTheSimplestThingThatCouldPossiblyWork

개인적으둜 λ¦¬νŽ™ν† λ§ μ„œμ μ„ 읽닀가 μƒλ‹Ήν•œ 좩격을 λ°›μ•˜λ‹€. μ˜³μ€ 방법이라고 μƒκ°ν•œ λ‚΄μš©μ΄ μ‹€μ œλŠ” μ˜³μ„μ§€λ„ λͺ¨λ₯Έλ‹€λΌλŠ” μ‚¬μ‹€μ΄μ—ˆκ³ , ν•˜λ‚˜μ˜ λ‚˜λ¬΄λΌ μž˜ ν‚€μš°λ©΄ μ „μ²΄μ μœΌλ‘œλ„ 득이 λœλ‹€λΌκ³  μƒκ°ν•œ λ‚΄μš©μ΄ μ‹€μ œλ‘œλŠ” 더 큰 κ°€λŠ₯성을 보지 λͺ»ν•˜κ²Œν•˜λŠ” 잘λͺ»λœ μŠ΅κ΄€μ΄μ—ˆλ‹€λŠ” 사싀이 λ‚˜λΌ μ˜¨ν†΅ 흔듀어 λ†“μ•˜λ‹€. λ‹€μ‹œ κ±ΈμŒλ§ˆλΌ μ‹œμž‘ν•˜κ²Œ 된 λŠλ‚Œμ΄λ‹€. μžμ‹ μ„ 항상 λ°”λ‹·κ°€μ—μ„œ μ‘°κ°œλΌ μ€λŠ” 어린아이에 λΉ„μœ ν•˜λ˜ Isaac Newton의 이야기가 λ– μ˜€λ₯Έλ‹€.

I do not know what I may appear to the world, but to myself I seem to
have been only a boy playing on the seashore, and diverting myself in
now and then finding a smoother pebble or a prettier shell than
ordinary. Whilst the great ocean of truth lay all undiscovered before me.
--Isaac Newton

--μ΄μ„ μš°


Refactoring
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:27:54
Processing time 0.0179 sec