소프트웨어 개발 15

운영체제 - 종류 (Windows,OS,Linux)

위에 처럼 다양한 종류들이 있지만 대표적인 것들만 다뤄보겠다. 1. Windows 장점) 사용자 친화적인 인터페이스: 많은 사용자들이 Windows를 통한 컴퓨터 사용에 익숙. 다양한 소프트웨어 지원: 많은 응용 프로그램 및 게임이 Windows에 최적화. 광범위한 하드웨어 호환성: 다양한 브랜드와 모델의 컴퓨터와 장치들과 호환이 잘됌. 용도) 일반적인 데스크톱 및 랩톱 컴퓨터용으로 널리 사용. 비즈니스 환경에서도 많이 사용되며, 기업용 응용 프로그램과의 호환성이 뛰어남. 2. macOS 장점) 우아하고 진보된 디자인: macOS는 사용자에게 세련된 디자인과 직관적인 인터페이스를 제공. 안정성과 성능: Apple이 하드웨어와 소프트웨어를 동시에 제어하므로 안정성과 성능이 뛰어남. 개발자 및 디자이너를 위..

운영체제 - 기본

1. 운영체제란? 운영체제는 컴퓨터 시스템을 관리하고 제어하는 소프트웨어. 컴퓨터 하드웨어와 응용 프로그램 사이에서 중재자 역할을 하며, 사용자와 하드웨어 간의 효율적인 소통을 도와준다. 2. 주요 기능 가. 자원 관리 운영체제는 컴퓨터의 자원을 효율적으로 관리한다. 이는 CPU, 메모리, 저장장치, 입출력 장치 등을 포함. 프로그램이 자원을 요청할 때 운영체제는 이를 조절하여 각 프로그램이 원활하게 동작할 수 있도록 지원한다. 나. 프로세스 관리 프로세스는 실행 중인 프로그램을 의미하며, 운영체제는 이러한 프로세스를 생성하고 관리한다. CPU의 할당, 우선순위 결정, 프로세스 간 통신 등을 조절하여 효율적인 작업을 수행한다. 다. 파일 시스템 관리 데이터를 저장하고 검색하기 위한 파일 시스템도 운영체제..

CI/CD Flow - 자동화 배포

1. CI/CD란? CI/CD는 소프트웨어 개발에서의 품질 향상과 속도 향상을 위한 개발 방법론. * Continuous Integration (CI) 개발자들이 작성한 코드를 자동으로 통합하고, 빌드 및 테스트를 수행, 주기적인 빌드와 테스트를 통해 통합 오류를 미리 감지 * Continuous Deployment (CD) 빌드 및 테스트를 통과한 코드를 자동으로 프로덕션 환경에 배포, 지속적으로 안정적인 배포를 실현하며 개발 주기를 단축 2. CI/CD의 이점 1) 가속된 개발 주기 CI/CD를 도입하면 코드 변경이 자주 이루어질수록 더 빠르게 빌드, 테스트, 배포되어 새로운 기능이나 버그 수정이 빠르게 사용자에게 제공. 2)자동화된 품질 보증 자동화된 빌드와 테스트는 품질을 보장하며, 통합 오류를 ..

개발 방법론 - DevOps vs 애자일 vs 워터폴: 비교와 장단점

방법론 비교와 장단점 1. DevOps (Development + Operations) DevOps는 소프트웨어 개발과 IT 운영 간의 협력과 자동화를 강조하는 문화, 철학, 방법론입니다. 개발과 운영 간의 경계를 허물고 지속적인 통합, 배포, 자동화 등을 통해 소프트웨어 제공 과정을 최적화하는 것이 목표. 장점) 빠른 제공: 지속적인 통합과 배포를 통해 빠른 제품 출시 가능. 안정성 향상: 자동화된 테스트와 배포로 안정성을 유지. 단점) 문화 변화 필요: 조직 내에서 협력과 자동화에 대한 새로운 문화를 수용해야 함. 기술적 도전: 기존 시스템과의 통합이나 기술적인 도전에 대한 대응이 필요. 예시) Jenkins, GitLab CI/CD 등의 도구를 활용하여 지속적 통합 및 배포 파이프라인을 구성. In..

Cypress - 테스트 자동화, CI/CD 파이프라인에 통합

Cypress 소개 Cypress는 강력한 엔드 투 엔드(E2E) 테스트 도구로, 사용자 경험을 시뮬레이트하고 테스트하는 데 특히 용이합니다. 다양한 기능과 직관적인 사용자 인터페이스로 프론트엔드 테스트를 쉽게 작성하고 유지보수할 수 있습니다. npm install --save-dev cypress 테스트 작성 // 예시 테스트 파일 (cypress/integration/sample.spec.js) describe('테스트 예제', () => { it('홈페이지 방문', () => { cy.visit('/'); cy.contains('환영합니다!'); // 페이지에 '환영합니다!' 텍스트가 있는지 확인 }); it('로그인', () => { cy.visit('/login'); cy.get('input[n..

반응형