Day 2 - Test, Git, SpringBoot
자동 생성된 Library, LibraryTest 활용
동영상: https://youtu.be/kEF0vK8y8fk
동영상: https://youtu.be/M-Pn_ipy29k
.idea, .gradle, build/ 추가
빈 행
https://github.com/weirdmeetup/translate/blob/master/articles/2014-08-31-git-commit.md#훌륭한-git-커밋-메시지의-일곱-가지-규칙
원래 베이스는 C2 였지만, C9'으로 베이스를 다시 지정(rebase)
원래 베이스는 C2 였지만, C9'으로 베이스를 다시 지정(rebase)
원래 베이스는 C2 였지만, C9'으로 베이스를 다시 지정(rebase)
C3, C4, C10 커밋이 사라지고, C3', C4', C10'이 새로 생겨남
master 브랜치에서 git co -b 'subtract' (git co는 git commit의 alias)
src/main/java/day02 패키지 생성
Algebra에
public int subtract (int a, int b) {} 구현
src/test/java/day02 패키지 생성
day02.AlgebraTest 클래스 생성
AlgebraTest에
@Test public int subtractTest() {} 구현
Test 통과하면
git add .
git cim 'subtract에서 뺄셈 추가' (git cim은 git commit -m 의 alias)
그래프 확인 (subtract 브랜치 전진)
git co master
git merge subtract
그래프 확인 (master에 merge commit 이 생기면서 subtract와 합쳐지고 subtract 보다 하나 더 전진)
git psom
git branch -d subtract (subtract 브랜치 삭제)
master 브랜치에서
subtract(int a, int b) 를 subtract(int c, int d)로 수정
git add .
git cim 'master에서 뺄셈 파라미터 c, d로 변경'
그래프 확인 (master 브랜치 전진)
github의 master 브랜치에서 subtract(int m, int n) 수정
커밋 메시지: 깃허브에서 뺄셈 m, n으로 변경 입력 후 commit 클릭
git fom (git fetch origin master의 alias)
그래프 확인 (master와 origin/master가 나뉘어져 있고, origin/master가 하나 앞섬)
git merge origin/master
[충돌 해소 - IntelliJ > 충돌 파일 우클릭 > Git > Resolve Conflict..]
(git st로 확인해보고 빨간색 있으면) git add .
git commit
그래프 확인 (master에 merge commit 이 추가되면서 합쳐지고,
master가 origin/master 보다 하나 앞섬)
git psom
master 브랜치에서 git co -b 'add'
Algebra에
public int add(int a, int b) { return a + b; } 구현
AlgebraTest에
@Test public void addTest() { ... } 구현
Test 통과하면
git add .
git cim 'add에서 덧셈 추가'
그래프 확인 (add 브랜치 전진)
git co master
master 브랜치의 Algebra에서
public int add(int c, int d) { return c + d; } 작성
git ciam 'master에서 덧셈 추가 c, d' (git ciam == git add . + git cim)
그래프 확인 (master가 add와 나뉘어져서 전진)
git co add (add 브랜치로 이동, 노란 태그(HEAD)가 add 브랜치로 이동)
git rebase master (add 브랜치의 base를 master로 재(re)지정)
[충돌 해소 - IntelliJ > 충돌 파일 우클릭 > Git > Resolve Conflict..]
(git st로 확인해보고 빨간색 있으면) git add .
git rb --continue
그래프 확인 (꺾임 없이 하나의 선 상에서 add가 master보다 하나 앞섬)
git co master 한 후 git merge add
그래프 확인 (master가 동일선 상에서 add보다 하나 뒤에 있었으므로, 별도의 merge commit이 생기지 않고 master가 add의 위치로 이동)
git psom 한 후 git branch -d add
master 브랜치의 Algebra에서 add(int x, int y)로 수정
git ciam '덧셈 x, y 로 변경'
github의 master에서 add(int m, int n)로 수정 후
커밋 메시지: 깃허브에서 덧셈 파라미터 m, n 으로 수정
commit 클릭
git fom
그래프 확인 (master와 origin/master가 나뉘어져 있고, origin/master가 하나 앞섬)
git rebase origin/master (master 브랜치의 base를 origin/master로 재(re)지정)
[충돌 해소 - IntelliJ > 충돌 파일 우클릭 > Git > Resolve Conflict..]
(git st로 확인해보고 빨간색 있으면) git add .
git rb --continue
그래프 확인 (같은 선 상에서 master가 origin/master보다 하나 앞섬)
git psom
merge는 새로운 merge commit 한 개만 새로 생성하면서 병합
feature 브랜치 상에서의 commit이 그대로 남으므로
feature 브랜치의 꺾임선이 그대로 남음
merge는 새로운 merge commit 한 개만 새로 생성하면서 병합
feature 브랜치 상에서의 commit이 그대로 남으므로
feature 브랜치의 꺾임선이 그대로 남음
rebase는 feature 브랜치 상에 있던 모든 commit을 없애고
master 브랜치 상에 새로 생성
feature 브랜치 상에서의 commit이 모두 소멸되므로
feature 브랜치의 꺾임선도 사라지고 master 만 남음
merge는 새로운 merge commit 한 개만 새로 생성하면서 병합
feature 브랜치 상에서의 commit이 그대로 남으므로
feature 브랜치의 꺾임선이 그대로 남음
rebase는 feature 브랜치 상에 있던 모든 commit을 없애고
master 브랜치 상에 새로 생성
feature 브랜치 상에서의 commit이 모두 소멸되므로
feature 브랜치의 꺾임선도 사라지고 master 만 남음
시각적으로 깔끔한 브랜치 유지를 위해 Rebase를 선호
http://dogfeet.github.io/articles/2012/git-merge-rebase.html
https://www.atlassian.com/git/tutorials/merging-vs-rebasing/conceptual-overview
영어지만 그림과 사례가 더 간단함
https://git-scm.com/book/ko/v2/Git-%EB%B8%8C%EB%9E%9C%EC%B9%98-Rebase-%ED%95%98%EA%B8%B0#Rebase-의-위험성
소스 작업
git add .
git cim '어쩌구'
git fom (git fetch origin master)
git rbom (git rebase origin/master)
[충돌 시 해소] - git add . - git rb --continue
git psom (git push origin master)
https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow
https://ujuc.github.io/2015/12/16/git-flow-github-flow-gitlab-flow/
Hello SpringBoot
SpringBoot 환경 설정
Logging, Debugging
도메인, 서비스, 컨트롤러
Spring 개발 순서