본문 바로가기
자바 정보

세미 설정 (워크스페이스, 서버 환경설정 + 깃허브)

by moca7 2024. 9. 12.

 

 

[프로젝트를 만들어서 깃에 올리는 사람 입장]

 


ㅁ 세미 워크스페이스 폴더 만들기


- 깃에 워크스페이스 자체를 올렸었는데 원래는 프로젝트 단위로 올린다. 지금부턴 프로젝트를 올린다. 
- 그럼 팀원들은 모두 다 워크스페이스를 각자 만들어야 한다. 세팅도 다 각자 해야 한다.
- 팀원 중 한명만 프로젝트를 올리고 초대를 할 수 있다.


- C:\workspaces에 semi-workspace 폴더를 만든다.
- 이클립스로 워크스페이스를 C:\workspaces\semi-workspace로 선택하고 실행한다.

이러면 C:\workspaces\semi-workspace에 ".metadata" 폴더가 만들어진다.


- 워크스페이스 세팅, 서버세팅은 다 각자해야 한다. 
프로젝트는 한명이 만든다.
프로젝트 이름은 팀명을 따서 각 팀별로 다르게 만든다. 

 

 

 

워크스페이스 세팅, 서버세팅

- https://moca7.tistory.com/192

 

 

 

프로젝트 만들기(세팅)

- https://moca7.tistory.com/193

 

 

 

 

 

ㅁ 패키지 구성하기

 

- 프로젝트를 만들었다고 바로 깃에 올리지 않고, 패키지 구성을 어떻게 할지 다같이 회의한다. 
- 두번째 레벨까지는 도메인의 역순(com.br)으로 하고, 세번째 레벨은 context path를 따오는게 좋다. (com.br.semi)

 

 

- 깃은 파일 단위로 관리된다.

패키지도 결국 폴더다. 그래서 패키지만 있는 상태로 깃에 올린다고 폴더가 만들어지지 않는다.
적어도 패키지마다 파일이 하나씩은 있어야 폴더가 다 올라간다. 
깃에 올리고 나서 쓰레기 파일은 다 지워주면 된다.

 

 

 

 

ㅁ src/main/webapp에 필요한 폴더 추가하기


- 현재 META-INF, WEB-INF이 있다.

- 추가로 views 폴더를 만든다.

view 폴더 안에 board, common, member 폴더 등을 만들면 그 폴더들에도 각각 아무 파일이 하나씩은 있어야 한다.
- assets 폴더도 만들고 그 안에 image, css, js, lib 폴더를 만든다.

 

- src\main\webapp\WEB-INF\lib에 "ojdbc6.jar", "cos.jar", "gson-2.8.5.jar", "json-simple-1.1.1.jar"를 둔다.

 


dao, service 파일은 사람들마다 파일 이름을 다르게 생각할 수 있어서 초반에 만들어놔도 된다.
header, footer도 다 만들었다면 미리 초반에 올려놔도 된다.



- 깃에 올리기 전에 webapp에 index.jsp를 메인페이지로 아무말이나 써놓고 잘 뜨는지 테스트한다.
(서버에 어플리케이션을 올리고 테스트)

 

 

 

 

 

ㅁ gitignore 추가하기


- 깃에 올리기 전에 gitignore파일도 있어야 한다. 초반에 해야 한다.
05_jsp~에서 가져와서 올리고자 하는 "프로젝트 폴더"에 둔다.
예전처럼 워크스페이스가 아니라 "프로젝트 폴더" 안에 둔다.

 

- 05_jsp~의 gitignore 파일은 ".properties", "Servers/"가 추가된 gitignore 파일이다.

 

 

 

 

ㅁ git에 올리기


깃에 워크스페이스(C:\workspaces\semi-workspace)가 아니라

프로젝트(C:\workspaces\semi-workspace\vita) 만 올린다.


- 깃허브 데스크탑을 연다.
file - new repository - local path를 choose 눌러서 c:\worksapces\semi-workspace를 선택하면 
로컬 패스가 c:\worksapces\semi-workspace가 보여진다.

(올리고자 하는 폴더의 한 단계 상위폴더를 선택한다.)


- 그리고 Name에 semiProject, vita 등의 올리고자하는 폴더 이름(프로젝트명)을 적는다.
- readMe 파일을 체크한다.

 


create repository 한다. 이런다고 끝이 아니다.
publish repository까지 해야 끝난다.
(이때 private으로 체크해도 초대하면 다른사람들이 내가 올린 repository에 접근할 수 있다)




ㅁ 팀원 초대보내는 법
- 깃허브 홈페이지에서 your repository - 초대를 보내고자 하는 repository에 들어가서

깃허브 상단 메뉴 중 settings - access의 collaborator - add people - 닉네임?을 입력해서 선택하면 메일이 발송된다.
- 초대를 받은 사람은 private이어도 repostiory에 접근이 가능하다. 



==========================================================================

 

[초대받은 팀원 입장]

 

 

 

ㅁ 워크스페이스 만들기

- C:\workspaces에 semi-workspace 폴더를 만든다.
- 이클립스로 워크스페이스를 C:\workspaces\semi-workspace로 선택하고 실행(launch)한다.

이러면 C:\workspaces\semi-workspace에 ".metadata" 폴더가 만들어진다.

 

 

 

 워크스페이스 세팅, 서버세팅

- https://moca7.tistory.com/192

 

 

 


ㅁ 프로젝트 깃에서 가져오기

- 워크스페이스 세팅, 서버 세팅까지는 했다. 

- 그러나 C:\workspaces\semi-workspace에 프로젝트는 없는 상태다.

(".metadata", "Servers" 폴더만 있음)

 

 

 


ㅁ 깃허브에서 초대받은 repository에 간다.

 

 

- code - open with github desktop - 위는 건들지 않고 아래의 choose - "semi-workspace"를 선택한다.
그러면 아래의 Local path에 "semi-workspace\vita"가 뜬다.

 

 

 

 


- clone을 누르면 클론이 만들어진다.

 

 

 

 

 

- 클론이 만들어졌다. 탐색기에선 vita라는 프로젝트가 보인다. 

(프로젝트명, 컨텍스트패스 모두 vita로 동일한 상태다)

 

 

 

 

 

- 그러나 이클립스에선 vita라는 프로젝트가 보이지 않는다.

- File - open projects from file system으로 프로젝트를 열어야 한다.

 

 

 

 

- Directory를 눌러서 C:\workspaces\semi-workspace\vita 폴더를 선택하고 바로 finish한다.

 

 

 

 

 

- 이제 이클립스의 package explorer에 Servers, vita가 보인다.

 

 

 

 

 

 

ㅁ 프로젝트 환경설정

- 초대받은 팀원들은 깃으로 내려받기 전에, 워크스페이스 세팅과 서버 세팅만 완료한 상태다.

 

- 추가로 프로젝트 환경설정을 해야 한다.

프로젝트를 깃으로 내려받고 open projects from file system으로 프로젝트를 처음 열면 이클립스에서 일반 폴더로 인식되기 때문에 내려받은 프로젝트 환경설정을 해야 한다.

 

 

 

- 프로젝트 환경설정(만들기)   https://moca7.tistory.com/193

 

 

 

ㅁ 프로젝트 환경설정이 끝났으면 서버에 어플리케이션을 올리고 정상적으로 구동되는지 확인한다.

 

 

 

 

 

ㅁ 라이브러리 추가

- src\main\webapp\WEB-INF\lib에 "ojdbc6.jar", "cos.jar", "gson-2.8.5.jar", "json-simple-1.1.1.jar"를 갖다둔다.

 

 

ㅁ driver.properties 추가

- src/main/java에 db.config 패키지를 만든다.

- db.copnfig 우클릭 - new - file로 "driver.properties"를 만든다.

 

 

 

 

 

 

 

====================================================================

 

 

 

[팀원 공통 사항]



ㅁ commit & push


- 커밋 할 때 제목과 설명을 어느정도 써준다.


- push하면 항상 단톡방에 push했다고 팀원들에게 알려주기.
그러면 다른 사람들은 하던 작업을 멈추고, 작업하던 파일은 백업하고 바로 pull을 하는게 좋다. 
- 오랫동안 pull을 받지 않다가 pull 받으면 오류(충돌)가 발생할 수 있다. 주기적으로 pull 받는게 좋다.

 

- fetch origin으로 새로고침을 하면 pull 받을게 뜬다.



ㅁ push도 pull도 자주 해주는게 좋다.

- 충돌이 여러개 나면 해결하기 힘들다.


 


ㅁ 다른 사람이랑 나랑 똑같은 파일의 똑같은 라인을 작업하고 있을 수 있다.


- 다른 사람이 3번째 줄을 수정하고 commit & push를 했는데,

내가 pull을 받지 않은 상태로 나도 3번째 줄을 작업하고 있을 수 있다.


- commit & push 하기전에 pull을 "먼저" 받아야 한다.
그래서 pull을 받으려하면 에러가 뜬다. 어떤 파일에 문제가 있다고 뜬다. 충돌 발생.

 


- 여기서 '파란색' 버튼을 누르면 내가 작업한 게 사라진다. 쓰레기통가서 다시 살릴 수는 있지만 바로 파란색 버튼 누르지 말고,
충돌된 파일이 있다고 인지하면 일단 그 창을 x나 close로 닫고, 팀원과 얘기해서 충돌을 해결하고 다시 올린다.

 

 

- 파란색 버튼을 누르면 pull이 되는데 내가 쓴건 날라가고 남이 쓴 것만 남는다.

- 쓰레기통(stashed chagnes)에 내가 작업한 변경사항이 여기에 있다.

여기서 discard하면 완전 삭제된다.

여기서 resotre하면 내 코드가 다시 살아난다. 파일을 까보면 내가 작성한 부분, 상대방이 작성한 부분이 다 보여진다.

 

 

 


ㅁ 충돌 해결하기

- pull 받을 때 error 창이 뜨면 어떤 파일들이 충돌났는지 확인만 하고 파란색 버튼을 누르지 않고 창을 닫는다.

- 충돌난 파일만 체크해서 commit & push를 하면 충돌을 해결하라는 창이 뜬다. 

- 충돌이 났다고 알려주는 화면에서 open with vscode를 누르면 충돌난 파일을 vscode로 열어볼 수 있다. 
내가 작성한 부분, 상대방이 작성한 부분이 보여진다.

다른 팀원과 얘기를 해서 어떻게 할지 정해야 한다.


- 이클립스보다 vscode에서 수정하는게 좋다.
vscode에서는 수락을 누르면 바로 반영된다.  둘 중 하나만 살릴 수도 있고 둘 다 살릴 수도 있다. 

- 다른 팀원과 얘기해서 충돌을 어떻게 해결할지 정하고, merge 후 다시 push한다.

 

 

 

 

ㅁ 백업

- 그냥 탐색기에서 프로젝트 폴더를 zip파일로 압축시키고 날짜랑 시간 적으면 끝이다.

 

 

 

ㅁ 항상 pull을 받으면   ★ ★ ★ 이클립스에서 새로고침을 습관처럼 해야한다. ★ ★ ★

- pull을 받아도 이클립스에선 다른사람이 새로 만든 파일이 안보일 수 있다. 

깃허브 데스크톱에서 pull을 받아도 이클립스에는 실시간 반영이 안된다.

- 프로젝트 선택하고 f5하면 된다.

 

 

 

 

ㅁ 정리

- push하면 다른사람에게 알려주기

- 누군가 push하면 전부 다 pull 받기 (이클립스에서 프로젝트 새로고침까지 - 실시간 반영 안됨)

- 주기적으로 백업하기