7. 개발자는 컨설턴트
개발적 언어와 인간의 언어를 자유롭게 변환
아래의 언어를 인간의 언어로 바꾸시오 (5점)
특정 API가 유저 DB에 lock을 걸고 약0.5초간 대기 후 연산처리하는데, 갑자
기 client request가 몰리면서 서버의 connection pool이 overflow 되었습니
다. 이 후 모든 client 들의 request들이 request time out을 발생시켰고 홈페
이지에서는 에러페이지만 보이게 되었습니다.
6
8. 개발자는 컨설턴트
인간의 언어로 바꾸시오 (5점)
현실에서의 답 (점수: 2점):
그러니까... 서버에 유저가 너무 많이 몰렸고... 그래서 서버가 다운 되어서
에러페이지가 나왔습니다...
7
29. 수업 구성
수업 내용 및 순서
• “일단 그냥 쓰고 보세요” 최소화
• 참조 문헌:
Practical Programming: An
Introduction to Computer Science
Using Python 3 by Paul Gries
• 목차
• Variable
• Function
• Control Flow Statement
• Module and Method
• List
• Loop
• File Processing
• Collections
• Algorithms
• Sorting
• OOP
• Testing
28
32. 수업의 목표
일개 개발자의 소소한 바람… (혹시 그들이 추후 개발자가 될까봐…)
프로그래밍 != 코딩
31
33. 수업의 목표
프로그래밍 != 코딩
• 코딩은 프로그래밍의 극히 일
부분이며 가장 쉬운 부분
• 코딩전에 해야 하는 일이 훨씬
더 힘들고 중요함
32
Programming
Coding
34. 수업의 목표
일개 개발자의 소소한 바람… (혹시 그들이 추후 개발자가 될까봐…)
주석 (특히 docstring)
33
35. 수업의 목표
주석 (특히 docstring)
• 세상에 주석 없는 프로그램을
근절시키기 위한 작은 한걸음
34
그림 출처
36. 수업의 목표
주석 (특히 docstring)
Examples
• 함수의 이름, 파라메터(parameter)의 개수, 그리고 리턴할 값을 함수를 정
의하기 전에 미리 지정하는 단계
• 나중에 함수가 제대로 정의되었는지를 확인하기 위해 극단적인 예제를
생각하는 것이 좋음 (예: ‘abs(0)’)
Type Contract
• 파라메터와 리턴값의 type을 지정하는 단계
Header
• 파라메터의 이름들을 (유의미하게) 선택하는 단계
35
37. 수업의 목표
주석 (특히 docstring)
Description
• 이 함수가 어떤 일을 하는지 (일반적인 언어로) 간략하게 작성하는 단계
Body
• 실제로 함수가 동작할 수 있게 실제 코드를 작성하는 단계
Test
• Example 단계에서 지정한 예제들을 실행해서 함수가 제대로 작성 되었는
지 테스트하는 단계
36
38. 수업의 목표
주석 (특히 docstring)
def is_odd(value):
"""(int) -> int
value가 짝수일 경우 0을 아닐 경우 1을 리턴한다.
>>>is_odd(7)
1
>>>is_odd(14)
0
"""
return value % 2
37
69. 수업 보고서
Google Doodle (블록 코딩)
• https://www.google.com/doodles/celebrating-50-years-of-kids-
coding
• line by line으로 진행되는 컴퓨터의 진행방식 및 loop를 게임을 통
해 쉽게 이해
68