[CS] 소프트웨어 공학 (컴퓨터 과학 수업 16/40)

Ham S. J·2022년 12월 3일
0

CS

목록 보기
11/25

우리가 사용하는 프로그램들은 굉장히 거대한 코드로 이루어져 있다.
Microsoft사의 Office는 4천만 줄의 코드로 이루어져 있다고 하니, 굉장히 방대하다.

이러한 거대한 프로그램을 만들기 위해서 개발자들은 일련의 도구를 사용하고 실습한다.

수많은 코드속에는, 수많은 함수가 있는데 이를 적절하게 관리하기 위해
함수를 계층구조로 패키지화하여 관련된 코드를 객체로 모은다.
함수를 카테고리화하여 상위개념 아래에 하위 개념이 속하게 하는 의미인 것 같다.

이러하게 기능 단위를 중첩된 객체로 묶는 것을
객체 지향 프로그래밍(Object Oriented Programming)이라 한다.

고차원 구성요소에 하위수준의 세부정보를 캡슐화하여 복잡성을 숨기는 모습이 OOP의 본질이다.
관련 언어로는 C++, C#, Objective-C, JAVA, Python 등이 있다.

팀이 협력하여 프로그램을 개발하기 위해서는, 각 코드의 기능이나 함수의 기능이 무엇인지 또
잘 정의된 API(Application Programming Interface)에 대한 정보가 담긴 Documentation(문서)가 필요하다.

여기서 API란, 추후에 더 자세한 내용을 담아 서술하겠지만
CrashCourse에서는 다음과 같이 이야기하고 있다.

API란,
"개발자가 코드에 다양한 부분에서 공동으로 작업하는 방식으로, 이를 통해 적절한 함수와 적절한 접근 권한을 알 수 있다"

매우 추상적이게 들려서 확실히 추후 서술이 더 필요하다고 생각하지만 일종의 Interface인 것이다.


Documentation은 어떤 프로그램을 설치했을 때 들어있는
"ReadMe.txt"와 같이 늘 함께 포함되어야 한다.

이는 코드 재활용(재사용, code reuse)를 가능하게하고 해당 프로그램을
처음 접하는 사람이나, 기능에 대한 정보가 필요한 사람에게 아주 유용하게 사용
된다.


컴파일 전의 작성된 코드들은 그저 텍스트 파일일 뿐이다. 프로그램을 만들기 위해
코드를 메모장이나 워드 프로세서에 작성할 수도 있지만, 여러 유용한 기능을 모아놓은

IDE(Integrated Development Enviroment, 통합 개발환경)을 사용한다.

이 통합개발환경은 텍스트 편집기를 제공하고, 가독성 향상을 위한 컬러코딩,
문법 오류 감시 또 코드를 컴파일하고 실행하며 디버깅 프로세스를 제공하는 아주 유용한 도구이다.
프로그램을 개발할때 대부분의 시간을 디버깅에 할애하니, 아주 유용하다고 할 수 있다.

IDE 외에도, 대형 코딩 프로젝트에서 공동작업하는 것을 돕는 소프트웨어가 있는데
이를 Source Control(Version Control, Revision Control)이라고 부른다.
중앙에 저장장치를 통해 동일한 코드를 함께 보며 작업하고 수정하며, 치명적인 오류가 있을 땐
Roll back도 가능하다. 마치 우리에게는 익숙한 GIT 같다고 생각했다.

이 외에도 프로그램을 지속적으로 관리하기 위해서는 QA(Quality Assurance)가 필요하다고 한다.

profile
즐겁게 귀엽게 코딩합시다 !

0개의 댓글

관련 채용 정보