반응형

🚀 VSCode에서 Vim 사용 시 키 연속 입력이 안 되는 문제 해결 (macOS 기준)

h, j, k, l 키를 누르면서 방향 이동하는 게 Vim의 핵심인데, VSCode에서 Vim 확장 플러그인을 사용할 때 이 키들이 연속으로 입력되지 않는 문제가 발생할 수 있습니다.

이 글에서는 그 원인과 해결 방법을 자세히 정리해봅니다.


🔍 문제 현상

  • h, j, k, l 키를 길게 눌러도 한 글자만 입력됨
  • Vim 모드에서 커서가 연속으로 움직이지 않음
  • 일반적인 키보드 타이핑은 이상 없음

🧠 원인: macOS의 Press and Hold 기능

macOS는 기본적으로 키를 길게 누르면 "특수 문자 선택 팝업"이 뜨도록 설정돼 있습니다. 이 기능이 Vim에서는 방해가 되죠.
VSCode에서도 이 기능이 활성화되어 있다면, 키를 꾹 눌러도 연속 입력이 되지 않습니다.


✅ 해결 방법

1. VSCode에 한해서 Press and Hold 끄기

터미널을 열고 아래 명령어를 입력하세요:

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false

그리고 VSCode를 완전히 종료한 후 다시 실행합니다. - 창닫기만 할 시 적용 안됨.
이제 h, j, k, l 키를 꾹 눌렀을 때 연속 입력이 정상 동작합니다!


2. 시스템 전체에 적용하고 싶다면 (선택)

다른 앱에서도 연속 입력이 안 되는 경우, 아래 명령어로 전역 설정을 바꿀 수 있어요:

defaults write -g ApplePressAndHoldEnabled -bool false

※ 주의: 이 설정은 시스템 전체에 영향을 미치므로, 일부 앱에서는 부작용이 생길 수도 있습니다.


3. 키 반복 속도 빠르게 조절하기 (추가 팁)

더 쾌적한 Vim 사용을 위해 키보드 입력 속도도 아래처럼 조절해보세요.

  • 시스템 설정 > 키보드에서
    • 키 반복 속도: 빠르게
    • 반복 시작 지연 시간: 짧게

이렇게 하면 j, k로 커서 이동할 때 더 빠르고 자연스럽습니다.


✨ 마무리

VSCode에서 Vim을 제대로 사용하려면 연속 키 입력 설정은 필수입니다.
이 문제는 macOS에서 자주 발생하는 이슈지만, 간단한 설정으로 쉽게 해결할 수 있어요.

혹시 위 방법으로도 해결되지 않거나 QMK 키보드 설정과 관련된 문제가 있다면 댓글로 남겨주세요! 😄

반응형
반응형

개발을 하다 보면 프로젝트 구조를 한눈에 파악하기 위해 tree 명령어를 사용하게 됩니다. 하지만 node_modules 같은 불필요한 디렉토리는 제외하고 싶을 때가 많죠. 이번 글에서는 특정 디렉토리를 제외하고 tree 명령어를 사용하는 방법을 정리해 보겠습니다.


1. tree 명령어란?

tree 명령어는 디렉토리 및 파일 구조를 계층적으로 출력하는 명령어입니다. 기본 사용법은 다음과 같습니다.

$ tree

하지만 프로젝트 폴더에서 실행하면 node_modules나 dist 같은 불필요한 디렉토리까지 출력되어 가독성이 떨어질 수 있습니다. 이를 해결하는 방법을 알아봅시다.


2. 특정 디렉토리 제외하는 방법

2.1 기본 사용법

특정 디렉토리를 제외하려면 -I 옵션을 사용하면 됩니다.

$ tree -I "node_modules"
  • -I "node_modules" : node_modules 디렉토리를 제외하고 출력합니다.

2.2 여러 개의 디렉토리 제외하기

여러 디렉토리를 제외하고 싶다면 |(파이프)로 구분하면 됩니다.

$ tree -I "node_modules|dist|.git"
  • node_modules, dist, .git 디렉토리를 제외하고 출력합니다.

3. 출력할 깊이(레벨) 제한하기

깊이를 제한하고 싶다면 -L 옵션을 사용하면 됩니다.

$ tree -L 2
  • -L 2 : 2단계까지만 출력

이 옵션을 함께 사용하면 불필요한 정보 없이 프로젝트 구조를 깔끔하게 볼 수 있습니다.

$ tree -L 3 -I "node_modules|dist"
  • -L 3 : 3단계(깊이)까지만 출력
  • -I "node_modules|dist" : node_modules와 dist 디렉토리 제외

4. 유용한 추가 옵션

옵션 설명

-a 숨김 파일 포함
-d 디렉토리만 출력 (파일 제외)
-h 파일 크기 표시 (사람이 읽기 쉬운 형식)
-f 전체 경로 출력
-p 파일 및 디렉토리 퍼미션 표시
-s 파일 크기 표시 (바이트 단위)
-t 파일 수정 시간 기준 정렬
-r 정렬 순서를 반대로 출력
--charset=UTF-8 문자 인코딩 설정 (한글 깨짐 방지)

5. 실용적인 예제

$ tree -L 3 -I "node_modules|dist" -h -d
  • -L 3 : 3단계(깊이)까지 출력
  • -I "node_modules|dist" : node_modules, dist 제외
  • -h : 파일 크기 읽기 쉽게 출력
  • -d : 디렉토리만 출력 (파일 제외)

이렇게 하면 node_modules을 제외하고, 원하는 깊이까지만 프로젝트 구조를 한눈에 파악할 수 있습니다.


6. 마무리

tree 명령어는 프로젝트의 구조를 쉽게 파악하는 데 유용한 도구입니다. 하지만 불필요한 디렉토리가 출력되면 오히려 불편할 수 있습니다. -I 옵션과 -L 옵션을 적절히 활용하면 가독성을 높이고, 원하는 정보만 깔끔하게 볼 수 있습니다.

위 명령어들을 잘 활용하여 더욱 효율적으로 프로젝트 구조를 관리해 보세요! 🚀


🏷 추천 SEO 태그

#Linux #터미널 #tree명령어 #node_modules제외 #개발팁

반응형

'ETC > Linux' 카테고리의 다른 글

[Ubuntu] NAS Mount 하기  (0) 2022.03.29
[Linux] vi 스왑 파일(E325)  (0) 2016.11.01
[Ubuntu] vim 설치 및 설정  (0) 2016.10.10
[Linux] 리눅스 시스템 디렉토리  (0) 2016.10.06
[Linux] ls, file, less  (0) 2016.10.06
반응형

AI 기술이 빠르게 발전하면서 다양한 분야에서 활용 가능한 도구들이 많아졌습니다. 앞으로 필요할 때 쉽게 참고할 수 있도록 이미지 생성, 텍스트 생성, 코딩 지원, 번역, 음성 인식 및 합성, 비디오 생성, 음악 생성, 데이터 분석 및 업무 자동화 등 다양한 AI 도구를 유료/무료로 정리해 보았습니다.


🌟 이미지 생성 AI 도구

🔥 유료 도구

🌟 무료 도구


📝 텍스트 생성 AI 도구

🔥 유료 도구

  • ChatGPT Plus - GPT-4 Turbo 활용 가능, 강력한 자연어 처리.
  • Claude Pro - 장문 이해 및 창의적 문서 작성 지원.

🌟 무료 도구

  • Bard - 구글 검색 연동, 빠른 질문 응답.
  • Gemini - 구글의 최신 AI 모델.

💻 코딩 지원 AI 도구

🔥 유료 도구

🌟 무료 도구

  • Codeium - 무료 AI 코드 자동 완성 도구.

🌐 번역 AI 도구

🔥 유료 도구

  • DeepL Pro - 자연스러운 번역 품질 제공.

🌟 무료 도구


🎤 음성 인식 및 합성 AI 도구

🔥 유료 도구

  • Murf.AI - 자연스러운 AI 음성 생성.
  • ElevenLabs - 감정 표현이 가능한 음성 합성.

🌟 무료 도구


🎬 비디오 생성 AI 도구

🔥 유료 도구

  • Runway ML - AI 기반 영상 편집 및 합성.
  • Synthesia - AI 아바타를 활용한 영상 제작.

🎶 음악 생성 AI 도구

🔥 유료 도구

  • Soundraw - AI가 자동으로 음악을 생성.

🌟 무료 도구

  • AIVA - AI 작곡 도구, 오케스트라 스타일 가능.

📊 데이터 분석 및 모델링 AI 도구


💼 생산성 및 업무 자동화 AI 도구

🔥 유료 도구

🌟 무료 도구


🎉 마무리

내가 필요할 때 빠르게 참고할 수 있도록 정리한 AI 툴 리스트입니다. 무료로 활용할 수 있는 도구도 많지만, 좀 더 정교한 기능이 필요하면 유료 버전도 고려하면 좋겠습니다.

반응형
반응형

📌 MacBook에서 Nerd Font 설치하기 – 터미널 아이콘 깨짐 해결

개발자라면 터미널을 자주 사용할 텐데, 일부 테마나 플러그인을 사용할 때 아이콘이 깨져서 보이는 문제를 겪을 수 있습니다. 특히 Powerlevel10k 같은 테마를 설정했을 때, 아이콘이 ▢ 모양으로 보인다면 Nerd Font를 설치해야 합니다.

이 글에서는 MacBook에서 Nerd Font를 설치하고 적용하는 방법을 알려드립니다.


🧐 왜 Nerd Font를 설치해야 할까?

터미널에서 Git 상태 표시, 폴더 아이콘, Powerlevel10k 테마의 UI 요소들이 정상적으로 보이려면 Nerd Font가 필요합니다.
만약 아래처럼 아이콘이 깨져서 보인다면, Nerd Font가 설정되지 않은 상태입니다.

📌 [아이콘이 깨진 터미널 화면]


🛠 Nerd Font 설치 방법 (MacBook)

1️⃣ Homebrew로 폰트 설치

Mac에서는 Homebrew를 사용하면 간단하게 Nerd Font를 설치할 수 있습니다.
터미널을 열고 아래 명령어를 실행하세요.

brew install --cask font-hack-nerd-font

위 명령어는 Hack Nerd Font를 설치합니다.
다른 폰트를 원한다면 Nerd Fonts 공식 사이트에서 다운로드할 수도 있습니다.


2️⃣ iTerm2에서 Nerd Font 적용하기

Nerd Font를 설치한 후, iTerm2에서 적용해야 아이콘이 정상적으로 표시됩니다.
iTerm2를 사용하는 경우 다음 설정을 적용하세요.

📌 iTerm2 Nerd Font 적용 방법

  1. iTerm2 실행
  2. ⌘ + , (Command + Comma) → Preferences 열기
  3. ProfilesText 탭 이동
  4. Font 섹션에서 "Change Font" 클릭
  5. 설치한 Nerd Font 선택 (예: Hack Nerd Font)
  6. 설정 저장 후 iTerm2 재시작

📌 [폰트 설정 화면]

 


3️⃣ 설정 완료 후 확인하기

설정을 적용한 후 터미널을 다시 실행하면 아이콘이 정상적으로 보이는 것을 확인할 수 있습니다.

📌 [정상적으로 표시되는 터미널 화면]


🎯 마무리: Nerd Font 설치로 터미널 환경 개선하기

이제 터미널에서 아이콘이 정상적으로 표시되고, Powerlevel10k 같은 테마도 깔끔하게 적용됩니다.
설치 후에도 아이콘이 정상적으로 보이지 않는다면 iTerm2를 재시작하거나, 폰트 설정을 다시 확인해 보세요. 🚀

이제 터미널을 더욱 깔끔하고 직관적으로 사용할 수 있습니다!
더 궁금한 점이 있다면 댓글로 남겨주세요 😊

반응형

'ETC > Apple Silicon M1 Pro' 카테고리의 다른 글

[MAC] Open iTerm in Finder(OpenInTerminal)  (0) 2022.05.16
[MAC] python3 설치  (0) 2022.04.22
[MAC/LINUX] SCP 사용법  (0) 2022.03.31
[MAC] Ubuntu 20.04 ARM on UTM  (1) 2022.03.29
[MAC] 실패.. VM Windows 10 on UTM  (1) 2022.03.28
반응형

Repository 생성 후 테스트하는 과정에서 에러가 발생했다.

 

에러 내용

- Time 테이블을 찾을 수 없다는 에러가 테스트 메소드에서 발생

- 자세한 내용 확인을 위해 클래스의 에러 확인

- "Error executing DDL" 에러 발생 확인

 

원인

- "Error executing DDL"가 발생한 원인을 검색해 보니 예약된 문구를 컬럼으로 사용하면 발생한다는걸 확인

@Getter
@NoArgsConstructor
@Entity
public class Time {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;
    private String group;
    private String subject;
    private LocalDateTime date;
    private Duration duration;

    @Builder
    public Time(String groupName, String subject, LocalDateTime date, Duration duration) {
        this.group = groupName;
        this.subject = subject;
        this.date = date;
        this.duration = duration;
    }
}

- 4개의 컬럼 중 하나가 문제가 되므로 컬럼 이름을 변경해 주어야 한다.

 

해결

- 결과적으로는 group이 sql에 예약되어 있어 발생

- group을 groupName으로 변경하여 해결

 

@Getter
@NoArgsConstructor
@Entity
public class Time {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;
    private String groupName; // 수정
    private String subject;
    private LocalDateTime date;
    private Duration duration;

    @Builder
    public Time(String groupName, String subject, LocalDateTime date, Duration duration) {
        this.groupName = groupName;
        this.subject = subject;
        this.date = date;
        this.duration = duration;
    }
}

 

반응형

'ETC > Spring' 카테고리의 다른 글

[error] Failed to load ApplicationContext  (1) 2023.05.27
반응형

TDD 를 적용하여 개발 하던 중 에러가 발생했다.

 

환경

- Spring Boot 2.7.12

- JDK 11

- JUnit 5

 

 

테스트 코드

@SpringBootTest
public class TimeRepositoryTest {

    @Autowired
    TimeRepository timeRepository;
    @Test
    public void save() {
        Time time = Time.builder()
                .group("test")
                .subject("test")
                .date(LocalDateTime.now())
                .duration(Duration.ofMinutes(19))
                .build();

        Time savedTime= timeRepository.save(time);
        assertThat(savedTime).isEqualTo(time);
    }
}

 

발생 에러

- java.lang.IllegalStateException: Failed to load ApplicationContext

 

- 발생한 테스트 메소드에서는 정확한 원인을 알기 어려웠다.

- 테스트 클래스를 클릭해서 로그를 보니 원인을 파악할 수 있었다.

실제 원인

- 아래 캡처 내용 처럼 Datasource 설정에 실패 한 것이다.

- 해결책도 제시해 준다. 임베디드 데이터베이스를 사용하면 해결이 될 것으로 보인다.

Consider the following:
	If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
	If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).

 

해결

- 해당 에러에 대한 해결은 H2 를 설치하면서 해결 하였다.

dependencies {
	// H2
	implementation 'com.h2database:h2'
}
반응형

'ETC > Spring' 카테고리의 다른 글

[error] Table not found / Error executing DDL  (0) 2023.05.27
반응형

2023년 3월 퇴사를 했다. 봄이었다.

 

회사를 다닌지 3년 6개월 정도 되었다. 이 회사를 다니면서 나는 내가 성장하고 있는가에 대한 의문이 많이 들었다.

매우 제한적인 환경에서 개발을 했고, 새로운 시도는 드물었다.

내가 있는 분야에 대한 확신도 들지 않았다.

팀에 충원을 하기 위해 채용 공고를 올리면 지원자는 매우 드물다.

20년이 넘는 개발 경력이신 분들이 지원한다. 그러나 관련 없는 경력일 뿐...

그 분들이 열심히 할 것이란 기대는 하지 않는다.

 

작은 규모의 회사에 지원하는 분들은 대충 일해도 된다는 생각을 하는 것일까?

3년 넘는 시간 동안 꽤나 많은 사람이 지나 갔는데 대부분 열심히 하지 않거나 잘 못한다.

너무 낮은 문턱으로 생각하고 들어온 듯 하다.

뽑을 때 까다롭게 뽑지 않아서 일 수도 있다.

 

진짜 내가 퇴사를 하게 된 이유를 곰곰히 생각해 봤다.

1. 일이 싫어서

2. 사람이 싫어서

3. 회사가 싫어서

4. 대우가 마음에 들지 않아서

 

우선 순위로 정렬한 것은 아니지만 모두 다 인 듯 한다.

 

퇴사를 마음 먹기 전 사람과 일 때문에 너무 힘들어서 불면증도 오고 몸이 많이 안좋았었다.

그러다 퇴사하자!라고 마음을 먹자 잠도 잘자고 몸이 조금씩 좋아졌다.

그래서 결국 퇴사를 했다.

 

---

 

나는 개발자다. 그러나 이 단어를 꾸며줄 형용사가 없는 그냥 개발자다.

그 흔한 백엔드, 프론트 엔드 라는 말로도 꾸밀 수 없는 그냥 개발자다.

커리어를 잘 못 쌓아 올렸다고도 할 수 있고, 재미만을 추구해 개발을 했던 것일 수도 있다.

어떻게 보면 모든 것을 두루두루 잘 하지만 깊이 알고 있는 것은 없다고 볼 수 있다.

 

그래서 나의 직업을 꾸며줄 형용사를 만들기로 했다.

 

---

 

퇴사 후 시간들을 잘 정리하려고 한다.

실제로 일을 안한지는 3주 정도 되어 가는데 그동안 무엇을 했지? 라는 의문이 들어 가고 있기 때문이다.

 

시간 정리를 하기 위해 어떤일에 얼마나 쓰고 있나 기록을 하기로 했다.

3/31(금)부터 시작.

아래 기록을 하겠지만, 생각보다 많은 시간을 하고 있지는 않다. 

아직 익숙치 않아서 빼먹은 시간도 좀 있지만 현실이 그렇다.

 

이렇게 시간을 기록하면 신기하게 기록하는 시간동안 집중을 더 잘하게 된다.

 

 

공부 시간

영어 리스닝 : 21분 15초

개발 공부 : 26분 9초

직업 훈련 시간

MLOps : 19분 31초

알고리즘 : 36분 43초

머신러닝 : 17분 4초

 

 

 

 

 

반응형
반응형

파인더에서 파일을 찾다가 터미널을 열고 싶은 일이 종종 발생한다.

 

문제는.. 기본적으로 제공해주는 기능은 없어 보인다.(못 찾는 것일 수도 있음)

 

한가지 해결책을 찾은 것은 OpenInTerminal 이란 프로그램을 사용하는 것이다.

 

github : https://github.com/Ji4n1ng/OpenInTerminal

 

 

 

설치 방법

brew install --cask openinterminal

 

설정 방법

 

1. 최초 1회 실행

- 설치된 openinterminal 을 최초 1회 수동으로 실행합니다

- 실행 하면 상단 메뉴바에 openinterminal 아이콘이 생성 됩니다.

 

2. finder extentions 설정

- System Preference > Extensions > Finder Extensions > OpenInTernminalFinderExtension 선택

- 안보일 경우 수동으로 openinterminal 한번 실행

 

 

3. terminal 을 iterm 으로 변경

- openinterminal 실행

- Default Terminal 을 iTerm 또는 원하는 터미널로 선택

 

4. 사용 방법

- finder 에서 원하는 경로로 들어간 후 우클릭 > iTerm 선택

 

반응형
반응형

https://www.toptal.com/developers/gitignore

 

gitignore.io

Create useful .gitignore files for your project

www.toptal.com

 

gitignore를 사용하는 IDE, framework, languege 에 맞게 자동으로 생성해서 추가

 

1. 위에 써놓은 url을 통해 접속한다.

 

2. 개발환경, 언어, 프레임워크 등을 입력한다.

- 장고랑 파이참을 쓰고 있어서 두가지를 입력..

 

3. 생성 버튼을 누르고 내용을 복사해서 해당 프로젝트에 적용한다.

 

 

 

반응형

'ETC > Git' 카테고리의 다른 글

[GitHub] Authentication failed. (use personal access token)  (0) 2022.04.28
반응형

오랜만에 github을 사용하려고 하는데.. 레포지토리를 만들고 푸시를 하려고 하자 에러가 났다.

 

remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.

 

내용은 이제 패스워드로 인증하는 것이 안된다는 것이다.

토큰을 사용한 인증을 해야 한다고 하는데 어떻게 하는지 정리해 보자.

 

 

1. github 로그인 후 프로필의 settings를 선택한다.

 

2. 좌측 사이드바 하단에 <> Developer settings 를 선택한다.

 

 

3. 좌측 사이드바의 'Personal access tokens 를 클릭하고, 우측 'Generate new token' 버튼을 클릭한다.

 

4. note에 원하는 문구를 써 넣고, 만료 기간을 선택한다. 기본 값은 30일.

 

 

5. 토큰 권한을 선택한다.

 

6. 선택을 마친 후 하단의 'Generate token'을 클릭하면 토큰이 나오는데 잘 저장해 놓는다.

 

7. keychain access 에서 github를 검색 후 삭제한다.

둘다 삭제

 

8. push할때 password에 위에서 생성한 token을 복사해서 입력하면 완료

반응형

'ETC > Git' 카테고리의 다른 글

[GIT] Gitignore 자동 생성  (0) 2022.05.02

+ Recent posts