기초 CS 정리36 Agile 애자일 과 스크럼 소프트웨어 개발 기법 중 한가지 애자일 등장 배경 초기 소프트웨어 개발 방법은 계획 중심의 프로세스 90년대 이후 소프트웨어 분야가 넓어지면서 소프트웨어 사용자들이 일반 대중들로 바뀌기 시작하여 트랜드가 급격히 변하는 시대가 되었다. 비즈니스 사이클(제품 수명)이 짧아졌고 SW 개발의 불확실성이 높아지게 되었다. 개발의 불확실성이 높아지면서 옛날의 전통적 개발 방법 적용이 어려워졌고 사람들은 자신만의 SW 개발 방법을 구축하여 사용하게 된다. 그 중 경량 방법론 주의자들은 일반 해보고 고쳐나가는 방식으로 개발하게 되었다. (규칙은 적게, 가볍고 대응을 잘하는 방법을 적용) 애자일이란 협력과 피드백을 자주하고 일찍하고 잘하는 것 협력 소프트웨어를 개발한 사람들 안에서 협력을 의미 스스로 느낀 좋은 통찰은 .. 2023. 2. 15. 클린 코드 / 리팩토링 / 시큐어링 클린코드란 가독성이 높은 코드를 의미 가독성을 높이려면 네이밍 오류가 없어야 중복이 없어야 의존성을 최대한 줄여서 클래스 혹은 메서드가 한가지 일만 처리해야 함 주석 사용 들여쓰기와 줄바꿈 일관성 있고 간결한 패턴 얼마나 코드가 잘 읽히는 지, 코드가 지저분하지 않고 정리된 코드인지 나타내는 것이 클린코드이다. 단순하고 직접적이며 특정 목적을 달성하는 방법은 하나만 제공하고, 간단한 추상화를 고려하는 것이 비결 리팩토링이란, 프로그램의 외부 동작은 그대로 둔 채, 내부의 코드를 정리하면서 개선하는 것 코드의 가독성을 높이고 향후 이루어질 유지보수에 큰 도움이 되는 작업이 리팩토링으로 리팩토링 필요한 코드는? 중복 코드 → 캐싱 긴 메서드 거대한 클래스 Switch문 등의 조건문이 복잡한 경우 → 단순화 .. 2023. 2. 14. 마이크로 서비스 아키텍처 (MSA) MSA란 소프트웨어 개발 기법 중 하나로, 어플리케이션 단위를 목적으로 나누는 것 Monolithic vs MSA MSA가 도입되기 전, Monolithic 아키텍처 방식으로 개발이 이루어졌다. 한 덩어리에 해당하는 구조로 이루어진 Monolithic은 모든 기능을 하나의 어플리케이션에서 비즈니스 로직을 구성하여 운영한다. 따라서 개발을 하거나 환경설정에 있어서 간단한 장점이 있어 작은 사이즈의 프로젝트에서는 유리하지만 시스템이 점점 확장되거나 큰 프로젝트에서는 단점이 존재한다. 빌드/테스트 시간 증가 : 한가지 수정사항이 있어서 시스템 전체를 빌드해야 한다. 즉 유지보수가 힘들다. 작은 문제가 시스템 전체에 문제를 일으켜서 만약 하나의 서비스 부분에 트래픽 문제로 서버가 다운되면 모든 서비스 이용이 불.. 2023. 2. 13. 데브옵스 DevOps 소프트웨어 개발자와 정보기술 전문가 간의 소통 협업 및 통합을 강조하는 개발 환경이나 문화 목적 : 소프트웨어 제품과 서비스를 빠른 시간 안에 개발 및 배포 소프트웨어 제품이나 서비스를 알맞은 시기에 출시하기 위해 개발과 운영이 상호 의존적으로 대응해야 한다는 의미 애자일 기법 실질적인 코딩을 기반으로 일정한 주기에 따라 지속적으로 프로토타입을 형성하고 필요한 요구사항을 파악하며 이에 따라 즉시 수정사항을 적용하여 결과적으로 하나의 큰 소프트웨어를 개발하는 적응형 개발 방법 지속적 통합 통합 작업을 초기부터 계속 수행하여 지속적으로 소프트웨어의 품질 제어를 적용하는 것 2023. 2. 12. 이전 1 2 3 4 5 6 ··· 9 다음