컴퓨터 사이언스의 기본기
- 프로그래밍 기본기가 탄탄하면 새로운 기술이나 새로운 언어에 빠르게 적응할 수 있다.
- 컴퓨터 사이언스의 기본 과목
- 이외의 과목
- 컴퓨터 구조
- 운영체제
- 컴파일러
- 웹 개발
- 데이터 베이스
- 네트워크
소프트웨어 공학
- 소프트웨어로 제품/서비스를 만드는 방법에 대한 학문
- 기획, 제작, 테스트, 출시 ,사후 관리
- 기획: 어떤 것을 만들지 정하는 단계
- 개발: 기획한 것을 만드는 단계
- 테스트: 개발이 기획대로 잘 되었는지 확인하는 단계
- 배포: 개발된 제품/서비스를 사용자가 사용하는 단계
- 유지/보수: 출시된 서비스를 변화시키는 단계
프로세스 관리
폭포수(Waterfall)
- 각 단계를 완료하고 다음 단계로 넘어가는 방식

-
문제점
- 각 단계를 한번에 완벽하게 끝내기 힘들 수 있음!
-
애자일(Agile)
: 째빠른, 민첩한
- 결과물을 만들어 미리 확인하고 수정하며 진행
- 중간중간 사용하면서 발전시키기 떄문에 기능 변경이 유연함
- 실행방법: Scrum, Kanban
테스트 프로세스
- 자동화 테스트 도구, 테스트 코드 활용
- 테스트 부서가 따로 있기도 함
- 메뉴얼
- 얼마나 시급한가?
- 담장자가 누구인가?
- 빼먹은 버그가 있는가?
- 버그가 잘 고쳐졌는가?
- 버그 관리 툴(이슈 트레킹 툴)
이슈 상태 단계
- Open(이슈가 생김)
- In-progress(개발자가 개선 작업 진행)
- Resolved(문제가 해결됨,개발자가 작업완료)
- Colsed(테스트 결과 버그가 잘 해결됨)
- Reopen(추가적인 문제 발생시 다시 Open으로 돌아감)
- Assign :담당자 지정
- 프로젝트 매니저 : 이슈의 우선순위를 적절하게 조절하는 사람
버전 관리
- git : 버전 관리를 위한 소프트웨어
- github: git을 이용해 코드를 저장하는 온라인 저장 공간
- 다양한 버전의 프로그램을 만들고 효율적으로 사용할 수 있다.
개발자의 필수 프로그램 IDE
- 통합개발환경: 개발자들이 코딩할 떄 도움이 되는 기능을 모아둔 프로그램
- 종류
개발자들이 많이 쓰는 프로그램들