달력

92024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

GIT - 버전관리 활용 log, diff


버전관리(git) 의 기능

  1. 버전 차이점
  2. 버전의 시점
  3. 과거 버전으로 돌아갈 수 있음


$ git log

 - 지금까지의 버전 히스토리를 확인 할 수 있습니다.



$ git log -p

 - 각각의 커밋과 커밋사이의 소스의 차이점을 확인 할 수 있습니다.


위 사진에서 에서 

--- a/f1.txt 이것의 의미는 f1.txt 파일의 이전 커밋된 버전 정보

+++ b/f1.txt 의 의미는 f1.txt 파일의 다음 커밋된 버전 정보 이며


빨간색 글씨로 표시된 

-souce : 2 가 전 버전의 소스 내용 이고

+souce : 3 이 다음 버전의 소스 내용이라는 것을 알려줍니다.


이렇게 버전 간의 차이점을 출력하고 알아볼 수 있습니다.


이번의 위 사진에서는 

--- /dev/null 이라고 출력되어져 있는데 이것의 의미는 이전 버전이 비어있다 없다라는 의미이며

즉 이지점에서 f1.txt 파일을 처음 만들어 커밋한 것으로 알 수 있습니다.



$ git diff (버전ID 1)..(버전ID 2)

 - 버전1 버전2 간의 차이점을 출력하여 비교 할 수 있습니다.


여기서 버전 아이디는 git log 를 통해 출력된 노란색 글씨의 commit 다음의 길게 씌여진 글이 해당 버전의 고유 ID 입니다.


※ 참고 : 복사, 붙여넣기는 Ctrl+Ins (복사)   /   Shift+Ins(붙여넣기)  로 가능 합니다.


$ git diff

 - 마지막 버전의 파일 소스와 git add 직전의 수정된 파일 간의 차이를 출력하여 비교 할 수 있습니다.




참고 자료 

지옥에서 온 Git - 생활 코딩

URL - https://opentutorials.org/course/2708/15209

Posted by JakeGD
|

GIT - Stage Area ( 스테이지 에리어 )



Stage area

  1. git add 명령어를 통해 추가된 파일들이 모여있는 곳
  2. git add 을 하면 Stage Area에 올라가게 된다. 
  3. 또는 커밋 대기 상태 공간



참고 자료 

지옥에서 온 Git - 생활 코딩

URL - https://opentutorials.org/course/2708/15203

Posted by JakeGD
|

Git - Commit ( 커밋 )


먼저 버전에 대해 만든 사람의 정보를 설정 합니다.

해당 정보는 ~/.gitconfig 파일에 저장이 되며 1번 설정해 주시면 됩니다.


$ git config --global user.name ( 닉네임 / 이름 )

$ git config --global user.email ( 이메일 주소 )


이전에 만들었던 f1.txt 파일을 커밋 하도록 하겠습니다.



$ git add f1.txt

f1.txt 파일을 git add 명령어를 통해 추가를 합니다.




$ git commit

명령어 입력시 위 사진과 같이 커밋 메세지 작성 화면이 나타 납니다.

여기에 i를 눌러 커서 활성화 후 커밋 메세지를 입력 후 ( 저같은 경우 3이라고 입력 했습니다. ) 

ESC -> 세미콜론(:) -> wq입력 -> 엔터 

하면 커밋이 완료 되었습니다. 


위와 같이 진행 후 커밋이 완료가 되면 git log 명령어로 확인이 가능 합니다.


$ git log

위 사진과 같이 커밋된 로그가 확인이 됩니다.




참고 자료 

지옥에서 온 Git - 생활 코딩

URL - https://opentutorials.org/course/2708/15202

Posted by JakeGD
|

버전관리대상 파일 Git에 등록하기



파일 등록에 앞서 등록할 파일이 있는 디렉토리에 cd 명령어를 통해 접근 합니다.


$ cd Documents/GitProject

작업 전사 전에 해당 디렉토리에 f1.txt 라는 파일은 만들어 두었습니다.


git status 통해 git 작업 트리 상태를 확인합니다.



$ git status


위 사진 처럼 f1.txt 은 .git이 들어있는 디렉토리에서 아직 commits (커밋) 되지 않은 파일을 뜻하며 이를 git add 명령어를 통해 등록 할 수 있습니다. 



$ git add f1.txt

위 코드처럼 f1.txt 파일을 git add 명령어를 등록 후 다시 아래 사진 처럼 git status 명령어로 등록이 되었는지 확인 가능 합니다.





참고 자료 

지옥에서 온 Git - 생활 코딩

URL - https://opentutorials.org/course/2708/15172

'GIT ( 버전관리 프로그램 )' 카테고리의 다른 글

GIT - 버전관리 활용 log, diff  (0) 2019.03.06
GIT - Stage area (스테이지 에리어)  (0) 2019.03.06
Git - Commit ( 커밋 )  (0) 2019.03.05
GIT - Git 생성 하기  (0) 2019.03.02
GIT ( 깃 ) 이란?  (0) 2019.03.02
Posted by JakeGD
|

Git 생성 하기


※ 운영체제 WINDOWS 10 x64bit 기준 입니다.


깃을 사용하기 앞서 Git 사이트 ( https://git-scm.com/download/win ) 에서 자신에게 맞는 운영체제에 맞게 선택하여 Git프로그램을 설치해 줍니다.


설치 완료시 윈도우 검색 도구를 통해 Git Bash  라는 프로그램을 실행 합니다.


실행 후 아래 사진과 같이 git 이라는 명령어을 통해 git이 제대로 작동하는지 확인합니다. 

$ git



pwd 라는 명령어를 통해 현제 디렉토리 위치를 확인 할 수 있습니다.

$ pwd

/c/Users/user


cd 라는 명령어를 통해 원하는 디렉토리로 들어갈 수 있습니다.


$ cd Documents/ 


~/Documents

$ pwd

/c/Users/user/Documents


mkdir 라는 명령어를 통해 디렉토리 생성을 할 수 있습니다.

$ mkdir gitProject


ls 라는 명령어를 통해 현제 디렉토리에 존재하는 폴더 및 파일을 알려줍니다.


확인해 보시면 GitProject/ 라는 이름이 확인 되는 것을 보실 수 있습니다.


$ cd Gitproject

위 명령어를 통해 해당 디렉토리에 들어가 신 후 깃을 생성 하도록 하겠습니다.


git init 라는 명령어를 통해 git을 생성 합니다.

$ git init

Initialized empty Git repository in C:/Users/user/Documents/GitProject/.git/


여기까지 잘 따라 오셨다면 폴더 탐색기를 통해 아래 그림 같이 .git이 생성된 모습을 확인 하실 수 있습니다.



.git 은 앞으로 우리가 관리하게될 버전관리 정보들을 가지고 있으며 절대 삭제 해서는 안되는 파일 입니다.




참고 자료 

지옥에서 온 Git - 생활 코딩

URL - https://opentutorials.org/course/2708/15170

Posted by JakeGD
|

GIT 이란?


Git 은 Versoin Control System ( 버전 관리 시스템 ) 의 제품 중 하나 이며 이 외로 CVS, SVN 등이 있습니다.


우리가 지금까지 해 왔던 백업 파일들 


File

File_최종

File_진짜_최종


이런식으로 현 파일을 실수로 날렸거나 터졌을때 다시 쉽게 전으로 돌아가기 위해 백업 파일을 만들어 사용해왔습니다.


이러한 방식 또한 버전관리라고 할 수 있습니다.


하지만 늘어나는 용량과 지저분한 이름들의 단점을 없애고 편히 관리 하기 위해 등장한것이 버전관리 프로그램중 하나인 GIT 입니다.




참고 자료 

지옥에서 온 Git - 생활 코딩

URL - https://opentutorials.org/course/2708

Posted by JakeGD
|

C 언어

- 프로그램 작성하는 경우에 함수를 정의함에 있어 지역변수의 선언이 항상 제일 먼저 등장해야 한다.


C++ 언어

- 지역변수 선언은 함수 내 어디든 삽입이 가능하다.




C 예제

void main()

{

   int loop;   // C언어는 항상 최 상단에 변수 선언을 해야한다.


   for( loop = 0; loop < 10; loop++)

   {

       ...

   }




C++ 예제

void main()

{

   for( int loop = 0; loop < 10; loop++)   // C++ 경우 어디든 선언이 가능 하다.

   {

       ...

   }

}  

 

단 어디든 선언이 가능 하다고 해서 


loop = 0;

int loop;  


이런식으로는 사용 불가능 하다...


Posted by JakeGD
|

ADT(Abstract Data Type) 추상 자료형


    • 구체적인 기능의 완성과정을 생량한 순수기능이 무엇인지 나열한 것.

예시 )
Wallet(지갑) 이라는 클래스의 추상 자료형을 정의한다고 하겠습니다.


int TakeOutMoney(Wallet * pw, int coinNum, int billNum) 

 - 첫 인자값으로 전달된 주소의 지갑에서 돈을 꺼낸다..
 - 두번째 인자값으로 꺼낼 동전 수, 세번째 인자값으로 꺼낼 지폐 수를 전달한다.
 - 반환되는 int형 함수로 꺼내고자 하는 돈의 총액이 반환 후 그만큼 차감.

void putMoney(Wallet * pw, int coinNum, int billNum)

 - 첫 인자값으로 전달된 주소의 지갑에서 돈을 넣는다.

 - 두번째 인자값으로 꺼낼 동전 수, 세번째 인자값으로 꺼낼 지폐 수를 전달한다.

 - 넣은 만큼 동전과 지폐수 증가.


Posted by JakeGD
|

유니티(unity) 에서 간단한 Json(제이슨) 사용법


먼저 아래 주소를 통해 파일을 다운로드 합니다.

https://sourceforge.net/projects/json-lib/


아님 아래 파일 다운 받으세요~!

LitJson.dll


다운 받은 폴더 -> bin -> LitJson.dll 파일을 찾아 아래 그림처럼 unity Assets에 추가합니다.


Assets 에서 Plugins 폴더 생성


그림과 같이 드래그 하여 파일을 복사 합니다.


테스트용 Create Empty 하나 생성 하신후 JsonTest 용 스크립트를 생성하여 생성한 오브젝트에 스크립트를 추가합니다.



간단한 Save스크립트

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

using System.IO;

using LitJson;


public class PlayerInfo

{

    public int ID;

    public string Name;

    public double Gold;


    public PlayerInfo(int id, string name, double gold)

    {

        ID = id;

        Name = name;

        Gold = gold;

    }

}


public class JsonTest : MonoBehaviour {


    public List<PlayerInfo> playerInfoList = new List<PlayerInfo>();


// Use this for initialization

void Start () {

        SavePlayerInfo();


}


    public void SavePlayerInfo()

    {

        Debug.Log("SvePlayerInfo()");


        // >> :

        playerInfoList.Add(new PlayerInfo(1, "이름1", 1001));

        playerInfoList.Add(new PlayerInfo(2, "이름2", 2002));

        playerInfoList.Add(new PlayerInfo(3, "이름3", 3003));

        playerInfoList.Add(new PlayerInfo(4, "이름4", 4004));

        playerInfoList.Add(new PlayerInfo(5, "이름5", 5005));

        // << :


        JsonData infoJson = JsonMapper.ToJson(playerInfoList);


        File.WriteAllText(Application.dataPath + "/Resources/Data/PlayerInfoData.json", infoJson.ToString());

    }


    // Update is called once per frame

    void Update () {

}

}



이러면 본인이 지정된 폴더로 정보가 저장이 됩니다.



간단한 Load스크립트

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

using System.IO;

using LitJson;


public class PlayerInfo

{

    public int ID;

    public string Name;

    public double Gold;


    public PlayerInfo(int id, string name, double gold)

    {

        ID = id;

        Name = name;

        Gold = gold;

    }

}


public class JsonTest : MonoBehaviour {


    public List<PlayerInfo> playerInfoList = new List<PlayerInfo>();


// Use this for initialization

void Start () {

        LoadPlayerInfo();


}


    public void LoadPlayerInfo()

    {

        Debug.Log("LoadPlayerInfo()");


        if(File.Exists(Application.dataPath+ "/Resources/Data/PlayerInfoData.json"))

        {

            string jsonStr = File.ReadAllText(Application.dataPath + "/Resources/Data/PlayerInfoData.json");


            Debug.Log(jsonStr);

            JsonData playerData = JsonMapper.ToObject(jsonStr);


            for (int i = 0; i < playerData.Count; i++)

            {

                Debug.Log(playerData[i]["ID"].ToString());

                Debug.Log(playerData[i]["Name"].ToString());

                Debug.Log(playerData[i]["Gold"].ToString());

            }

        }

        else

        {

            Debug.Log("파일이 존재하지 않습니다.");

        }


    }



    // Update is called once per frame

    void Update () {

}

}

 


Posted by JakeGD
|

엔터 더 건전(Enter The Gungeon) - 모작



아래 링크 ↓↓↓↓


https://www.youtube.com/watch?v=GnA2X3d-X48

Posted by JakeGD
|