주변에 좋은 코드가 있어서 오픈 소스를 하라고 하면, 대체로 코드 정리 좀 하겠다는 말을 많이 합니다.

일단 돌아가게 만드는 것에 중심을 두어서겠죠.

오픈 소스는 클린하지 않아도 된다고 생각합니다. 누군가 코드를 잘 정리해 줄 수도 있으니까요.

코드가 클린하다는 것은 어떤 의미일까요.

가독성이 좋다는 뜻으로 저는 이해합니다.

  • 읽기 쉬운 코드: 코드를 작성할 때 다른 사람이 읽기 쉽도록 작성해야 합니다. 변수와 함수의 이름은 명확하고 직관적이어야 하며, 주석을 사용하여 코드의 의도와 동작을 설명해야 합니다. 코드 블록을 적절하게 들여쓰기하여 구조를 명확하게 표현해야 합니다.
  • 작은 함수와 모듈: 함수는 작고 간단하며 한 가지 기능만 수행해야 합니다. 긴 함수보다는 작은 함수를 작성하는 것이 좋습니다. 모듈은 잘 정의된 기능을 가지고 있어야 하며, 필요한 경우 모듈을 적절히 분리하여 재사용성을 높여야 합니다.
  • 주석의 적절한 사용: 주석은 코드의 동작을 설명하고 의도를 전달하는 데 사용되어야 합니다. 그러나 주석만으로 코드의 이해를 대체하는 것은 좋지 않습니다. 주석은 코드가 이해하기 어려울 때 도움이 되어야 합니다.
  • 일관성 있는 명명 규칙: 변수, 함수, 클래스 등의 명칭에 일관성 있는 규칙을 적용해야 합니다. 명명 규칙은 가독성을 높이고 코드의 이해를 도울 수 있습니다. 개발 팀 내에서 동일한 명명 규칙을 사용하는 것이 좋습니다.
  • 중복 코드의 제거: 중복된 코드는 버그 발생의 원인이 될 수 있으며 유지보수를 어렵게 만듭니다. 중복 코드를 최소화하고 재사용 가능한 함수나 클래스를 작성하여 코드의 일관성을 유지해야 합니다.
  • 테스트 가능한 코드 작성: 코드를 작성할 때 테스트 가능성을 고려해야 합니다. 테스트 케이스를 작성하기 쉬운 코드는 버그를 발견하고 수정하는 데 도움이 됩니다. 모듈화된 코드와 작은 함수를 작성하여 단위 테스트를 수행할 수 있도록 해야 합니다.
  • 주기적인 리팩토링: 코드를 지속적으로 개선하고 리팩토링해야 합니다. 기능을 추가하거나 수정할 때마다 코드를 정리하고 개선하는 습관을 가져야 합니다. 리팩토링을 통해 코드의 가독성, 성능, 유지보수성을 향상시킬 수 있습니다.

클린 코드의 목표는 코드의 가독성과 유지보수성을 높이는 것입니다. 이는 개발자 간의 협업을 촉진하고 프로젝트의 생산성을 향상시킬 수 있습니다.

ai.com 의 클린 코드에 대한 설명입니다.

Clean Code

image from: https://blog.knoldus.com/clean-code-robert-c-martins-way/ , https://biratkirat.medium.com/clean-code-series-i-e1d60fc6d6ec

리눅스의 기본 Shell은 bash가 기본 쉘입니다.

Bash(배스) 한국에서는 생태교란종 어류이죠.

bash

오라일리 책 표지도 bash 입니다.

O'Reilly bash shell

 

bash쉘도 충분히 적응이 되었지만, 개인적으로는 몇 년 전부터 사용하는 zsh이 더 좋습니다. 특히 oh-my-zsh죠.

설치 방법은 간단합니다.

sudo dnf install zsh #zsh설치
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

 

aws Amazon Linux 2일 경우 다음과 같이 설치가 가능합니다.

sudo yum install zsh git util-linux-user -y
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

로그아웃하고 다시 들어오면 zsh 프롬프트가 나타날 것입니다.

 

bash로 돌아가려면 다음 명령으로 가능합니다.

sudo chsh -s $(which bash) $(whoami)

 

 

zsh에서 가장 좋았던 것은 `take` 명령어입니다.

mkdir ~/git && cd~/git

이 명령을

take ~/git 으로 됩니다.

 

써 보면 좋은데, 글로 표현하기 힘드네요.

여튼 bash도 좋지만, 저는 zsh입니다.

https://okdevtv.com/mib/zsh zsh의 plugin 설정도 있습니다.

 

zsh

sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

okdevtv.com

 

+ Recent posts