Server/ETC.

    [Git] BFG Repo Cleaner 사용한 Git Commit 또는 History 삭제

    [Git] BFG Repo Cleaner 사용한 Git Commit 또는 History 삭제

    BFG Repo Cleaner 시도 배경 개발을 진행하던 도중 Github Commit에 API Key가 그대로 노출시켜 버리는 상황이 발생했습니다. Access Key 및 Seceret Key가 노출된 상황이므로 대처가 필요했습니다. Git Command를 사용하여 히스토리를 제거하는 방법이 존재하지만, 이후 작업한 히스토리가 꽤 많이 쌓여 있었기 때문에 히스토리 손실에 대한 부담으로 해당 방법을 사용하기 조심스러웠습니다. 해당 문제를 해결하기 위한 다른 방법을 찾던 도중 BFG Repo Cleaner라는 방법을 찾게 되어 시도하였습니다. BFG Repo Cleaner 설치 brew를 통한 설치 % brew install bfg BFG Repo Cleaner를 사용한 특정 값 Remove 방법 1. 노..

    [Github] Code Review

    [Github] Code Review

    Code Review PR(Pull Request)를 날렸다면, 이제 다른 사람들의 PR에 리뷰도 남길 줄 알아야 한다. Github를 이용해서, Reviewers를 설정할 수 있지만 현재 해당 기능은 유로화 되어 있다. 인원당 4$를 지불해야 리뷰어 지정이 가능하기 때문에, 해당 기능은 제외하고 리뷰 남기는 방법만 남겨본다. 리뷰를 남기자 리뷰를 남길 PR에 들어가서 File changed 탭을 선택한다. PR작성자가 리뷰를 모두 반영하여 수정하였거나, 해당 PR에 딱히 수정사항이 없다면 Approve를 선택한 후, Submit review를 진행하면 된다. Comment의 경우에는 딱히 수정할 필요는 없지만, 상대방에게 남기고 싶은 의견(의도를 묻는다던지 확인을 요한다던지 등등)이 있을 때 사용하고,..

    [Github] Pull Request

    [Github] Pull Request

    Pull Request 협업을 진행하다 보면 Pull Request, PR을 많이 이용하게 된다. 바로 Main에 Merge를 때리는 것이 아닌, 해당 브랜치를 Main에 합쳐도 되겠습니까?라고 함께 작업하는 사람들에게 동의 요청하는 것이다. 이 과정에서 리뷰를 나누고, 수정한 다음 모두의 승인(Approve)이 떨어지게 되면 우리는 Main에 Merge를 진행하게 되는 것이다. (Main에서 해당 Branch를 Pull 하는 것이다.) PR 진행 일단, 브랜치를 만들어서 작업을 진행해야한다. 모든 작업을 마쳤으면 커밋과 push를 진행한다. 다음과 같이 feature/sign -> origin: feature/sign이라는 브랜치로 push를 진행하게 된다. main에 push 하는 것이 아닌, 작업 ..

    [Github] Issue 생성

    [Github] Issue 생성

    Github Issues Github를 통해서도 이슈관리를 진행할 수 있다. 물론 Jira 등의 이슈 관리 툴에 비하면 부족한 것은 사실이나, 브랜치 생성 등을 바로 진행할 수 있다는 장점도 존재한다. 실제로 이슈를 위해 사용하기도 하나, 이미지 업로드 등을 위한 목적으로 사용하기도 한다. Issue 등록 Repository의 Issue탭에 들어가서 New issue 버튼을 클릭한다. 제목과 내용을 입력하고, Assignees에서 해당 이슈를 처리할 사람, Labels를 통해 어떤 종류의 이슈인지 등록한다. 우측의 Development 칸의 Create a branch를 만들게 되면 해당 이슈의 브랜치를 생성할 수 있다. 어느 레파지토리에, 어떤 소스를 선택하여 새로운 브랜치를 만들지 메뉴를 확인할 수 ..

    [Postman] DTO와 File을 동시에 전송하는 법

    [Postman] DTO와 File을 동시에 전송하는 법

    게시물을 업로드하면서, 해당 게시물의 썸네일을 이미지로 저장해야 하는 상황이 발생했다. API를 구성하고 테스트를 돌리기 위해 Postman을 실행시켰는데 에러가 발생했다. HttpMediaTypeNotSupportedException .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.HttpMediaTypeNotSupportedException: Content-Type 'multipart/form-data;boundary=--------------------------186452156954590287007968;charset=UTF-8' is not supported] 다음과 같은 에러가 발생했다. 위의 에러는 컨트..

    [GitLab] Branch CI/CD Pass 하는 방법

    [GitLab] Branch CI/CD Pass 하는 방법

    프로젝트를 진행하면서, 우리 프로젝트팀이 구성한 깃 브랜치 전략은 Master, Develop, Feature 3가지를 메인으로 브랜치를 구성한 후 HotFix를 유동적으로 관리하는 전략을 채택했다. 각자 feature에서 기능들을 만든 후 Develop으로 머지를 하고, 이상이 없으면 Master에 다시 한번 머지하는 방식으로 깃을 관리한다. 배포 오류 배포는 Master와 Develop부분에서 이뤄질 수 있도록 잠시 설정해뒀었는데 Develop에서 CI/CD jobs가 계속 failed 되는 현상이 발생되었다. 에러코드만 봤을 때는 로그인 관련 문제인 것 같았은데, 지금까지 이상이 없어서 괜찮은 것 아닌가?라는 생각을 했었다. 하지만 Master 부분에서만 머지를 했을 때, 또는 이 상태에서 Mast..

    [GitLab&GitHub] GitLab 작업을 GitHub에 연동하기, 미러링

    [GitLab&GitHub] GitLab 작업을 GitHub에 연동하기, 미러링

    개요 프로젝트를 진행하면서 깃허브가 아닌 깃랩을 사용하다 보니, 깃허브의 잔디가 비어 가는 것을 확인할 수 있었습니다. 깃랩에 이어서 꾸준히 1일 1커밋을 하고 있었지만, 비어있는 잔디를 보니 마음 한 구석이 비어버린 느낌이었습니다. 다행히 같이 공부하는 동생이 GitLab에 미러링 기능이 있다는 것을 알려주었고, 나도 도전해보려 한다. GitHub Token 발급 Settings 좌측 하단에 있는 Developer settings로 들어간 후 하단의 Personal access tokens로 들어갑니다. (Fine-grained tokens라는 게 새로 나왔나 봅니다.) expiration 기한을 지정해야 하는데, GitLab을 언제까지 사용할지 모르니 일단 무기한으로 설정하였습니다. Repo에 관련된..

    [Convention] 깃 커밋 컨벤션

    깃 커밋 컨벤션 우아한 테크 코스 과제에서 '커밋 메시지 컨벤션'가이드를 참고하여 커밋 메시지를 작성할 것을 요구하였다. 그간 나중으로 미뤄오고 대충 날짜에 무엇을 했는지만 작성하였던 나의 깃 커밋 컨벤션을 고칠 수 있는 좋은 기회라고 생각했다. # 그동안 처참했던 나의 커밋 기록 예 221107 프로그래머스 완주하지 못한 선수 221107 패스 표현식 수정 커밋 메세지 형식 커밋 메세지의 구조는 제목, 본문, 꼬리말로 이루어져 있습니다. 각 줄을 100자를 넘을 수 없습니다. (): 제목 제목 줄에는 변경 사항에 대한 간결한 설명만을 작성한다. 종류 feat : 새로운 기능 추가 fix : 버그 수정 docs : 문서 수정 style : 코드 포맷팅, 세미콜론 누락 등 refactor : 코드 리팩터링..