🧩 etc.

    우리팀의 코딩 컨벤션 정하기

    우리팀의 코딩 컨벤션 정하기

    왜 필요한가? 팀원들과, 특히 백엔드끼리 협업을 하면서 설계를 끝내고 구현으로 들어가면서 가장 먼저 맞닥들인 문제는 “컨벤션” 이었다. 주위에 물어보니 그게 무슨 문제가 되고 왜 정해야 하는지 이해를 못하는 사람들도 있었지만, 같은 프로젝트의 코드를 건드리는 팀원의 입장에서 다른 사람이 쓴 코드를 이해하는 데에 시간이 걸리거나 하다못해 DTO 의 클래스 이름부터가 뭐하는 DTO 인지 알기 어렵다면, 같이 코드를 작성하는 데에 불편함이 있다. 그래서 프로젝트를 같이 하는 팀원과 컨벤션을 정하고 코드 작성을 시작하기로 했다. 코드 스타일에 표준이라는 것은 없지만, 팀 내부에서 같은 코드 스타일을 결정하고 유지하는 것이 작업 효율을 높일 것이라고 생각했다. 그리고 유지보수 ! 내가 코드를 계속 작성하고 고쳐나..

    Nginx :: Address already in use 해결법

    Nginx :: Address already in use 해결법

    Nginx 를 구동시키다보면 다음과 같은 에러가 나올 때가 있다. 80포트와 443포트가 이미 사용중이라고 나온다. 결론 sudo fuser -k 80/tcp 위 명령어를 입력하면 80포트를 사용중인 프로세스를 죽일 수 있다. fuser 는 어떤 프로세스가 파일이나 소켓을 사용하는지 알려주는 명령어. -k 나 -kill 옵션을 사용하면 특정 파일이나 디렉토리를 사용하는 모든 프로세스에게 SIGKILL 을 전송할 수 있다.

    Mac :: 터미널에 이모지 나타내기

    Mac :: 터미널에 이모지 나타내기

    다른 사람들의 블로그를 보다보니까 터미널 Host 나타내는 부분에 이모지가 있던데 이게 너무 귀여워보여서 나도 적용해보았다. 사전 환경 세팅 Iterm2 oh-my-zsh ZSH 세팅 터미널을 꾸미고 싶은 분이라면 이건 이미 깔려있을 것이라고 가정했다. 아직 설치하지 않았더라도 위 저 두 파일은 설치만 하면 된다. 설치가 끝났다면 쉘의 환경 변수 설정을 변경해주자. vi ~/.zshrc vi 에디터로 zsh 설정 파일에 들어가서 가장 하단에 아래 코드를 넣자. prompt_context() { # Custom (Random emoji) emojis=("🔥" "🐻" "🦊" "🍻" "🚀" "🌙") RAND_EMOJI_N=$(( $RANDOM % ${#emojis[@]} + 1)) prompt_segment ..

    Github :: Git LFS 로 Large Size 파일 관리

    Github :: Git LFS 로 Large Size 파일 관리

    에러 remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com. Enumerating objects: 16, done. Counting objects: 100% (16/16), done. Delta compression using up to 8 threads Compressing objects: 100% (14/14), done. Writing objects: 100% (14/14), 188.62 MiB | 2.82 MiB/s, done. Total 14 (delta 2), reused 0 (delta 0), pack-reused 0 remote: Reso..

    TDD와 Unit Test

    TDD와 Unit Test

    이동욱 저자의 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 를 읽다가, Unit Test 에 대해 이해하기 쉽게 설명된 부분이 있어 인용해서 적어보았다. 먼저, TDD 와 Unit Test 는 다르다. TDD 는 Test-Driven Development, 테스트 주도 개발을 의미한다. TDD 는 Test 코드를 작성하는 것부터 시작한다. Red Green Cycle TDD는 위 그림과 같은 프로세스를 가진다. 항상 실패하는 테스트를 먼저 작성 (Red) 테스트가 통과하는 프로덕션 코드를 작성 (Green) 테스트가 통과하면 프로덕션 코드를 리팩토링 (Refactor) 반면 Unit Test 는 TDD 의 첫 번째 단계인 기능 단위의 테스트 코드를 작성하는 것을 의미한다. TDD 처럼 테스트를 반드시..

    IntelliJ :: Mac용 단축키 모음

    IntelliJ :: Mac용 단축키 모음

    내가 보려고 쓰는 IntelliJ 단축키 모음 단축키를 이용해 코딩을 하는 사람을 보면 멋있다. 멋있게 코딩하고 싶어서 쓸만한 단축키를 적어두려고 한다. (계속 추가예정) 멋있기만 해서 하는 건 아니고 생산성이 높아지니까..~ View ⌘1 : 프로젝트 창 열고, 포커스 위치 Esc : 에디터로 다시 포커스 이동 ⌘E : 최근 실행했던 파일 확인 ⌘B : 해당 클래스 이동 ⌥⌘B : 구현으로 이동 ⌘[ : 이전 코드로 이동 Editing ⇧⌘⏎ : 현재 구문 완성 ⌥⌘V : 변수 추출하기 (Extract → Variable) ⌥⌘P : 변수 추출하기 (Extract → Parameter) ⌥⌘M : 변수 추출하기 (Extract → Method)

    System :: ARM Assembly 정리

    System :: ARM Assembly 정리

    ARM 아키텍처는 16개의 레지스터를 가지고 있다. R0 ~ R12 : 범용 레지스터. 인자값 저장 등 R13(SP) : Stack Pointer. 스택의 주소를 저장하는 레지스터. x86 의 ESP 레지스터와 비슷 R14(LR) : Link Register. 함수 호출 시 되돌아갈 함수의 주소가 저장되는 레지스터 R15(PC) : x86 에서의 EIP 레지스터와 동일한 역할. 다음에 실행할 코드의 주소 저장 어셈블리어에 대해 간단히 살펴보자. OP Code : MOV, ADD, SUB, LDR, STR 과 같은 어셈블리 명령어 cond : 조건부로 명령을 실행해야 할 경우 OP Code 뒤에 붙여서 사용. Rd : Destination Register. 연산작업의 결과값을 저장하는 레지스터. 반드시 R..

    WSL2 기반 docker 사용시 메모리 이슈(Vmmem)

    WSL2 기반 docker 사용시 메모리 이슈(Vmmem)

    WSL 을 설치해서 쓴 지 며칠 되지 않았는데, 노트북이 너무 느려진 것 같아 작업관리자를 켜보았더니 이게 무슨 일이야.. 메모리를 무식하게 잡아먹고 있는 놈을 보았다. Vmmem 이 뭐하는 친군지 찾아보니 WSL 를 설치할 때 같이 다운로드한 docker 를 실행시켰을 때 같이 돌아가는 프로그램인 것을 확인. 노트북 부팅 시에 docker 가 자동 실행되게 설정해놨던 터라 우선 부팅 시 docker 자동 실행 옵션을 껐다. docker desktop 어플리케이션을 실행하고 작업표시줄 docker 아이콘을 우클릭한 뒤 세팅으로 들어가자. General 탭에서 Start Docker Desktop when you log in 옵션을 체크 해제했다. 재부팅 시 자동으로 실행되는 것은 막았지만, 여전히 doc..