본문 바로가기

프로그래밍

(54)
[Git] Git의 기초 2 - Pro git book, 2nd Edition 정리 2.3. 커밋 히스토리 조회하기 git log : Git의 히스토리를 조회하는 명령어 특별한 아규먼트 없이 git log 명령을 실행하면 저장소의 커밋 히스토리를 시간순으로 보여준다. 즉, 가장 최근의 커밋이 가장 먼저 나온다. 그리고 이어서 각 커밋의 SHA-1 체크섬, 저자 이름, 저자 이메일, 커밋한 날짜, 커밋 메시지를 보여준다. -p, --patch: 각 커밋의 diff를 보여줌 -(정수): 정수개만큼의 결과만 보여줌 --since : 시간을 기준으로 조건에 해당하는 결과만 보여줌. “2008-01-15”나 “2 years 1 day” 같은 다양한 옵션을 지원함 --stat : 각 커밋의 통계 정보를 조회, 어떤 파일이 수정되었는지, 얼마나 많은 파일이 변경되었는지, 얼마나 많은 라인을 추가하거..
[Git] Git의 기초 1 - Pro git book, 2nd Edition 정리 2.1. Git 저장소 만들기 Git을 사용하는 방법을 알고 싶은데 한 챕터밖에 읽을 시간이 없다면 이번 챕터를 읽어야 한다. Git에서 자주 사용하는 명령어는 모두 2장에 등장한다. Git 저장소 만들기 아직 버전관리를 하지 않은 로컬 디렉토리 하나를 선택해서 Git 저장소를 적용하는 방법 다른 어딘가에서 Git 저장소를 Clone 하는 방법 기존 디렉토리를 Git으로 만들기 해당 디렉토리로 가서 명령어를 입력한다. 시스템마다 디렉토리 이동 명령어가 조금 다른 점을 주의하자. $ git init 이 명령은 .git 이라는 하위 디렉토리를 만든다. .git 디렉토리에는 저장소에 필요한 뼈대 파일이 들어 있다. 이 명령만으로는 아직 프로젝트의 어떤 파일도 관리하지 않는다. Git이 파일을 관리하게 하려면 ..
[Git] Git 시작하기 - Pro git book, 2nd Edition 정리 1. 시작하기 1.1. 버전관리란? 이번 장에서는 Git의 탄생 배경, Git을 사용하는 이유, Git을 설정하고 사용하는 방법을 터득할 것이다. 버전관리란? 버전 관리 시스템은 파일 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 꺼내올 수 있는 시스템 소스 코드는 물론 모든 컴퓨터 파일의 버전 관리 가능 프로젝트를 통째로 이전 상태로 되돌릴 수 있고, 시간에 따라 수정 내용을 비교해 볼 수 있고, ㄱ누가 문제를 일으켰는지 추적할 수 있고, 누가 언제 만들어낸 이슈인지도 알 수 있다. 로컬 버전 관리 간단한 방법으로, 버전을 관리하기 위해 디렉토리로 파일을 복사하는 방법 간단하지만, 뭔가 잘못되기 쉽다. 중앙집중식 버전 관리(CVCS) 다른 개발자와 함께 작업해야 하는 경우 생기는 문제를..
[Git] Git Branch 관리 전략 깃으로 협업을 잘 하려면 명령어만 알고 우다다 쓰는게 아니라 브랜치를 어떻게 관리할건지 생각하고 전략을 잘 짜야 합니다. 브랜치 관리 전략에 어떤 상황에서도 사용 가능한 만능 솔루션은 존재하지 않기 때문에, 깃을 사용하는 구성원들이 어떤 상황인지, 프로젝트가 어떻게 구성되는지를 잘 구성하여 브랜치 전략을 세워야 합니다. gitflow 5가지의 브랜치가 존재합니다. 1. master(main): 기준이 되는 브랜치로 제품을 배포하는 브랜치 2. develop: 개발 브랜치로 개발자들이 이 브랜치를 기준으로 각자 작업한 기능들을 Merge 3. feature: 단위 기능을 개발하는 브랜치로 기능 개발이 완료되면 develop 브랜치에 Merge 4. release: 배포를 위해 master 브랜치로 보내기 ..
머신러닝 이미지 어노테이터 툴들 소개 세상을 이끌어가는 기술 인공지능, 기계에게 지능을 부여하는 이 기술을 위해서는 기계를 학습시킬 자료가 필요하다. 예를 들어서 컴퓨터에게 고양이가 무엇인지 가르쳐주기 위해서는, 고양이의 이름과 특징을 연관시키거나 고양이의 이미지를 주고 '이건 고양이다' 와 같이 데이터에 설명을 붙여야 그 데이터를 바탕으로 기계는 학습을 하고 지능을 갖게 될 수 있다. 이렇게 인공지능, AI가 학습을 할 수 있게 데이터를 수집, 가공하는 툴을 어노테이터(Annotator)라고 부른다. (혹은 이러한 데이터 가공작업을 하는 사람을 어노테이터라고 부르기도 한다. 이는 인공지능의 핵심적인 역할이지만 컴퓨터만 있으면 누구나 어디서든 작업할 수 있어서 재택 부업 알바 직업으로도 좋다) 이번 글에서는 이미지 자료를 픽셀단위로 가공하는..
군집 시뮬레이션 - 기본셋팅 군집시뮬레이션 프로젝트를 진행하기 위해 필요한 프로그램들을 정리해보고 가장 기본적인 시뮬레이션을 테스트해보도록 하겠습니다. 먼저 시뮬레이션은 유니티 엔진에서 진행됨으로, 유니티를 설치해보도록 하겠습니다. 유니티는 대부분의 기능을 무료로 사용할 수 있는 2D/3D 엔진 소프트웨어로 게임, 자동차, 영화 및 애니메이션, 건축 및 설계, VR/MR등 다양한 분야에서 사용되고 있습니다. 이번 프로젝트에서는 유니티 최신버전인 2020.2.1f1을 사용해보도록 하겠습니다. 유니티에서는 크게 3가지의 템플릿(렌더 파이프라인)이 존재합니다. 이중에서 3D(Legacy)는 유니티에서 긴 세월동안 기본적으로 제공해주던 셋팅으로 손쉽게 개발을 진행할 수 있습니다. 특히 유니티에서 오랜 세월동안 제공해왔기 때문에 인터넷에 올..
군집 시뮬레이션 - 주제선정 올해 학교 소프트웨어경진대회를 준비할겸 토이프로젝트를 준비하고 있습니다. '개발자는 실력' 이라고 많이들 말하지만, 개발자들의 SNS을 보면 수상경력으로 가득차 있는것이 부럽길래.. 실력증진과 동시에 수상을 목적으로 토이프로젝트를 준비해보기로 마음먹었습니다. 작년 공지를 보면 대회의 작품제출기간이 8월까지로 현재부터 6개월 이상의 시간이 남아있지만, 이번 프로젝트를 나의 2021대표 프로젝트로 만들 생각으로 오랫동안 조금씩 진행해보도록 하겠습니다. 관심있는 분야는 그래픽스 프로그래밍과 GPU를 이용한 최적화와 그래픽 기술입니다. 사용기술은 유니티기반의 C#과 Shaderlab으로 프로젝트를 진행해왔고, 앞으로 DirectX, OpenGL, WebGL과 같은 그래픽 라이브러리와 이를 위한 HLSL, C++..
HTML5 튕기는 공 리메이크(Interactive Developer) Interactive Developer님의 'Creative Coding Tutorial: Ball Collisions and Bouncing with JavaScript'를 리메이크해보았습니다. 변경한 포인트는 총 3가지입니다. 1. 공이 화면 테두리에 부딪히는 조건수정으로 버그방지 2. 블럭이 마우스를 따라가게 변경 3. 시간변화와 공의 위치변화에 따라 공의 색상변경 현재 원본 튜토리얼을 올려주신 분에게 변경한 코드를 올려도 되냐고 물어본 상태입니다! 허락을 받으면 제가 변경한 코드를 공유해보도록 하겠습니다. 원본영상