본문 바로가기

전공 깍두기

(17)
[OSS] Open-source Management | Github Usage 1. Open-source Community & Management1) Github- 코드 생산, 저장, 관리, 공유할 수 있게 해주는 개발자 플랫폼- 분산 버전 제어, 버그 추적, 소프트웨어 기능 요청, 업무 관리, 지속적 통합 관리를 제공하는 Git 소프트웨어를 사용함- 캘리포니아에 본사를 두고 있음. 마이크로 소프트웨어의 자회사.  2. Starting Github1) 목적- 참여자에게 Github와 그 응용프로그램에 대한 포괄적인 이해를 제공한다.- 참여자에게 버전 제어를 위해 Github를 활용하는 데 필요한 기술을 갖추게 하고, 협업 및 프로젝트를 관리한다.  2) Git 기반의 SW Management Technology- 컴퓨터 파일 집합의 변화를 추적하는 분산 ..
[OSS] Introduction of Anaconda Platform | Programming 1. Examples in Open-source SW(OSS)1) Linux (1) Linux에 관하여- 리눅스는 가장 많이 알려져있고 가장 널리 쓰이고 있는 오픈소스 운영체제이다.- 운영 체제로서 리눅스는 컴퓨터의 다른 모든 소프트웨어 아래에 있는 소프트웨어로, 이러한 프로그램으로부터 요청을 받고 이러한 요청을 컴퓨터의 하드웨어로 전달합니다. (= 운영체제는 하드웨어와 소프트웨어 사이 인터페이스 역할을 함) (2) Unix와 Linux의 차이점- Unix는 Bell 연구실에서 Ken Thompson, Dennis Ritchie 일동에 의해 1970년대에 개발된 운영체제이다.- Unix와 Linux는 많은 방면에서 비슷하지만, 사실 Linux는 Unix와 구별할 수 없도록 만들어졌다.- ..
[OSS] Introduction of Open-Source Software | Programming * 핵심 역량 정의1) 오픈 소스 소프트웨어 개념 및 생태계 이해2) 다양한 오픈소스 소프트웨어 이해3) 오픈소스 관리도구 및 커뮤니티에 대한 경험4) 오픈 소스 기반 기초 개발 능력   1. Open-source1) 정의 ⭐- 사람들이 수정하고 공유할 수 있는 것(디자인은 공개적으로 접근 가능)- 물리적 형태나 구조도 가능- 컴퓨터 시스템 속 소프트웨어로 생각해보자면, 사람들이 수정하고 공유할 수 있는 소프트웨어를 의미함(Open Source Sowftware) 2) Open Source Software(OSS)⭐- 사람들이 수정하고 공유할 수 있는 소프트웨어를 의미 3) 오픈소스 소프트웨어의 역사(0)- Free Software Foundation의 Richard Sta..
[데이터 구조] 퀴즈 정답 및 해설 | 1~13차시 [ 2차시 ] 정답: 구현 정답: 4번 설계 해설: 설계 단계의 핵심 단어는 '알고리즘'이다. 정답: 2번 구현 레벨 해설: Abstract(추상화)는 구현과 거리가 멀다 정담: 2번 ADL 변환기 정답: 3번 해설: 특정 Programming 언어로 작성되어 있지 않다. 이건 목적이다. 정답: 2번 해설: x
[데이터 구조] 13차시 스택(Stack) | 추상 데이터 타입(ADT), 순차 표현, 연결 표현, 복수 스택, C 구현 모듈 1. 스택 ADT와 순차 표현 1. 스택 추상 데이터 타입 1) 스택(Stack)이란? "쌓아 놓은 더미" - 정의: 삽입과 삭제가 한쪽 끝, top에서만 이루어지는 유한 순서(순서가 중요한) 리스트 - finite ordered list 2) 스택의 특징 - 후입선출(LIFO:Last-In First-Out, FILO: First-In Last-Out 구조) 리스트 특징: 가장 최근에 들어온 데이터가 가장 먼저 나감 기능: 삽입(push), 삭제(pop) 별명: 스택을 pushdown 리스트라고도 함 3) 스택 기본 연산 - push(): 스택에 데이터를 추가 - pop(): 스택에서 데이터를 삭제 - create(): 빈 스택을 생성 - is_empty(s): 스택이 공백 상태인지 검사 - is..
[데이터 구조] 12차시 헤더 노드와 다항식의 리스트 표현 | 덧셈 1. 헤더 노드 1) 기존 연결 리스트 처리 알고리즘 - 문제점: 첫 번째 노드나 마지막 노드, 그리고 리스트가 공백인 경우에 따라 처리 방법이 각기 달라, 서로 예외적인 경우로 처리해야 함 2) 헤더 노드(header node)를 추가하는 방법 - 상기 문제가 되는 예외 경우를 가급적 제거하고, 코드를 간단하게 하기 위한 해결책으로 사용 가능 - 헤더 노드에는 리스트를 처리하는데 1️⃣필요한 포인터나 2️⃣통계 정보를 미리 저장 리스트의 첫 번째 노드를 가리키는 포인터 리스트의 길이 마지막 노드를 가리키는 포인터 등의 필요 정보 ⭐헤더 노드의 구조가 리스트의 노드 구조와 달라도 문제 없음 3) 헤더 노드를 가진 연결 리스트의 정의 typedef struct listNode { /*리스트 노드 구조*/ ..
[데이터 구조] 11차시 연결 데이터 표현 | 자유 공간 리스트, 원형 연결 리스트, 이중 연결 리스트 모듈1. 자유 공간 리스트 1) 메모리의 획득과 반납 방법 (1) 연결 리스트가 필요로 하는 두 가지 연산 [방법 1] : 데이터 필드와 링크 필드를 가진 하나의 공백 노드를 획득하는 방법 (프로그램 수행 중, 즉석에서 필요한 메모리를 OS에서 malloc()하는 방식) [방법 2] : 사용하지 않는 노드는 다시 반납하여 재사용하는 방법 (미리 malloc()하여 free space list를 만든 후, 여기서 할당/회수하는 방식) (2) [방법 2] 자유 공간 리스트(free space list)를 만들어 놓은 경우 - OS와 분리를 해보자! 추가로 우리가 만들어야 하는 함수1 : getNode() - malloc() 대응 : 데이터와 링크 필드로 되어 있는 새로운 공백 노드를 free space li..
[데이터 구조] 10차시 연결 데이터 표현 | 단순 연결 리스트 (2) 1. 단순 연결 리스트의 구체적 구현(C Implementation) 1) 리스트 생성 알고리즘 2) 원소를 첫 번째 노드로 삽입 3) 노드의 삽입 - 주어진 리스트 L에서 원소 값이 x인 노드를 p가 가리키는 노드 다음에 삽입 - 코드로도 확인해보자 insertNode(L, p, x) // 리스트 L에서, p 노드 다음에 원소 x를 삽입 // p가 null인 경우는, 현재 pointing하는 노드가 없는 경우임 newNode