728x90
파이썬 자료형
파이썬에서는 다양한 자료형이 있습니다. 자료형은 데이터를 저장하는 형식을 정의합니다.
- 정수 (Integer): 예를 들어 1, -42, 100.
- 실수 (Float): 예를 들어 3.14, -0.001, 2.0.
- 논리형 (Boolean): 두 가지 값 True 또는 False.
- 문자열 (String): 문자들로 이루어진 데이터. 예: "Hello, World!".
- 리스트 (List): 여러 값을 순서대로 저장. 예: [1, 2, 3], ['a', 'b', 'c'].
- 튜플 (Tuple): 리스트와 비슷하지만 변경할 수 없는 자료형. 예: (1, 2, 3), ('a', 'b', 'c').
- 딕셔너리 (Dictionary): 키와 값의 쌍으로 데이터를 저장. 예: {'name': 'Alice', 'age': 25}.
- 세트 (Set): 중복을 허용하지 않는 데이터 집합. 예: {1, 2, 3}, {'a', 'b'}.
자료구조
자료구조는 데이터를 저장하고 관리하는 방법을 정의합니다.
선형 구조
- 배열 (Array): 연속된 메모리 공간에 데이터를 저장합니다.\\
- 리스트 (List): 데이터가 순서대로 연결된 구조입니다. 파이썬의 list는 동적 배열입니다.
- 스택 (Stack): 후입선출(LIFO) 방식으로 데이터를 처리합니다. 예: 웹 브라우저의 히스토리.
- 큐 (Queue): 선입선출(FIFO) 방식으로 데이터를 처리합니다. 예: 프린터 작업 대기열.
비선형 구조
- 그래프 (Graph): 노드와 엣지로 데이터를 표현합니다. 예: 소셜 네트워크, 도로 지도.
- 트리 (Tree): 계층적 구조를 가지며 사이클이 없습니다. 예: 파일 시스템, 조직도.
- 이진 트리 (Binary Tree): 각 노드가 최대 2개의 자식 노드를 가지는 트리입니다.
- 포화 이진 트리 (Full Binary Tree): 모든 노드가 2개의 자식 노드를 가진 트리입니다.
- 완전 이진 트리 (Complete Binary Tree): 마지막 레벨을 제외하고 모든 레벨이 채워진 트리입니다.
- 편향 이진 트리 (Skewed Binary Tree): 한쪽으로만 자식이 있는 트리입니다.
프로그래밍 기본
- 컴파일러: 소스코드를 기계어로 번역하여 실행합니다. 예: C, C++.
- 인터프리터: 소스코드를 한 줄씩 번역하고 실행합니다. 예: Python, JavaScript.
파이썬의 실행 과정
- 소스코드 작성: .py 파일.
- 바이트코드로 변환: .pyc 파일.
- 바이트코드를 실행: Python Virtual Machine(PVM)이 바이트코드를 해석하여 기계어로 실행합니다.
메모리 영역
- 코드 영역: 실행할 명령어들이 저장됩니다.
- 데이터 영역: 전역 변수와 static 변수들이 저장됩니다.
- 힙 (Heap): 동적 메모리 할당이 이루어지는 곳. 예: 객체 생성.
- 스택 (Stack): 함수 호출과 지역 변수가 저장됩니다. 재귀 함수 호출 시 사용됩니다.
객체지향 프로그래밍 (OOP)
- 객체 (Object): 현실 세계의 대상을 추상화하여 표현한 것. 예: 학생, 자동차.
- 클래스 (Class): 객체를 생성하기 위한 설계도. 예: class Dog: def bark(self): ....
- 상속 (Inheritance): 부모 클래스의 기능을 자식 클래스가 물려받습니다. 예: class Labrador(Dog): ....
- 오버라이딩 (Overriding): 부모 클래스의 메서드를 자식 클래스에서 재정의합니다.
- 오버로딩 (Overloading): 같은 이름의 메서드나 연산자를 다양한 방식으로 정의하는 것. 파이썬은 함수 오버로딩을 지원하지 않지만 기본적으로 하나의 함수 정의로 구현할 수 있습니다.
소프트웨어 개발 방법론
- 폭포수 방법론 (Waterfall Model): 단계별로 진행하는 전통적인 방법론. 순차적 진행이 특징입니다.
- 애자일 방법론 (Agile Model): 반복적이고 점진적으로 개발합니다. 유연성과 피드백 반영이 중요합니다.
디자인 패턴
- 디자인 패턴: 소프트웨어 설계 시 공통적인 문제를 해결하기 위한 구조적 접근법입니다.
- MTV 패턴: Django 프레임워크에서 사용됩니다.
- M (Model): 데이터베이스와 상호작용합니다.
- T (Template): 사용자에게 보여지는 UI를 정의합니다.
- V (View): 요청에 따라 로직을 처리합니다.
- MVC 패턴: MTV와 유사하며, M (Model), V (View), C (Controller)로 구성됩니다.
형상관리
- 형상관리: 소프트웨어의 변경 사항을 추적하고 통제하는 작업입니다.
- Git: 분산 버전 관리 시스템입니다. GitHub와 GitLab이 대표적입니다.
- Gerrit: 코드 리뷰를 지원하는 툴입니다.
- SourceTree: Git의 UI를 제공하여 작업을 편리하게 합니다.
- Jira: 협업과 작업 관리 도구입니다.
V&V (Verification & Validation)
- Verification (검증): 소프트웨어가 요구사항에 맞게 구현되었는지 확인하는 작업입니다.
- Validation (확인): 소프트웨어가 사용자 요구를 만족하는지 확인하는 작업입니다.
테스트 종류
- 단위 테스트 (Unit Test): 가장 작은 단위의 기능을 테스트합니다.
- 통합 테스트 (Integration Test): 여러 기능이 함께 잘 동작하는지 테스트합니다.
- 시스템 테스트 (System Test): 전체 시스템에서 테스트를 수행합니다.
- 인수 테스트 (Acceptance Test): 최종 사용자가 요구사항에 맞는지 확인합니다.
- 정적 테스트 (Static Test): 코드 분석 등을 통해 소프트웨어를 테스트합니다.
- 동적 테스트 (Dynamic Test): 소프트웨어를 실행하여 테스트합니다.
728x90
'CoWithMe' 카테고리의 다른 글
컴퓨터 하드웨어 기본 (110) | 2024.07.31 |
---|---|
'사회적 자본과 기술'의 중요성 (116) | 2024.07.30 |
당신이 제자리걸음인 이유 교육의 미신과 학습의 실제 효과 (107) | 2024.07.26 |
파이썬 GUI tkinter vs QT 나의 선택은? (118) | 2024.07.25 |
실수의 재발견 관리와 학습을 통한 성장 전략 (93) | 2024.07.24 |