개발자로 후회없는 삶 살기
오픈 소스 SW PART.개발 프로세스, 도커 본문
서론
교과목 2주차 현업의 개발 프로세스와 도커를 정리해 보겠습니다.
본론
- 실무 sw 개발 프로세스
=> 개발 프로세스 + 도구
요구사항 분석 > 설계 > 구현 > 통합+테스트 > 배포가 기본 프로세스입니다.
-> 단계별 도구(학교에서 배울 것을 기준!)
1. 요구사항 분석 : 기능+비기능 등 프로젝트의 이해 당사자의 모든 의견으로 만들어집니다.
2. 설계 : uml 툴
4. 통합+테스트 : 형상관리 = git/ 변경 관리 = 레드마인
5. 배포 : 젠킨스(CI/CD)
- 소프트웨어 구조적 분석 및 설계
=> 프로그램과 소프트웨어의 차이
소프트 : 프로그램을 만들기 위한 과정 전부다(산출물, 과정, 체계 = 프로그램 + 문서 + 처리 절차)
프로그램 : 코드( = 바이너리)
=> 분석의 중요성
정부과제를 봐도 품질이라는 게 없어지고 고객이 필요한 게(요구한 게) 안 나옵니다.
1. 요구사항 분석(수집과 분석으로 이루어짐)
2. 요구분석과 설계 : 프로세스에서는 다르지만 사실 둘이 분리할 수 있는 게 아닙니다. > 유즈케이스가 요구 분석 과정에서만 나올까요? 시퀀스 다이어그램을 짤 때도 나옵니다. > flow를 시퀀스 다이어그램으로 그릴 수도 있습니다. > 요구사항과 설계는 같이 붙어 있는 것입니다.
※ 유즈케이스 정의서 작성
- 소프트웨어 프로세스
요구 수집과 분석 > 설계 > 구현 > 테스팅이 기본 -> 방법론에 따라서 흐름이 다릅니다.
=> 소프트웨어 모델
※ 방법론과 모델은 다릅니다. -> 방법론이 방법, 모델이 방식 ex 애자일 방법론의 스크럼 모델
1. 폭포수 : 일방향이라서 검증하는 단계가 없을 뿐 다시 돌아오기 가능하지만 구현과 동시에 검증은 불가능하고 검증 단계에서만 검증합니다. (소규모는 폭포수가 월등히 유리)
2. 프로토타입(원형) : 이런 것도 모델이 있습니다.
3. 애자일
1) 이터레이션은 무조건 기능이 나와야 합니다.
2) 릴리즈에서 CI/CD 사용
3) 확실하지만 관리하기 어려운 방법론이므로 애자일 관리자도 같이 착수합니다.
- 컨테이너
아나콘다로 여러 가상환경을 만들어서 잘 되는 것만 사용하면 좋겠죠? 그런 의미에서 프로그램을 이슈가 없는 것만 골라서 배포하면 좋겠습니다. > 배포를 쉽게 해주는 게 컨테이너, 가상의 의의입니다.
-> 리눅스를 해야 하는 이유
1. ★ 리눅스에서는 머신러닝 거의 다 돌아갑니다.
2. 교수님 : "리눅스에서 데이터 분석, 머신러닝 해야 한다."
3. 윈도우가 일반인들이 쓰기에는 좋은데 기업 차원에서는 제약이 너무 많은 os입니다.
=> 도커가 유명해진 이유
1. 가상머신의 단점은 윈도우와 리눅스를 둘 다 사용할 줄 알아야 한다는 것
2. 재부팅을 해야 실행할 수 있다는 것
3. 가상머신 자체가 무겁다는 것이다 -> 무거운 거를 가볍게 하고 윈도우에서 쓸 수 있는 이미지를 도커 허브에 다 담으니 사용자들이 많아졌습니다.
결론
교수님이 학교에서 알려주시는 개념과 실무는 아예 다릅니다. > 이 수업에서 체험하며 느껴봐라고 하셨고 + 실무에서 쓸 수 있도록 실력을 쌓으라 하셨습니다.
-> 그러면 실무를 학교에서 배우면 되지 왜 개념을 배워요?? : 실무를 바로 보면 이해도 못 합니다. 교수님이 알려주시는 CS 개념을 배워야 실무를 이해할까 말 까입니다 ∴ 학교 수업 잘 들어야 합니다.
'[개발자] > [교과목]' 카테고리의 다른 글
오픈소스 SW PART.도커 심화 (0) | 2022.11.23 |
---|---|
오픈소스 SW PART.MLops mini 프로젝트 설명 및 도입 (0) | 2022.11.09 |
오픈소스 SW PART.MLops (0) | 2022.11.02 |
오픈소스 SW PART.개발 지원도구 종합 실무 사례 (0) | 2022.10.19 |
오픈 소스 SW PART.CI/CD, 이슈관리 (0) | 2022.10.05 |