티스토리 뷰

1. 프로그래밍의 정의

 1.1. 프로그래밍의 학문적 정의

 - 특정 결과를 달성하기 위해 실행 가능한 컴퓨터 프로그램을 설계 및 구축하는 프로세스

 - 분석, 알고리즘 생성, 알고리즘의 정확도 및 리소스 소비 프로파일링, 알고리즘 구현

1.2. 프로그래밍의 간단한 정의

 - 말 그대로 프로그램을 만드는 행위 자체를 의미

 - 컴퓨터에게 실행을 요구하는 일종의 커뮤니케이션

 - 0과 1 밖에 알지 못하는 기계가 실행할 수 있을 정도로 정확하고 상세하게 요구사항을 설명하는 작업

2. 프로그래밍의 접근 방법

2.1. 컴퓨팅 사고력 (Computational Thinking, CT)

 - 복잡한 문제를 단순화하여 이를 논리적이고 효율적으로 해결하는 능력

 - 두발로 걷는 로봇의 "걷다" 기능

2.2. 프로그래밍을 배워야 하는 이유

 - 논리적인 사고방식과 문제 해결력 상승

 - 협동력과 커뮤니케이션 능력 상승

 - 프로그래밍 스킬은 더 이상 개발자들만의 기술이 아닌 다양한 분야에서 요구됨

3. 프로그래밍(프로그래머) vs 코딩(코더)

3.1. 코딩(Coding)

- 알고리즘을 선정한 프로그래밍 언어의 명령으로 변환하여 작성하는 것

- 프로그래밍의 초기 단계를 구현하는 데 사용되기 때문에 프로그래밍의 하위 집합

3.2. 사전적 의미에서의 차이

 - 프로그래밍: 컴퓨터 프로그램을 작성하는 일, 프로그램 작성 방법의 결정, 코딩, 에러수정 따위의 작업

 - 코딩: 정보를 계산 조작에 편리한 부호로 바꾸기

4. 프로그래밍의 순서 및 고려사항

4.1. 프로그래밍 순서

(1) 설계 과정

- 문제 인식 + 프로그램 설계

- 프로그램의 설계도를 만드는 작업

(2) 구현 과정

- 프로그램 구현 + 테스트와 디버깅

- 설계도에 따라 직접 코딩(Coding)을 수행

- 작성한 프로그램의 오류를 찾아 수정

(3) 보완 과정

- 프로그램 유지보수

- 추가해야 되거나 수정해야 할 사항들을 보완

4.2. 프로그래밍 시 고려사항

(1) SW 품질 요구 사항 - ISO/IEC 25010

- 기능 적합성(Functional Suitability) : 요구되는 기능을 만족시키는 능력

- 성능 효율성(Performance efficiency) : 적절한 자원의 사용 및 적정한 반응시간 정도

- 호환성(compatibility) : 다른 시스템과의 상호 연동 능력

- 사용성(Usability) : 사용자가 이해하고 배우기 쉬운 정도

- 신뢰성(Reliability) : 규정된 환경에서 결함 없이 의도된 기능 및 작업을 수행하는 능력

- 유지보수성(Maintainability) : 소프트웨어의 수정 및 변경의 용이성

- 보안성(Security) : 정보 및 데이터를 보호하는 능력

- 이식성(Portability) : 지원하는 다양한 환경에서 운영될 수 있는 능력

(2) 소스 코드의 가독성

- 프로그램 개발자가 목적, 제어 흐름 및 소스 코드 작동을 쉽게 이해할 수 있도록 구성

- 이식성, 사용성 및 유지보수성을 포함하여 위의 품질 측면에 영향

- 가독성 관련 요소 (들여쓰기 도는 공백 스타일, 코멘트(주석), 객체 이름 명명(ex: 변수))

(3) 알고리즘의 복잡성

- 실행 시간, 메모리 소비 등의 리소스 사용에 영향을 미치며, 복잡성이 낮을수록 효율적인 알고리즘

- 점근 표기법을 이용하여 알고리즘의 복잡성을 수치화

- 점근 표기법

    최상의 경우: 오메가 표기법(Big Ω Notation)

    평균의 경우: 세타 표기법(Big θ Notation)

    최악의 경우: 빅오 표기법(Big O Notation)

(4) 프로그래밍 방법론

- 소프트웨어 개발 생명주기 (SDLC : Software Development Life Cycle)

    각 단계에서 작업 방법과 문서 작성 형식 등을 규정

    요구 명세화 - 분석 - 설계 - 개발 - 시험 - 유지보수

- 개발 방법론 종류 : 구조적 방법론, 객체지향 방법론, CBD 방법론

(5) 사용 언어 선택

- 프로그래밍 시 사용할 언어 선택

   특정 응용프로그램을 개발하는 경우 : COBOL, Fortran, C등

   여러 응용프로그램 작성 및 호환성에 따라 선택 : C++, JAVA, Python 등

'정보보호 > 프로그래밍 개론' 카테고리의 다른 글

6/29(화) 과제  (0) 2021.06.30
프로그래밍 언어  (0) 2021.06.28
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함