프로그램 기법의 발전

박정훈·2022년 4월 18일
0

공부외

목록 보기
9/10

-컴퓨터 프로그램의 구성
-구조적 프로그램
-정보공학 프로그램
-객체지향 프로그램
-CBD, 함수형 프로그램

구조적 프로그램??
: 프로그램을 인간이 읽기 쉽게 만들고자 하는 노력에서 개발된 것.
(함수를 사용하고, goto문을 쓰지 않는다.)

구조적 프로그램의 제작을 위한 표준화된 절차
= 구조적 방법론(DFD/ DD/ 소단위명세서)
함수 : (개발자들이 구현하는 기본적인) 기능 단위
모듈 : (내가 개발할 프로그램의) 비즈니스 단위 (고객의 주문접수 모듈 고객정보확인, 주문정보 추가 등 여러개의 함수로 구성)
=> 모든 언어는 함수를 지원하고 있다. 당연히 모듈을 식별해야 프로그램을 개발할 수 있다.
DFD를 그려야할 줄 알아야하는 이유가 뭐에요??
-내가 개발할 프로그램의 함수와 모듈을 식별하기 위해서~

정보공학 프로그램??
=기업체에서 컴퓨터를 사용하면서 다양하고 큰 데이터를 다룰 필요성
RDBMS - 데이터가 테이블형태로 있다고 가상적인 환경을 만들어 주는 것
많은 데이터 -> 입력화면의 필요성 대두(GUI)
함수, 모듈 -> gui, dbms -> SQL Query
가상테이블의 중복을 피하고 부분부분 나누는 것 = 데이터베이스 디자인

  • 데이터베이스 개념과 데이터베이스 관리 시스템(DBMS)
    :Oracle, MySQL .....
  • 화면 GUI 구성(Win32api, Tkinter....)
  • 화면과 DBMS를 연결하는 SQL Query 기술(JDBC, JPA, Mybatis)
  • DBMS 디자인 기술
    -> 상용 프로그램은 정보공학 개념에 맞추어 제작한다.
    화면 그리기 + DB설계 + 화면과 DB의 연결

객체지향 프로그램
-프로그램을 단위 기능으로 쪼개기 : 구조적 프로그램
->함수/모듈, 함수와 프로시저의 개념, 배열/포인터
-데이터베이스관리 시스템(DBMS)와 화면 구성에 기반하는 프로그램 제작
: 정보공학 프로그램
-> 상용화된 프로그램의 구조 확정 : 구조체
-커지는 프로그램의 효과적 개발과 유지를 위한 프로그램 -> 객체지향 프로그램
- 연관된 데이터와 함수를 묶자 : 클래스
- 많은 클래스를 체계적으로 관리 : 상속
- 클래스를 다루는 방법 : 캡슐화, 다형성

객체지향 프로그램
=여러명이 오랜시간 동안 같이 프로그램을 제작하기 위한 방법
->클래스를 사용하는 프로그램???? 도구와 목적의 혼동

  • 각 개발자마다 다른 개발자와 무관하게 개발 수행
  • 기능의 변경이나 관리를 수행할 때, 다른 부분을 고려하지 않아도 돼야 한다.
    =======>>>>>객체지향 프로그램 원칙 : 5원칙
    객체지향 프로그램 요령 : 디자인 패턴(이해 방법이 중요)
    객체지향 프로그램 보완 : 리팩토링
    객체지향 프로그램 과정 : TDD

CBD프로그램?
개발자 중심의 방법론( 개발자 재사용 단위 )으로 느슨한 결합도(loosely-coupled), 큰입자(coarse-grained)의 특징을 갖는 컴포넌트를 사용하여 시스템을 개발하는 개념 ex)VB에서 Button을 사용, 은행에서 이자율 모듈

CD(component development) : 컴포넌트 개발
CBSD(component based software development) : 컴포넌트 기반 소프트웨어 개발

CD
<도메인 분석 -> 도메인 설계 -> 컴포넌트 추출 -> 컴포넌트 설계 ->
컴포넌트 구현>
->컴포넌트 인증 -> 컴포넌트 저장소 <형상관리 기능 제공> -> 컴포넌트 검색->
CBD
사용자 프로그램 <- 컴포넌트 조립 <- 컴포넌트 기발설계 <- 개발영역분석<- 요구사항 정의

함수형 프로그램
=객체지향이 가지는 단점인 중요함수의 반복을 해결하고자 개발된 방법
함수형 프로그래밍을 한 문장으로 말하면
Function - 함수를 이용해서
No side-effect - 사이드 이펙트 없도록
Dclarative Programming - 선언형 프로그래밍을 이용하는 것.
->명령형 프로그래밍은 어떤 과정을 통해서에 대해 서술하고 선언형 프로그래밍은 어떤 결과를 얻는가에 대해 서술한다.

함수의 단위 기능을 분리하여 선언하고, 이것을 조합하여 새롭고, 복잡한 함수를 선언하여 사용하는 방법
->객체지향이 기반이 되고, 많이 사용하는 함수에 적용한다.

0개의 댓글

관련 채용 정보