![[IntelliJ] JS Code Convention 맞추기 (by eslint, husky, lint-staged)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPTuLf%2Fbtr9NDa0ERL%2F9kqRRlOYMExIuiFtId47jk%2Fimg.jpg)
Convention 정하지 않고 작업하게 될 경우, 서로 다른 작성 방식으로 인해 코드 가독성 저하를 일으키고 장기적으로 볼 때 유지 보수 함에 있어 큰 문제를 야기할 수 있습니다. Team Convention JS 코드 형식이 사람마다 미묘하게 차이나서, 통일 시켜 일관성을 맞추고 신경쓰지 않고 자동화될 수 있도록 사용하게 됨 ESLint 활용하여 JavaScript Code Convention 검사 수행 (ES6 기준) husky , lint-staged 활용하여 pre-commit 단계에서 staged file 대상으로 ESLint 검사 자동화 Automatic ESLint 아래의 플러그인 활용하여 자동화 수행 husky : Git hook 편리하게 사용할 수 있도록 지원 ( pre-commit 활..
![[Docker] MySQL 5.7 설치 및 데이터 import](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbj4CsW%2FbtssHyoHC02%2FAuDJQKzCQKWj1fimNjjMGK%2Fimg.png)
docker 설치 # 공식 사이트와 동일하다. $ sudo apt-get remove docker docker-engine docker.io containerd runc $ sudo apt-get update $ sudo apt-get install ca-certificates curl gnupg $ sudo mkdir -m 0755 -p /etc/apt/keyrings $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg $ echo \ "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings..
유저 용어 설명 UV (Unique Visitor) AU (Active User) DAU (Daily Active User) 일간 활성 유저 수 WAU (Weekly Active User) 주간 활성 유저 수 MAU (Monthly Active User) 월간 활성 유저 수 RU (Registered User) 일정 기간 내 게임에 등록된 유저 수 NRU (New Registered User) 일정 기간 내 게임에 등록된 신규 유저 수 ARU (Accumulate Registered User) 해당 기간까지 등록된 누적 유저 수 CCU (Concurrent User) 동시 접속자 수 MCU (Maximum Concurrent User) 최대 동시 접속자 수 ACU (Average Concurrent Us..
*라이센스 발급 및 설치 파일 다운로드 생략 ( 링크 ) 폴더로 이동하여 실행 $ cd home/사용자경로/idea-IU-31.8109.175/bin/ $ ./idea.sh// run intellij PATH 등록하여 실행 intellij 에서 create command-line launcher 검색 아래의 경로를 PATH에 추가하면 idea.sh 로 실행가능하다 한다 맥의 경우 /usr/local/bin/idea 을 PATH에 추가하면 $ idea . 명령어로 현재 디렉토리 기준으로 인텔리제이 실행가능 oh-my-zsh를 사용하고 있기 때문에 .zshrc 파일에 PATH 설정을 추가하도록 한다 $ vim ~/.zshrc # 인텔리제이 경로 추가 export PATH=$HOME/bin:/usr/local..
![[Vim] colortheme gruvbox 적용기 (to. Mac , WSL)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbtZNeR%2FbtrXnviOdzv%2FAVlCnn7FJCuYitKrgZbaYk%2Fimg.png)
Vim에 syntax on 설정만 할 경우 가독성이 조금 나아지지만 마음에 들지 않는다. (기본 colortheme 또한..😑) 그래서 vim colortheme 중에 랭킹 1위로 보이는 gruvbox를 설치해보기로 했다. vim vundle 설치 vim 플러그인 관리자로 최초 설치하도록 함 (마치 프론트의 nvm, 스프링의 maven, gradle 같은 느낌인듯) $ git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim 참고. - WSL 의 경우 개행문자로 인해 Vundle 실행시 에러 발생함! (아래 "에러2" 참고) - Mac OS 의 경우 문제없이 정상 동작함 ! 🤗 gruvbox 플러그인 설치 $ vim ~/..
개요 임의 문자 유형을 얼마나 반복해서 포함하는 지 또는 지정된 문자 형식을 검출하는데 유용한 정규표현식에 대해 공부/정리한 내용 포스팅함. ( 아래 영상을 보고 1시간 투자 후 정규 표현식을 스스로 찾아보고 할 수 있게 되었다! 😎 ) 유튜브 (✨강추) https://www.youtube.com/watch?v=t3M6toIflyQ&ab_channel=%EB%93%9C%EB%A6%BC%EC%BD%94%EB%94%A9 문법 정리 Groups and ranges (범위, 그룹) Chracter 의미 | 또는(OR) () 그룹 [] 문자셋, 괄호안의 어떤 문자 [^] 부정 문자셋, 괄호안의 어떤 문가 아닐때(not) (?:) 찾지만 기억하지는 않음 (no group) Boundary-type Chracter ..
📚 shell 에서 운영되는 프로세스는 job 이라고 부르기도 함. 📚 포그라운드, 백그라운드에 대해서도 알아보자 ! 방법 (ctrl + z 눌러서 나갔다고 가정) ① job 이 한 개 인 경우 $ fg // 직전에 job 으로 복귀 ② 여러개 인 경우 $ jobs jobs[1] - suspended vim 3-3Delete [2] + suspended vim 5-5cut_copy_paste.txt $ fg %1 // 1번 job(process)으로 복귀 참고 https://kldp.org/node/41673 https://www.hackerschool.org/HS_Boards/zboard.php?id=Free_Lectures&no=8032
![[AWS] EC2 서버 application heap dump 생성/다운로드 (with wsl2)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbeLdbj%2Fbtsr0rDiFXB%2FHlqGbNxnWrzctaeNIPqFd1%2Fimg.png)
개요 - 웹 서버 운영하는데 최소 1달 주기적으로 서버 다운되는 현상 발생 - 원인 파악 위해 heap dump 생성/분석 진행 - 이에따라 ec2 서버에서 생성한 heap dump를 wsl2 터미널로 내려 받는 흐름 정리 ① key 사용하거나, ~/.ssh/config 설정 통해 ec2 서버 접속 # 키로 접속하는 경우 (선택한 EC2 OS에 따라 기본 계정 상이함) sudo ssh -i [*.pem] ubuntu@[public domain ec2] # ~/.ssh/config 설정으로 접속하는 경우 HostName으로 접속 $ ssh web-site ② 프로세스 확인 ✔ spring boot project # PID (프로세스 아이디) 확인 $ ps -ef | grep java ③ heap dump ..
![[AWS] EC2 와 RDS 연결/접속 하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcav98d%2FbtsrYVSeTep%2FBXBoRSoKSp7cweK2yUFudk%2Fimg.png)
개요 - 다음 작업시 헤매지 않도록 흐름(flow) 기록 - AWS EC2 서버와 RDS 생성은 생략 - WSL2에 Ubuntu 설치하여 터미널로 사용 ① EC2서버 접속 - EC2 서버 인바운드 규칙으로 기본적으로 port 22, 80, 8080 등록 (22 : ssh, 80 : nginx, 8080: tomcat 용) - EC2 생성시 선택한 OS에 따라서 기본 계정명이 다름 ( ubuntu 의 경우 기본 계정이 ubuntu 이다!👨💻 ) - 필요시 EC2 의 VPC, 서브넷 그룹 확인하기 $ cd ~/.ssh $ sudo ssh -i [키.pem] ubuntu@[EC2공개도메인주소] ② RDS 인바운드 규칙 생성 (생략) - 엔드 포인트 주소 확인 - 인바운드 규칙에 신규 생성한 EC2 서버의 공..
![[oh-my-zsh] help command not found](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIXjz3%2FbtrVAs2kNKk%2FfJwh9sp1x9N3gwrBtV5xbK%2Fimg.png)
개요 - bash script 공부 중에 help command 확인하는데 에러 출력 - 찾아본 결과 help command가 모든 shell에 적용되는 것은 아닌 것으로 확인됨 해결 방법 $ vim ~/.zshrc # 하단이나 원하는 곳에 함수 삽입 후 저장 function help() { bash -c "help $@" } $ source ~/.zshrc 참고 https://gist.github.com/emreberge/1424710
개요 - ubuntu 또는 wsl2 작업 환경이 익숙해서 vscode 기본 터미널을 변경 함 - 그런데 폰트 설정이 안 되어 있어, 아래와 같이 아이콘이 깨진 상태로 출력됨 해결 - Setting (ctrl + , ) > User >Features > Terminal 선택 - Integerated : Font Fmaily 입력 칸에 사용하는 폰트 입력 ( ex. MesloLGS NF ) 필자의 경우 oh-my-zsh custom theme 에서 요구하는 폰트 사용 ! 사용하는 폰트 설치 후 입력 !
![[WSL] window10 터미널 꾸미기(oh my zsh, git, docker ..)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbf8Jg2%2FbtrFKF83GjW%2FIyVsJ6PjjEd6NKlN2T3xR0%2Fimg.png)
개요 Git Bash 나 Xshell, putty, Intellij 터미널, window cmd 등 여러가지 혼용해서 사용하고 있었는데, 통일하고 싶다는 생각이 듦 "리눅스용 윈도우 하위 시스템 (Windows Subsystem for Linux)" 에 알게 되었고. 몇일 동안 삽질한 설정 방법에 대해 정리 Windows Terminal & Ubuntu 설치 Microsoft store 실행 후 Windows Terminal 과 Ubuntu 검색해서 설치 Windows Terminal에서 Ubuntu 를 실행 WSL 활성화 & WSL 2 설정 https://mulder21c.github.io/2021/01/28/setting-up-wsl-2-dev-env-and-zsh-on-windws-10/#WSL-%..
설명👨💻 좌측 상단 메뉴 File > Settings > Apperance & Behavior > Apperance Use Custom font 수정 하면 project directory/package/menu tab 폰트 사이즈 변경됨 😎 우리의 눈은 소중하니깐
정리 - Date 타입의 필드를 Response 응답할때 Formatting 해주기 위해 @JsonFormat 을 사용함 @JsonFormat(pattern = "yyyy-MM-dd") - 문제) 그런데 startDate, endDate 날짜 각각 -1 일씩 된 날짜 가져옴 실제) 이벤트 1 / 2021-12-08 ~ 2021-12-16 @JsonFormat) 이벤트 1 / 2021-12-07 ~ 2021-12-15 🤔 - 그래서 아래와 같이 @Temporal 으로 수정하니 정상적으로 날짜 출력함 ( yyyy-MM-dd 형태) @Id @Column(name = "start_date") @Temporal(TemporalType.DATE) private Date startDate; @Id @Column(na..
개요 udemy 에서 junit test 인강 강의 듣던 중 해당 에러 발생 org.junit.runners.model.InvalidTestClassError: Invalid test class (이하 생략) 해결 방법 @Test 의 import 가 틀렸음 import org.junit.Test; ✨ //import org.junit.jupiter.api.Test; 💣참고 https://stackoverflow.com/questions/24319697/java-lang-exception-no-runnable-methods-exception-in-running-junits
개요 spring batch clone project 테스트 하면서 공공 API xml 데이터 parsing 테스트 진행 dto 객체에 mapping 처리 해주는 과정에서 jaxb 에러 발생 에러 Caused by: org.springframework.oxm.UncategorizedMappingException: Unknown JAXB exception; nested exception is com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 13 counts of IllegalAnnotationExceptions (생략) 클래스에 동일한 이름 "year"을(를) 사용하는 속성이 두 개 있습니다. this problem is related to the fo..
개요 평소와 같이 git repository 들어가서 git status 했는데 전체 파일이 modified 상태로 확인됨 검색 키워드 👉 index refresh problem when change git terminal 작업 환경 : wsl , ubuntu, oh-my-zsh 해결 LF 인식으로 인한 문제였고, git config 수정함 ## For the current repository git config core.filemode false git config core.autocrlf true ## For global config (필자는 global 설정함 👨💻) git config --global core.autocrlf true git config --global core.filemode ..
![[Git] rebase 활용하여 커밋에서 원하지 않는 파일 빼기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb2VgiK%2Fbtsr4m2yLws%2FfdKqsyCCKc2jwkjKB7KB7k%2Fimg.png)
PR 요청하기전 commit 이력 정리하고 있는데, 하나의 commit에 원치 않는 파일이 포함되어 있다는 것을 깨닫게 되었다. 로컬 작업 중이고, commit 을 remote에 반영하지 않은 경우에만 수행하시길 바랍니다 commit 이력이 remote에 반영된 경우 내려받은 다른 사람들과 conflict(충돌)이 발생하여 문제 야기할 수 있기 때문입니다 해결 방법 ① 작업이력 임시 저장 :: stash $ git stash list // 확인 $ git stash push -um "임시저장(메시지작성알아서)" // -u : untracked file 까지 , -m : 메시지 작성 $ git stash list // 재확인 stash 는 스택 자료구조와 닮아 있고, LIFO로 최근 데이터의 경우 stas..