메타코드 5강
5강 - 정보시스템 구축 관리
◼️ 소프트웨어 개발방법론 활용
▪️ 소프트웨어 생명 주기(SDLC, software Development Life Cycle)
- 소프트웨어가 설계뙤고 배포되기까지 전체 과정을 체계적으로 관리하는 프로세스를 모델화
- 요구사항 분석 -> 설계 -> 구현 -> 테스트 -> 유지보수까지 단계를 어떻게 진행할 것인지 결정
▪️ 폭포수 모델(Waterfall Model)
- 순차적으로 개발 단계를 진행하는 전통적인 생명주기 모형
- 단계적 정의와 산출물이 명확함
- 순차적 접근 방법, 가장 오래된 모형으로 많은 적용사례가 있음
- 개발 중 발생한 요구사항을 쉽게 반영 불가
▪️나선형 모델(Spiral Model)
- 위험 분석과 반복을 통한 점진적 생명주기 모형
- 비교적 대규모 시스템에 적합하고 위험 관리 최소화가 목적
- 계획 수립 -> 위험 분석 -> 개발 및 검증 -> 고객 평가의 개발 주기가 반복돼서 수행됨.
- 시스템을 여러 부분으로 나눠 여러 번의 개발주기를 거치면서 시스템 완성
▪️ 프로토타이핑 모델(Prototyping Model)
- 초기 프로토타입을 바탕으로 개선하는 생명주기 모형
▪️ 반복적 모델(Iteration Model)
- 반복 사이클로 점진적으로 개발하는 생명주기 모형
▪️ 소프트웨어 개발 방법론의 종류
- 구조적 방법론 : 정형화된 분석 절차에 따라 사용자 요구사항을 파악, 문서화하는 프로세스 중심의 하향식 개발 방법론
- 정보공학 방법론 : 데이터와 정보 흐름을 중심으로 시스템을 분석하고 설계하여 비즈니스 요구를 충족시키는 방법
- 객체지향 방법론 : 현실 세계의 개체를 객체라는 독립된 단위로 구성하느 객체를 결합하여 소프트웨어를 구현하는 방법론
- 컴포넌트 기반 방법론(CBD) : 독립적으로 배포 가능한 컴포넌트를 조합하여 소프트웨어를 개발하는 방법론
- 애자일 방법론 : 짧은 개발 주기와 지속적인 피드백을 통해 신속하고 효율적으로 시스템을 개발할 수 있는 방법론
▪️ 소프트웨어 비용 추정 모형
- 델파이(Delphi) 모형 : 조정자와 여러 명의 전문가들의 의견을 종합하여 비용을 산정하는 기법
- LoC(Lines of Code) 모형 : (비관치 + 4*중간치 + 낙관치) / 6
- Function-Point(기능점수) 모형 : 소프트웨어의 기능 요구사항들에 점수를 부여한 후 점수를 바탕으로 비용을 산정하는 기법
▪️ 소프트웨어 개발방법론 선정
- COCOMO(Constructive Cost Model) : 프로젝트를 완성하는데 필요한 Man-Month로 산정 결과를 나타낼 수 있음
- Man Month 계산 : 한 사람이 1개월동안 할 수 있는 일의 양(코드 라인 수)을 의미, total line 수 / (월 생산 라인*인원수)
- CPM(Critical Path Mtethod)
- 프로젝트 작업 간의 의존성을 기반으로 전체 프로젝트를 완료하는데 필요한 최단 기간을 계산
- 작업 간의 선후관계를 정리하고 가장 길게 걸리는 경로를 찾아 프로젝트 기간을 결정
- 간트 차트(Gantt Chart) : 프로젝트를 이루는 소작업 별로 언제 시작되고 언제 끝나야 하는지를 한눈에 볼 수 있도록 도와주는 차트
▪️ 테일러링(Tayloring)
- 프로젝트에 최적화된 개발 방법론을 적용하기 위해 절차, 산출물 등을 적절히 변경하는 활동
- 프로젝트 수행 시 예상되는 변화를 고려해 신속히 진행해야 함
- 짧은 프로젝트 기간에 안정적인 프로젝트 진행을 위한 사전 위험을 식별하고 제거하는 것
- 프로젝트에 최적화된 기술 요소를 도입해 프로젝트 특성에 맞는 최적의 기법과 도구를 사용하는 것
◼️ IT 프로젝트 정보시스템 구축관리
▪️ SDN(Software Defined Networking)
- 네트워크의 제어부와 데이터 전달부를 분리하여 네트워크를 중앙에서 관리하는 아키텍처
▪️ PICONET
- 여러 개의 독립된 통신 장치가 UWB 또는 블루투스 기술을 사용하여 통신망을 형성하는 무선 네트워크 기술
▪️Mesh Network
- 각 기기가 중계에 의하지 않고 서로 연결되어 데이터를 직접 주고받을 수 있는 그물 모양의 분산형 네트워크
▪️ Smart Grid
- 전력 공급망에 정보통신 기술을 적용하여 효율적으로 에너지를 관리하고 최적화하는 전력망
▪️ MQTT
- 경량의 메시지 프로토콜고 제한된 대역폭을 가진 네트워크에서 데이터를 교환하기 위해 사용
- 사물 인터넷과 같이 대역폭이 제한된 환경에서 많이 활용됨
▪️ WDM(Wavelength Division Multiplexing)
- 광섬유 통신에서 다중의 광 신호를 다른 파장으로 전송하여 대역폭을 확장하는 기술
▪️NFC(Near Field Communication)
- 짧은 거리에서 기기 간의 통신을 가능하게 하는 무선 기술로 10cm 이내의 매우 짧은 거리에서 동작
▪️ 기계 학습(ML, Machine Learning)
- 데이터를 기반으로 컴퓨터가 스스로 학습하고 예측 또는 의사 결정을 할 수 있도록 하는 인공지능 기술
▪️CNN(Convolutional Neural Network)
- 주로 이미지 처리에 사용되는 인공 신경망으로 입력 이미지의 패턴을 인식하고 분석하는데 뛰어남
▪️RNN(Recurrent Neural Network)
- 순차적인 시계열 데이터나 텍스트를 처리하는 인공 신경망
▪️ NLP(Natural Language Processing)
- 인간의 언어를 이해하고 처리하는 기술로 음성 인식, 번역, 감정 분석 등 자연어와 관련된 응용 분야에서 활용
▪️ Tensorflow
- 구글의 구글 브레인 팀이 제작하여 공개한 기계 학습을 위한 오픈소스 소프트웨어 라이브러리
▪️ aas(as a Service)
- 클라우드 컴퓨팅 모델을 의미하는 용어
- 특정 기능이나 서비스를 클라우드 환경에서 제공하고 사용자는 필요한 만큼 구독해 사용하는 방식
- Iaas, PaaS, Saas 등
▪️Paas-TA
- 국내 IT 서비스 경쟁력 강화를 목표로 개발된 개방형 클라우드 컴퓨팅 플랫폼
▪️ Baas(Blockchain as a Service)
- 블록체인 개발환경을 클라우드로 서비스하는 개념
- 블록체인 네트워크에 노드의 추가 및 제거가 용이
▪️ 가상화(virtualization)
- 물리적 자원을 소프트웨어적으로 분리하여 여러 개의 가상 환경이나 기능을 생성하는 기술
▪️SDS(Software Defined Storage
- 스토리지 관리 소프트웨어를 사용하여 스토리지 자원을 가상화하고 효율적으로 관리할 수 있게 하는 기술
▪️Docker
- 애플리케이션을 컨테이너라는 격리 환경에 포장하고 컨테이너 응용 프로그램의 배포를 자동화하는 오픈소스 엔진
▪️ kubernetes
- 컨테이너화된 애플리케이션을 자동으로 배포, 관리, 확장, 오케스트레이션하는 오픈소스 플랫폼
▪️ NoSQL(Not Only SQL)
- 관계형 데이터베이스가 아닌 다양한 데이터 모델을 지원하는 데이터베이스
▪️빅데이터
- 전통적인 데이터 처리 기술로는 처리하기 어려운 대향의 비정형 데이터
▪️데이터 마이닝
- 대량의 데이터를 분석하여 데이터 속의 유용한 정보와 일정한 패턴을 찾아내는 기법
▪️ Hadoop
- 대용량 데이터 저장 및 처리를 위한 오픈소스 프레임워크
▪️MapReduce
- 대용량 데이터를 병렬로 처리하기 위한 목적으로 개발된 프로그래밍 언어
- 임의의 순서로 정렬된 데이터를 분산 처리하고 이를 다시 합치는 과정을 거침
▪️Scoop
- Hadoop과 관계형 데이터베이스 간에 대량 데이터 전송을 자동화하는 도구
◼️ 소프트웨어 개발 보안 구축
▪️ 정보보안의 3요소
- 기밀성 : 시스템 내의 정보와 자원은 인가된 사용자만 접근이 허용
- 무결성 : 시스템 내의 정보는 오직 인가된 사용자만 수정할 수 있는 보안 요소
- 가용성 : 인가된 사용자는 가지고 있는 권한 범위 내에서 언제든 자원 접근이 가능
▪️ 보안 취약점 유형
- XSS(Cross Site Scipting) : 악성 스크립트를 웹 페이지에 삽입하여 사용자의 브라우저에서 실행되도록 하는 보안 취약점
- SQL Injection : 임의로 작성한 SQL 구무을 애플리케이션에 삽입하여 허가되지 않은 정보를 조회하거나 조작하는 공격 방식
▪️ 암호 알고리즘 종류
- 대칭 키 암호화 : 암호화와 복호화에 동일한 키를 사용하는 알고리즘
- 비대칭 키 암호화 : 암호화와 복호화에 서로 다른 키를 사용하는 암호화 방식
- 해시 함수 : 입력 데이터를 고정된 길이의 고유한 해시 값으로 변환하는 함수
▪️ 블록 암호 방식
- 데이터를 고정된 크기(블록)으로 나누어 암호화
- DES(64bit), IDEA(64bit), AES(128bit), SEED(128bit)
◼️ 시스템 보안 구축
▪️보안 공격 기법
- 컴퓨터 시스템, 네트워크, 애플리케이션 등의 보안 취약점을 악용해 시스템에 접근하거나 손상을 입히는 방법
- Key Logger Attack : 컴퓨터 사용자의 키보드 움직임을 탐지해 ID, 패스워드 등 개인의 중요한 정보를 몰래 빼가는 해킹 공격
- Ransomware : 사용자의 파일을 암호화하고 해독 키를 제공하는 대가로 금전을 요구하는 악성코드 공격
- Phishing : 신뢰하라 수 있는 기관이나 유명인을 가장하여 사용자의 로그인 정보나 개인 정보를 탈취하는 기법
▪️DoS(Denial of Service) 공격
- 서비스 거부 공격으로 단일 공격자가 특정 시스템이나 네트워크 서비스의 가용성을 방해하는 공격
- Smurfing : IP 또는 ICMP의 특성을 악용하여 특정 대상에 다수의 응답을 보내어 그 시스템을 마비시키는 기법
- Ping Flood : 다량의 ICMP Echo Request 패킷을 보내어 대상 서비스를 마비시키는 기법
- PoD(Ping of Death) : 정상 크기보다 큰 ICMP 패킷을 작은 조각으로 쪼개어 공격 대상이 조각화된 패킷을 처리하게 만드는 공격 방법
▪️ DDos(Distributed DOS) 공격
- DOS의 다른 형태로 여러 대의 컴퓨터를 이용하여 특정 대상에 동시다발적으로 서비스 거부를 유도하는 공격
▪️ 보안 탐지 및 보호 기술
- 백도어 탐지 : 악성 소프트웨어나 해커가 시스템에 비밀스럽게 접근하기 위해 설치한 백도어를 식별하고 차단하는 과정, 무결성 검사, 열린 포트 확인, 로그 분석, SetUID 파일 검사 등
- 세션 하이재깅 탐지 : 사용자의 세션을 도청하거나 탈취하는 하이재킹 공격을 방지하고 식별하하는 과정, 비동기화 상태 탐지, ACK Storm 탐지, 패킷 이상 팀지, 세션 타임아웃 설정 등
- 스택가드 : 메모리 버퍼 크기를 초과하는 데이터를 입력하여 오류가 발생하는 Buffer Overflow를 방지하는 보호 기술
▪️벨-라파둘라 모델(Bell-Lapadula Model)
- 군대의 보안 레벨처럼 정보의 기밀성에 따라 상하 관계가 구분된 정보를 보호하기 위해 사용되는 모델
- 사용자는 자신보다 높은 보안 수준의 데이터를 읽을 수 없는 'No Read Up' 규칙
- 자신보다 낮은 보안 수준의 데이터에 쓸 수 없는 'No Write Down' 규칙
▪️사용자 인증 및 보안 기법
- 인증(Authentication) : 자신의 신원을 시스템에 증명하는 과정, 아이디와 패스워드를 입력하는 과정이 가장 일반적인 예시
- SSO(Singloe Sign ON) : 시스템이 몇대가 되어도 하나의 시스템에서 인증에 성공하면 다른 시스템에 대한 접근 권한도 얻는 시스템
▪️ 네트워크 보안 솔루션
- 방화벽(Firewall) : 네트워크 트래픽을 필터링하여 허용된 데이터만 통과시키고 무단 접근으로부터 네트워크를 보호하는 보안 장치
- VPN(Virtual Private network) : 이용자가 인터넷과 같은 공중망에 사설망을 구축하여 마치 전용망을 사용하는 효과를 가지는 보안 솔루션
- Secure OS : 컴퓨터 운영체제의 커널에 보안 기능을 추가한 보안성이 강화된 운영 체제, 보안 기능으로 식별 및 인증, 임의적 접근통제(DAS), 강제적 접근통제(MAC), 감사 기능 등이 있음
▪️ 침입탐지 시스템(IDS, Intrusion Detection System)
- 컴퓨터 시스템, 네트워크, 또는 애플리케이션에서 비정상적인 행동이나 침입을 탐지하고 경고하는 보안 장치
- 네트워크 기반, 호스트기반
- 사전 정의된 규칙 기반 탐지, 이상 탐지
▪️ 로그 관리 및 보안 도구
- wtmp : 시스템에 로그인한 사용자, 로그아웃한 사용자 및 시스템 부팅과 같은 이벤트의 기록을 저장하는 파일
- nmap : 네트워크의 열린 포트 및 서비스 등을 스캔하여 보안 취약점을 탐지하는 오픈 소스도구
- TCP Wrapper : 네트워크 서비스에 대한 접근을 제어하고 로깅하는 소프트웨어
메타코드에서 정보처리기사 필기 강의 장학생으로 선발되어 앞으로 5주간 메타코드에서 정처기 필기 강의를 듣고 포스팅을 하게 되었다.
현재 메타코드에서는 정보처리기사 필기 환급 챌린지를 진행 중이며 합격 인증 시 100% 환급(제세공과금 22%, 교재비 3만원 제외)을 해 준다.
진도율을 100% 달성하고 시험 합격 후 합격 인증, 후기 작성 시 수강료를 100% 환불 (제세공과금 22%, 교재비 3만원 제외)을 해주기 때문에 수강료 부담없이 정처기 자격증을 따고 싶은 사람에게 좋은 강의이다.
https://metacodes.co.kr/edu/read2.nx?M2_IDX=31635&EP_IDX=15203&EM_IDX=15027