Git 필수 명령어 (실무에서 통하는)

  저장소 초기화 git init .git 이라는 숨겨진 폴더가 생성된다 신규/수정 파일을 스태이지에 올리기 git add . : 모든파일을 추가 git add <파일명> : <파일명>만 스테이지 등록 스테이지 : 커밋 할 수 있는 파일 상태. 스테이지에 등록되지 않은 것들은 커밋할 수 없다 상태확인 git status 커밋로그 확인 git log git log --oneline --graph 브랜치 관리 git branch : 브랜치 목록 확인 git branch <신규브랜치명> : 신규 브랜치 생성 git checkout <브랜치명> : 브랜치 변경 git checkout -b <신규브랜치명> : 신규 브랜치 생성하면서 브랜치 변경 브랜치간 병함 머지가 될 브랜치로 이동 후 git merge <현재브랜치로 합칠 브랜치명> 원격 저장소 git remote add origin <원격리파지토리주소> : 원격 리파지토리주소를 로컬 리파지토리에 등록하기 github등에서 clone한 상태라면 이미 등록되어있을 것이다. 일반적으로 원격저장소를 orgin으로 만들어준다. 다른거 사용해도 되지만 헷갈림 <원격리파지토리주소> 는 github, gitlab 등 원격에 마련된 리파지토리의 주소를 말한다 git push -u origin <브랜치명> 등록된 원격 리파지토리로 전송한다. 일반적으로 origin 에 등록된 주소다 git pull origin <브랜치명> 원격 저장소의 변경사항을 가져와 현재 로컬 브랜치로 병합시킨다 push 전 커밋 합치기 (rebase, squash) git rebase -i HEAD~3 : 가장 마지막 커밋부터 3개를 선택한다는 뜻 편집창이 나타나면 가장마지막을 제외하고 나머지 두 커밋의 ‘pick’을 ‘s’ 로 변경 여...

VIM ESC키 한글 문제 해결 방법(windows)

  autohotkey 설치 https://www.autohotkey.com/ esc_force_english.ahk 파일 작성 컴파일해서 실행파일로 만들어 준다 버전 1.x로 컴파일해야됨 ---------------------------------------------------------------------- $Esc:: ret := IME_CHECK("A") if %ret% <> 0 ; 1 means IME is in Hangul(Korean) mode now. { Send, {Esc} Send, {vk15} ;한글인 경우 Esc키를 입력하고 한영키를 입력해 준다. } else if %ret% = 0 ; 0 means IME is in English mode now. { Send, {Esc} ;영문인 경우 Esc키만 입력한다. } return /* IME check */ IME_CHECK(WinTitle) { WinGet,hWnd,ID,%WinTitle% Return Send_ImeControl(ImmGetDefaultIMEWnd(hWnd),0x005,"") } Send_ImeControl(DefaultIMEWnd, wParam, lParam) { DetectSave := A_DetectHiddenWindows DetectHiddenWindows,ON SendMessage 0x283, wParam,lParam,,ahk_id %DefaultIMEWnd% if (DetectSave <> A_DetectHiddenWindows) DetectHiddenWindows,%DetectSave% return ErrorLevel } ImmGetDefaultIMEWnd...

VIM ESC키 한글 문제 해결 방법(macos)

 mac에서 vim 사용시 normal 모드 자동변환 문제 해결하기 앱 다운로드 : https://github.com/Hammerspoon/hammerspoon/releases/tag/1.0.0 다운로드한 앱을 Application으로 이동 한 후 실행하면 보안관련 설정해주기 'Open Config' 메뉴를 선택한 후 아래 내용으로 변경 다 입력했으면 'Reload Confg' 메뉴 선택 한글로 입력도중 'ESC'키를 누르면 무조건 영어로 변환된다. -- key mapping for vim -- Convert input soruce as English and sends 'escape' if inputSource is not English. -- Sends 'escape' if inputSource is English. -- key bindding reference --> <https://www.hammerspoon.org/docs/hs.hotkey.html> local inputEnglish = "com.apple.keylayout.ABC" local esc_bind function convert_to_eng_with_esc() local inputSource = hs.keycodes.currentSourceID() if not (inputSource == inputEnglish) then hs.eventtap.keyStroke({}, 'right') hs.keycodes.currentSourceID(inputEnglish) end esc_bind:disable() hs.eventtap.keyStroke({}, 'escape') esc_bind:enable() end esc_bind = hs.hotkey.new({}, 'escape', convert_to_eng_with_esc)...

macos에서 right option 키를 한영키로 만들기

  hidutil key remapping generator for macos 사이트 : https://hidutil-generator.netlify.app/ 만드는 순서 리매핑 사이트 들어가서 right_option 을 f19 로 만드는 설정 카피 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "<http://www.apple.com/DTDs/PropertyList-1.0.dtd>"> <plist version="1.0"> <dict> <key>Label</key> <string>com.local.KeyRemapping</string> <key>ProgramArguments</key> <array> <string>/usr/bin/hidutil</string> <string>property</string> <string>--set</string> <string>{"UserKeyMapping":[ { "HIDKeyboardModifierMappingSrc": 0x7000000E6, "HIDKeyboardModifierMappingDst": 0x70000006E } ]}</string> </array> <key>RunAtLoad</key> ...

WSL2 우분투에서 신규 jdk를 alternatives로 설정하기

이미지
  아래 폴더가 없다면 만들어주기. 기존에 apt로 jdk를 설치한적이 있다면 없을리 없음 $ sudo mkdir -p /usr/lib/jvm 다운로드한 jdk를 위 경로에 복사하여 압축풀리 $ sudo tar -zxf ~/Downloads/openjdk-24_linux-*_bin.tar.gz -C /usr/lib/jvm/ alternatives를 이용하여 default로 설정하기 $ sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-24/bin/java 1 $ sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk-24/bin/javac 1 $ sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk-24/bin/jar 1 $ sudo update-alternatives --config java $ sudo update-alternatives --config javac $ sudo update-alternatives --config jar 제거하기 sudo rm -R /usr/lib/jvm/jdk-24 sudo update-alternatives --remove java /usr/lib/jvm/jdk-24/bin/java sudo update-alternatives --remove javac /usr/lib/jvm/jdk-24/bin/javac sudo update-alternatives --remove jar /usr/lib/jvm/jdk-24/bin/jar 상세내용은 유튜브 참고

Windows에서 스프링부트 개발하는 분들을 위한 VSCode 가이드

이미지
Extensions 필수확장 (for windows) JDK 설치 (나중에 해도 되긴 함) Remote development Extension pack for java Spring Boot Extension Pack 선택확장 Vim im-select 설정 후 한글전환이 다른 앱에서는 잘 되지 않는현상이 발생하는데 이는 입력기 자체가 아예 영문으로 바뀌었기 때문이다. 이때에는 ‘Win키 + 스페이스바’를 입력 후 한영 전환 키를 입력하면 된다. 한영키는 사용못한다고 생각하면 됨 특정입력기로 전환되게 강제로 단축키를 지정하는 방법도 있음. (예 alt + shift + 1로설정 im-select 설정 for vscode Docker Minimal Kiwi Navigations Quick file navigation Cmd+p Quick Open Ctrl + Tab 에디터 그룹에 열려있는 파일간 변경 Cmd + Opt + <좌우화살표> : 열려있는 탭 파일순으로 이동 윈도우는 Ctrl + pageUP/DN Breadcrumbs Explorer를 사용하지 않고도 빠르게 패키지, 폴더를 이동할 수 있다. 익숙해지기만 한다면. 단축키 Cmd + Shift + . 이긴 한데 마우스 클릭이 빠를듯 Go to Definition F12 Go to Implementation Cmd + F12 Go to symbol : 클래스내 멤버(메서드, 필드) 이동 Cmd + Shift + O 누른 후 : 를 입력하면 그룹화된 심볼 선택 가능 Open symbol by name Cmd + T Bracket maching Cmd + Shift + \\ Reference information 설정에서 codelens 검색 후 자바관련 2종을 enable로 설정 Rename symbol F2 Errors & warnings P...

TDD를 안 해봐서 궁금한 것들

  질문 : 딴지 거는게 아니라 테스트코드를 짜본적이 없어서 궁금해서 질문 드립니다.! 보통 한 api를 만드는건 혼자 담당할텐데 api를 구현 한 후 postman이나 스웨거 혹은 화면단과 연동 하고 가짜 데이터 넣어서 찍어 보는 것과 테스트 코드에서 목데이터로 테스트 해보는 것엔 어떤 차이가 있나요? 1번의 케이스는 사람이 단순하게 몇 개의 데이터로 찍어볼테지만 테스트코드에선 보통 반복문 같은거로 수많은 데이터로 검증? 하는것 같더라구요 아마 그 검증하는 데이터 크기의 차이 때문에 tdd를 하는 것인지 궁금합니다. 간단한 단위 테스트 정도는 해본적있습니다. 근데 뭔가 같은 일을 두 번 하는 느낌 밖에 안 들어서 깊은 공감을 못했습니다.. 답변 : 답변드립니다. 우선 소프트웨어를 테스팅하는 것과 개발자가 TDD를 수행하는 것이 다르다는 점을 느끼셔야하는데 대부분의 경우 이 부분에서 잘 설득이 되지 않는점을 양해해주시기 바랍니다.   TDD시 Mock을 이용하는 이유 SW테스팅 : API가 요구사항에 맞게 동작하는지 테스트케이스를 설계하고 테스트용 데이터를 생성한 후 검증하며, 개발완료 후 테스팅이 수행됨 TDD : API를 개발하기 위한 프론트와 백엔드간의 협업 매개체 (문서) 작성이 주 목적임 (예: Spring RestDocs) 테스트 데이터의 차이 SW테스팅 : 요구사항에 부합하는 테스트 데이터를 케이스별로 설계하고 해당 테스트 케이스를 검증. 테스트케이스 설계방식에 따라 수십, 수백가지에 대한 데이터. TDD : 개발자가 필요하다고 생각한 만큼의 데이터만 테스트. 주로 메인흐름, 대안흐름, 예외흐름에 대한 1건씩 정도 일을 두 번 한다는 느낌 지금 까지의 개발 방식 : 코드를 짠다 → 애플리케이션을 구동한다 → 테스트한다 → 수정한다 → 개발완료 후 테스터가 테스트 → 오류 있으면 코드 수정 후 테스트  첫 TDD를 적용: 레이어별 crud에 대한 단위(unit) 테스트코드 작성 → 끝 TDD의 개발 방식...