분류 전체보기
-
(스프링 기본) 12 - 웹 애플리케이션과 싱글톤개발/Spring 2024. 10. 23. 14:29
스프링은 기업용 온라인 서비스 기술 지원을 위해 탄생했다.대부분 스프링 애플리케이션은 웹 애플리케이션이다. 웹 애플리케이션은 고객의 요청이 많은데,스프링 없는 순수 DI 컨테이너인 AppConfig는 요청이 있을 때마다 객체를 생성해 비효율적이다. public class SingletonTest { @Test @DisplayName("스프링 없는 순수한 DI 컨테이너") void pureContainer() { AppConfig appConfig = new AppConfig(); //1. 조회: 호출할 때마다 객체를 생성 MemberService memberService1 = appConfig.memberService(); //2. 조회:..
-
(git) 13 - 협업하기 (혼자 / 소규모 / 대규모)개발/git 2024. 10. 22. 16:48
■ 혼자하기 Readme file 체크하면 자동으로 main 브랜치가 생기고 commit 도 한 개 생긴다. git merge --no-ff (머지하고자 하는 브랜치)fast-foward merge 는 원래 커밋로그 안남는데, 남기게 해주는게 --no-ff 이다. git tag 태그이름 : 태그 이름 달아주기 태그가 달린 것 확인 가능 git tag -n : 어디에 tag 달렸는 지 확인 git push --tags origin main : 태그와 함께 올리기 ■ 소규모 협업* 팀장 환경 구성 후 dev 브랜치 만들고 올리기 최초에는 모든 브랜치 올리는 git push --all 해준다. collaborators -> add people : 협업할 대상자 추가해주기 Branches 에서 ..
-
(git) 12 - Github remote branch개발/git 2024. 10. 22. 09:20
■ git remote 브랜치 1. git init2. git remote add origin 연결3. git fetch origin※ remote branch 라는 영역에 fetch 를 하는 순간 git에 있는 브랜치를 동기화 시킨다. 4. git branch master : 로컬 저장소에 master 브랜치 만들기5. 체크아웃 m6. merge7. git branch dev 8. 체크아웃 d9. merge 이를 한 번에 하는게 git clone 명령어이다. git checkout -b dev origin/dev : 체크아웃하면서 origin에 있는 dev 다운 받아서 저장※ git clone 은 모든 가지를 동기화하지 않고 메인 or 마스터 가지만 동기화시킨다. 따라서 처음에는 git clone 해..
-
(git) 11 - Github 사용법개발/git 2024. 10. 17. 01:54
■ github pushgithub에 repository를 만들게 되면 내 컴퓨터가 아니라github 컴퓨터에 해당 레포지토리를 폴더로 저장하게 되는데 이를 클라우드 저장소라고 한다. github는 형상관리도 제공하는 클라우드 저장소로서 분산버전관리를 해준다. 이 상태는 현재 git init 상태까지 되어 있는 상태이다. 클라우드 저장소 이름이 기본으로 origin 이다.작업한 파일을 origin 으로 연결을 하는 명령어가 remote 이다.따라서 git remote add origin 레포지토리 주소(https://~) git remote -v 를 하면 연결된 레포지토리 확인 가능하다. git ls-remote 도 연결된 레포지토리 확인 명령어이다. 이렇게 파일을 origin/master 브랜..
-
(git) 10 - Git 실습 (고급) rebase 로그 관리개발/git 2024. 10. 16. 23:59
rebase : 코드에 대한 로그를 다시 정리한다. (깔끔하게)squash : 찌그러트리다, 압축하다. 사진과 같이 여러 개로 정리 안된 로그를 "로그인" 이라는 로그로 정리를 하는 방법이다. 여기서는 squash 라고 해서 어떤 점으로 찌그러트릴지(모을지)가 중요하다. 항상 과거로 찌그러뜨려야 한다. 왜냐면 과거 로그가 없어지면 안되기 때문이다. 그래서 과거 로그를 pick 하고, 이후 로그를 squash 처리해준다. 이렇게 git rebase -i HEAD~3 으로 몇 개를 리베이스 할 지를 정하면 된다.rebase 기초가 있어야 merge --squash 를 활용할 수 있다. git reabse -i HEAD~3 명령어를 치면 다음과 같이 나오고,i 키를 누르면 아래 하단처럼 INSERT..
-
(문제해결) 3 - gitbash vscode 자동 연결 해제하기개발/문제해결 2024. 10. 16. 23:38
gitbash로 git reabse -i HEAD~3 명령어를 쳤을 때,gitbash가 아니라 vscode 가 자동으로 자꾸 연결됐다. 확인해보니 git 편집기 설정이 code 로 돼있어서 문제가 됐다. ■ git 편집기 설정 확인git config --global core.editor ■ 기본 편집기 vim 또는 nano 로 변경# vim을 기본 편집기로 설정하는 경우git config --global core.editor "vim"# 또는 nano를 기본 편집기로 설정하는 경우git config --global core.editor "nano" 다음과 같이 변경해준다. 나의 경우는 vim 으로 변경해주고 확인했다. gitbash 가 vscode 자동연결이 해제되고, gitbash에서 뜬다!
-
(git) 9 - Git 실습 (고급) merge 충돌개발/git 2024. 10. 16. 23:02
같은 파일을 다른 브랜치에서 수정하면 충돌이 일어난다. 충돌이 일어나면 git 은 conflic 충돌을 말해주며, 어떤 코드로 진행할지 묻게 된다. 최초 로그인 작업을 만들어준다. topic 브랜치를 만들어주면서 checkout 한다. 여기서 로그인 파일을 "로그인 체크박스" 라는 내용으로 변경한 뒤 topic 브랜치에 commit 한다. 다시 master 브랜치로 와서 커밋해준다. 그리고 이 둘 브랜치를 master 브랜치에 merge 를 시도해본다.그러면 이렇게 merge conflict 가 일어난다. 그리고 파일을 열면 두 가지의 수정본이 나오는데,여기서 원하는 내용만 남기고 수정된 파일이 있기 때문에 git status 를 하면 변경된 파일을 감지한 것을 볼 수 있다. ..
-
(git) 8 - Git 실습 (고급) fast-forward merge / 3 way merge개발/git 2024. 10. 14. 23:47
■ 브랜치 포인터 commit 을 하면 main 브랜치가 생긴다고 오해하는데 그게 아니라,우리가 add 한 것이 점으로 찍히면서 그 기능을 main branch 가지가 가리키게 되는 것이다. 따라서 새로운 기능을 만들면 mb 포인터가 새로운 기능을 가리킨다. 새로운 브랜치 topic 을 만들고 기능을 개발한다고 하면,브랜치가 생기는 것이 아니라 tb 포인터가 가리키게 되는 것이다. tb 포인터가 개발을 하고 커밋을 하면, main 브랜치 포인터는 그대로 있고tb 포인터만 그것을 가리키게 된다. 사진처럼 형상이 그대로 이어졌다면, mb 브랜치가 병합되고 싶다면아이디 중복체크 완료로 mb 포인터가 이동하면 된다. 이렇게 포인터만 이동했다고 해서 fast-forward merge 라 한다. ..