분류 전체보기

    1과목 SW설계 : XP(eXtreme Programming)기법

    1. XP의 핵심 가치 - 용기(Courage) - 단순성(SImplicity) - 의사소통(Communication) - 피드백(Feedback) - 존중(Respect) *용단의피존 2. XP의 기본 원리 - Whole Team(전체 팀) - Small Releases(소규모 릴리즈) - Test-Driven Debelopment(테스트 주도 개발) - Continuous Intergration(계속적인 통합) - Collective Ownership(공동 소유권) - Pair Programming(짝 프로그래밍) - Design Improvement(디자인 개선) 또는 Refactoring(리팩토링) *전소태 계공짝디

    1과목 SW설계 : 스크럼(Scrum) 기법

    - 팀원 스스로가 스크럼 팀 구성 - 개발 작업에 관한 모든 것을 스스로 해결해야 함 - 스프린트는 2~4주 정도의 기간으로 진행 1) 제품 책임자(PO: Product Owner) - 요구사항이 담긴 백로그(Backlog)를 작성하는 주체 - 백로그에 대한 우선순위를 지정, 이해관계자들의 의견을 종합 2) 스크럼 마스터(SM: Scrum Master) - 일일 스크럼 회의 주관 - 팀원들을 통제하는 것이 목표가 아님 3) 개발팀(DT: Development Team) - 제품 책임자와 스크럼 마스터를 제외한 모든 팀원 - 최대 인원 7~8명 4) 스크럼 개발 프로세스 - 스프린트 계획 회의 -> 스프린트 -> 일일 스크럼 -> 스크럼 검토 회의 -> 스프린트 회고 *계스일검회

    1과목 SW설계 : 소프트웨어 생명 주기, SDLC(Software Development Life Cycle)

    1. 폭포수 모형(Waterfall Model) - 가장 오래되고 가장 폭넓게 사용된 고전적 생명 주기 모형 - 한 단계가 끝나야만 다음 단계로 넘어가는 선형 순차적 모형 - 단계별 정의 및 산출물이 명확 - 개발 중간에 요구사항의 변경이 용이하지 않음 - 타당성 검토 -> 계획 -> 요구분석 -> 설계 -> 구현(코딩) -> 테스트(검사) -> 유지보수 *분설구테유 2. 프로토타입 모형(Prototype Model, 원형 모형) - 견본(시제)품을 만들어 최종 결과물을 예측하는 모형 - 인터페이스 중점을 두어 개발 - 개발 중간에 요구사항의 변경이 용이 3. 나선형 모형(Spiral Model, 점진적 모형) - 폭포수 모형과 프로토타입 모형의 장점에 위험 분석 기능을 추가한 모형 - 점진적 개발 과정..

    알고리즘 - 최소 편집 거리(Minimum Edit Distance)

    문자열 S를 다른 문자열 T로 변환하고자 할 때 필요한 최소의 편집 연산 횟수를 구하는 문제. 1회의 연산에는 삽입(insert), 삭제(delete), 대체(substitute)중 한 가지만 할 수 있다. 문자열 S = strong 문자열 T = stone S를 T로 변환하기 위해서는 총 4회의 편집 연산이 필요하다. s t r o n g s t o n e 1. o 삽입 2. r 삭제 3. o 삭제 4. g -> e 대체 총 4회의 편집 연산이 필요하다.

    알고리즘 - 플로이드 와샬 알고리즘(Floyd Warshall Algorithm)

    다익스트라 알고리즘 하나의 정점에서 출발했을 때 다른 모든 정점으로의 최던 경로를 구하는 알고리즘. 가장 적은 비용을 하나씩 선택을 해서 그 노드의 인접한 노드로 가는 길을 하나씩 계산해서 푼다. 1에서 3으로 가는 비용이 바로가는것보다 2을 거쳐간다면 거쳐가는 만큼의 비용으로 1에서 3으로 가는 비용을 수정한다. 플로이드 와샬 알고리즘 모든 정점에서 모든 정점으로의 최단 경로를 구하는 알고리즘 거쳐가는 정점을 기준으로 한다. 아예 반복문의 중심에 거쳐가는 노드가 있다. 에초에 거쳐가는 노드를 하나씩 설정해서 확인한다. 그래프가 있을 경우 2차원 배열의 형태로 유지한다. 1번 2번 3번 4번 1번 0 7 무한 무한 2번 5 0 9 6 3번 2 무한 0 4 4번 무한 무한 3 0 왼쪽 번호에서 상단 번호로..

    운영체제(OS) - 데드락(Deadlock)

    Deadlock - 어떤 프로세스 집단 내의 각 프로세스가 그 집단 내의 또 다른 프로세스에 의해서만 발생할 수 있는 이벤트를 기다리고 있으면, 그 프로세스 집단은 deadlock상태에 있다. 이 그림처럼 차량이 또다른 차량의 앞을 막고, 또 그 차량이 또 다른 차량의 앞을 막아 아무도 빠져나갈 수 없는 상태가 되었을 때 Deadlock상태라고 할 수 있다. 프로세스가 후진을 할 일은 없기 때문에 deadlock이 발생하면 손해없이 복구할 수 없다, deadlock에 관련된 프로세스중 누군가는 rollback또는 사라져야 한다. 위의 사진에서도 차량중 한 개의 차량만 사라져도 Deadlock은 풀리게 된다. Deadlock 발생 4가지 필요조건 1. 상호 배제(mutual exclution) - 각 자원..

    운영체제(OS) - Segmentation

    세그먼트 - 완전히 독립적인 주소 공간이다. - 각 세그먼트는 0부터 시그템에서 허용된 최대 크기까지 값을 갖는 선형 주소로 구성된다. 세그먼트는 서로 다른 크기이다.(page는 모두 동일한 크기) 세그먼트 크기 는 다른 세그먼트에 영향을 주지 않으면서 독립적으로 증가하거나 감소할 수 있다. 조건 페이징(paging) 세그멘테이션(segmentation) 프로그래머는 어떤 기술이 사용되고 있는지 알고 있어야 하는가? no yes 주소 공간의 크기의 종류가 몇개나 있는가 1 many 총 주소공간의 크기가 실제 메모리의 크기보다 클 수 있는가 yes yes 절차와 데이터를 구분하고 보호할 수 있는가? no yes 공간의 크기를 쉽게 변경할 수 있는가? no yes 사용자와의 절차 공유를 하게 되는가 ? no..

    알고리즘 - 모든 쌍 최단 경로 문제(All Pairs Shortest Paths)

    각 쌍의 점 사이의 최단 경로를 찾는 문제 다익스트라의 최단 경로 알고리즘 - 한 정점에서 모든 정점으로의 최단경로를 구함 - 각 점을 시작점으로 정하여 다익스트라 알고리즘 수행 - 시간 복잡도는 O(n^3) - 가장 적은 비용의 정점을 기준으로 하나씩 선택해 가며 구해냄. 플로이드-워샬(Floyd_Warshall) 알고리즘 - 모든 정점에서 모든 정점으로의 최단 경로를 구함. - 거쳐가는 정점을 기준으로 알고리즘 수행

    알고리즘 - 동적 계획 알고리즘(Dynamic Programming)

    Dynamic Programming(DP) 동적 계획 알고리즘은 그리디 알고리즘과 같이 최적화 문제를 해결하는 알고리즘이다. - 입력 크기가 작은 부분 문제들을 해결한 후, 그 해를 이용하여 큰 크기의 부분 문제들을 해결... - 최종적으로 주어진 입력의 문제를 해결 - 작은 부분 문제의 해가 보다 큰 부분 문제를 해결하는데 사용되는 관계가 있다. 각 단계의 부분문제의 답을 기반으로 전체 문제의 답을 구하는 방법

    알고리즘 - 작업 스케줄링 알고리즘(JobScheduling)

    작업의 수행 시간이 중복되지 않도록 모든 작업을 가장 적은 수의 기계에 배정하는 문제 대학 수업에서 강의실을 배정하는 문제와 같다. 강의실 = "기계" 강의 = "작업" 주어진 요소 - 작업의 수 - 각 작업의 시작시간과 종료시간 - 작업의 길이 알고리즘 다음과 같은 그리디 알고리즘이 존재한다. - 빠른 시작시간 작업 우선(Earliest start time first)배정 - 빠른 종료시간 작업 우선(Earliest finish time first)배정 - 짧은 작업 우선(Shortest job first)배정 - 긴 작업 우선(Longest job first)배정 위 4가지중 첫 번째 알고리즘을 제외하고 나머지 3가지는 항상 최적해를 찾지 못한다. 빠른 시작시간 작업 우선(Earliest start ..