IT&Computer

프로그래밍 기초다지기, 컴퓨터 사이언스와 소프트웨어 공학을 알아보자

Seeker시커 2023. 8. 11. 22:09
반응형

코드잇 강의를 듣다보니 코딩은 안배우고 이것저것 주변지식을 많이 배우고 있다. 본격적인 개발자가 되어야지!라기 보다는 배경지식을 쌓는다는 생각으로 커리큘럼을 선택해서 그런것 같다.

프로그래밍을 잘 하는 개발자들은 기본적인 개념이 튼튼하기 때문에 새로운 기술, 언어, 환경에도 빠르게 적응할 수 있다.새로운 언어를 배우는데에도 마찬가지이다. 이런 기본을 다지기 위해서도 배경 지식을 잘 쌓아둘 필요가 있다.

 

프로그래밍 기초다지기, 컴퓨터 사이언스와 소프트웨어 공학을 알아보자 

 

Tranmautritam님의 사진: https://www.pexels.com/ko-kr/photo/imac-magic-keyboard-326508/

1. 컴퓨터 사이언스

컴퓨터 사이언스란 포괄적인 개념으로 인터넷 강의나 블로그 등으로 배우기에는 한계가 있다. 쉽게 배울 수 있는 학문도 아니기 때문에 대충 어떤 것이 있는지만 알아보고, 프로그래밍을 공부하는 과정에서 자연스럽게 배워나가야 한다. 대략 아래와 같은 분야가 있다.

   - 객체지향 프로그래밍

   - 알고리즘

   - 자료구조

   - 컴퓨터 구조, 운영체제, 컴파일러, 웹개발, 데이터베이스, 네트워크

 

2. 소프트웨어 공학

개발자는 코딩 외에도 많은 일을 해야한다.

회사에서 개발자로서 역할을 하기 위해서는 기획자, 디자이너, 마케터 등과 협업을 통해서 고객이 원하는 프로그램을 만들고 판매해야 한다. 기획 - 개발 - 테스트 - 출시 -사후관리까지 이어지는 전반적인 문제를 다루는 것이 소프트웨어 공학이다. 달리 말하면 소프트웨어로 제품 또는 서비스를 만드는 방법에 대한 학문이라고 할 수 있다.

   - 기획 : 어떤 것을 만들지 정한다. 기획자의 요구를 개발자에게 정확하게 전달해야 한다.

   - 개발 : 기획한 것을 만든다. 기획한 내용을 코딩으로 정확히 구현한다.큰 규모의 프로그램을 개발하기 위해 개발 단계에서도 분업을 한다.

   - 테스트 : 개발이 기획한대로 완성되었는지 확인한다. 소프트웨어의 문제점을 출시전에 최대한 확인하고 개선한다.

   - 배포 : 개발된 제품을 사용자가 사용하는 단계이다. 각 사용자의 실행환경에 맞는 소프트웨어를 배포한다.

   - 유지보수 : 출시된 서비스를 개선하고 변화시킨다.

이 모든 단계를 거친 후에는 이 단계들을 어떻게 하면 더 매끄럽게 진행할지, 더 효율적으로 소프트웨어를 개발할지에 대해서 고민하는 학문이다.

2.1 프로세스 관리

소프트웨어를 개발하는 각 단계의 진행을 관리하는 기법으로 폭포수 방식과 애자일 방식이 있다.

   - 폭포수 방식 : 각 단계를 완료하고 다음 단계로 넘어 간다. 이해와 관리가 쉽지만 변경 사항이 발생할 경우 완성된 프로그램을 대폭 뜯어 고쳐야 하는 경우가 발생할 수 있다.

   - 애자일 Agile 방식 : 전체 프로그램을 한 번에 만들지 않고 적당한 기능으로 나누어서 개발/수정/테스트 한다. 폭포수 방식에 비해 관리가 어렵지만 변경 사항에 유연하게 대응할 수있다.

 

2.2 버전관리

프로그램 개발 과정에서 여러 사람이 분업/협업을 하다 보면 코드의 수정과 버전관리가 어렵다.

   - git : 버전관리를 위한 소프트웨어

   - git hub : git을 활용한 코드를 저장하는 온라인 저장 공간

git에서는 변경/수정 사항 정보를 저장해서 누가, 어떻게, 왜 변경했는지 기록된다.

git을 활용해서 조금씩 변경된 프로그램을 만들 수 있다.

예를들어 Office 패키지에 가격대별로 다른 옵션을 가진 프로그램을 만들거나, 운영 체제별로 조금씩 다른 프로그램을 만들고 관리할 수 있다.

 

 

프로그래밍 기초다지기, 컴퓨터 사이언스와 소프트웨어 공학을 알아보자

반응형