git
로컬에서 자신의 개발 소스에 대한 관리가 가능,
remote repository에 영구적인 백업과 협업이 가능
가장 많이 사용 되는 버전 관리툴.
Repository - 파일을 버전으로 만들어 저장.
commit - git에서는 버전을 만드는 것을 의미.
branch = 독립적인 작업 공간 - 변경 사항 분리하여 관리 가능
자주 사용하는 명령어
//리눅스 명령어
//개인
git init 깃 저장소 생성(.git)
git add .파일 이름 - 수정할 파일 선택
git commit -m(메시지) - 선택한 파일 업로드 확정
git push -u(upstream) origin(깃허브) main - 실질적으로 업로드 취소x but 되돌리기 가능
//협업
git clone <URL> - 원격 저장소에 있는 코드 받아올 때(처음만)
git pull <name> - 받아온 코드 중 변경 사항만 받아올 때
git branch - 생성된 브랜치 확인
git checkout - 브랜치 변경할 때
git merge - 다른 브랜치에 현재 브랜치를 합칠 때(사용x / 보통 pull request 사용)
ls 조회
ls -l 자세히 조회 (.git 조회x)
ls -a 모두 조회 (.git 조회o)
github
git의 서비스를 기반으로 한 개발자 플랫폼이며 웹 기반 호스팅 서비스를 제공한다.
주요 특징으론 버전 관리, 협업, 이슈 트래킹, 웹 호스팅, 오픈 소스 등이 있다.
오늘 팀 프로젝트에서 배운 점
데이터베이스에 이미지 파일이 정상적으로 업로드 되도록 수정하고 있었는데
이유는 파일을 업로드 할 경우에 권한이 없어 업로드 되지 못하는 문제였다.
데이터베이스의 문제인 줄 알고
firebase cli도 받고 cors 작업도 해봤는데 적용이 되지 않았다.
문제는 storage의 권한이 였는데
이미지를 storage에 저장한 후 데이터베이스에 저장되는 줄 모르고 있었다.
결국
rules_version = '2';
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write;
}
}
}
storage의 권한을 모두가 읽고 쓸 수 있도록 임의로 고쳐놓았다.
밑은 이미지 업로드 수정한 코드이다.
// Firebase 인스턴스 초기화
const app = initializeApp(firebaseConfig);
const db = getFirestore(app);
const storage = getStorage(app);
//추가 버튼 누를 시
$("#registerbtn").click(async function () {
//각 항목의 value 저장
const image = $('#image')[0].files[0];
const name = $('#name').val();
const mbti = $('#mbti').val();
const email = $('#email').val();
const content = $('#content').val();
const github = $('#github').val();
const blog = $('#blog').val();
let imageUrl = '';
// 이미지 파일이 있는 경우에만 업로드
if (image) {
const storageRef = ref(storage, `images/${image.name}`);
await uploadBytes(storageRef, image);
imageUrl = await getDownloadURL(storageRef);
}
let doc = {
'image': imageUrl,
'name': name,
'mbti': mbti,
'email': email,
'content': content,
'github': github,
'blog': blog
};
await addDoc(collection(db, "members"), doc);
alert('저장 완료');
document.location.href = 'index.html';
});