Elixir의 코드 스타일 가이드라인은?
_____Q1: Elixir 코드에서 들여쓰기는 어떻게 해야 하나요?
A1: 기본 들여쓰기는 스페이스 2칸을 사용합니다. 탭(tab) 대신 스페이스를 권장하며, 일관성을 유지하는 것이 중요합니다.
Q2: 변수 및 함수 이름은 어떤 스타일을 권장하나요?
A2: 변수와 함수 이름은 모두 소문자와 밑줄(_)로 구분하는 snake_case를 사용합니다.
Q3: 모듈 이름은 어떤 스타일을 사용해야 하나요?
A3: 모듈 이름은 각 단어의 첫 글자를 대문자로 하는 PascalCase를 사용합니다. 예: `MyModule`.
Q4: 한 줄에 작성할 코드 길이 제한이 있나요?
A4: 일반적으로 80~120자 사이를 권장하며, 80자를 넘으면 가독성을 위해 줄바꿈을 고려합니다.
Q5: 함수 정의 시 함수 헤더와 본문 사이에는 공백 라인이 필요한가요?
A5: 함수 내부에서는 별도의 공백 라인을 넣지 않고 연속적으로 작성하며, 함수 사이에 공백 라인을 한 줄 넣어 구분합니다.
Q6: 파이프 연산자(|>) 사용 시 줄바꿈 규칙은 어떻게 되나요?
A6: 파이프 연산자는 새로운 라인의 시작에 배치해서 체인을 명확히 구분합니다. 예:
```elixir
value
|> step_one()
|> step_two()
```
Q7: 여러 변수나 속성을 한 줄에 나열해도 되나요?
A7: 필요한 경우 한 줄에 여러 변수를 쓸 수 있으나, 가독성을 위해 가능하면 한 줄에 하나씩 작성합니다.
Q8: 주석 작성 시 따르는 가이드가 있나요?
A8: 한 줄 주석은 ` ` 뒤에 한 칸 띄우고 작성하며, 문장 형태로 작성합니다. 블록 주석 대신 함수나 모듈에 문서 주석(`@doc`, `@moduledoc`)을 사용하는 것이 권장됩니다.
Q9: 함수 본문에서 중괄호나 소괄호 사용 규칙은?
A9: Elixir는 소괄호를 함수 호출 시에만 사용하고, 중괄호는 튜플 등 데이터 구조에 사용합니다. 함수 호출 시 인자가 없으면 소괄호를 생략할 수 있으나, 인자가 있을 때는 사용합니다.
Q10: 긴 함수나 모듈은 어떻게 나눠야 하나요?
A10: 함수는 책임이 명확하고 한 가지 작업을 하도록 작게 나눕니다. 모듈도 역할별로 분리하며, 100줄 이상 넘는 긴 코드는 기능별 하위 모듈로 분리하는 것을 권장합니다.
Q11: 상수는 어떻게 선언하나요?
A11: 상수는 대문자 스네이크_CASE로 쓰며, 모듈 상수는 `@` 접두사를 붙여 모듈 어트리뷰트로 선언합니다. 예: `@default_timeout 5000`
Q12: 익명 함수 작성 시 스타일 가이드가 있나요?
A12: 익명 함수는 `fn` 키워드를 사용하며, 여러 줄일 경우 들여쓰기를 명확히 합니다. 가능하면 명명된 함수로 작성하는 것이 가독성에 좋습니다.
Q13: 여러 줄 문자열 작성 시 권장 방법은?
A13: 삼중 쌍따옴표(`"""`)를 사용하고, 들여쓰기가 내부 텍스트에 영향을 끼치므로 적절히 조절합니다.
Q14: 패턴 매칭이나 case, cond 등 제어문 작성 시 가이드가 있나요?
A14: 각 분기마다 들여쓰기를 두 칸 넣고, 화살표(`->`) 뒤에 한 칸 띄우며, 여러 분기는 한 줄씩 띄워 가독성을 높입니다.
Q15: 포매팅 도구 사용 권장 여부는?
A15: 공식 포매터인 `mix format` 사용을 강력히 권장합니다. 일관된 스타일을 자동으로 유지해 줍니다.
---
위 스타일 가이드라인은 Elixir 공식 문서와 커뮤니티 권장사항을 기반으로 하며, 프로젝트별로 세부 규칙은 조정할 수 있습니다. 항상 일관성을 유지하는 것이 가장 중요합니다.
Elixir의 코드 스타일 가이드라인은 주로 Elixir 커뮤니티에서 제안된 규칙과 관습을 기반으로 하며, 다음과 같은 주요 요소로 구성됩니다.
1. 코드 포맷팅 - 들여쓰기 : Elixir 코드는 2칸의 공백으로 들여쓰기를 합니다.
탭을 사용하지 않도록 합니다.
- 줄 길이 : 한 줄의 길이는 80자를 넘지 않도록 하며, 가독성을 위해 긴 줄은 적절히 줄바꿈합니다.
- 공백 사용 : 연산자 앞뒤에 공백을 추가하여 가독성을 높입니다.
예를 들어, `a + b`와 같이 작성합니다.
2. 네이밍 규칙 - 모듈 이름 : 모듈 이름은 대문자로 시작하며, 단어는 언더스코어(_)로 구분합니다.
예: `MyModule`. - 함수 및 변수 이름 : 함수와 변수 이름은 소문자로 시작하며, 단어는 언더스코어(_)로 구분합니다.
예: `my_function`. - 상수 : 상수는 대문자로 작성하며, 단어는 언더스코어(_)로 구분합니다.
예: `MAX_VALUE`.
3. 주석 - 주석 작성 : 코드의 의도를 명확히 하기 위해 주석을 사용합니다.
주석은 코드와 관련된 정보를 제공해야 하며, 불필요한 주석은 피합니다.
- 문서화 주석 : 함수와 모듈에 대한 문서화 주석은 `@doc`과 `@moduledoc`을 사용하여 작성합니다.
이는 자동으로 문서화 도구에 의해 처리됩니다.
4. 함수 및 모듈 구조 - 함수 정의 : 함수는 가능한 한 짧고 명확하게 작성합니다.
각 함수는 하나의 작업을 수행하도록 하며, 복잡한 로직은 여러 개의 작은 함수로 나누는 것이 좋습니다.
- 모듈 구성 : 관련된 함수는 같은 모듈에 그룹화합니다.
모듈은 관련된 기능을 제공하는 단위로, 명확한 책임을 가져야 합니다.
5. 패턴 매칭 - 패턴 매칭 사용 : Elixir의 강력한 패턴 매칭 기능을 적극적으로 활용합니다.
조건문 대신 패턴 매칭을 사용하여 코드를 간결하게 유지합니다.
6. 에러 처리 - 예외 처리 : Elixir에서는 예외를 발생시키는 대신, 가능한 경우 오류를 반환하는 방식을 선호합니다.
`{:ok, result}` 또는 `{:error, reason}` 형태의 튜플을 사용하여 결과를 반환합니다.
7. 테스트 - 테스트 작성 : 모든 기능에 대해 테스트를 작성합니다.
Elixir는 ExUnit이라는 내장 테스트 프레임워크를 제공하므로 이를 활용하여 테스트를 작성합니다.
- 테스트 네이밍 : 테스트 함수는 `test "description"` 형식으로 작성하며, 테스트의 목적을 명확히 설명하는 이름을 사용합니다.
8. 의존성 관리 - Mix 사용 : Elixir의 빌드 도구인 Mix를 사용하여 의존성을 관리합니다.
`mix.exs` 파일을 통해 프로젝트의 의존성을 명시하고 관리합니다.
9. 코드 리뷰 및 협업 - 코드 리뷰 : 팀원 간의 코드 리뷰를 통해 코드 품질을 높이고, 스타일 가이드라인을 준수하도록 합니다.
- 일관성 유지 : 팀 내에서 코드 스타일을 일관되게 유지하는 것이 중요합니다.
이를 위해 팀의 스타일 가이드라인을 문서화하고 공유합니다.
결론 Elixir의 코드 스타일 가이드라인은 가독성과 유지보수성을 중시하며, 함수형 프로그래밍의 특성을 잘 반영하고 있습니다.
이러한 가이드라인을 준수함으로써, 개발자는 더 나은 품질의 코드를 작성하고, 팀원 간의 협업을 원활하게 할 수 있습니다.
Elixir 커뮤니티는 이러한 스타일 가이드라인을 지속적으로 발전시키고 있으며, 새로운 기능이나 관습이 생길 때마다 업데이트되고 있습니다.
작성자:
정재현 [비회원]
| 작성일자: 1년 전
2025-01-02 06:21:45
조회수: 128 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 128 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.