본문 바로가기

컴퓨터공학개론10

VCS 프로젝트 브랜치 전략 서론   한 프로그램을 만드는 데 많은 사람들이 투입된다. 그중 코딩은 서로 얽히고 얽혀 개발 과정이 매우 복잡한 형태가 된다. 아무 전략을 세우지 않고 하다 보면 아무리 서로에게 보고를 잘하다 한들 그 프로젝트는 개발 기간이 길어지거나 매우 높은 확률로 망하게 된다. 그러기 위해 우리는 브랜치 전략을 세운다. 많은 브랜치 전략 중 GitFlow와 trunk-based를 살펴보자.GitFlow     Gitflow는 Git을 사용하는 소프트웨어 개발에서 브랜치를 관리하기 위한 워크플로우이다. 프로젝트를 체계적으로 관리하고 팀 간 협업을 쉽게 하기 위해 고안되었다. Gitflow의 기본적인 브랜치 모델과 작업 흐름은 다음과 같다. 브랜치 모델Main 브랜치(Master)항상 배포 가능한 상태를 유지안정적인.. 2024. 7. 14.
AI를 배우기 전 행렬 이론 기초 서론 AI를 배우는 데 많은 수학적 이론을 알아둬야 한다. 그 중 다른 타 수학 이론과 달리 행렬은 대한민국 교육과정에서 빠져 행렬을 정리해보았다. 벡터란? 여태까지 사용한 숫자는 스칼라이다. 스칼라 (scalar)란 차원(dimension)이 없는 숫자를 의미한다. 반면 벡터 (vector)란 개의 숫자 모음 ( 차원 벡터), "크기" 와 "방향" 이 같으면, 같은 벡터를 의미한다. 여기서 나오는 법칙이 바로 벡터의 동등성 원칙이다. 두 벡터가 같다면 벡터의 크기가 같고, 방향이 같음을 의미한다. 벡터가 왜 인공지능에서 중요하냐면 학습하는 데이터 "상대적"인 위치가 크기보다 더 중요하기 때문이다. 벡터 연산 벡터의 연산은 아래와 같이 이루어진다. 벡터 내적 벡터 내적은 두 벡터 간에 대응하는 성분들을 .. 2024. 3. 14.
R 1. R 들어가기 앞서 서론 R은 통계 분석 및 데이터 시각화를 위한 프로그래밍 언어 및 환경이다. R은 오픈 소스로 개발되어 있으며, 특히 통계학자, 데이터 분석가, 연구자 및 데이터 과학자들 사이에서 널리 사용되고 있다. R 소개 특징 장점 풍부한 패키지 생태계: CRAN을 비롯한 패키지 생태계가 풍부하며, 다양한 분야에서 사용할 수 있는 패키지들이 제공된다. 이는 R을 다양한 분야의 문제에 대응할 수 있도록 확장 가능하게 만든다. 통계 및 그래픽 기능: R은 통계 분석 및 데이터 시각화에 강점이 있다. 다양한 통계적 기법과 그래픽 기능을 활용하여 데이터를 분석하고 시각화하는 데에 매우 효과적이다. 커뮤니티 지원: R은 활발한 사용자 및 개발자 커뮤니티를 가지고 있어서 다양한 문제에 대한 도움말과 자료를 얻을 수 있다. 데.. 2024. 1. 23.
기계 학습 1.기본 개념 서론 머신 러닝(Machine Learning)은 데이터로부터 학습하는 컴퓨터 과학의 한 분야이다. 최근에 AI가 많은 관심을 받고 있다. 이 기술은 최근에 만들어진 개념이 아니라, 과거부터 존재했던 개념이다. Arthur Samuel(1959)은 "머신 러닝은 컴퓨터가 데이터로부터 학습할 수 있도록 프로그래밍하는 과학"이라고 정의했다. Tom Mitchell(1997)은 "머신 러닝은 컴퓨터에게 명시적으로 프로그래밍하지 않고도 학습할 수 있는 능력을 부여하는 연구 분야"라고 설명했다. 이렇듯 과거에서도 많은 연구가 있었고 현재에 와서 다양한 실용성을 가진 인공지능이 등장했기에 각광을 받는 것이다. 머신 러닝(Machine Learning, 기계학습) 핵심 개념 머신 러닝의 핵심 개념 중 하나는 경험(E.. 2023. 9. 13.
컴퓨터 네트워크 1. 개요 서론 데이터 통신과 네트워크는 현대 사회에서 핵심적인 역할을 담당하는 분야로, 정보를 주고받고 기기들이 상호 연결되는 기반을 제공한다. 이는 컴퓨터 및 기타 디지털 기기들이 서로 통신하고 데이터를 교환할 수 있는 방법을 제공하며, 인터넷을 비롯한 다양한 네트워크 시스템을 구축하는 핵심 개념들을 포함한다. 데이터 통신과 네트워크는 정보의 전송 속도와 신뢰성, 보안 등을 고려하여 데이터의 원활한 이동을 보장하고, 다양한 서비스 및 애플리케이션들을 지원한다. 이를 위해 프로토콜, 라우팅, 스위칭 등 다양한 기술과 방법이 사용되며, 전세계적인 컴퓨터 네트워크의 발전은 현대 사회의 정보화와 글로벌 커뮤니케이션의 핵심 요소로 인식되고 있다. 데이터 통신 데이터(data)는 데이터를 만들어 사용하는 사용자 간에 합의.. 2023. 6. 24.
C# 네이밍 서론 C# 코딩 컨벤션(C# coding Conventions)은 C# 코드를 작성할 때 사용되는 규칙과 가이드라인의 모음이다. 이러한 컨벤션은 코드의 가독성과 일관성을 유지하고 협업 시에도 작성자 간에 일관된 스타일을 유지하기 위해 사용된다. 일반적으로 Microsoft에서 제공하는 C# 코딩 컨벤션을 따르는 것이 일반적이지만, 팀 또는 프로젝트에서 독자적인 컨벤션을 사용하기도 한다. 변수 이름 짓기의 종류 변수 이름을 짓는 방법은 다양하나 대표적으로 아래와 같은 표기법이 존재한다. 여기서 C#은 주로 카멜 표기법과 파스칼 표기법을 사용한다. 카멜 표기법(Camel Case) 각 단어의 첫 글자를 대문자로 표기하되 첫 단어의 첫 글자는 소문자로 표기하는 방식이다. Java, C#, JS에서 많이 사용된.. 2023. 6. 12.
OS 1.기본개념 서론 운영체제는 우리가 흔히 말하는 windows, mac, ios, android 등과 "사물 인터넷"을 포함하는 자동차와 홈기기 및 클라우드 컴퓨팅 환경까지 널리 사용되고 있다. 이런 운영체제들의 근본적인 직책은 하드웨어의 자원들을 프로그램에 할당하는 것이다. 그렇기에 운영체제를 이해하기 위해서는 컴퓨터 하드웨어의 구조와 구성을 이해하는 것이 중요하다. 운영체제 정의 컴퓨터 시스템 구성 운영체제에 들어가기에 앞서 컴퓨터 시스템에 대해 알아보자. 컴퓨터 시스템에는 사용자, 응용프로그램, 운영체제, 하드웨어로 구성되어 있다.(구성요소) 하드웨어는 중앙 처리 장치(CPU), 메모리 및 입출력(I/O) 장치로 구성되어 있다. 운영체제 정의 일반적으로 운영체제에 대한 적합한 정의는 없다. 운영체제는 유용한 컴.. 2023. 4. 2.
12.기타 서론 앞에 글들에서 빠진 글에 넣기 애매했던 파이썬에 대한 내용들을 이곳에 정리하였으니 참고 바란다. 지수 표현 파이썬에서 지수 표현하기 위해 "e(E)"를 사용한다. "e"는 "10^"을 의미한다. 예를 들어 3141592e-6은 3.141592을 의미한다. 지수 표현을 지워 사용학고 싶으면 보통 pandas나 numpy를 이용한다. % %는 파이썬에서 문자열 포메팅(string formatting)에서도 사용된다. 문자열 포메팅이란 출력하는 문자열의 특정 위치에 특정한 값(변수)을 삽입하여 출력하는 것을 의미한다. 다음처럼 사용할 수 있습니다. % 기호 뒤에는 자료형을 가리키는 문자를 쓴다. (%s:문자열, %d: 정수, %f: 실수, %o: 8진수, %x: 16진수, %%: 문자 % 표현) :, -.. 2023. 3. 20.
강화 학습 1.기본 개념 서론 강화학습은 머신러닝과 다른 길로 발전을 하다, AI라는 큰 분야로 통합이 되면서 합쳐진 분야이다. 그렇기에 대충 이야기할 때는 머신러닝이 강화학습의 일부분처럼 말한다.(물론 머신러닝은 데이터에 대한 모델 교육을 위한 다양한 기술을 포함하는 광범위한 분야이며 강화 학습은 이러한 기술 중 하나입니다.) 하지만 실제 공부를 하게 되면 따로따로 공부하게 된다. 머신러닝의 대부분의 분야와 차이가 있기에 무엇을 우선 공부해도 상관은 없지만 보통은 머신러닝을 먼저 공부를 한다. 머신러닝(기계학습, Machine Learning, ML) 머신러닝이란 데이터에서 자동으로 프로그램 학습하는 프로그램이다. ML 알고리즘은 샘플 데이터를 기반으로 예제를 일반화하여 중요한 작업을 수행하는 방법을 파악하여 수학적 모델을 구.. 2023. 3. 11.
반응형