본문 바로가기

Study-Note32

[소프트웨어공학] 애자일 방법론(Agile Development) 정의고객 요구 변화에 빠르게 대응하고 소프트웨어의 품질을 지속적으로 개선하는 데 강점을 가진 소프트웨어 개발 방법론 애자일 방법론의 핵심 개념- 반복적, 점진적 개발      1. 전체 프로젝트를 여러 개의 작은 반복 주기(Sprint 또는 Iteration)로 나누어 개발      2. 반복적 개발을 통해 프로젝트 초기의 요구사항 변경에도 유연하게 대처- 고객과의 협력      1. 요구사항을 적극적으로 반영, 지속적인 피드백 반영      2. 고객과의 긴밀한 협력으로 최종 제품이 고객의 기대에 부합하게 됨- 적응적 계획      1. 상황에 맞게 유연하게 변경      2. 계획은 각 스프린트 마다 조정, 단기 목표를 설정하여 계획을 세움- 작동하는 소프트웨어      1. 문서화보다 작동하는 소프.. Study-Note/정보처리기사 2024. 10. 23.
[소프트웨어공학] 소프트웨어 생명주기(SDLC) Software Development Life Cycle 정의- 시스템의 요구분석부터 유지보수까지 전 공정을 체계화한 절차- 시스템의 개발부터 유지보수까지의 어떠한 작업이 이루어지는지 단계별로 정리소프트웨어 생명주기 모델 단계- 요구사항 분석 -> 설계 -> 구현 -> 테스트 -> 유지보수  1. 요구사항 분석(Requirement Analysis)-  목적: 사용자의 요구사항을 명확하게 파악하고 분석하여 개발해야 할 소프트웨어의 기능적, 비기능적 요구사항을 정의하는 단계-  주요 활동      1. 이해관계자와의 인터뷰: 고객, 사용자, 비즈니스 전문가 등과 논의하여 소프트웨어가 수행해야 할 기능을 파악      2. 요구사항 수집: 다양한 요구사항(예: 사용자 요구사항, 시스템 요구사항, 비즈니스 요.. Study-Note/정보처리기사 2024. 10. 23.
Lv.2 - 다리를 지나는 트럭 (스택/큐) 안녕하세요. 좋아요요정입니다! 프로그래머스 다리를 지나는 트럭 문제를 풀었습니다 :) 예! Lv.2 - 다리를 지나는 트럭 링크 문제 설명 - 트럭 여러대가 일차선 다리를 정해진 순으로 건넙니다. 모든 트럭이 건너는 최소 시간을 알아내보세요. - 다리는 한방향으로 이동가능하고 먼저 들어온 트럭이 먼저 나갑니다. - 다리는 정해진 무게와 길이가 있습니다. 무게=총 올라갈 수 있는 트럭의 무게이고, 길이는 총 올라갈 수 있는 트럭의 수입니다. 입력값 - bridge_length : 다리의 이동거리(and 최대 올러갈 수 있는 트럭의 수) - weight : 다리가 견딜 수 있는 총 무게 - truck_weights : 다리를 건너려는 트럭 무게의 배열 제한 조건 bridge_length, weight, tr.. Study-Note/프로그래머스 2022. 3. 13.
Lv.2 - 기능개발 (스택/큐) 안녕하세요! 좋아요요정입니다 🙌 지난주 강의에선 양방향 링크드리스트와 스택 & 큐를 진행했습니다. 그 중 큐와 관련된 프로그래머스 숙제를 작성해봅니다! 문제 요약 - 프로그래머스 팀에서 기능 개선 작업을 수행 중. - 각 기능은 진도가 100%일 때 서비스에 반영. - 선입 선출의 구조로 뒤의 기능이 개발이 완료되어도 대기. 앞의 기능이 완료되었을 때 완료된 기능들이 함께 배포됨 제한 사항 - 작업의 개수는 100개 이하 - 작업 진도는 100 미만의 자연수 - 작업 속도는 100 이하의 자연수 - 배포는 하루에 한 번만 가능 입출력 예 progresses speeds return [93, 30, 55] [1, 30, 5] [2, 1] [95, 90, 99, 99, 80, 99] [1, 1, 1, 1, .. Study-Note/프로그래머스 2022. 3. 2.
Lv.1 - 완주하지 못한 선수 (해시) 안녕하세요. 좋아요요정입니다! 스터디에서 자료구조를 시작했습니다 예~~ 🙌 숙제로 프로그래머스를 시작합니다. Lv.1. 완주하지 못한 선수 문제 요약 수많은 마라톤 선수들이 마라톤에 참여. 단 한명의 선수를 제외하고는 완주. 마라톤에 참여한 선수들의 이름이 담긴 배열과 완주한 선수들의 배열이 주어졌을 때 완주하지 못한 단 한명의 선수를 반환하는 함수를 작성. 제한 사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동명이인이 있을 수 있습니다. 입출력 예 participant completion return ["l.. Study-Note/프로그래머스 2022. 2. 17.
19. 클로저. 반환된 함수와 그 함수가 선언됐을 때의 렉시컬 환경과의 조합! 안녕하세요. 좋아요요정입니다. 오늘은 클로져에 대해서 알아보겠습니다. 사실 저는 제가 작성하는 코드에 클로저를 사용하지 않는다고 생각하고 있었습니다. 이름은 알지만 낯설고 사용해보지 않았다고 생각했었는데 글쎄 리액트의 Hooks이.. 클로저의 특성이라고 합니다!(두둔) const [count, setCount] = useState(0); 리액트의 함수형 컴포넌트 훅에서는 usdState()를 통해 state를 선언하고, state와 함께 선언되어지는 setCount라는 함수를 호출해 count의 상태를 관리할 수 있습니다. '클로저를 사용해봤다'라고 생각하니, 클로저가 조금 친숙해지네요. 클로저 클로저는 함수와 함수가 선언된 어휘적 환경의 조합이라고 합니다. "함수가 선언된 어휘적 환경"을 이해하기 위해.. Study-Note/JavaScript 2022. 2. 9.
18. 자바스크립트의 Strict mode 안녕하세요. 좋아요요정입니다. 오늘은 자바스크립트의 strict mode에 대해 알아보겠습니다. Strict mode 자바스크립트는 구현되는 환경에 따라 this가 객체인스턴스, 윈도우, 생성되는 객체, 호출되는 객체 등으로 변경이 되고, var, const let 키워드에 따라 다르게 적용되는 스코프, 그리고 함수 호이스팅, 전역변수의 호이스팅, 심지어 var는 같은 변수명이어도 에러가 나지 않는 모습을 보입니다. 자바스크립트의 이런 특징으로 인해 어디서 오류가 발생했는지 파악까지 오랜 시간이 걸리는 경우도 있습니다. 자바스크립트는 잠재적인 오류가 발생하기 어려운 환경을 제공해주기 위해 자체적으로 strict mode를 제공합니다. strict mode 1. strict mode를 적용하면 기존에 조용.. Study-Note/JavaScript 2022. 2. 4.
17. 자바스크립트의 클래스는 "특별한 함수"이다.(선언부터 상속까지) 안녕하세요. 좋아요요정입니다. 자바스크립트는 ES6에서 클래스 기반 언어들과 비슷하게 객체를 생성하는 "클래스"가 추가되었습니다. 프로토타입 객체지향 프로그래밍의 자바스크립트에서는 기존 생성자함수를 이용해 객체를 생성했었는데 클래스가 추가된 이유는 무엇일까요? 그리고 클래스 사용법이 어떠한지 함께 살펴보겠습니다. 클래스 클래스는 객체를 생성하기 위한 탬플릿입니다. 붕어빵을 찍어내는 틀 = 클래스, 붕어빵 = 객체라는 예시가 유명합니다. 자바스크립트는 프로토타입 기반의 객체지향 패러다임을 제공하는 언어입니다. 클래스가 도입되기 이전의 자바스크립트는 프로토타입을 사용하기 때문에 클래스 키워드가 없이도 생성자함수, prototype을 이용해 객체지향에서 사용하는 상속기능을 구현할 수 있습니다. 자바스크립트의 .. Study-Note/JavaScript 2022. 1. 29.
15. 프로토타입 3탄 - 프로토타입 교체, 정적 프로퍼티 메서드, instance of [프로토타입 연장되는 내용입니다.] 1. 13. 프로토타입 기반 객체지향 프로그래밍 이해하기 2. 14. 프로토타입 2탄 - 메소드 오버라이딩, 오버로딩, 섀도잉 "프로토타입 교체를 통해 객체간의 상속관계를 동적으로 변경하는 번거로울 뿐만 아니라 안전하지 않기 때문에 추천하지 않습니다. 따라서 직접 상속을 하거나, es6에 도입된 클래스문을 활용해 훨씬 쉽고 직관적인 상속을 구현하는걸 지향합시다." 프로토타입의 교체 생성자함수와 함께 생성되는 .prototype 프로퍼티는 개발자에 의해 임의의 다른 객체로 변경될 수 있습니다. 이러한 특징을 활용해서 객체간의 상속 관계를 동적으로 변경할 수 있습니다. 예시를 보겠습니다. function Person(name) { this.name = name; } Pe.. Study-Note/JavaScript 2022. 1. 20.