🧩 etc.

    온프레미스 서버 구축기 (feat: 라즈베리파이4 & Ubuntu22.04)

    온프레미스 서버 구축기 (feat: 라즈베리파이4 & Ubuntu22.04)

    기존에 사용하던 AWS 프리티어가 끝났습니다. 소마할 때는 서버비를 줘서 좋았는데, 사이드를 하면서 사비로 클라우드 비용을 충당하기는 부담이 됐습니다. 그래서 결국 마지못해 기쁜 마음으로 저만의 서버를 구축하기로 했습니다. 캡디 자재비로 라즈베리파이 3개를 대기시켜놨기 때문에 걱정은 하나도 되지 않았습니다 ! 라즈베리파이를 이용해서 개인 서버를 만들고 싶거나, 이것저것 놀아보고 싶은 사람들. 그리고 혹시 미래의 나를 위해 과정을 기록해두었습니다. 그럼 바로 나만의 play ground 를 만들어봅시다 🙌 목표 원래는 라베파가 세개 있어서 공부 겸 쿠버네티스를 적용해보려고 했었는데 서버가 없어서 클라이언트 개발자들의 작업이 멈춘 상태라 일단 개발 테스트용 컨테이너 먼저 올리기로 했습니다. 요약하자면 라베파..

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

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

    왜 필요한가? 팀원들과, 특히 백엔드끼리 협업을 하면서 설계를 끝내고 구현으로 들어가면서 가장 먼저 맞닥들인 문제는 “컨벤션” 이었습니다. 같은 프로젝트의 코드를 건드리는 팀원의 입장에서 다른 사람이 쓴 코드를 이해하는 데에 시간이 걸리거나 하다못해 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..