소개
개인 생성 프로젝트와 달리 Lovable로 프로젝트 생성 후 github에 연동 시 발생하는 현상과 GUI를 통한 손쉬운 git 관리 사례를 공유
진행 방법
Token 관련 에러
Lovable로 프로젝트를 생성하면 다음과 같이 git으로 연동이 가능하다.
항목 목록을 보여주는 웹 페이지의 스크린 샷
Transfer Project 를 누르면 github에 저장소가 생성이 되는데, 생성된 url로 git clone을 하면 아래와 같은 오류메시지가 발생한다.
remote: Support for password authentication was removed on August 13, 2021. remote: Please see https://docs.github.com/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication. fatal: Authentication failed for '<github 저장소 url>'2021년 8월 인증방식이 바뀌어 토큰이나 ssh를 사용해서 접근을 해야 한다.하지만 여태까지 로컬에서 프로젝트를 생성하고 git repository에 프로젝트를 올렸을 땐 위와 같은 에러가 발생하지 않았었는데 Lovable로 생성된 프로젝트를 사용하니 위와 같은 에러가 발생했다. 로컬에서 생성한 프로젝트는 정상적으로 동작했던 이유는 아래 이유로 추정된다.
위 현상은 개인토큰을 발급하거나 ssh를 사용하면 되는데 개인토큰을 발급하는 방식으로 해결했다.
1) https://github.com/settings/tokens로 이동
2) Generate new Token (classic) 선택
페이스 북 페이지에서 결제 설정의 스크린 샷
3) 토큰의 만료날짜와 옵션 설정
위 과정을 거치면 토큰이 생성되는데, git clone 후 아이디와 비밀번호를 입력할 때, 비밀번호에 붙여넣어서 사용하면 된다.
토큰을 발급 받고 프로젝트를 clone한 이후 반복해서 토큰을 복사해서 인증하기 귀찮다면 아래 명령어를 통해 해결할 수 있다.
git config --global credential.helper cache Sourcetree(GUI)로 프로젝트 관리
Sourcetree는 CLI를 사용하지 않고 git을 관리할 수 있는 프로그램이다. 개인이 로컬로 생성한 프로젝트의 경우는 Sourcetree 내의 새로만들기를 통해 프로젝트를 clone하고 관리가 가능하지만 Lovable로 생성한 프로젝트는 cli로 위에 적힌 과정을 통해 별도의 clone이 필요하다.
하지만 이미 clone을 한 프로젝트를 Sourcetree에 추가하면 복잡한 cli 명령어 없이 프로젝트 관리가 가능하다.
컴퓨터에서 중국어 앱의 스크린 샷
상단의 새로만들기 => url에서 복제 를 선택하면 위와같은 화면이 나타나는데 git repositiory의 url을 원본 URL에 입력하고 경로를 설정하면 프로젝트 리스트가 생성된다.
왼쪽하단에 나타난 리스트들을 체크하거나 상단으로 드래그하면 git add를, 하단에 메시지를 입력후 커밋버튼을 누르면 git commit -m 명령어를 사용할 수 있다.
이외에도 우측상단메뉴에서 pull, push, branch, stash 등의 명령어를 사용할 수 있는데 stash는 commit을 하고 싶지 않지만 내용을 임시로 저장하고 싶을 때 사용하면 유용하다. (commit을 하지 않고 다른 branch의 내용을 먼저 확인하는 상황 등)
stash를 하면 왼쪽 치워두기에 리스트가 생성되는데 저걸 더블클릭하면 임시로 저장한 내용이 다시 로컬에 적용된다.
결과와 배운 점
개인프로젝트에서는 발생하지 않았던 인증문제가 Lovable을 통해 공유받은 프로젝트에서는 발생했을 때, 외부 프로젝트를 많이 활용해보지 않은 것에 대한 반성을 하게 되었다. 익히 알려진 서비스들이 기본적인 보안에 대해 잘 갖춰졌다고 느껴졌고 앞으로 서비스를 런칭할 일이 생긴다면 기존의 생각보다 보안에 더 신경을 많이 써야 한다는 생각이 들었다.