강의 내용 정리(126)
-
오픈소스 SW개발 (3) Git Branch
Git Branch 소프트웨어의 기능을 가지치면서 개발하기 위해 사용한다. 즉, 독립적인 개발을 위해 사용한다. 1. Git의 주요요소 - Snapshot: Commit을 통한 변경 사항 - Tag와 Branch: 특정한 commit을 가리킴 1) SnapShot - Commit을 할 때 작성한 변경 사항을 저장한다. - 내부적으로 트리 형태로 저장되고 blob이라는 형태로 관리된다. - 누가 저장했고, commit할 때 남긴 메세지도 저장한다. - Commit은 부모 자식관계를 가지지고 있어, 이전 Commit을 가리킨다. - 최초 Commit을 제외한 나머지는 모두 부모를 가리킨다. 2) Branch - 레포지터리 생성 시 디폴트 Branch가 생성됨(master) - git hub에서는 main으로..
2022.04.07 -
소프트웨어 공학 (3), 소프트웨어 프로세스 1
소프트웨어 프로세스 0. 기본 개념 1) 소프트웨어 프로세스 - 여러가지 절차가 존재한다. - 소프트웨어를 개발하기 위해선 여러 과정과 액티비티들이 필요한데 이를 정형화해야한다. - 다양한 소프트웨어에 대한 프로세스가 존재하지만 일반적으로 아래의 과정을 거친다. (1) Specification: 요구 사항에 대한 정의하는 단계 - 사용하고자 하는 데이터 모델을 정의하거나 유저 인터페이스 등을 정의하거나 하는 순서를 정의한다. - 코드, 문서, 그림등의 output이 정해져야한다. - 각 프로세스에 대한 역할 정의해야한다. - 각 단계에 대한 선행/후행 단계를 정의하는 과정도 필요하다. (2) Design and Implementation: 소프트웨어의 설계 및 구현하는 단계 (3) Validation: ..
2022.04.06 -
컴퓨터 구조 (3), Sequential Logic Circuits and Design
Sequential Logic Circuits and Design, 순차회로 1. 순차회로란? 과거의 input value를 메모리 형태로 가지고 있어서 해당 값과 현재 input value로 output을 결정하는 회로 1) Cross-Coupled Inverter - 이는 Q를 컨트롤해주는 메카니즘이 필요하다. 2) Storage Elements (1) Latches and Flip-Flops - 매우 빠르고 병렬도 접근 가능하다. - 1비트를 저장하기 위해 10개의 트렌지스터가 필요하기에 비싸다. (2) Static Ram(SRAM) - 래치와 플립플롭보단 느리지만 다른 것들과 비교했을 때 상대적으로 빠르다. - 1비트를 저장하기 위해 6개 이상의 트렌지스터가 필요하기에 상대적으로 비싸다. (3) ..
2022.03.22 -
확률 및 랜덤변수 (3), 순차 확률
순차 확률 1. 순차 확률 1) Tree diagram - 파티션을 이루는 사건들의 실험집합이 순차적으로 존재할 경우 가지를 그려가며 트리 형태로 문제를 해결하는 방법 ex) 2) Sampling (1) Sampling without replacement - 뽑은 것들은 다시 넣지 않기에 중복을 허용하지 않는 추출이라 할 수 있다. - 이는 조합에 해당한다. [조합 공식] 조합 예시 ex) 포커에서 7장을 뽑았는데 Queen이 없을 확률? - 전제: 실험결과가 equally likely S = {s1, s2, .... s} -> 52개 A = {Queen이 7장 안에 없다.} P[A] = 사건 A의 실험 결과의 수 / 전체 S의 실험 결과의 수(전체의 경우의 수) = (48 4) (52 7) [조합에 대..
2022.03.22 -
오픈소스 SW개발 (2) Git basic
Git basic 1. Version control system을 사용하지 않을 때 발생할 수 있는 문제점 1) 혼자서 프로젝트를 진행할 때 발생할 수 있는 문제점 - 파일의 버전을 바꾸고 싶을 때 - 하드디스크가 크러쉬가 일어날 때 등등 ->> 이러한 경우를 방지하기 위해 여러 파일을 만들어야한다. 2) 여러 사람이 프로젝트를 진행할 때 발생할 수 있는 문제점 - 누가 관리할 것인지 - 동시에 동일한 파일을 수정했을 때 어떻게 수정할 것인가 - 잘못 파일을 삭제할 때 어떻게 대응할 것인가 등등 ->> 예전에는 클라우드를 공동으로 사용하거나 이메일을 주고받음 등의 방법을 사용했다. 3) 오픈소스에서 발생하는 문제점 - 어느 누구라도 소스코드를 볼 수 있고, 임의적으로 관리할 수 있기에 이에 대한 관리가 ..
2022.03.18 -
자료구조 (4) ADTs Unsorted List and Sorted List
ADTs Unsorted List and Sorted List 자료구조 멤버변수와 멤버함수로 나눠서 내부적으로 특정한 연산을 통해 어떤 특성을 유지할 수 있도록 하는 것 1. 추상화 자료형 1) ADT 개념 - 구현과의 의존성이 없이 데이터의 특징을 정의하는것이다. - 슈도코드와 같이 문법적인 제한이 없이 흐름도를 통해 표현할 수 있다. - 데이터의 특징: 영역과 연산 2) 데이터의 세가지 레벨 응용 레벨 -> 논리 레벨 -> 구현 레벨 (1) 응용 레벨: 실생활에서 사용할 수 있는 자료의 레벨, 정보가 모여있는 곳 (2) 논리 레벨: 자료의 범위와 연산의 추상적인 관점 (3) 구현 레벨: 자료를 저장하기 위한 구조의 표현명세 및 연산을 위한 코딩 3) ADT 연산자 - 객체를 표현하기 위한 방법론이기에..
2022.03.17