프로그래밍/기타 검색 결과

3개 발견
  1. 미리보기
    2018.11.18

    Vagrant 관련 이슈 글 모음

  2. 미리보기
    2018.11.09

    Eclipse와 Github 연동(2) - github에서 프로젝트 받기

  3. 미리보기
    2018.11.09

    Eclipse와 Github 연동(1) - 프로젝트를 github에 올리기

Docker 관련으로 된 글을 보던중 Vagrant를 알게 되어 Vagrant를 설치하게 되었다. Vagrant에 대한 설치는 도커 Docker 기초 확실히 다지기 이 글을 보고 Vagrant를 설치했다. 그러나 Vagrant를 설치 및 운영하다 보면 이슈사항이 나올것 같아서 개인 기록 및 공유 차원에서 이 글에 기록해두고자 한다. 그래서 이 글은 그런 이슈 사항이 나올때마다 갱신될 예정이다(근데 Vagrant 이건 발음이 어떻게 되나..베이그랜트? 바그랜트?)


1. Windows 10에서 위에 링크되어 있는 글을 보고 설치한뒤 centos/7 으로 VM을 하나 만들어서 vagrant ssh를 실행하니 vagrant@127.0.0.1: Permission denied (publickey,gssapi-keyex,gssapi-with-mic). 에러가 발생하면서 ssh에 대한 접속이 이루어지지 않았다. 이것에 대해 검색해보니 환경변수로 VAGRANT_PREFER_SYSTEM_BIN을 만든 뒤 이 변수에 값을 0을 주면 해결이 된다고 해서 이 방법을 써서 해결이 되었다. VAGRANT_PREFER_SYSTEM_BIN 환경변수가 궁금한 사람은 여기를 클릭해서 보면 된다.


2. 1번의 문제를 해결한뒤 ssh를 접속해보니 vagrant 란 계정을 디폴트로 만든뒤에 이 계정으로 접속이 되었다. 그러나 root 계정이 아니기 때문에 yum 명령을 이용해서 프로그램을 설치할려면 sudo 명령을 같이 써야 한다(ex: sudo yum ...) 이것이 불편해서 root 계정의 패스워드가 무엇인지 찾아봤는데 기본적으로 root 계정의 패스워드는 vagrant로 설정하고 있다. 그러나 현재는 Vagrantfile에서 root 계정의 패스워드를 설정하는 방법을 찾지는 못한 상황이다. VM을 만드는 시점에 root 계정의 패스워드를 지정하면 편할텐데 아직은 모르겠다.


3. Windows 10에서 Vagrant를 설치하니 Vagrant에서 box로 통하는 이미지들(docker로 하다보니 용어가 이미지로 되어버렸다)은 받아지는 위치의 기준이 C:\Users\사용자 계정\.vagrant.d 이 디렉토리 밑에 boxes라는 디렉토리에 받아지고 있었다. .vagrant.d 디렉토리가 Vagrant의 Home 디렉토리 역할을 하고 있다. 이 Home 설정 개념이 Java나 Maven과는 약간 다른데 Java나 Maven의 경우 JAVA_HOME과 MAVEN_HOME은 Java나 Maven이 설치된 디렉토리를 가르켜야 하지만 Vagrant의 경우는 그렇지가 않다(실제로 나는 Vagrant를 D:\Vagrant에 설치했다) 이 이미지를 받는 디렉토리가 C 드라이브에 있을 경우 C 드라이브 용량이 작아지는 상황이 벌어질수 있어서 위치를 바꾸었다. 위치르 바꿀때는 환경변수로 VAGRANT_HOME에 지정하면 된다(나는 VAGRANT_HOME을 D:\Vagrant_VMS\.vagrant.d 로 지정했다) 이때 주의점이 있다. VAGRANT_HOME에 매핑되는 디렉토리를 Vagrant가 설치된 디렉토리(나의 경우로 예를 들면 D:\Vagrant 가 된다)의 하위 디렉토리로 설정하면 안된다. Vagrant를 설치하면 Vagrant가 설치된 디렉토리는 일반 계정으로는 접근이 안되기 때문에 읽거나 쓰지 못하는 상황이 벌어져서 이미지를 다운로드 받지 못하게 된다. 그래서 위에서 언급한 설정으로 Vagrant 설치 디렉토리가 아닌 D:\Vagrant_VMS\.vagrant.d로 지정했다.


트랙백을 확인할 수 있습니다

URL을 배껴둬서 트랙백을 보낼 수 있습니다

다른 카테고리의 글 목록

프로그래밍/기타 카테고리의 포스트 목록을 보여줍니다

지난 글에서는 Eclipse와 git을 사용해서 github에 자신이 만든 프로젝트를 올리는 방법에 대해 설명했다. 이번엔 그 반대의 상황으로 github에 올라와 있는 프로젝트를 자신의 eclipse workspace로 받는 방법에 대해 설명하고자 한다. 환경은 지난글과 동일한 환경이어서 환경에 대한 얘기는 생략하기로 하겠다. 대신 지난번 글을 보고 그대로 따라한 상황에서 이번 글을 보고 그대로 따라하고 싶으시다면 지난번 글에 올라간 자신의 프로젝트를 eclipse workspace에서 삭제해주길 바란다. 이번 글로 설명할때 프로젝트가 자신의 workspace에는 없다는 가정에서 할 것이기 때문에 eclipse workspace에 등록되어 있는 github 에 등록된 자신의 프로젝트를 삭제하고 진행하길 바란다(이때 프로젝트에서 마우스 우클릭하여 나오는 context menu에서 Team -> disconnect 를 선택하여 git과의 연동을 끊은 뒤에 프로젝트가 있는 worksppace 디렉토리에서 해당 프로젝트 디렉토리가 삭제가 된 상태로 삭제 처리를 해주어야 한다)


먼저 해야 할 것은 지난 글을 통해 자신의 프로젝트 소스가 올라간 github repository에 가서 주소를 얻어와야 하는 일이다. 아래의 그림은 github repository를 브라우저로 방문했을때 나타나는 화면이다.



여기서 빨간 박스로 표시된 Clone or download 버튼을 클릭하면 위의 그림과 같이 Clone with HTTPS 타이틀을 가진 조그만 레이어 화면이 나오는데 이때 파란색 박스로 표시된 버튼을 클릭하여 현재 방문한 repository의 URL을 복사하여 문서편집기에 일단 붙여넣자. 그리고 탐색기를 통해 eclipse에서 현재 사용중인 workspace 디렉토리로 이동한 뒤 마우스 우클릭하여 나오는 context menu에서 Git Bash Here 메뉴를 선택한다.



여기서 중요한 점은 이 작업을 하게 되는 디렉토리다. 이 부분은 이전 글과는 차이점이 있다. 이전 글에서는 Git Bash 화면을 띄우는 위치가 해당 프로젝트의 디렉토리였다. 그러나 이번글은 프로젝트가 없는 상태에서 github에 등록된 자신의 프로젝트를 받는 것이기 때문에 이전 글과 같이 해당 프로젝트의 디렉토리로 이동할 수 없는 상황이다. 그렇기 때문에 이 작업을 할때는 이 프로젝트를 받게되는 eclipse workspace 디렉토리에서 해야 한다. 이 작업을 하게 되면 해당 디렉토리에서 Git Bash Prompt 화면을 띄워주게 된다. 이 상태에서 다음의 명령어를 입력해주면 된다. 


git clone remote repository 주소


여기서 remote repository 주소 란 것은 아까 위에서 github에서 복사하여 문서편집기에 붙여넣은 주소이다. 아래의 그림은 다음의 명령어를 실행한 화면이다.



위의 화면을 보면 명령어를 remote repository에 접속하여 해당 remote repository에 올라와 있는 것을 받게 된다. 이때 remote repository 이름(여기서는 samplemvn이 된다)으로 디렉토리를 만들어 받게 된다. 현재 이 명령어를 실행할때 eclipse의 workspace 디렉토리에서 실행했기 때문에 workspace 디렉토리에 remote repository 이름으로 디렉토리를 만들어서 받게 된다. 이때 git local repository도 같이 생성해주기 때문에 이전 글에서 했던 git init 명령을 하지 않는다. 아래의 화면은 이 작업을 진행한 뒤의 workspace 디렉토리를 탐색기로 본 화면이다. samplemvn이란 디렉토리가 만들어져있다. 그래서 git으로 할 작업은 모두 다 끝났다.(벌써? 이걸로?)



그러면 이걸로 진정 끝난걸까? 아니다. 끝난것은 git으로 할 작업뿐이다. eclipse의 workspace 디렉토리에 해당 repository를 다운로드 받으면 eclipse에서 바로 사용할 수 있을까? 전혀 아니다. 왜냐면 workspace 디렉토리에 다운로드만 받은것 뿐이지 이것이 eclipse의 프로젝트로 등록되어진 상태는 아니기 때문이다. 그래서 지금부터는 이렇게 다운로드 받은 프로젝트를 eclipse에 등록하는 작업을 진행하고자 한다. 먼저 eclipse에서 다음과 같이 Package Explorer에서 마우스 우클릭하여 나오는 메뉴에서 import 메뉴를 실행한다.



Import 메뉴를 실행하면 아래의 화면과 같이 Import 화면이 나오는데 여기서 Git의 Projects from Git 선택한뒤 Next 버튼을 클릭한다.



Projects from Git을 선택하면 아래와 같은 화면이 나오는 데 여기서 Existing local repository를 선택한 뒤 Next 버튼을 클릭한다.



Next 버튼을 클릭하면 아래와 같은 화면이 나오는데 여기서 빨간 박스로 표시된 Add 버튼을 클릭한다.



Add 버튼을 클릭하면 아래의 화면과 같이 나타난다. 여기서 빨간 박스로 표시된 Browse... 버튼을 클릭하면 폴더 선택 화면이 나오는데 여기서 local repository 디렉토리를 선택한다. 그러면 이 디렉토리가 어떤것인가? 이전 글에서는 git init 명령을 실행하면 만들어지는 .git 디렉토리가 local repository 디렉토리였지만 지금 상황에서는 맞지 않는다. 그러면 이 디렉토리는 어디인가? 아까 git clone 명령을 실행해서 받은 디렉토리(remote repository 이름으로 된 디렉토리)의 하위 디렉토리를 보면 .git 디렉토리가 있다. 그 디렉토리를 선택해준다.



.git 디렉토리를 선택하면 아래 화면과 같이 선택한 .git 디렉토리가 화면에 보이게 되는데 이때 아래 화면과 같이 해당 .git 디렉토리를 체크 설정을 해준다. 그러면 화면이 나타날 당시엔 비활성화 되어 있는 Finish 버튼이 활성화가 된다. 아래 화면과 같이 설정해준뒤 Finish 버튼을 클릭한다.



Finish 버튼을 클릭하면 아래의 화면과 같이 선택한 local repository가 추가된다. 이때 아래 화면과 같이 추가된 local repository를 선택한 상태에서 Next 버튼을 클릭한다.



Next 버튼을 클릭하면 아래와 같은 화면이 나오는데 여기서 Import as general project를 선택한뒤 Next 버튼을 클릭한다.



Next 버튼을 클릭하면 이 진행과정의 마지막 단계로 프로젝트 이름을 설정하는 화면이 나온다. 프로젝트 이름을 입력한뒤 Finish 버튼을 클릭하면 eclipse에 프로젝트를 등록하는 모든 과정을 마치게 된다.



여기까지 진행해서 github을 통해 받은 프로젝트를 eclipse에 등록하는 과정을 마쳤다. 그러나 이것으로 끝난 것일까? 아니다. 아직 한가지 작업이 더 남았다. 아래의 화면을 보자.



위의 화면은 방금 등록한 프로젝트의 하위 구조를 열어보인 것이다. 이걸로 작업할 수 있을까? 불가능하진 않지만 불편하다. 이전 글을 통해 우리가 프로젝트를 github에 올렸을 때 Maven 기반의 프로젝트를 올렸는데 위의 화면은 Maven 프로젝트의 형태로 보이지 않는다. 이유는 우리가 이 프로젝트를 일반적인 Java 프로젝트로 등록했기 때문이다. 그래서 이 프로젝트를 Maven 기반 프로젝트로 변환해줘야 한다. 위의 그림과 같이 프로젝트에서 마우스 우클릭하여 나오는 context menu에서 configure 메뉴의 Convert to Maven Project 메뉴를 선택해준다. 그러면 프로젝트 구조를 Maven Project 구조로 바꿔주면서 아래의 화면과 같은 형태로 보여주게 된다.



이상으로 모든 과정이 끝났다. git 관련 명령을 실행하는 것도 이전 글에서와 같이 마찬가지로 Eclipse의 Team 메뉴를 통해 git 관련 명령을 실행할 수 있기 때문에 Git Bash 화면을 띄워서 작업하지 않아도 된다. 


이전 글에서와 마찬가지로 이것도 연동하는 과정에서 로그인 아이디와 비밀번호를 물어보는 상황이 나올수 있다. 이때는 github의 로그인 아이디와 비밀번호를 입력하면 된다.


트랙백을 확인할 수 있습니다

URL을 배껴둬서 트랙백을 보낼 수 있습니다

다른 카테고리의 글 목록

프로그래밍/기타 카테고리의 포스트 목록을 보여줍니다

개인적으로 eclipse와 github을 연동하면서 싫어하는 상황이 하나 있다. 그것은 Eclipse에서 git을 사용하려면 local repository 디렉토리를 설정해야 하는데 연동을 하게 되면 연동된 프로젝트들이 모두 local repository 디렉토리 밑으로 들어가게 되어서 실제로는 프로젝트 소스가 eclipse의 workspace에 존재하지 않게 된다. 이렇게 될 경우 동일한 workspace에 존재하는 여러 프로젝트들 중 git으로 공유되지 않은 프로젝트는 workspace 디렉토리에 있지만 디스크에 2군데에 존재하는 상황이 벌어진다. 이점에 있어서는 IntelliJ 가 잘되어 있는게 IntelliJ의 경우는 local repository를 특정 디렉토리로 설정하는 것이 아니라 공유 대상이 되는 Module 밑에 이 local repository를 두게 된다. 그래서 이클립스와는 달리 같은 소스가 2군데에 존재하는 상황은 벌어지지 않는다(git 연결을 더이상 안할려고 할 경우엔 IntelliJ에서 git과의 연동을 끊고 .git 디렉토리를 지워주면 끝이다) 그래서 이 글에서는 IntelliJ 처럼 Eclipse 프로젝트 디렉토리 밑에 git local repository를 두어서 연동하는 방법에 대해 써보고자 한다. 이 글에서 사용하는 프로그램은 Eclipse는 아니고 Eclipse 기반의 Spring Tool Suite 4(이하 STS로 하겠다)이지만 git을 연동하는것은 Eclipse나 STS 모두 EGit을 사용하기 때문에 같은 방법으로 사용할 수 있다.


이 방법으로 할 경우 먼저 git의 공식 사이트인 git-scm.com에서 자신의 운영체제에 맞는 git client를 설치해야 한다. git client를 설치하는 방법은 다른 블로그들에 이미 많이 소개되어 있어서 여기서는 소개하지는 않고 이것이 설치가 되어 있다는 상태에서 설명을 시작하도록 하겠다. 먼저 git의 remote repository를 만들어준다. github에서 자신이 만든 remote repository를 들어가면 이런 형태의 화면을 보게 될 것이다.



이 화면에서 빨간색 박스가 쳐져 있는 버튼을 클릭해서 현재 자신이 만든 remote repository의 주소를 복사한 뒤에 메모장 같은 문서 편집기에 붙여넣는다. 이 주소는 나중에 쓸 것이라서 일단은 다른데에 보관하는 차원에서 붙여넣어둔 것이다.


그 다음으로 remote repository에 올릴 프로젝트의 디렉토리로 이동한다. 여기서는 설명을 하기 위해 D:\workspaces\samplemvn 디렉토리가 Eclipse의 프로젝트 디렉토리라고 하겠다. 여기서 마우스 우클릭을 하면 다음과 같은 화면이 나타난다(이 프로젝트는 STS에서 Spring Starter Project 메뉴를 이용해서 만든 Maven 기반의 Spring Boot 프로젝트이다. 그래서 .gitignore 파일이 있다)



위에서 언급했던 Git Client를 설치했다면 마우스 우클릭시 다음과 같이 Git GUI Here란 메뉴와 Git Bash Here 란 메뉴가 나타날것이다. 여기서 Git Bash Here 메뉴를 선택한다. 그러면 이 폴더에 위치한 상태로 Git Bash 화면이 나타난다. 이 화면에서 다음의 순서대로 명령어를 입력해서 실행시켜 준다. 그러면 아래의 그림과 같이 나타난다.


  1. git init
  2. git add .
  3. git commit -m "commit message"
  4. git remote add origin 문서편집기에 붙여 두었던 github remote repository 주소
  5. git push origin master

 


위에서 나열한 명령어가 하는 작업에 대해 간략하게 설명하자면 git init이란 명령을 해서 현재 디렉토리를 기준으로 local repository를 만들게 된다. 이 명령을 하면 .git 폴더가 숨김 폴더 형태로 만들어지게 된다. git add . 을 실행해서 local repository에 보관되어 있는 것과 변경점이 있는 파일들을 index에 추가한다. 여기서는 local repository가 금방 만들어져 있는 상태여서 아무것도 없기 때문에 현재 디렉토리에 있는 모든 디렉토리와 파일이 추가된다. 그리고 git commit -m "commit message" 를 통해 index에 추가된 디렉토리와 파일을 commit 하게 된다. 위의 그림을 보면 Init Project 로 commit message를 설정해서 명령을 실행했다. 그리고 git remote origin remote repository 주소를 통해 remote repository를 추가한다. 여기서 사용하는 remote repository 주소는 아까 문서편집기에 붙여넣은 remote repository 주소를 사용한다. 그리고 이렇게 사용되는 remote repository 주소를 origin 이란 이름으로 remote repository에 추가한다. 그리고 마지막으로 git push -u origin master 를 통해 local repository에 있는 디렉토리와 파일들을 remote repository에 추가한다. 이렇게 자신의 프로젝트가 github에 방금 만들어놓은 remote repository에 들어가게 된다. 이 과정을 거친뒤에 github에 들어가면 다음과 같이 자신의 프로젝트 소스들이 들어가 있는 repository를 보게 된다. 



지금까지 한 과정은 github과의 연동을 전체 과정중 절반까지 한 것이다. 우리가 github 연동할 때 위에서 사용했던 Git Bash 화면으로만 할 것이면 전부 다 한것이지만 그렇게 할 경우엔 git 명령을 일일이 프롬프트 화면에서 명령어 입력하는 형태로 진행해야 하기 때문에 불편하다. Git Bash  화면으로 하는 것은 연동에 대한 초기화 작업만 진행하는 것이고 그 다음부터 commit, push, pull 등의 git 관련 명령을 실행하는 것은 eclipse에서 하는 것이 편하다. 실제 현재 상황을 설명하자면 git 과의 연동은 Git Bash 화면에서는 모두 끝이 났지만 eclipse에서는 아무런 연동이 되어 있지 않은 상황이다. 그래서 지금부터 하는 설명은 eclipse에서 git 명령을 할 수 있게 연동하는 과정을 설명하겠다. eclipse에서 Git Bash 화면을 통해 github과 연동되어 있는 프로젝트에서 마우스 우클릭을 하면 아래와 같은 context menu가 나오는데 이 메뉴에서 아래 그림과 같이 Team -> Share Project... 를 선택한다.



Share Project... 메뉴를 선택하면 아래의 그림과 같이 나타난다. 흔히 eclipse와 git 연동 관련 글을 보게 되면 이 과정에서 나오는 화면과는 다른 모습이 보일 것이다. 왜냐면 기존 글은 git을 연동하지 않은 상태에서 메뉴를 선택했기 때문에 local repository를 만드는 과정을 거치지만 우리는 이미 Git Bash 화면을 통해 local repository를 만들어놓은 상태이기 때문에 local repository 디렉토리(여기서는 .git 디렉토리)를 자동으로 인지하게 되어서 아래의 그림과 같이 나타난다. 아래와 같이 화면이 나온 상태에서 Finish 버튼을 클릭하면 Eclipse에서 Git을 연동한 과정이 모두 끝나게 된다.



이렇게 모든 과정을 진행한뒤 다시 eclipse 프로젝트에서 마우스 우클릭을 해서 Team 메뉴를 들어가보면 아래의 그림과 같이 Git 관련 명령을 사용할 수 있는 메뉴들을 볼 수 있게 된다. 이후부터 git 관련 작업은 Git Bash 화면이 아닌 eclipse의 Team 메뉴를 통해서 작업하면 된다.



이렇게 자신이 만든 프로젝트를 github과 같은 remote repository에 올리는 방법에 대해 설명했다. 지금까지 설명한 내용을 살펴보면 eclipse에서 local repository를 만든것이 아니라 Git Bash 화면을 통해 현재 프로젝트 디렉토리 하위에 만들었기 때문에 프로젝트 소스가 workspace에 존재하지 않는 그런 상황이 발생되지 않는다. 이 글에서는 자신이 만든 프로젝트를 remote repository에 올리는 방법에 대해 설명했고 다음 글에서는 remote repostory에 올라와 있는 소스를 자신의 eclipse workspace 디렉토리에 가져오는 방법에 대해 설명하겠다.


이 글에서는 언급하지 않았지만 연동하는 과정에서 로그인 아이디와 비밀번호를 물어보는 상황이 나오게 된다. 이때는 github의 로그인 아이디와 비밀번호를 입력하면 된다.


트랙백을 확인할 수 있습니다

URL을 배껴둬서 트랙백을 보낼 수 있습니다

다른 카테고리의 글 목록

프로그래밍/기타 카테고리의 포스트 목록을 보여줍니다