Your SlideShare is downloading. ×

Python - Module

1,247

Published on

2 Comments
8 Likes
Statistics
Notes
No Downloads
Views
Total Views
1,247
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
24
Comments
2
Likes
8
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • http://coverclock.blogspot.kr/2006/05/total-cost-of-code-ownership.html
  • http://blog.daum.net/byulih_vincent/4935777
  • http://blog.naver.com/bunyman?Redirect=Log&logNo=60053926892아우스터리츠전투
  • ㅇㅇ
  • ㅇㅇ
  • ㅇㅇ
  • ㅇㅇ
  • ㅇㅇ
  • ㅇㅇ
  • Transcript

    • 1. Python - Module
    • 2. 이번 시간에 다룰 것들.• 변화..• 모듈은 왜 필요할까?• 야구 게임 – 핵심 기능을 다른 회사가 사겠데! – 파일의 한계 – 해커가 고장낸 시스템을 고쳐라• Sublime Text2 셋팅하기
    • 3. 시간이 흐르면..슈퍼 마리오도..
    • 4. 배트맨도 변한다.
    • 5. 사장님 아니..고객의 마음도..
    • 6. 하드웨어도..
    • 7. 소프트웨어 생명주기별 비용 Requirements Specificiation 2% 5% Design 6% Coding 5% Unit Testing 7% Maintenance 67% Intergration 8% 출처 - http://bit.ly/VRFE7Q
    • 8. 2. 왜 모듈화가 중요한가? 일리노이 공대 S.R. Crown Hall http://bit.ly/VQyYMt
    • 9. 분할후 정복
    • 10. 복잡한 문제는
    • 11. 분할후 정복 (Separation of Concerns)
    • 12. 부분적인 요구사항이 바뀌었어요.
    • 13. 사고가 났어요..
    • 14. 3. 모듈화사장님 말씀하시길..“여러분이 만든 야구게임은 너무 멋있어! 인기가 좋아!! 그래서 유명 게임사에게 핵심 기능을 팔기로 했네.”
    • 15. 이번 수업을 마치면..• 라이브러리를 만들수 있다. – 코드를 다른 파일로 분할 (모듈화) 한다.• 모듈간에 충돌을 피해라. – 완전 수식 명칭 (Fully Qualified Name – FQN) 사용.
    • 16. 이번 수업의 시나리오.• 함수가 너무 많아. 함수를 다른 파일에 저장해 보자 – 다른 파일에 있는 함수를 어떻게 불러오지?• 새로운 요구사항 – 다른 파일에 있는 함수에 데이터를 넘겨주기 – 쌍둥이 함수의 다툼
    • 17. 3-1. 라이브러리 구축하기
    • 18. 먼저 훈남! 박재성 교수님의 야구 소스 받기• http://bit.ly/YiaSVc 에서 python 소스를 받으세요
    • 19. 함수부 소스 코드의 구성구현부
    • 20. 사장님 말씀하시길..음 다행히 잘 함수로 나누어 져 있군!!아주 빨리 모듈화 시킬수 있겠는데.
    • 21. 새로운 파일 “python_module.py” 만들기 이 내용을 복사(Cmd+C)해서 Python_module.py에 붙여넣기 (Cmd+V)
    • 22. 그럼 원본 파일은?
    • 23. 안돌아 갑니다..
    • 24. 난 다른 파일에 있는 함수를 쓰고 싶어from [참조하고자 하는 파일이름] import *from python_module import *• * 의 의미는?  모든걸 다 참조 하겠다.• 즉 python_module파일에 있는 모든 것을 가져오겠다!
    • 25. 다른 파일(라이브러리)를 참조하겠어요!
    • 26. 라이브러리 (Library)??도서관?어중이 떠중이 함수가 아니라,아주 많이~~~ 재활용 되는 함수(?)들의 모임
    • 27. 이야!!나도 라이브러리를 만들수 있게되었어!!
    • 28. 3-2. 한계(파일)를 뛰어넘는 값 전달
    • 29. 고객사가 화가났어! 고객사에서. 자네가 준 라이브러리 중에 가장 중요한 기능이 빠졌다고 난리네. 실제 점수와 사용자가 입력하는 점수를 평가하는 기능이 없다고 하는군..
    • 30. 이게 빠졌군!! 넣어보자..
    • 31. evaluate 함수를 넣어는데…
    • 32. 원인은..randomValues 정의. randomValues 사용하는 곳. 사용 변 수 라이브러리 Baseball.py python_moudle.py
    • 33. 에러의 원인#Baseball.pyevaluate(index, inputValues[index])#Python_module.pydef evaluate(index, inputValue): for m in range(3): randomValue = randomValues[m] if isSameValue(randomValue, inputValue): if isSameIndex(m, index): return 2 else: return 1
    • 34. 해결책#Baseball.pyevaluate(index, inputValues[index],randomValues)#Python_module.pydef evaluate(index, inputValue, tempvalues): for m in range(3): randomValue = tempvalues[m] if isSameValue(randomValue, inputValue): if isSameIndex(m, index): return 2 else: return 1
    • 35. 해결책
    • 36. 사장님 말씀하시길..고객사가 멋진 야구게임 라이브러리를 주어서매우 만족한다고 하네..역시 넌 자넨 최고의 프로그래머야!
    • 37. 3-3. 해커의 칩입!
    • 38. 프로그램을 실행시키니..3개의 숫자를 입력하세요?(예 2,3,4)2,3,4바이러스다..바이러스다..바이러스다..[2, 3, 4]0 strike, 0 ball
    • 39. 소스코드 비교분석 바이러스 공격당한 Baseball.py Baseball.py
    • 40. 두개의 Evaluate가 생겼다. Baseball.py python_moudle.py
    • 41. 두개의 마이클..
    • 42. 두개의 evaluate 함수 야구장에서 뱀골에서철수를 부르면. 철수를 부르면. evaluate evaluate Baseball.py python_moudle.py
    • 43. 당연히.먼 주먹(다른 파일에 있는 함수)보다..가까운 주먹(같은 파일에있는 함수)을조심(먼저 호출하겠죠)해야죠..
    • 44. 명시적으로 이름을 다 적는다.FQN (Fully Qualified Name) 을 사용해라.import 라이브러리라이브러리.함수 (어쩌고 저쩌고)
    • 45. 해결책 (명시적으로 전체이름 쓰기)
    • 46. 사장님 말씀하시길..“해커가 고장낸 야구게임도 이렇게 빠르게고치다니! 차주부터 1주일 휴가를 다녀오게! 고맙네!”
    • 47. 정리• 모듈의 필요성 – 시간이 흐르면 다 바뀐다. 확장성등..• 다른 사람도 쓸수 있게 잘 만들어라 (라이브러리)• 파일의 경계를 넘어서라 (from.. Import *)• 인자(파라메터를 통한 전달)• 전체이름으로 부르면 중복된 함수도 걱정 끝!• 1주일동안 푹 쉬고 오세요!
    • 48. 부록 A. Sublime Text2 셋팅하기 이제 나도 좀 간지나게(??) 개발해 보고 싶어요!!
    • 49. A-1. Package Control 설치• http://bit.ly/wgKqFq 로 접속한다 Cmd+C 눌려서 복사
    • 50. Console 창 뛰우기• Ctrl + ` (1 왼쪽에 있어여) 를 누른다 Cmd+V 눌려서 붙이기 그리고 Enter
    • 51. 재실행 시키기
    • 52. A-2. 사이드바 설치하기 Cmd+Shift+P 라고 치면아래와 같은 드랍박스가 나옵니다.
    • 53. 사이드바 설치하기Inst 라고치면 Install Package가 나와요 선택하거나 Enter!
    • 54. 사이드바 설치하기SidebarEnhancements 라고 치고 Enter
    • 55. A-3. 사이드바 사용하기 메뉴 – File – Open 가서소스코드가 있는 디렉토리 선택
    • 56. 사이드바 사용하기사이드바에 나온 폴더를 하나 찍고 Ctrl + 마우스 클릭 하면..
    • 57. A-4. 파이썬 개발환경 셋팅 Cmd+Shift+P 를 친후 PackageControl : Add Repository 라고 치기
    • 58. 파이썬 개발환경 셋팅 Cmd+Shift+P 를 친후 PackageControl : Add Repository 라고 치기
    • 59. 파이썬 개발환경 셋팅 다음 페이지 주소 치기
    • 60. 파이썬 개발환경 셋팅https://github.com/wuub/SublimeREPL
    • 61. 파이썬 개발환경 셋팅 Cmd+Shift+P 를 친후Inst 라고 Install Package 실행
    • 62. 파이썬 개발환경 셋팅 SublimeREPL 설치
    • 63. 파이썬 개발환경 셋팅메뉴에서 View – Layout – Columns2 선택
    • 64. 파이썬 개발환경 셋팅 메뉴에서Tools-SublimeREPL-Python-Python 선택
    • 65. 파이썬 개발환경 셋팅
    • 66. 파이썬 개발환경 셋팅 *REPL* [python] 창에서execfile(“여러분의실행파일”) 을 치세요 예 - execfile(“baseballgame.py”)
    • 67. 파이썬 개발환경 셋팅

    ×