백준허브 & Leethub 사용.

HJ seo·2022년 9월 27일
1

git

목록 보기
3/4

잡담.

최근 코딩테스트를 공부하는 단톡에 들어갔다가 LeetCode에 대해서 git을 관리하기 좋은 크롬 확장프로그램을 알게 되었다.
그것은 바로 LeetHub!!

Leethub

역할.

확장 프로그램이 하는 역할은 단순하다. LeetCode에서 문제를 풀었을 때 지정된 repository 혹은 새로운 repository를 파서 거기에 푼 문제를 자동으로 저장해준다. 문제를 저장하는 방법은 사용해보았을 때 제출 직후 연동된 git으로 파일을 commit하는 것 같다. 아래 사진처럼 체크표시가 되었다면 해당 문제는 git에 올라간 것이다.


설치 방법.

※ 크롬에서 작동하는 것이기 때문에 크롬을 사용해야 한다.. 다른 인터넷에 비슷한 것이 있는지는 모르겠다.

  1. 크롬 확장프로그램에서 Leethub를 검색한 후 설치한다.(필자의 경우 설치가 조금 오래 걸렸다. 웬만해선 바로 되는데 만약 바로 설치가 안되는 것 같다면 한 1분정도 딴일하면서 기다려주자.) - 링크

  2. 우측 상단 확장프로그램에서 LeetHub를 클릭한다.

  1. 클릭시 github를 연결할꺼냐는 메시지가 나오고 연결을 한다.

  2. 그 후 새로운 repository를 생성할지 혹은 기존에 사용하던 repository에 정보를 저장할지 묻는 칸이 나온다.

    • 기본적으로 문제가 저장되는 위치는 repository 최상단이고, 변경할 수 있는지는 모르겠다.
    • 2가지 선택지가 있어서 기존에 사용하고 있는 repository를 쓸 예정이라면 Link an Existing Repository를 선택 후 이름을 적어서 쓰면 되고, 새로운 repository를 사용할 예정이라면 Create a new Private Repository를 선택 후 생성할 이름을 적어주면 된다.(만약 누군가랑 공유를 할 것이라면 repository 설정을 public으로 변경해주자.)

git 폴더 구조.

저장되는 정보는 문제 단위 폴더로 저장이 되고, commit message는 채점이 되는데 걸리는 시간과 메모리 정보가 저장된다. 폴더 안쪽에는 3개의 파일이 들어간다.

  • (problem name).py
    • 제출 코드가 그대로 들어간다.
  • NOTES.md
    • (공백파일) 추측으로는 풀이에 대한 설명등을 적는 곳으로 사용하면 좋을 것 같다.
  • README.md
    • 문제 설명이 들어간다.

나의 경우 LeetCode 자체가 오픈채팅방에 들어온 직후 시작한 것이기 때문에 다행히 푼 문제가 많질 않아 현재 사용중인 repository를 완전 분할했다.


백준허브

또 Leethub를 세팅해준 직후 백준도 혹시? 하면서 찾아보니 완전히 똑같은 기능을 제공하는 백준허브도 존재하더라.
우선 사용 방법은 Leethub와 완전히 똑같다.(설치방법 자체도 완전히 같기 때문에 설치방법에 대한 소개는 생략한다.)
개발자가 Leethub에서 영감을 받아 만들었다고 한다.


폴더 구조.

git에 설명되있는 것을 읽어보면 총 세 곳의 코딩테스트에 대한 정리를 지원하기 때문에, 각각 백준, 프로그래머스, SW Expert Academy 폴더가 최상단에 위치한다.
각각의 폴더 내에는 차례대로 문제의 난이도가 들어간다.(백준의 경우 1~5는 무시, 브실골플다루순서로 폴더가 나뉘고, 프로그래머스는 레벨 단위로 폴더가 나뉜다.)
레벨 폴더 안쪽에는 문제단위로 (문제 번호). (이름)이 폴더로 만들어지고, 문제 폴더 안쪽에는 제출한 코드파일((문제이름).파일확장자)과 문제 설명 및 성능, 풀이 알고리즘등을 소개하기 위한 README.md가 들어가있다.(NOTE.md는 따로 없다.)

  • commit message의 경우 리트코드와 동일하게 채점하는데 사용된 메모리와 시간이 들어간다.

확장프로그램간의 차이점.

차이점의 경우 꽤 여러가지가 있겠지만 조금 사용해보고 알게 된 두 프로그램의 차이점 정도만 적어본다.

  1. Leethub의 경우 이미 제출된 것을 확장프로그램에서 지원하는 양식대로 올리고 싶은 경우 다시 제출을 해야하는 번거로움이 있다. 하지만 백준허브의 경우 백준을 기준으로 이미 푼 문제에서 내 제출로 들어갔을 때 마지막 제출결과가 정답으로 채점된 경우 이를 감지하고 자동으로 커밋이 된다. (백준 사이트에서 이를 지원해주는 것인지는 모르겠지만 프로그래머스의 경우 Leethub와 동일하게 문제를 다시 제출해야 commit이 된다., 추후 git을 뜯어보면 좋을 것 같다.)

  1. 폴더구조의 경우 이미 위에서 각각 자세하게 설명을 써놓았다. Leethub의 경우 git blog를 염두에 두고 디폴트로 NOTE.md를 만든 것 같다는 생각이 들고, 백준허브를 만든 개발자 분들의 경우 이에 대한 것이 필요없다고 생각해서 제출한 코드와 문제 설명만 집어넣은 것 같다.

  2. README.md 역시 마찬가지로 차이가 있는데

    • Leethub의 경우 문제 자체에 대한 설명이 예제까지 통째로 들어가고 그 이외의 정보가 들어가지는 않는다.
    • 백준허브의 경우 문제설명이 조금 간략화되고(예제가 빠진다.), 성능과 분류가 들어간다.

아쉬운 점.

둘 다 아쉬운 점에 대해서도 조금 적어본다. 이는 개인적인 사견이기 때문에 우선 내 베이스를 적어보자면 코딩을 시작한 지 이제 9개월이 되었다는 것을 명시한다.

  1. 접근성이 약간 애매모호하다. 아무래도 오픈소스로 만들어진 프로그램이다보니 아는 사람만 쓸 수 있다는 것이 큰 단점이다. 처음 코딩테스트를 준비했을 때부터 사용했다면 좋았겠지만, 있는지도 몰랐던 상태에서 어느새 푼 문제를 보니 300개는 넘어간 것 같은데 이것을 정리할 엄두가 나질 않는다..(백준, 프로그래머스, LeetCode 전부 합쳐서.)

  2. 둘 다 제출했던 시간에 대한 정보가 들어가지 않는 것이 아쉽다.

  3. (Leethub 한정) repository 분할을 하게 된 계기이기도 한데 문제가 최상위에 들어간다는 점이다. (이건 정리가 되서 좋은 점인가?)

end

profile
다양한 분야에 관심이 많은 초보 개발자 입니다.

0개의 댓글