코드 작성
gem을 구성합니다
코드 작성은(는) CoddyKit의 무료 Ruby Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Ruby Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Ruby Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
젬 코드 구성
좋은 젬 코드는 읽고 가져오기 쉬우며 네임스페이스를 사용하므로 다른 라이브러리와 충돌하지 않습니다. 핵심 도구는 모든 요소를 감싸는 최상위 모듈입니다.
- 젬마다 네임스페이스 모듈을 하나 둡니다.
- 네임스페이스와 대응하도록 클래스마다 파일을 하나 둡니다.
- 공개 범위는 작게 유지합니다.
네임스페이스 모듈
모든 클래스를 젬 이름을 딴 모듈 안에 넣으십시오. 그러면 여러분의 Client가 다른 사람이 만든 Client와 충돌하지 않습니다.
module Greeter
class Hello
def message
"Hi there"
end
end
end
puts Greeter::Hello.new.message파일 이름 규칙
루비 도구는 파일 경로가 상수 이름과 일치한다고 가정합니다:
Greeter는lib/greeter.rb에 있습니다.Greeter::Hello는lib/greeter/hello.rb에 있습니다.
이 규칙 덕분에 자동 로더가 파일을 자동으로 찾을 수 있습니다.
내부 파일 가져오기
진입 파일은 require_relative을 사용해 모든 요소를 연결합니다. 각 클래스 파일을 한 번씩 가져오므로 require 'greeter' 한 번으로 전체 라이브러리를 로드할 수 있습니다.
명확한 공개 인터페이스
사용자가 실제로 호출하는 메서드만 공개하십시오. 흔히 사용하는 방식은 내부 클래스에 작업을 위임하는 모듈 수준의 편의 메서드를 두는 것입니다.
module Greeter
def self.say(name)
"Hello, " + name + "!"
end
end
puts Greeter.say("Ada")내부 구현 숨기기
도우미 메서드에 private를 지정하여 공개 계약의 일부가 되지 않게 하십시오. 공개된 모든 것은 사용자와의 약속이므로, 공개 범위를 의도적으로 작게 유지하십시오.
class Calculator
def total(a, b)
add(a, b)
end
private
def add(x, y)
x + y
end
end
puts Calculator.new.total(2, 3)구성 패턴
많은 젬은 사용자가 옵션을 한 번에 설정할 수 있도록 구성 블록을 제공합니다. 간단한 방식은 구성 객체에 설정을 저장하는 것입니다.
module App
class Config
attr_accessor :api_key
end
def self.config
@config ||= Config.new
end
def self.configure
yield(config)
end
end
App.configure { |c| c.api_key = "secret" }
puts App.config.api_key사용자 정의 오류
네임스페이스 아래에 젬 전용 오류 클래스를 정의하면 사용자가 여러분의 오류만 정확히 구분해 처리할 수 있습니다. StandardError를 상속하십시오.
module Payment
class Error < StandardError; end
class DeclinedError < Error; end
end
begin
raise Payment::DeclinedError, "card declined"
rescue Payment::Error => e
puts "Handled: " + e.message
end원숭이 패치 피하기
String 같은 핵심 클래스를 전역에서 수정하지 마십시오. 다른 코드에서 예상하지 못한 문제가 발생합니다. 반드시 확장해야 한다면 리파인먼트를 사용해 변경 범위를 제한하거나, 직접 만든 클래스에 도우미 메서드를 추가하십시오.
의존성을 가볍게 유지하기
추가하는 모든 실행 시 의존성은 모든 사용자에게 필요한 의존성이 됩니다. 합리적인 경우에는 표준 라이브러리를 우선 사용하고, 그만한 가치가 있을 때만 젬을 추가하십시오.
의존성이 적으면 버전 충돌이 줄고 설치가 빨라집니다.
공개 인터페이스 문서화
각 공개 메서드의 인수와 반환 값을 설명하는 주석을 추가하십시오. YARD 같은 도구는 이 주석을 찾아볼 수 있는 문서로 변환하며, 예제가 포함된 좋은 README는 사람들이 여러분의 젬을 선택할지를 결정하는 중요한 요소입니다.
빠른 확인
젬 코드 구성에 대한 이해도를 확인해 보십시오.
복습: 코드 작성
젬 내부를 구성하는 방법을 배웠습니다:
- 모든 요소를 네임스페이스 모듈 안에 넣습니다.
- 파일 경로를 상수 이름과 일치시킵니다.
- 공개 인터페이스를 작게 유지하고 도우미에는
private를 지정합니다. - 사용자 정의 오류 클래스를 정의하고 전역 원숭이 패치를 피합니다.
- 의존성을 가볍게 유지하고 인터페이스를 문서화합니다.
다음으로 테스트와 버전 관리를 추가하겠습니다.
자주 묻는 질문
“코드 작성” 강의는 무료인가요?
네 — “코드 작성” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Ruby Academy 강의 전체를 잠금 해제할 수 있습니다. Ruby Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“코드 작성”에서 뭘 배우나요?
gem을 구성합니다 브라우저에서 직접 실행하는 실습 코드로 Ruby Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Ruby Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Ruby Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“코드 작성” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Ruby Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Ruby Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.