코리아 IT아카데미/Java

17일차 | Git 관리, 래퍼 클래스

Sharon kim 2021. 11. 9. 19:23

git 실습

C드라이브에 GitEx 폴더 만들기

오른쪽 마우스 git bash

깃 실습 1
깃 폴더로 바꾼 작업영역

 

수업내용 git push 전까지 실습


래퍼 클래스

자바의 자료형은 크게 기본 타입(primitive type)과 참조 타입(reference type)으로 나누어집니다. 대표적으로 기본 타입은 char, int, float, double, boolean 등이 있고 참조 타입은 class, interface 등이 있는데 프로그래밍을 하다 보면 기본 타입의 데이터를 객체로 표현해야 하는 경우가 종종 있습니다. 이럴 때에 기본 자료타입(primitive type)을 객체로 다루기 위해서 사용하는 클래스들을 래퍼 클래스(wrapper class)라고 합니다.

wrapper class : 박싱, 언박싱

 

package ch06;

public class Wrapper_Ex1 {

	public static void main(String[] args) {
		// int - > integer
		Integer num = new Integer(17); // 박싱
		int n = num.intValue(); // 언박싱
		System.out.println(n); //->17
	}
}

wrapper class : 자동 박싱, 자동 언박싱

package ch06;

public class Wrapper_Ex2 {

	public static void main(String[] args) {
		
		Integer num = 17; //자동 박싱
		int n = num; // 자동 언박싱
		System.out.println(n); //-> 17
	}

}

wrapper class 사용

package ch06;

public class Wrapper_Ex3 {

	public static void main(String[] args) {
		
		String str = "10";
		String str2 = "10.5";
		String str3 = "true";
		
		//int 값을 문자값으로 바꿀 때
		//S + "" --> String
		
		//문자열을 바이트로
		byte b = Byte.parseByte(str);
		int i = Integer.parseInt(str);
		short s = Short.parseShort(str);
		long l = Long.parseLong(str);
		
		//
		float f = Float.parseFloat(str2);
		double d = Double.parseDouble(str2);
		System.out.println(d);
		
		//
//		boolean bl = Boolean.parseBoolean(str2);
//		System.out.println(bl);//제대로 형이 안 맞으면 false
		boolean bl = Boolean.parseBoolean(str3);
		System.out.println(bl);
		if (Boolean.parseBoolean(str3)) {
			System.out.println("boolean형으로 변경완료.");
		}
		//문제 1
		String str10 = "1001";
		String str11 = "2001";
		
		//str10과 str11을 덧셈 연산 해주세요
		//결과값 까지 출력
		//str10과 str11을 곱셈 연산 해주세요
		//결과값 까지 출력
		
		//한글 깨짐 코드 확인
		
		
		int n1 =  Integer.parseInt(str10);
		int n2 =  Integer.parseInt(str11);
		
		int p = n1 + n2;
		int x = n1 * n2;
		
		System.out.println("덧셈결과 : "+ p);
		System.out.println("곱셈결과 : "+ x);

		
		System.out.println("문자열 byte값 변환 : " + b);
		System.out.println("문자열 int값 변환 : " + i);
		System.out.println(b);//sysout : 메서드 오버로딩의 핵심

	}
}

수업내용

[출처] Git|작성자 devnote1

Git ≠ GitHub

GitHub = Microsoft 웹 서비스

gitHub는 분산형 버전관리 시스템(git)을 기반으로 소스 코드를 호스팅 하고, 협업 기능을 지원하는 서비스, 소프트웨어 개발 플랫폼입니다.

 

개인 개발자들이 많이 쓰는 것 : 깃허브

주소 : https://github.com

 

회사에서 많이 쓰는 것 : 깃 랩

주소 : https://about.gitlab.com

 

Git리눅스의 창시자인 리누스 토발즈가 Linux 커널을 관리할 목적으로 개발되었다.

Git은 원격 저장소(Remote Repository)와 로컬 저장소(Local Repository) 두 종류의 저장소를 제공.

원격 저장소(Remote Repository) : gitHub와 같은 전용 서버에서 관리되며 여러 사람이 함께 공유하기 위한 저장소

로컬 저장소(Local Repository) : 내 PC에 파일이 저장되는 개인 전용 저장소

 

반드시 기억해야 할 3 상태 - 논리적인 구분

staging area -> 인덱스 상태로 올렸다.

 

Git bash 사용(폴더에서 오른쪽 마우스)

git bash 는 window의 cmd, linux와 mac의 terminal과 같은 역할

git bash를 이용하면 window에서도 리눅스의 명령어를 쓸 수 있다.

 

Git 명령어

init 

 $ git init 

git init 명령어를 수행하면 숨겨진 폴더.git이 생성됨. 이것을 저장소라고 하는데 깃은 이 폴더의 모든 변경 내용을 여기에 저장한다. 즉 , git폴더를 지우면 더 이상 깃으로 폴더의 변경사항을 추적할 수 없다.


status

 $ git status 

깃이 폴더의 현재 변경 상태를 보는 명령어이다.


reset

 $ git reset A.txt 

스테이징 된 (add 취소) 차일을 취소할 수 있다.

 $ git reset * 

폴더의 전체 변경 사항을 취소할 수도 있다.


commit

 $ git commit -m'첫번째 커밋 메세지입니다.' 

깃이 폴더의 변경 내용을 저장하는 단위를 "커밋(commit)"이라고 부르는데, add명령어 이후 Staging Area 상태에 등록된 파일들만 commit 을 할 수 있고 명령어 실행 후에 Repository에 저장된다.

 $ git commit -am'add와 commit을 한번에 할 수 있습니다.' 

매번 변경사항을 스테이징하고 커밋하는게 번거롭다면 -a옵션을 사용하자.


log

 $ git log 

스테이징을 거쳐 커밋한 결과를 로그(log)라는 형식으로 확인합니다.

 $ git log --oneline 

많은 로그를 한 줄로 편하게 보기 위해서 --oneline 옵션도 자주 사용합니다.


GitHub에서 원격 저장소 만들기

Create repository

원격 저장소를 내 PC로 가져 오기

▶ HTTPS 방식으로 가져 오기

▶ SSH 방식으로 가져 오기

● Clone

: 사용할 위치를 지정하고 Git Bash를 열어서 원격지에 생성된 저장소를 복제할 수 있습니다.

 $ git clone 주소를 입력하시면 됩니다 


원격 저장소에 작업물 공개 하기

▶ SSH Key를 만들고 public key를 GitHub에 등록을 해 봅시다.

(Secure Shell)는 원격지 호스트 컴퓨터에 접속하기 위해 사용되는 인터넷 프로토콜이다.

GitHub 접속할 때 비밀번호 대신 key를 제출하는 방식이다.

 

● Git Bash에서 명령어 ssh-keygen 을 입력해주세요

 $ ssh-keygen 

▶ 생성된 private, public key

▶ 생성한 공개키를 GitHub에 등록해야 합니다. (profile -> Settings -> SSH and GPG Keys)

 

push

 ​$ git push 

파일을 새로 생성 또는 작업 후 add, commit 을 마치고 원격 저장소로 작업물을 공개할 수 있습니다.

 

▶ SSH 키 등록 후 원격 저장소(Git Hub)에 처음 push를 한다면 다음과 같은 문구를 확인할 수 있습니다.

pull

 $ git push 

원격 저장소에서 로컬 저장소로 소스나 변경된 파일을 가져오는 명령어입니다.


브랜치 만들어 보기

▶ 깃에서 중요한 또 하나의 개념은 "브랜치(branch)"입니다.

▶ 깃은 기본적으로 master(main)라는 이름의 브랜치 하나를 가지고 있습니다.

branch

 $ git branch 

▶ 로컬 저장소에 있는 현재 브랜치 목록을 보여 준다.

 $ git branch 생성할브랜치명을 입력해주세요 

 $ git branch feature-signup 

checkout

 $ git branch 이동할브랜치명을입력해주세요 

 $ git branch feature-signup 

▶ 깃에서 브랜치 간 이동은 "checkout"라고 표현합니다.

log --graph

 $ git log --graph 

▶ 현재 repository의 작업 흐름(branch, commit, merge)에 대하여 알아보기 쉽게 그래프로 보여 줍니다.

 


병합하기(merge)

▶ feature 브랜치에서 개발을 완료 후 커밋하고 다시 원래 작업하던 곳으로 가기 위해서는 main 브랜치에

반영해야 한다. 이것을 merge이라고 부릅니다.

▶ 단 기준이 되는 main 브랜치로 이동한 뒤, feature 브랜치를 main에 merge 해야 합니다.

 

merge

 $ git checkout main 

 $ git merge feature-signup 

 

HEAD

▶ 위치를 좀 더 정확하게 보여주는 정보가 있는데 바로 "머리(HEAD)"라고 부르는 것입니다.

▶ 헤드는 여러 가지로 뻗어있는 브랜치와 커밋 목록에서 현재 위치를 보여 줍니다.

 $ git checkout HEAD~

 $ git checkout HEAD~10 

 $ git checkout 8553f2 

 

▶ 현재 위치(HEAD)에서 한 단계 과거로 가능 명령어 입니다.

▶ 현재 위치에서 해당하는 숫자만큼 과거로 갑니다.

HEAD 대신 커밋 hash를 사용할 수도 있다. (콕 집어서 이동합니다)

● 다시 최신으로 돌아오고 싶다면

 $ git checkout main 

Git Bash에 익숙해 졌다면?

실무에서 사용하는 Git 사용 전략