Software Engineering

공부한 내용을 정리합니다
Software Engineering/Study Notes

idempotent (멱등성)

동일한 작업 또는 함수를 여러 번 호출하더라도 결과가 변경되지 않는 것 HTTP 메서드: POST, DELETE, GET - 동작과 멱등성 HTTP 프로토콜은 웹에서 데이터를 주고받을 때 사용되며, 다양한 메서드를 제공하여 서버와 클라이언트 간의 통신을 가능하게 합니다. 이 중에서도 POST, DELETE, GET 메서드에 대해 MDN에서 예시로 제시하고 있는데, 이들 메서드는 각기 다른 동작과 멱등성 특성을 가지고 있습니다. POST 메서드 POST 메서드는 서버에 새로운 데이터를 생성하거나 기존 데이터를 수정하는 데 사용됩니다. 예를 들어, 새로운 게시물을 생성하거나 사용자가 입력한 정보를 서버에 전송할 때 주로 사용됩니다. POST는 요청을 여러 번 보낼 시 서버의 상태가 변경될 수 있으므로 멱등성..

Software Engineering/Study Notes

AS-IS와 TO-BE

차세대 등 현재 사용하고 있는 시스템이 있는 상태에서 그걸 기반으로 새로운 시스템을 만드는 상황에서의 의미로는 다음과 같다. AS-IS 현재 사용중인 시스템 TO-BE 새롭게 만들어달라고 의뢰한 시스템 예시 AS-IS에서는 없었는데 TO-BE에서 새롭게 추가된 페이지 또는 기능

Software Engineering/Study Notes

클라우드 서비스 SaaS, PaaS, IaaS

IaaS(Infrastructure as a Service) 최초의 aaS(as a Service) 솔루션 Amazon Web Service, Google Cloud, IBM Cloud, Microsoft Azure 등 활용사례 재해 복구 솔루션 (여러 위치에 이중 서버를 둘 필요 없이 다양한 지역에 있는 클라우드 제공업체의 인프라스트럭처에 재해 복구 솔루션 구축 온프레미스보다 더 빠르게 소프트웨어 개발 및 테스트 인프라스트럭처 구축 가능 전자상거래 : 급격한 트래픽 증가가 빈번한 온라인 유통업체에 적합한 선택. 확장성이 있다. 스타트업 : 인프라스트럭처에 초기 자본을 투자할 부담 없이 이점 활용 가능 PaaS(Platform as a Service) 애플리케이션 개발, 실행, 관리를 위한 클라우드 기반..

Software Engineering/SDLC

Crash Course의 소프트웨어 공학 개괄 정리

Crash Course: Computer Science를 정리했습니다. 소프트웨어 공학 소프트웨어 공학은 '마가렛 해밀턴'이 만든 용어이다. 예를 들어 MS오피스는 코드라인이 4천만개에 달한다. 이런 거대한 프로그램을 만들기 위해서는 소프트웨어 공학이 필요하다. Object oriented Programming 객체지향 프로그래밍이란 함수를 계층구조로 패키지화하는 것이다. 즉, 관련된 코드를 객체로 모으는 것이다. 여기서 객체는 다른 객체와 함수를 포함할 수 있다. 복잡성을 숨기고 선택적으로 그것을 드러내는 것이 본질이며, 크고 복잡한 프로그램을 만드는 대중적이고 강력한 방법이다. API (Application Programming Interface) 공동으로 작업하는 방식이다. 적절한 접근 권한을 알 ..

Software Engineering/SDLC

보안 설계 및 구현

정보처리기사 필기 준비하며 정리한 내용입니다. SW개발 보안 설계 정보 보안 관리 기술 정보보안의 3요소 기밀성 무결성 가용성 AAA ⭐ 인증 Authentication 신원 검증, 로그인 등 권한 부여 Authorization 계정 관리 Accounting 인증 제도 ISMS 정보보호 관리체계 인증 회사의 종합적인 체계에 대한 인증제도 PIMS 개인정보 관리체계 지금은 사용하지 않는다 ISMS-P 정보보호 및 개인정보보호 관리체계 인증 Secure SDLC SDLC 소프트웨어 생명주기 방법론 ⭐ CLAPS SDLC의 초기 단계에서 보안 강화하려고 개발된 방법론 현재 운용 중인 시스템에 적합 MS-SDL Seven Touchpoints 소프트웨어 보안 모범사례를 SDLC에 통합한 방법론 모든 산출물에 위..

Software Engineering/SDLC

네트워크, SW, HW 구축 관리

정보처리기사 필기 준비하며 정리한 내용입니다. 네트워크 구축 절차 요구사항 정의 기본 설계 상세 설계 구축 테스트 운용 네트워크 토폴로지 계층형 상위부터 트리형태 버스형 장애 시 전체 마비 성형 star ⭐ 중앙 장애시 전체 마비 링형 저렴. 충돌 없음. 구성변경 힘듦 장애 발생시 전체 마비 망형 mesh 전체가 그물로 얽힌 형태 회선수 : n(n-1) / 2 각 장치당 포트 수 : n-1 자기 빼고라서 📌네트워크 장비 백본 백본 네트워크 대규모 패킷 통신망 백본 스위치 모든 패킷이 지나간다. 네트워크 중심에 위치 종류 L2 스위치 : 더미가 아닌 허브(스위치) L3 스위치 : 라우터 L4 스위치 : 포트 기반. 로드 밸런싱. 전송 계층에서 운용됨. L7 스위치 : 전 계층. 방화벽 역할. 보안장비에 주..

Software Engineering/SDLC

소프트웨어 개발 방법론, 비용&일정, 테일러링

정보처리기사 필기 준비하며 정리한 내용입니다. 소프트웨어 공학 품질 높은 소프트웨어를 개발하기 위한 학문 소프트웨어 공학의 3R 역공학 Reverse Engineering 기본에 개발된 시스템을 CASE 도구를 이용해 문서로 추출. 개발단계를 역으로 올라가는 것 재공학 Re-engineering 기존 시스템 재구성 + 이기종에서 사용할 수 있도록 변환. 예방 보수와 관련됨 유지 운영. 유지보수성 향상 과정 ⭐ 분석 → 재구성 → 역공학 → 이관(마이그레이션) 재사용 Reuse 이미 개발된, 잘 만들어진 소프트웨어 전체 또는 일부분 다시 사용 범위 함수와 객체 컴포넌트 애플리케이션 방법 합성Composition 중심 : 블록(모듈)을 끼워맞춰서 생성Generation 중심 : 추상화 형태로 쓰여진 명세를 ..

Software Engineering/SDLC

서버 프로그램 구현

정보처리기사 필기 준비하며 정리한 내용입니다. 서버 개발 프레임워크 프레임워크의 특징 모듈화 재사용성 확장성 제어의 역흐름 inversion of control API 데이터를 제공하는 측에서 공개적으로 데이터를 주고받을 수 있는 규칙을 미리 정의해 두면 외부의 컴퓨터들이 데이터를 가져다 쓸 수 있게 하는 기술 SOAP (Simple Object Access Protocol) HTTP HTTPS SMTP 등(개방된 포트) 프로토콜을 통해 XML 기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 프로토콜 WSDL 설명서. xml 기반 UDDI 도서관 REST ROA (Resource Oriented Architecture) 자원 기반의 구조 개념으로 구현됨 구성요소 자원 Resource URI로 자원 지정 ..

Software Engineering/SDLC

테스트

정보처리기사 필기 준비하며 정리한 내용입니다. 소프트웨어 테스트 기본 원칙 인간이 하기 때문에 완벽한 테스팅은 불가능하다. 결함 집중의 법칙 애플리케이션 결함의 대부분은 소수의 특정한 모듈에 집중되어 존재 파레토 법칙 살충제 패러독스 동일한 테스트 케이스로 반복 실행하면 그 케이스에서는 결함을 발견할 수 없다 그러나 다른 곳에서는 나타난다! 테스팅은 정황 context에 의존한다 오류-부재의 궤변 사용자의 요구사항을 만족하지 못하는 오류를 고쳐봤자 품질이 높다고는 할 수 없다 테스트 프로세스 개발과 유사하다 테스트 계획 테스트 분석 및 디자인 테스트 케이스 및 시나리오작성 테스트 수행 테스트 결과 평가 및 리포팅 테스트 산출물 테스트 계획서 **테스트 케이스 (**케이스란 하나의 단위) 테스트를 위한 설..