== Common State == 컴퓨터 ì‹œëŒ€ì˜ ì—¬ëª…ì—는(초기ì—는) stateê°€ ì§±ì´ì—ˆë‹¤. 펀치 ì¹´ë“œë„ ìƒíƒœë¥¼ 위해 ì¡´ìž¬í–ˆê³ , ìœ ë‹› ë ˆì½”ë“œ ìž¥ë¹„ë„ ê·¸ëž¬ë‹¤. 그러다가 ì „ìžì ì¸ ì»´í“¨íŒ…ì´ ë‚˜ì˜¤ê¸° 시작하면서 state는 ë”ì´ìƒ 물리ì ì¸ ìƒíƒœë¡œ 존재하지 않게 ë˜ì—ˆë‹¤. 물리ì ì¸ í˜•íƒœëŠ” ì „ìžì ì¸ í˜•íƒœë¡œ 바뀌어서, 보다 ë” ì‰½ê³ ë¹ ë¥´ê²Œ 다룰수 있게 ë˜ì—ˆë‹¤. 초기 컴퓨터는 ìš©ëŸ‰ì´ ë„ˆë¬´ ì 어서, 프로그램 짧게 만들기 ì´ëŸ°ê±¸ ë§Žì´ í•´ì•¼ë§Œ 했다. 당연하지만 그걸 알아볼 수 있으리ë¼ëŠ” 기대는 하지 않았다. 그러다가 ìš©ëŸ‰ì´ ì»¤ì§€ë‹ˆê¹Œ ì´ì œëŠ” ë§Žê³ ë§Žì€ stateë“¤ì„ ì‚¬ìš©í•˜ëŠ” ë§Žê³ ë§Žì€ í•¨ìˆ˜ë“¤ì„ ë§Žì´ ì‚¬ìš©í•˜ê²Œ ë˜ì—ˆë‹¤. 하나 ê³ ì¹ ë¼ë©´ ì „ì²´ë¥¼ 뜯어 ê³ ì³ì•¼ 했다. stateë¡œì„œì˜ í”„ë¡œê·¸ëž¨ì€ ì•ˆì¢‹ë‹¤. 그러니 stateë„ ì•ˆì¢‹ë‹¤(??) ì´ëŸ° ìƒí™©ì—서 stateê°€ ì—†ê³ , 프로그램만 있는 함수형 언어가 나오게 ë˜ì—ˆë‹¤. ê°œë…ì ì¸ ìš°ì•„í•¨ê³¼ 수학ì ì¸ ìš°ì•„í•¨ì„ ê°–ì¶”ê³ ìžˆìŒì—ë„ ë¶ˆêµ¬í•˜ê³ , ìƒì—…ì ì¸ ì†Œí”„íŠ¸ì›¨ì–´ë¥¼ 만드는ë°ì—는 ì „í˜€ ì“°ì´ì§€ 않았다. ì´ìœ 는 ì‚¬ëžŒë“¤ì€ state를 기반으로 ìƒê°í•˜ê³ 모ë¸ë§í•˜ê¸° 때문ì´ì—ˆë‹¤. state는 ì‹¤ì„¸ê³„ì— ëŒ€í•´ ìƒê°í•˜ëŠ” ì¢‹ì€ ë°©ë²•ì´ë‹¤. ê°ì²´ëŠ” ë‘ ê°€ì§€ì˜ ì¤‘ê°„ì´ë‹¤.(?ì´ë ‡ê²Œ í•´ì„해야하나..--;) state는 잘 다뤄질때만 좋다. ìž‘ì€ ì¡°ê°ìœ¼ë¡œ 나누면 다루기 쉬워진다. ì´ë ‡ê²Œ 하면 변화를 ì–´ëŠ í•œ 곳만 êµí•œì‹œí‚¬ 수 있게 ëœë‹¤. ---- ì¸ìŠ¤í„´ìŠ¤ 변수를 í´ëž˜ìФ ì•ˆì— ì„ ì–¸í•˜ìž. ---- [SBPPSummary]