TIL230904(월) Github vscode 업로드방법, branch 하는 법

박지은·2023년 9월 4일
0

TIL

목록 보기
17/36

level2 과제를 완수했다!!
페어로 과제를 하면서 좀 놓친 부분이 있는데, git, github으로 협업을 해야한다는 점을 놓치고 있었다.
처음에는 같이 liveshare를 통해서 작업을 했는데, 나중에 협업으로 일을 하게 될 때, github의 중요성을 크게 느낄 것 같아서
이제부터는 잘 이용해보려고 한다.

Github vscode 업로드방법

1. git init 
2. git add .  현재 작업한 내역을 다 추가한다. 
2. git commit -m "first message"  
푸쉬 전에는 무조건 commit
4. git branch -M main 
5. git remote add origin <http:레포지토리 주소>
6. git push -u origin main 
7. git add . 
8. git commit ~~~반복 
9. git push 만 씀

그리고 현재 git 상태가 궁금하면

git status 

github에 터미널을 이용해서 프로젝트 올릴때

fatal: remote origin already exists. 에러가 뜬다면 원래있던 remote를 삭제하고 다시 add시켜준다.

$ git remote rm origin

그다음 git remote add origin ~~ 하면 잘된다.

branch 하는 법

branch 하는 법 -> 협업해서 수행할 때, 각자의 브랜치를 만들어서 나중에 취합하는 형식을 사용
1,2 연결
3,4 branch 만들기
파일 수정하고
5,6,7 branch에 올리는 작업하고 확인하기

1. git clone <협업할 레포지토리 주소>
2. cd 레포지토리 폴더명 
3. git branch 브랜치이름  -> 브랜치를 만듬 
4. git checkout 브랜치이름 
파일 수정하기 
5. git add . 
6. git commit -m '메모'
7. git push origin 브랜치이름 

checkout보다는 switch 를 권장

git switch 브랜치이름

branch 상황을 알아보는 명령어

git branch
git remote -v  

git이 연결되었는지 상태가 나오는데, -> 방장 주소가 나온다.

⚠ github 연결할 때, 오늘 겪은 오류

git init을 하고 어찌저찌하다보니 .git이 폴더 안에 2개가 생겼다.
폴더를 들어가보고 내용 확인해보고 다시 나와서 지우고 내용확인해보고 이런식으로 해서 처음부터 git init을 해보니까 오류 해결 !!

오늘의 코드 lv2. comments

/**
 * 댓글 삭제 - DELETE '/:commentId'
 *
 * 이 비동기 함수는 댓글을 삭제하기 위한 API 호출을 처리합니다.
 * URL 매개변수에서 `commentId`를 읽고, 요청 본문에서 `password`를 읽습니다.
 * 데이터베이스를 쿼리해 댓글이 존재하는지 그리고 비밀번호가 일치하는지 확인합니다.
 * 모든 조건이 충족되면 데이터베이스에서 댓글을 삭제하고 200 상태 코드를 반환합니다.
 *
 * @async
 * @function
 * @param {object} req - 사용자 입력을 담고 있는 익스프레스 요청 객체
 * @param {object} res - 클라이언트에게 결과를 반환하기 위한 익스프레스 응답 객체
 * @param {function} next - 익스프레스 파이프라인 내의 next 미들웨어 함수
 */
router.delete('/:postId/comments/:commentId', async (req, res, next) => {

    try {
        const { postId, commentId } = req.params;
        const { password } = req.body;
        
        const post = await prisma.posts.findUnique( { where : { postId: Number(postId) } });
        if(!post)return res.status(400).json({ message : "게시글 조회에 실패하였습니다."});

        const comment = await prisma.comments.findUnique({ where: { commentId: Number(commentId) } });
        if(!comment)return res.status(404).json({ message : "댓글 조회에 실패하였습니다." });

        if(comment.password !== password) return res.status(401).json({ message: "비밀번호가 일치하지 않습니다."})
    
        await prisma.comments.delete({where : { commentId: Number(commentId) }});
        res.status(200).json({ data : "댓글 삭제가 완료되었습니다." });
    } catch (error) {
        handleError(res, error)
    }
});

👉 const { postId, commentId } = req.params;

postId와 commentId 모두 경로매개변수 params로 받아야하는데
여기서 url에서 postId와 commentId가 모두 필요하기 때문에 필요하다.
쉽게 말하면 게시글을 생성한 뒤에 특정 게시글 안에 댓글이 달릴 수 있는데 , 게시글이 부모 - 댓글이 자식 같은 관계이다.
여기서 commentId만 req.params;로 받으면 게시글을 지운다고 해도 댓글을 지우지 않았으면 그 댓글이 반환될 수도 있기 때문에 2중으로 유효한지 검사를 하는게 중요하다.

추가 ++ findUnique, findfirst 사용의 쓰임새는 비슷한데 왜 findUnique라고 쓴 걸까?

👉 쉽게 말하면 내가 보기 좋고, 같이 일하는 사람들이 읽기 직관적이고 편하도록 쓰는 코드가 좋은 코드라고 생각한다.
그래서 unique 중복없는 유일한을 의미하는 직관적인 .findUnique 함수를 사용하는게 더 좋은 것 같다.

./ app.js - ./routes/index.js 사용법

routes 폴더안의 index.js는 어떻게 활용해야하는지 감이 안잡혔는데, 활용방법을 페어리뷰를 하게 되면서 알게 되었다.

// app.js 
import { postsRouter, commentsRouter } from "./routes/index.js"


// routes/index.js
export { default as postsRouter } from "./posts.js";
export { default as commentsRouter } from "./comments.js";
profile
성장하는뿅아리

0개의 댓글

관련 채용 정보