본문 바로가기
클라우드 아키텍처 설계 기초지식/05 파이썬 프로그래밍

파이썬 프로그래밍 (4) - 소켓,객체지향,생성자,디자인패턴,인스턴스,추상클래스,데이터베이스(db)

by Jasie 2019. 3. 14.

객체 지향 프로그램(java, python) vs 절차지향 프로그램(c언어, python)



절차 지향 프로그램 : 프로그램의 데이터를 처리하는 방법인 알고리즘을 중요시하며 프로그램이 순차적으로 실행되는 구조

-장점 : 컴퓨터의 처리 구조와 비슷해서 코드의 실행 속도가 빠르다

- 단점 : 유지보수가 어렵다, 순서대로 실행이 되야하기 때문에 나중에 순서를 바꾸면 결과값이 바뀔 수도 있다.

- 특징 : 프로그램을 분석하기 어렵다, 대형 프로젝트에는 부적합 객체 지향 프로그램 : 모든 것들 객체로 간주하고 객체들의 모임을 프로그램을 만드는 것






간트 차트 만드는 법



간트 차트란?      요구분석 명세서 결합도 낮게 개발 비용 산정 응집도 높게  


소작업 분해 -> WBS 표현 -> CPM 작성 -> 최악 소요 시간 계산 -> CPM 수정 -> 간트 차트 WBS (Work Breakdown structure, 업무 분업 구조)  

1) 전체를 큰 단위로 분할  

2) 각각의 부분에 대해 좀 더 작은 단위로 분해하여, 계층적으로 구성  

3) 워크 패키지 작업 (부분을 구성하는 일련의 작업 단위)  

4) 담당인원을 배치 구성도 완성



프로그래밍 용어


객체 : 유형 또는 무형의 모든 것, 데이터(속성, 변수) + 연산(메소드, 함수) -> 캡슐화로 정의

 클래스 : 공통된 행위와 특성을 갖는 객체의 집합, 메소드와 변수들을 정의하는 템플릿

속성 : 객체가 가지고 있는 특성, 현재 상태 메시지 : 메소드를 호출하는 과정, 함수 호출

메소드 : 속성의 값을 변경하는 연산, 제어와 절차적 구성요소

추상클래스 : 공통된 특성을 가진 클래스들을 하나의 클래스로 추출하여 생성된 클래스, 객체 생성 불가

인스턴스 : 객체는 클래스에 의해 인스턴스화 된다.

다형성 : 같은 메시지에 대해 고유한 방법으로 응답할 수 있는 능력 상속성 : 기존의 클래스들의 속성을 그대로 물려받고 필요한 부분을 추가하는 방법

캡슐화 : 객체 정의시 서로 관련된 데이터와 함수를 하나로 묶는 것 정보은닉 : 객체의 상세한 내용을 외부로부터 숨기고 객체와는 메시지만으로 상호작용하는 것

* SDLC 소프트웨어 개발 생명 주기 Software Development Life Cycle 폭포수 모델 : 계획 -> 분석 -> 설계 -> 구현 -> 시험 -> 유지보수



객체 지향 프로그래밍



예시) 클래스생성


예시) 객체 생성 객체는 클래스를 이용해서 생성



예시) 객체 생성 객체는 클래스를 이용해서




예시) 객체의 변수에 값 대입



예시) 객체의 메소드 호출




디자인 패턴


객체 지향 프로그램을 할 때 특정 문제들을 피하기 위해 사용되는 패턴 1.생성 패턴(싱글톤) 2.구조 패턴 3.행위 패턴





인스턴스 변수와 클래스 변수


인스턴스 변수 : 각각의 객체에 할당된 변수 클래스 변수 : 모든 객체가 공유하는 변수






추상클래스


추상 메소드를 포함하고 있는 클래스, 객체를 생성할수 없고, 추상클래스를 상속받은 클래스가 추상 메소드를 구현 하여야 객체 생성이 가능하다.


추상메소드란?


메소드의 이름만 지정하고 메소드 내의 내용은 잘성하지않은 메소드



추상클래스 사용방법?


abc 모듈을 사용해서 만들어야한다.


abc 모듈이란? (abstract base class)


from abc import *

class 추상클래스이름(metaclass=ABCMeta):

@abstractmethod

def 메소드이름(self):

pass





데이터베이스


파이썬에서 데이터베이스 실행전에 해야할일

1. ip주소를 알아야한다

2. 리눅스에 유저를 생성해줘야한다 -> root를 제외한 사용자있어야함

3. db,table을 만들어줘야한다

데이터베이스

파이썬 프로그램에서 데이터베이스로 접근 , 데이터를 조회,입력,수정,삭제 할 수 있다.








- for문을 이용해서 db에 값넣어주기





소켓통신


- 소켓(서버)





- 소켓(클라이언트)









공감() 과 댓글은 필자에게 큰 힘이 됩니다.

잠시 1초만 내주시면 안될까요? ~~


로그인 없이도 가능합니당 



댓글