ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2024-12-09 (개강, git 1번째)
    포스코X코딩온 스마트팩토리 단기심화/TIL 2024. 12. 10. 08:58

    오늘은 포스코X코딩온 스마트팩토리 단기심화 3기의 개강일이다.

    수업은 사전지식을 서로 평탄하게 맞추기 위하여 버퍼링 수업으로 진행하며 교육생 의견을 반영한 맞춤수업으로 진행할 예정이라고 한다.

    교육일정은 12/9 ~ 3/26로 약 4개월(약 70일)이다.

    대부분 C#으로 수업할 것이며 비쥬얼스튜디오를 사용하는 것을 기준으로 진행할 예정이라고 한다.

    순서 커리큘럼 내용
    No.1 OT, 자기소개, git
    No.2 C# 기본문법
    No.3  C# WPF GUI 프로그래밍
    No.4 PLC & HMI
    No.5 C# 라이브러리를 이용한 PLC제어
    No.6 C# OpenCVSharp
    No.7 포트폴리오 제작, 취업준비

     

    오늘은 git에 대해 우선 일부 강의를 해주셨다.

    git은 리눅스 개발자이신 리누스 토르발스가 리눅스 버전 관리를 위해 개발하였다.

    git은 형상 관리 도구이며 분산형 관리 시스템이고 그래서 병렬작업이 가능하다.

    보통 기존의 파일 관리는 파일을 복사하거나 덮어쓰기, 다른 이름으로 저장 등의 방법으로 관리를 했었다.

    파일 이름 변경하는 것을 우선하여 보지만 경우에 따라 파일 이름이 변경될 경우 작동이 안되는 경우도 있기에 이 경우에는 파일을 덮어쓴다.

    하지만 프로그램의 규모가 커질 경우 이런 방법으로는 관리가 어려우므로 다른 방법이 필요하였고, 그래서 여러 방법들이 시도 되었으나 git도 그중 하나의 방법이다.

    git은 파일 자체를 전부 저장하지 않으면서 수정된 내용 버전으로 기록을 한다.

    그래서 형상 관리 도구라고 할 수 있으며 버전 관리 시스템의 의미를 가진다고 볼 수 있다.

    (기록되어 있는 버전을 이전이나 이후로 마음껏 변화시킬 수 있다)

    원래는 위의 그림 중 왼쪽처럼 중앙 서버에서 모든 파일을 저장하고 그 서버에서 여러 사용자가 파일을 작업하는 중앙집중식 방식이였으나 이 경우 서버가 다운되거나 인터넷이 끊기는 등 문제가 생길 경우 모두 다같이 사용할 수 없고, 또 동시에 작업하는 것에 제한사항이 컸다. 이러한 경우가 꽤 오래 지속되었다(컴퓨터계에 있어서 오래는 컴퓨터의 역사가 그렇게 오래되지 않았기 때문에 10~20년을 의미한다고 한다). 대표적으로 Notion이 이런 중앙집중형 관리 시스템을 사용하고 있다고 한다.

    이와 반대되는 방식이 분산형 관리 시스템으로 분산해서 관리를 하는데 각자 로컬파일을 가지고 있고 서버에는 리모트파일로 관리하고 있어 만약 서버에 문제가 생기더라도 나머지 로컬 중의 가장 최신 버전을 가진 사람이 공유를 함으로써 쓸 수 있도록한다.

    중앙집중식 버전 관리 시스템으로써 Subversion을 쓰다가 현재는 분산형 관리 시스템인 git으로 대부분 전환을 했으며, 전환하지 못한 기업의 경우는 서버 교체하려면 한달 이런 식으로 오랜기간 시간이 드는데 그 경우 비용적 손해가 막심하여 어쩔 수 없이 그대로 쓰는 경우라고 한다.

     

    그 뒤에 깃을 설치하는 것을 했는데

    이 두 옵션은 반드시 체크해주는 것이 중요하다고 말씀하셨다(탐색기에서 바로 git으로 이용할 수 있도록 하는 역할인듯 하다)

    그외도 여러가지 옵션이 있지만 대체로 기본값 옵션으로 하면 되는 것 같았다

     

    그리고 설치 단계에서 default editor를 고르는 것이 있었는데 이 경우는 기본값이 vim이라는 나로써는 거의 써보지 않은 생소한 에디터로 되어있어있는데 이는 익숙하지 않을 경우 불편하기 때문에 다른 것으로 바꾸길 권장하셨으며 그중에서도 특별히 설치된 툴이 없다면 윈도우의 기본 프로그램인 notepad를 추천하여 그렇게 하였다.

     

    그리고 그 다음 단계 중 새로운 repository의 첫 branch의 이름을 옛날에는 master를 많이 썼다고 하는데 현재는 master branch라고 해서 특별한 기능이 있거나 한 것도 아닌데 뭔가 너무 특별하게 구분되는 이름이라고 생각되어 그냥 단순하게 main으로 쓰는 추세라고 하여 그것으로 변경해주었다.

     

    그리고 설치 단계중 줄바꿈 관련 옵션이 있었는데 운영체제마다 줄바꿈 명령어가 달라서 그것 때문에 오류가 날 수 있기에 내가 사용하는 os인 window로 맞춰 설정하였다.

     

    그외 여러 옵션이 있었지만 불필요하게 길어질 것 같기도 하고 거의 기본옵션일듯하여 노션에만 기록해두고 블로그에는 중요해보이는 옵션 몇가지만 적어보았다.

     

    그럼 이제 설치가 끝났으면 CLI(command line interface)인 git bash를 사용할 수 있게 된다.

    CLI은 간단히 생각하면 우리가 흔히 생각하는 명령프롬프트라고도 하는 윈도우의 커맨더를 떠올리면 될 것 같다

    git bash의 경우 리눅스 개발자가 만들었는 관계로 리눅스 명령어가 적용되는 CLI이다(물론 리눅스와 완전히 같지는 않고 여러 권한 문제 등에 엮여 있어서 모든 리눅스 명령어가 되는 것은 아니다).

     

    cd : change directory의 의미로 말그대로 디렉토리를 변경하는 명령어

    ~ : 루트라고 하며, 깃배시가 실행되는 가장 기본경로, 보통 c에 사용자폴더에 계정폴더가 ~ 윈도우의 경우 환경변수라는 곳에 기록되어 있는데 다른 걸로 잡혀있을 경우 루트가 위 경우와 다르게 나온다

    mkdir : make directory - 새폴더 만들고 싶은 경우 사용하는 명령어

    dir : 현재 디렉토리의 요소 출력, 윈도우탐색기로 볼 수 있지만 그러한 방식으로 못하고 CLI만 가능할때 그런 유용하다고 한다

    pwd : 현재 작업중인 경로 표시

     

    echo : 되게 다양한 기능을 가진 명령어 텍스트 파일에 내용 추가 및 생성

    >> : 여기에 넣겠다는 문법, 파일이름에 확장자까지 해야함, 안적으면 안열림

     

    모든 경로에서 그런 것인지는 모르겠지만 C드라이브쪽 경로에서는 그냥 바로 파일 생성이 안되었기에 관리자 권한으로 실행해 주었다

    경로이름의 경우 대소문자를 구분한다고 알고 있는데 바탕화면인 desktop의 경우는 특별하여서 그런지 구분하지 않아도 둘다 정상적으로 작동하였고 desktop의 새로 생성해준 하위 폴더도 마찬가지로 구분없이 잘 작동하는 것을 확인했다.

    경로에 한글을 쓸때는 큰따옴표 “”써줘야 한다.

    경로 일일히 입력하여 찾아 들어가기 귀찮을 경우 원하는 경로 탐색기에서 열어서 우클릭해서 open git bash here해서 바로 열 수 있다.

    이 경우 관리자로 열 수 있냐는 질문이 있었는데 설정을 통해 항상 git bash가 관리자로 열 수 있도록 해둘 수 있어서 이 방법으로 해결이 가능하다 (git bash프로그램(exe) - 속성 - 호환성 - 아래에 관리자 권한으로 실행 체크)

     

    그리고 git 세팅을 해줘야하는데 위에서 설치할 때 설정해주었지만 혹시 몰라서 첫 branch를 main으로 해주도록

    git config --global init.defaultBranch main

    을 해주었다.

    그리고 온라인 서비스인 git hub와의 연동의 편의성 등을 위해 설정으로

    git config --global user.name "닉네임"

    git config --global user.email "이메일"

    을 통해 닉네임과 이메일을 깃허브 닉네임과 이메일로 통일하여 설정해 주었다

     

    그동안 조금씩 git을 사용은 했지만 본격적으로 git이 어떤 것인지 알 수 있게 되고 또 제한된 상황에서도 사용하기 쉬운 CLI의 세팅법에 대해 배울 수 있어서 좋았고 앞으로 사용법에 대해 더 익힐 수 있을 예정이라 기대가 된다.

    '포스코X코딩온 스마트팩토리 단기심화 > TIL' 카테고리의 다른 글

    2024-12-10(git 2번째)  (0) 2024.12.11
Designed by Tistory.