반응형

 

 

프로그래밍의 여러 영역은 서로괘 밀접하게 연결되어있다

 

비슷한 접근방식괴 문제를 해결방법을 공유하고 있기 떄문에

 

하나만 잘해도 다른하나도 더쉅게 할수있는게 프로그래밍

 

 

뛰어난 서버개발자를데리고 애플케이션을 만들라고하면 조금만 시간을주면 금방적응해서 잘할수있다

 

 

 

 

내가 만약 개발자를 하고싶다면 무조건 사진안에 있는 기술들을 완벽히

다루는게 좋다

 

개발자 첫시작이라고 볼수있다

ㅍㄹ

 

 

 

A. 프로그래밍의 다양한 분야

01. 컴퓨터 사이언스의 기본기

- 프로그래밍의 여러 영역은 서로 꽤 밀접하게 연결되어 있음 => 비슷한 접근 방식과 문제 해결 방식을 공유하고 있기 때문

- 뛰어난 서버 개발자를 데려와서 애플리케이션 개발을 맡기더라도 조금만 적응하면 곧 잘 하게 되며, Java를 잘 다루는 사람은 C++도 금방 배운다.

- 따라서, 프로그래밍의 기본적인 개념이 튼튼하면 어떤 새로운 기술이나, 언어, 환경이 나오더라도 빠르게 적응할 수 있음

- 컴퓨터 사이언스의 가장 기본이 되는 과목으로는 객체 지향 프로그래밍, 알고리즘, 자료 구조 정도가 있음 => 컴퓨터 사이언스의 선택이 아닌 필수 과목

- 이 외에도 컴퓨터 구조, 운영 체제, 컴파일러, 웹 개발, 데이터베이스, 네트워크 등 다양한 과목이 존재함

02. 소프트웨어 공학

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

- 프로그램을 만든다고 가정 => 어떤 기능을 누구와 언제까지 만들지 정해야 함

- 개발자끼리만 협업하는 것이 아닌 기획자, 디자이너, 마케터 등등과 함께 일을 진행함 => 일의 순서에 따라 협업하는 도중 문제가 생길 수 있음

- 이러한 전반적인 프로세스를 다루는 분야가 ‘소프트웨어 공학’임 => 새로운 제품, 서비스, 도구 등을 만드는 것에 대한 학문. 기획, 제작, 테스트, 출시, 사후관리의 모든 프로세스를 포함한다.

- 기획 : 어떤 것을 만들지 정하는 단계 => 어떻게 하면 기획자가 원하는 것을 개발자에게 정확하게 전달할 수 있을지

- 개발 : 기획한 것을 만드는 단계 => 어떤 것을 만들지, 어떻게 구현할지, 어떻게 분업할지

- 테스트 : 개발이 기획대로 잘 되었는지 확인하는 단계 => 어떻게 소프트웨어의 문제점을 출시 전에 효율적으로 찾아낼 수 있을지

- 배포 : 개발된 제품/서비스를 사용자가 사용하는 단계 => 어떻게 각 사용자의 실행 환경에 맞는 소프트웨어를 잘 배포할 수 있을지

- 유지/보수 : 출시된 서비스를 변화시키는 단계 => 어떻게 하면 만들어진 소프트웨어를 쉽게 변경할 수 있을지

- 결국은 어떻게 하면 이 모든 프로세스가 매끄럽게 진행될 수 있을지 고민하게 됨

- 소프트웨어 공학은 이론에만 머물러 있으면 안 되며 실질적으로 이루어져야 함

03. 프로세스 관리

- 관리자, 기획자, 디자이너, 개발자, 테스터가 의사소통 중 문제 발생 => 협업 방식 고안

- 협업 방식에는 크게 폭포수(waterfall) 방식애자일(agile) 방식이 있음

- 폭포수(Waterfall) 방식 : 각 단계를 완료하고 다음 단계로 넘어가는 고전적인 방식

- 폭포수 방식의 장점 : 이해하기 쉽고 관리하기가 편함

- 폭포수 방식의 단점 : 만들고자 하는 게 복잡해질 경우 각 단계를 한 번에 완벽히 끝내기가 힘들 수 있음 => 프로그램이 복잡하면 의도한 대로 완벽한 전달이 불가함. 의도하지 않은 방향으로 진행해도 완성되어 다음 단계로 넘어가기 전까지는 문제를 발견할 수 없음

- 애자일(Agile) 방식 : agile은 재빠른, 민첩한이라는 의미. 잘못된 방향으로 너무 멀리 가기 전에 재빨리 결과물을 만들어서 미리미리 확인하고 고치면서 진행하는 방식 => 기획자가 자신이 상상한 것과 비슷한지 직접 써보며 의견을 덧붙일 수 있음

- 기능 변경이 유연한 애자일 방식은 서비스든 제품이든 복잡해지고 변화 주기가 짧은 요즘 시대에 더 효율적이고 적합한 협업 방식임 => Scrum이나 Kanban같은 구체적인 실행 방법도 생김

- 애자일 방식의 단점 : 프로그램을 만들어 소통하고 추가로 개발하는 과정이 반복되다보니 폭포수 방식보다 관리하기가 훨씬 복잡함

- 상황에 따라 폭포수 방식과 애자일 방식을 섞어 쓰거나 변형해서 쓰기도 한다.

반응형

+ Recent posts