Codong's Development Diary RSS 태그 관리 글쓰기 방명록
분류 전체보기 (48)
2021-02-14 15:58:09

🤔git 이란?

형상 관리 도구(Configuration Management Tool) 중 하나. 그 중 분산 버전 관리 시스템이다. 중앙 집중 방식인 SVN(SubVersion)과 차이는 SVN은 중앙 서버에 문제가 생기면 모든 작업이 중단된다. 개발 PC와 저장소에 분산하여 저장되어 있기에 중앙 서버에 장애가 있어도 로컬 저장소에 커밋을 할 수 있다. 후에 정상화 되었을 때 다시 업로드를 하면 되므로 중앙 저장소의 복원이 가능하다.

🧩git 구조

  1. working directory : untracked / tracked 파일, unmodified / modified 파일로 나뉨. modified 파일만 staging area로 옮겨갈 수 있음. git add를 통해 파일을 tracked 파일로 만들 수 있다. ex) 해당 폴더의 .txt 파일만 추가 git add *.txt
  • add하여 다음 단계로
  1. staging area : 이곳에 올라온 파일이라도 수정된다면 modified 라고 나온다. 이 수정된 파일을 또 올릴라면 git add (파일명). staging area에서 내릴꺼면 git rm --cached (파일명)
  • commit하여 다음 단계로.
  1. local .git directory (history) --push--> <--pull-- remote .git directory (서버 저장소에 저장)
  • commit시 staging area에 있던 파일들이 local .git directory에 올라간다. 그것을 원격 git directory에 옮겨 저장하고 싶다면 push를 이용해 저장하면 되고, 다른 컴퓨터에서 원격 저장소에 저장된 내 작업파일을 내려받고 싶으면 pull 명령어를 사용한다.

commit 규모는 기능별로 하는 것이 좋음. 커밋 메시지는 현재형 동사로, 꼭 메시지에 적힌 것만 작업해서 commit 하기!

🎮명령어

기본적으로 git + 명령어 + -옵션 형식으로 이루어짐 ex) git config --global
더 자세히 알고 싶다면 공식 문서 ㄱㄱ! 😋 Git 공식문서

  • git --list : 깃 설정 확인가능
  • git --global -e : 터미널에서 설정 확인
  • git config --global core.editor "code" : vscode에서 확인
  • git init : 폴더안에 깃 초기화
  • git rm -rf .git : 깃 제거
  • git status : 상태확인
  • git log : 로그 확인
  • git diff : working directory의 변경된 내용확인 가능. staging area까지 확인시 git diff -staged or cached
  • 명령어 줄이기 ex) status를 st로 줄이기 git config --global alias.st status
  • 명령어 확인해보기 ex) git config --h

🔜초기 설정

--global을 사용하면 딱 한 번만 하면 되고, 프로젝트마다 다른 이름과 이메일 주소를 사용하고 싶으면 --global을 빼고 사용하면 된다.

  • git config --global user.name "이름" : 이름 설정 (깃헙아이디)
  • git config --global user.email "이메일" : 이메일 설정 (깃헙이메일)
  • git remote add origin (깃헙주소) : git init 후 원격 저장소에 연결 ex) https://github.com/Park-DongHo/WebPractice.git
  • git config --global core.autocrlf true (window or mac input) : git 저장소 저장시 줄바꿈 문제 해결

reference

2021-02-12 23:31:08

1️⃣ 언제나 공부만하고 실제로 뭔가 만들어보지 않는 것

  • 백문이 불여 일타. 해보는 것이 제일 기억에 남는다.

2️⃣ 언제나 준비가 되지 않았다고 생각하는것.

  • 1번으로 돌아가자. 뭔갈 만들어낸다면 자신감이 생긴다.

3️⃣ 초반에 너무 열심히 해버리는것

  • 나만의 페이스를 만들자. 꾸준히 하는 습관을 만드는 것이 중요하지, 무리하다간 번아웃 온다.

4️⃣ 체크리스트만 보면서 공부하는 것.

  • 로드맵 등 이런것을 맹신하지말자. 프로젝트 중심의 배움을 거치자.

5️⃣ 데드라인 없이 공부하는 것.

  • 압박감이 없다면 게을러진다.

➕ 주니어 개발자가 빠르게 성장할 수 있는 비법은?

  1. 테크놀로지에만 집중하지 마라.
    • 전체적인 그림을 그릴 줄 알아야 한다. ex) 웹개발의 전체적인 모습 보기. 각각의 큰 그림들을 보면서 최소한 장점을 알아 놓고 다음에 내가 나아갈 방향을 알 수 있다.
  2. 무료 프로그래밍 일을 해보는 것을 추천한다.
    • ex) 삼촌 레스토랑의 일을 도와준다. 클라이언트와 어떻게 커뮤니케이션하는지 배우게 됨. 비즈니스가 필요한 것이 무엇인지. 등등 비즈니스 마인드가 중요하다

그냥 있기 때문에 배우는 것보다, 필요할 때 배우는 것이 가장 효과적이다.

혼자 공부하다 힘들 때 이 글을 보자. 🤯

출처

'기타' 카테고리의 다른 글

python 백엔드 면접 질문 정리  (0) 2021.02.11
지극히 개인적인 신입개발자 취업준비하기.  (0) 2021.01.23
2021-02-11 15:09:11

보호글입니다.
비밀번호를 입력하셔야 내용을 보실 수 있습니다.


2021-02-11 15:05:50

보호글입니다.
비밀번호를 입력하셔야 내용을 보실 수 있습니다.


2021-02-03 17:45:38

보호글입니다.
비밀번호를 입력하셔야 내용을 보실 수 있습니다.


2021-01-24 16:54:03

자료구조

자료를 효율적으로 저장하는 방식

1) 메모리 저장 공간 절약, 프로그램 수행(실행) 시간 단축
2) 프로그램의 수행 시간 혹은 저장공간을 고려한 자료구조 설계
=> 프로그램의 목적 및 기능에 부합하는 자료구조 설계

※ c/c++을 사용하여 강의 하는 이유 포인터로 설명하기 위해
저급 프로그래밍 언어 : 이해하기 쉬워 빠르지만, 어려움 hardware, memory접근 가능
고급 프로그래밍 언어 : 사람이 이해하기 쉽게 작성 가독성 높고 다루기 간단

자료구조의 필요성

메모리를 어떻게 사용하면 좋을 것인가에서 시작하여, 이렇게 사용해보니 좋더라 와 같은 것들이 리스트, 트리 등등 가장 작은 단위인 변수들을 합쳐서 효율적으로 관리하기 위해 필요하다.

1)자료 구조의 분류

1) 단순 구조 : 프로그래밍 언어에서 제공하는 기본적인 데이터 타입 ex) 정수, 실수, 문자와 문자열 등

2) 선형 구조 : 자료들 사이의 앞뒤 관계가 일대일인 경우 ex) 리스트 스택 큐 덱

3) 비선형 구조 : 자료들 사이의 앞뒤 관계가 계층 구조 혹은 망 구조를 가지는 경우 ex) 트리 그래프 등

4) 파일 구조 : 보조기억장치(ex. 하드디스크)에 저장되는 파일에 대한 자료구조

2) 객체 구현

현실에 있는 물체, 또는 가상한 존재. 이를 객체(Object)라 정의하고 Class를 이용하여 프로그래밍에 옮겨 구현. 수치나 값에 대한 것은 클래스의 속성(Attribute)으로, 행동과 연산에 대한 것은 클래스의 메소드(Method)로 작성

3) 추상 과정

프로그래밍에 옮겨 구현. 자동차를 직접 코드에 넣을 수 없으니, 자동차에 대한 값들과 기능 및 수행 작업들을 머리 속에서 대강 코드에 어떻게 옮길지 구상. 이 과정에서 필요한 정보만 코드로 옮기는데 이 것을 추상화(Abstract)라고 봄.

4) 객체 구현 = 새로운 자료형 정의 ≠ 자료구조

자료구조는 데이터를 저장 및 관리 정돈(정렬)을 효율적으로 하기 위한 구성체를 만듭니다. 이를 위해 기본적으로 탐색, 삽입, 삭제 등의 연산이 들어갑니다. 대표적 자료구조는 파이썬 기본 자료형인 리스트.

노드

관리할 데이터를 보관(존재)하는 곳을 노드(Node)라 함. 대체로 자료구조를 공부할 때 이 노드를 클래스로 직접 구현한다. 하지만 자료구조에서 구조적 설계보다 연산(메소드)이나 연산으로 인한 구조적 변화에 학습을 집중해야될 때는 노드를 따로 구현하지 않는다.

추상 자료형

추상 자료형(Abstract Data Type, ADT)

  • 자료 구조를 기술(표현)하는 가장 대표적인 방법 중 하나 정보 은닉(information hiding)
  • 자료 구조를 사용할 수 있는 인터페이스(interface) 정의 혹은 자료구조의 연산(Operation)들의 정의
  • 내부 분석 없이 신속하게 자료구조를 이용가능
  • 개발자 관점에서 자료구조를 구현하기 전에 설계도를 미리 그려볼 수 있음.
class 클래스이름:
    # 클래스 생성자 정의
    def __init__(self, 인자1, 인자2):
        self.필요한속성1 = 인자1
        self.필요한속성2 = 인자2

    # 필요한 메소드 구현
    def 필요한메소드1(self):
        코드구현

    def 필요한메소드2(self):
        코드구현


# 메인 코드 영역

# 인스턴스 생성
c1 = 클래스이름(c1의 인자1,c1의 인자2)
c2 = 클래스이름(c2의 인자1,c2의 인자2)

# 메소드 사용하여 인스턴스 활용
c1.필요한메소드1()
c2.필요한메소드1()

파이썬은 기본적으로 인스턴스의 속성에 직접 접근을 허용한다. 이러한 접근 방법을 막아서 은닉화를 할 수 있다.

...

def __init__(self, Child_name, Child_height):
    self.__name = Child_name
    self.__height = Child_height

...

c1.__height+=10

# output
AttributeError: 'Child' object has no attribute '__height'

위와 같이 클래스에서 사용하는 속성 또는 메소드 앞에 __(언더바 2개)를 붙이면 외부에서 접근하여 사용할 수 없다. 비슷한 예로 클래스 생성자 메소드(__init__)이 있다. 이렇게 하면 속성에 직접 접근할 시 에러가 발생한다. 공개가 안되있으니 없는 속성이라는 메시지가 나온다.

reference