본문 바로가기

Tools77

[Git] git 저장소의 일부 디렉토리만 clone 하기 - git sparse checkout git 저장소에서 일부 디렉토리만 clone 받는 sparse checkout 기능 사용방법에 대해 알아보자. git 저장소에 여러 프로젝트 혹은 여러 디렉토리가 있을 때, 그 중 일부만 사용하고 싶은 경우가 있다. 일부 디렉토리만 필요하기 때문에 저장소 전체 대신 필요한 일부 디렉토리 혹은 일부 파일만 clone 받아서 사용할 필요가 있다. 이 경우 git이 제공하는 sparse checkout 기능을 사용하면 된다. 디렉토리 생성하고 초기화 clone 받을 디렉토리를 생성하고 git init을 실행해준다. 그리고 다운받을 원격 저장소 주소를 추가해준다. mkdir temp cd temp git init git remote add origin {remote 저장소 주소} sparse checkout 기.. 2023. 3. 23.
[Docker] Container 시간 Time Zone 설정 도커로 리눅스 컨테이너를 띄우고 그 안에서 작업을 하는 상황이었다. 이상하게 시간 관련된 작업에서 이상하게 동작하는 것이 발견되었다. 확인 결과 도커 컨테이너에는 시간(Timezone)이 UTC+0 으로 설정되어있었다. 따라서 실행하는 도커 컨테이너의 시간 정보를 한국 시간으로 맞춰줄 필요가 있었다. TZ 환경변수 가장 기본적으로 도커 컨테이너를 실행할 때, TZ 환경변수에 Asia/Seoul을 설정하면 된다. docker run -it -e TZ=Asia/Seoul centos /bin/bash 컨테이너 안쪽에서 date 명령을 실행하면 KST로 설정되어 있는걸 볼 수 있다. # date Tue Mar 21 22:54:50 KST 2023 Dockerfile 설정 컨테이너를 띄울 때 말고 이미지 자체에.. 2023. 3. 22.
[Maven] 메이븐으로 특정 테스트 클래스 혹은 테스트 메소드만 실행하는 방법 메이븐에서 surefire 플러그인으로 빌드 중에 테스트를 실행하는 경우가 많다. surefire 플러그인은 test 라는 골만 지원하는데, 기본적으로 프로젝트에 있는 전체 테스트를 실행하게 된다. 문제는 일부 테스트가 실패했을 때, 문제를 수정하고 실패했던 테스트가 여전히 실패하고 있는지 간단하게 확인하고 싶은 경우다. 매번 전체 테스트 셋을 다 돌려보는 것은 매우 낭비이기 때문이다. 전체 테스트 수행 프로젝트의 전체 테스트를 수행하기 위해서는 test 골만 입력하면 된다. $ mvn test 하나의 테스트 클래스 수행 전체 테스트 중 하나의 테스트 클래스에 포함되어 있는 테스트들만 수행하고 싶은 경우는 다음과 같이 실행한다. $ mvn test -Dtest="TestName" test 변수에 실행하고.. 2023. 3. 18.
[IntelliJ] Maven Helper 플러그인 설치 및 사용법 메이븐(Maven)은 여전히 가장 많이 사용되고 있는 빌드 시스템 중 하나다. 메이븐을 이용하여 자바 프로젝트에서 사용하는 라이브러리들을 쉽게 가져올 수 있고 프로젝트의 빌드, 테스트, 배포 등을 쉽고 직관적으로 관리할 수 있다. 하지만 메이븐 프로젝트의 가장 큰 단점은 의존성 충돌이다. 프로젝트에서 사용하는 서로 다른 두 라이브러리가 같은 라이브러리의 다른 버전을 사용할 경우 메이븐은 두 버전 중 하나만 선택해서 로드한다. 의존성 충돌(Dependency Conflict)이라는 이런 상황에 놓일 경우 운이 좋으면 두 버전이 호환되어 문제가 없겠지만, 운이 나쁘면 호환되지 않는 쪽에서 NoSuchMethodException이 발생하거나 아예 동작이 달라지는 경우도 발생한다. 메이븐 프로젝트를 관리하다보면.. 2023. 3. 17.
[IntelliJ] TODO, FIXME 같이 코드에 태그(Code Tag) 달기 IntelliJ에서는 소스코드에 몇 가지 태깅을 할 수 있다. 예를 들어, TODO 키워드를 추가하면 그 코드 부분에서 해야할 작업들을 써넣을 수 있다. FIXME 역시 마찬가지다. 이런 태그를 입력하면 소스코드가 노란색으로 표시되면서 태그를 넣을 수 있다. IntelliJ는 TODO와 FIXME를 기본으로 제공하는데 사용자가 이런 태그를 추가할 수도 있다. 코드 태그 추가 [Settings] 창을 연다. [Editor] 설정으로 들어가서 'TODO' 항목을 선택하면 현재 등록되어 있는 TODO 패턴을 볼 수 있다. 지금은 todo와 fixme라는 단어가 등록되어 있다. 오른쪽에 있는 + 버튼을 누르면 새로운 패턴을 추가할 수 있다. 코드리뷰할 때 주목해봐야 할 내용들을 추가하기 위해서 'COMMENT'.. 2023. 1. 11.
[IntelliJ] 주석에서 한글과 영어가 섞였을 때 스펠링 체크 해제 (typo체크 해제) IntelliJ의 Inspections 기능 중에 Spelling 체크 기능은 흔히 발생할 수 있는 오타들을 체크해준다. 소스코드에 있는 오타는 가독성을 떨어트리기도하고 가끔은 버그를 발생시키기도 한다. 하지만 한글 언어 환경에서 개발을 할 때, Spelling 체크가 코드의 주석에 달린 한글을 오타라고 체크하는 경우가 있다. 한글과 영어가 붙어있는 경우인데, 영어 명사 뒤에 한글 조사가 붙는 경우다. 예를 들어 "Class에 접근한다"라는 주석이 있으면 Class에 라는 부분에 밑줄이 그어지면서 오타라고 판단한다. 이런 개발환경의 지적에 무던하다면 그냥 넘어가도 좋다. 하지만 뭔가 신경쓰이는 밑줄이므로 이걸 없애봐야겠다. 게다가 주석은 그냥 설명인데 오타 좀 나면 어떤가?;;; 주석은 스펠링 체크하지 .. 2023. 1. 10.
[IntelliJ] Java SDK 버전, Language Level 변경하는 방법 IntelliJ 프로젝트에서 가끔 서로 다른 Java SDK 버전을 오가며 개발해야할 경우가 있다. IntelliJ 프로젝트의 Java SDK 버전 변경을 위해서는 다음과 같은 절차를 진행하면 된다. 우선 FILE - Project Structure 로 들어간다 Project Settings의 Project 항목을 선택한 다음 Project SDK, Project Language level 항목을 원하는 버전으로 선택하면 된다. 2022. 12. 1.
[VSCode] Visual Studio Code에서 터미널로 WSL 설정하는 방법 Visual Studio Code에서는 터미널 탭 기능을 제공한다. 윈도우 환경에서는 기본적으로 PowerShell을 사용하게 되는데, 가끔 윈도우에서 Bash 쉘 개발이나 파이썬 개발 같은 것을 할 때, WSL 환경을 터미널 탭에서 열어서 사용하고 싶은 경우가 있다. GUI는 윈도우에서 열고 프로젝트는 WSL을 통해 리눅스에서 진행하는 매우 편리한 구성이다. 다행히 Visual Studio Code는 터미널 탭에서 WSL 터미널을 지원한다. VSCode에서 WSL을 터미널로 지정 우선 WSL2가 설치되어 있어야 한다. WSL 설치는 별도로 검색을 해보거나 다음 글들을 참고하자. [Window] WSL에 CentOS 7 설치 및 삭제 마이크로소프트가 윈도우에 리눅스 친화적인 기능들을 탑재하기 시작하면서 .. 2022. 10. 20.
[IntelliJ] 유용한 인텔리제이 단축키 모음 인텔리제이를 좀 더 편하기 쓰기 위한 단축키 들을 알아보자. 일반 단축키 설명 [Alt] + [0-9] 각 단축키에 해당하는 도구창 열기 [Ctrl] + [S] 모두 저장 [Ctrl] + [Shift] + F12 에디터 영역을 최대크기로 토글 [Ctrl] + [Alt] + S 설정(Settings) 열기 [Ctrl] + [Alt] +[Shift] + S 프로젝트 구조(Project Structure) 열기 [Shift] and [Shift] 검색 열기 디버깅 단축키 설명 [F8] 다음 라인으로 이동 [F7] 현재 메소드로 들어가기 [Shift] + [F8] 현재 메소드를 호출한 곳으로 가기 [Alt] + [F9] 포커스 되어 있는 라인으로 이동 [Alt] + [F8] 현재 라인에서 사용 가능한 모든 코드.. 2022. 10. 19.