[정처기-왕두목쌤] 통합 구현

이기적 영진닷컴
21 팔로워
4 비디오 조회수·2023. 12. 30.
이 동영상은 [이기적 정보처리기사 필기 기본서] 도서 내용을 바탕으로 제작되었습니다.
🔹 도서 자세히 보기 : https://www.yes24.com/Product/Goods/123749951
🔹 이 동영상이 포함된 재생목록 : https://www.youtube.com/playlist?list=PL6i7rGeEmTvpH4LPx_9O1Q88tDtAdbOko
🔹 모르는 문제? [이기적 스터디 카페] 질문하기 : https://cafe.naver.com/yjbooks
🔹 이기적 홈페이지 : https://license.youngjin.com
🔹 인스타그램 : https://www.instagram.com/license.youngjin_official/
안녕하세요 반갑습니다 자 이번에는 두
번째 과목 소프트웨어 개발입니다
앞에서 소프트웨어 설계를 했죠 각각
모듈별로 우리가 소프트웨어를 설계를
했고요 그러면 이렇게 각각 만들어진
아이들을 인터페이스로 연결한다지가
이제 과목의 대한 내용이고 어
개발에서는 그렇게 설계된 아이들을
어떻게 통합해서 소프트웨어로 만들고
어떻게 고객님에게 제공할지 그리고
보안은 어떻게 할지 테스트는 어떻게
데이터 입출력은 어떻게 할지에 대한
내용들을 쭉 배우게 됩니다 어 그래서
1과목 2과목이 다른게 아니고요 서로
연결된다 이렇게 생각해 주시면은 훨씬
더 학습하기가 편하실 것 같고요이
과목 소프트웨어 개발에는 모듈의
통합에 관련된 통합 구현 그리고
이렇게 통합된 아이들을 어떻게
연결할지 대한 시스템
인터페이스 그리고 고객님에게 제공하기
위한 제품 소프트웨어 패키징 테스트도
진행해야 되겠죠 성능 개선도 해야
되겠고 입력되는 자료들 또는 저장되는
자료들에 관련된 이론을 또 학습해야
되기 때문에 데이터 입출력 구형까지
요렇게 구성이 돼 있다 봐 주시면
되겠습니다 그래서 이번 시간에는 통합
구연에 대한 내용을 배우게 될 거고
그중에서도 또 다시 통합 구현을 어
보게 될 겁니다이 가목은
필기고시이고 가리지 않고 자주
출제되는 아이들이에요 그래서 여러분들
잘 정리해 주셔야 될 거 같고요
대신에 1 과목과 2과목 같이
연결되면서 어려운 부분은 없는데 단지
좀 암기해야 될 부분들이 있다 렇게
생각해 주시면 좋겠습니다 우선 단위
모듈 구현이 그 앞에서는 우리가
모듈을 설계했다 말이죠 그러면이
각각에 만들어진 모듈 모듈이 뭐였죠
하나의 기능을 하는 개체 뭐 이렇게
생각할 수가 있겠죠 요것을 이제
실제로 구현을 해 줘야 됩니다 누가
구현하 개발자가 이제 코딩을 하는
거죠 요렇게 해서 작업을 하게 되겠고
이렇게 단위 모듈을 실제로 우리가
각각의 기능별로 추상화하고 성능을
향상시키기
위해서에 모듈을 좀 더 좀 정제하는
것을 뭐라고 이야기하냐 men
모듈화하고 이야기를 해요 그래서
모듈화의 방법에는이 분할 정보법 정보
은닉 자료 추상화 모듈의 독립성
요러한 아이들이 이제 여기에 나오는
거고 얘네들은 필기고시이고 가리지
않고 자가 된다 이렇게 봐 주시면
되겠습니다 그래서 우선 첫 번째 분할
정보법이에요 분할 정보법 이게 시험
문제로도 출제되지만 테스트에 관련된
부분에서도 또 한번 언급이 되기
때문에 좀 기억을 하고 계셔야 돼요
이름 그대로입니다 우리가 어떤 문제를
해결하기 위해서는 얘네를 하나 하나
하나하나 개별적으로 문제를 분할해
내고 걔네를 하나씩 하나씩 정복해
나가는 거예요 우리가 사회생활할 때도
살아가는데도 마찬가지로 어려운 일이
벌어졌을 경우에 걔네를 전체 큰 걸로
보지 말고 작은 거부터 하나씩 해결해
나가면 언젠가는 그 문제가 해결돼
있고 요런 것을 우리 분할 정복법이라
이렇게 생각하시면 될 거 같아요
그래서 절차로 보면은 분할 정복법
이니까 제일 먼저 분할을 하게 나가게
되겠죠 그리고 각각의 문제를 정복해
나가요 그리고 나중에 다시 얘네를
통합하는 형태로 우리가 완성을 한다이
정보 은닉이 하는 거는 자료를 객체
제에서 나오는 개념이아요 이렇게 어떤
기능 에 대해서 타 모듈에 영향을
받지 않도록음 숨 놓는다 은시 놓는다
렇게 기억하시면 될 거 같아요 그래서
정보 은닉 뭐 자주 나오는 컨셉이니까
기억하시고 얘네는 은다 이렇게 보시면
되겠죠 자 추상화하고 하는 거는
요약하다 하는 의미로 우리가 쉽게
생각할 수가 있겠죠 그래서 함수 내의
자료 구조 표현
방법을 은폐하고 그리고 자료와 자료에
적용할 수 있는 오퍼레이션을 함께
정의한다 데이터 추상화의 핵심은
사용자가 데이트를 달하는 필요한
최소의 정보만 드러내는 것이다 그래서
우리가 필요한 것만 보여 주도록 한다
어 서울 지도에서 지하철 노선도만
보여 주는게 바로 추상하고 했던
것처럼 굉장히 복잡한 그런 기능들이
나열이 되어 있는데 얘네를 다 묶어서
추상화를 하는 거죠 그래서 나는 그냥
단순하게 얘네 대한 입출력 관련된
정보만 알고 있으면 걔네를 컨트롤할
수 있도록 하는 요게 바로 자료
추상화에 대한 내용이 되겠습니다 자
모듈은 독립성을 야 돼요 그래서이
독립성에 대해서는 앞에서 우리가
모듈에 대한 특성에 대한 걸 보셨었죠
그 결합도를 낮추고 응집도는 높게
우리가 설정을 한다라고 이야기를 했죠
자 이렇게 함으로 인해 가지고 어떻게
된다 소프트웨어의 유지 보수성과
확장성이 개선이 된다 요렇게 말씀을
드렸습니다 그래서 어
이렇게 이번 장에서 제일 중요한 거는
이제 모듈화의 어떤 원리에 대한
내용이 되겠고 얘네들은 지금 꼭
출제가 된다 보시면 됩니다 그리고
분정 정법이 나중에 테스트하는데
관련돼서 또 출제가 되니까 아 언급이
되니까 그때 또 한번 이야기하도록
할게요 그래서 뭐라고요 종류
기억하셔야 돼요 모듈화의 개념에서
모듈러의 원리는 결국은 뭐다 분할
정보법 또 정보 은닉 자료 추상화
추상화 어떻게 해야 돼 요렇게 모듈의
독립성 요렇게 총네 가지가 있다라는
거 기억하고 계시고요 각각의 기능
그리고 그리고 분할 정복법 대해서는
절차도 좀 기억하고 계시기 바랍니다
자 그러면 우리가 이렇게 만들어진
모듈들을 각각 하나씩 하나씩 테스트를
진행을 하거든요 요거를 뭐라고 하냐면
단위 모듈 테스트라고 이야기를 하고
앞에서 우리 V 모델 이렇게
있었잖아요 V 모델 그래서 이렇게
우리가 개발해 나가는 거고 위쪽으로
올라가면서 우리가 테스트해 나가는
건데 제일 먼저 해야 될게 단위 모듈
테스트가 되겠죠 그래서 제일 하위에서
단위 모듈에 대한 것을 우리가 구현해
나가야 된다라는 거고 이런 구현 단계
절차에는 뭐가 있냐 면은 요렇게 코딩
계획 그다음에 코딩 컴파일 코드
테스트 요러한 절차를 갖는다이 한번
출제가 된 적이 있으니까 간단히
정리하시면 되겠습니다 뭐 어려운 거
없죠 컴이라 하는 건 언어 번역인
거고 그리고 거기에서 만약에 오류가
있었다면 테스트하는 요러한 절차를
갖는다 절차를
갖는다 자 그렇다면 우리가 이렇게
각각의 모듈들을 통합하는데 도움이 될
만한 도구는 없을까라고 해서 배우게
되는게 바로 아이디예요
이 친구는 결국은 뭐다 아 통합
구현하는데 도움을 되는 도움이 되는
그런 도구들이다 도구의 명칭을 모두
다 아이디라고 이야기를 한다라고
이야기하고 신화 자바 등의 언어를
이용해서 소프트웨어 개발 단계에서
패키징 인클루딩 그다음에 소프트웨어
코드 편집 컴파일 디버깅 바이너리
페포 하여간에 모든 작업 개발에
관련된 모든 작업을 도와주는 역할을
하는 애를 바로 아이라고 한다
그래서이 안에서는 편집도 할 수가
있고요 컴파일러도 들어 있고요 디버거
들어 있고요 즉 프로그램 하나만
실행하면 모든게 작업이 되는
거죠음 제가 어릴 때는 이런 아이디
통합 도구가 없었어요 그래서 어 코드
편집할 때는 별도로 뭐 메모장 같은
뭐 에디터에서 편집을 하고요 그
컴파일할 때는 컴파일 도구 별도로
프롬프트를 이용해 가지고 컴파일하고
또 디버깅은 또 다른 또 디버깅
도구가 필요했었어요 배포하려면 또또
다른 얘기야 그래서 그거 절차가
굉장히 복잡했는데 지금은 이렇게
아이디 통합 도구가 나오면서
그냥 간단하게 프로그램 하나만이 툴
하나만 설치해 가지고 간단하게 사용할
수가 있게 됩니다 그 대표적인 것들이
뭐가 있냐면 자바 개발할 때 사용하는
이클립스 하는 툴이 있고요 그다음에
비주얼 관련된 소프트웨어를 개발하는
비주얼 스튜디오가
있고요이 무료로 사용할 수 있는
비주얼 스튜디오 코드라고 하는 애도
있죠 얘도 아주 간단하게 우리가
소령의 소프트웨어 중대형 괜찮아요
비주얼 스튜디오 코드를 저도 많이
사용을 하는데 이걸 이용을 해가
가지고 간단하게 소프트웨어를
개선하고 개발하고 관리하고 배포까지
할 수 있는 그런 툴들이 된다 그래서
아이디가 뭐다 쉽게 내가 자바를
이용해서 소프트웨어를 개발하려면
이클립스를 기반으로 깔고 그 위에서
얹어서 쓴다라는 거 그다음에 시나씨
뿔뿔 뭐 이런 거 사용할 때는 비주얼
스튜디오 이용해 가지고 우리가
소프트웨어 개발을 한다 이렇게 봐
주시면 되겠습니다 어 세부적인
내용들은 간단히 봐 주시고요 명칭에
대한 것들 좀 봐주시면 좋을 거
같아요 그리고 또 코드라고 하는 애가
있겠죠 어이 친구는 뭐 개발할 때
쓰나요네 iOS OS 어플리케이션
개발할 때 즉 앱스토어에 등록할 때
얘네를 사용할 수가 있고 얘는이
무료로 제공을 해요 또 안드로이드
스튜디오도 있어요 안드로이드 개발할
때 사용하는 도구죠 그래서 얘는
자바 개발을 위하는 개발 도구요
안드로이드 스튜디오 기반이 되었다
그랬어요 얘가 안드로이드 스튜디오에
기반이 되는 그런 아이다 뭐 여기서도
마찬가지로 다 디버깅도 되고 테스트도
되고 빌드 배포 모두 다 직업 지원을
하는 이러한 아이들이 된다라고 보시면
되겠습니다 그다음에 파이참 얘는 이제
파이썬 개발 도구요 어 다 그래요
아이디라고 하는 거는 코드 작성 디버
테스트 빌드 런 것들을 이제
지원한다는 거 아디에 대한 기본개념과
정도 여러분들이 기억하시면 되겠고요
아톰 요거는 이제 오픈 소스 기반으로
사용하는데 깃 하고 연결할 수가
있어요 깃은 이제 소스 코드 관리
도구나 형상 관리 도구 뭐 이렇게 볼
수가 있는데 얘를 그냥 연결해서 쉽게
쓸 수가 있습니다 소형 개발 도구들
같은 거 쓰실 때 아톰을 많이 쓰죠음
초보자들이 많이 씁니다
학생들이 자 엑스코드 안드로이드
스튜디오 파이참 비교표 있는데 그냥
간단히
참고로만 교재 채우기 위해서 공간
채우기 위해서 들어갔다 이렇게 봐
주시면 되겠습니다
자 그러면 이런 아이디의 구성 요소에
어떤 것이 있냐 우선 기본적으로 소스
코드 편집기가 존재해야 되겠고요
당연히 컴파일러 그다음에 디버거가
포함이 돼야 된다 아이디라고 하는
거는 통합 개발 환경을 제공하니까이
소스코드 편집 쭉 우리가 사람이 직접
코드를 넣을 수 있는 그러 도구가
있어야 되겠고 얘네를 컴파일러 하거나
또는 버그를 잡는 디버거가 포함이
돼야 된다라고 봐주시면 되겠습니다 자
그리고 아이디 도구 기능은 기본적인
개발환경을 지원해요 그리고 디버깅
외부 연계 디비 연동 디플로이먼트
하는 건 이제 배치가 되겠죠 실제
배포하는 그런 역할까지 우리가
사용한다라고 봐 주시면 되겠습니다 자
그리고 아이디 다음에 이제 빌드
자동화 도구가 있어요 빌드라고 하는
거는 구축이 개발 환경 자체에서
우리가 소스 코드를 컴파일해 가지고
얘네를 실제 프로그램 실행될 수
있도록 만들어 주는 도구를 빌드
자동화 도구라 그래요 그래서 얘네는
결과적으로 뭐라고 컴파일후 다수의
연관 모듈을 묶어서 실행 파일로
만든다 그래서 우리가 앞에서 배운
아이디가 결국 빌드 자동화도구 역할도
해 주게 됩니다 그래서 소프트웨어
개발자가 반복 작업해야 되는 코딩을
잘 짜여진 프로세스를 통해서 자동으로
실행해서 신뢰성에는 결과물을 생성해
낸다 그랬어요 그래서 이제 간단하게
우리가이 앞에서 배온 아이디 툴을
이용을 해 가지고 어 코드를 작성하고
컴파일 버튼만 딱 눌러주면 그 외의
작업들은 자기가 다 알아서 합니다
그냥
주루루룩 자 자동으로 된다 이렇게
보시면
되겠죠 그리고 소스코드 컴파일 테스트
분석 등을 실시해서 실행할 수 있는
어플리케이션으로 실제 만들어 주는
프로그램이고 지속해서 증가하는
라이브러리에 자동 추가및 관리 전처리
등을 지원한다 그랬어요 내가
소프트웨어를 개발했을 때 여기에
필요한 필요한 그 라이브러리들이
있거든요 근데 이게 내 컴퓨터에 한
번에 설치가 되지 않아요 그런데 얘가
자동으로 알아 가지고 내가 빌드를 딱
눌러 버리게 되면 어떻게 되냐면
자동으로 인터넷에서 해당하는
라이브러리가 없으면 찾아가지고 검색
검색해서 설치까지 해요 그래서 최초에
만약에 내가이 아이디 툴을 가지고
빌드 자동화를 딱 실행을 하게
되면 어떻게 될까 굉장히 오래 걸려
왜 그 필요한 라이브러리들을 다
인터넷에서 받아 가지고 거기에 다
이렇게 연결을 해서 실행할 수 있게
만들어 주기 때문에 그렇다 자
최근에는 오픈 소스인 그들이
등장했고요 구글 안드로이드 기본 빌드
시스템으로 그들을 선택했다 그랬죠
자요 그들은 좀 기억하고 계시기
바랍니다음 들이요네 네 자 얘는 코드
컴파일도 가능하고요 당연하겠죠 패키징
파일 조작 테스트 실행 버전 관리
버전 관리가 되는게 아니라 버전 관리
도구인 깃과 연동을 할 수가 있고
문서 생성 배포 코드 품질 분석 이런
것들이 모두 다 가능한게 바로 빌드
자동화 도구다 아이 안에 빌드 자동화
도구가 보통은 포함되게 되는데
별도로도 이렇게 그들이라고 하는 툴이
있다 이렇게 보시면
되겠습니다 자 빌드 자동화 도구에는
트라고 하는 애가 있어요 얘는 아파치
소프트웨어 재단에서 개발을 했고
xml 기반에 빌드 스크립트를
제공한다 그랬어요 또 정해진 규칙이
없고 절차적 이래요 명확한 빌드
절차가 정가 필요하고 생명 주기를
갖지 않아서 타겟에 대한 의존 관계와
작업을 정의해 줘야 되고 유연성이
높지만 프로젝트가 복잡해지는 경우
빌드 과정이 이해가 어려워진다
xml이나 리모트 리포지토리를 가져올
수 없고 그랬는데 리모트 리포지토리
하는 거는 원격 저장소를 의미해요
이거 는 예 소스 코드 관리도구 또는
형상 관리 툴에 내가 실제 소스
코드가 저장되는 그 공간을 의미하는
겁니다 다음에 이제 메이븐이 하는
애도 있어요 얘네 종류가 출제가
되니까 기억하고 계시면 됩니다 자
우선은 메이븐은 프로젝트에 필요한
모든 종속성의 리스트 형태로
메이븐에서 알려서 종속성을 관리한다
그랬고요 얘는 뭘 기반한다 xml
기반이다요 정도까지만 기억하시기
바랍니다 자 들은요 메이문 루이를
기반으로 해서 제작된 도메인 스페시픽
기지다 얘도 스크립트 언어로 오픈
소스 형태 자동가 도구다 안드로이드
앱 개발 환경에서 주로 사용된다
그랬어요 그래서 그래들 기억하시고요
젠킨스는 어디에 사용된다 잡아요 자바
이렇게 핵심 포인트들만 여러분들
기억하시면 됩니다 저 내용을 어떻게
다 아나 자 메이크 파일은 여러 개
파일을 한 번에 빌드하는 복잡한 빌드
과정을 동할 수 있다 그래서 가장
그냥 기초적으로 많이
썼던 트레비스 cl 분산 빌드
서비스요
시티는 발 했대요 C CD 도구인데
실제 출제됐던 젠킨슨 얘가 뭐야
자바가 제에요 요거 골라 주시면
됩니다 또 메이브는 어디에 xml
기반이자 들은요 jvm 기반입니다이
핵심 포인트들만 기억하고 계시면 시험
보시는데 크게 어려움은 없으실 거예요
자 잠시 후에 이어 가지고 형상
관리에서 또이어서
살펴보겠습니다
