트랙
/
Ruby
Ruby
/
연습 문제
/
저축 계좌
저축 계좌

저축 계좌

학습 연습 문제

소개

모듈

지금까지 봐 온 모든 연습 문제는 클래스를 사용했어요. 때로는 상태를 가진 객체를 만드는 오버헤드가 필요하지 않아서, 대신 module을 사용해요.

모듈은 클래스와 아주 비슷해요. 실제로 객체 계층 구조에서 Module은 Class의 부모예요. 가장 큰 차이는 인스턴스 메서드 대신 클래스 메서드를 사용한다는 점이에요. 클래스 메서드는 self.로 시작하고, 모듈에서 직접 호출해요.

예를 들어요:

module Speaker
  def self.echo(something)
    "#{something} ... #{something}"
  end
end

Speaker.echo("Hello")   #=> "Hello ... Hello"

루프

Ruby에서 루프를 작성하는 방법은 여러 가지가 있는데, 일반적으로 반복보다는 열거를 사용하는 편이라 가장 흔히 보게 되는 루프는 아마 while문일 거예요:

counter = 0

while counter < 5
  counter += 1
end

그 형제 격인 until문도 사용할 수 있어요:

counter = 0

until counter == 5
  counter += 1
end

지침

이 연습 문제에서는 저축 계좌를 다뤄요. 저축 계좌의 잔액은 매년 이자율에 따라 갱신돼요. 은행이 주는 이자율은 계좌에 있는 돈의 양, 즉 잔액에 따라 달라져요.

  • 잔액이 1000 달러 미만인 0 이상의 경우에는 0.5%.
  • 잔액이 1000 달러 이상 5000 달러 미만인 양수인 경우에는 1.621%.
  • 잔액이 5000 달러 이상인 양수인 경우에는 2.475%.
  • 잔액이 음수인 경우에는 3.213% (이자도 음수가 돼요).

세 가지 과제가 있고, 각 과제에서는 잔액과 이자율을 다뤄요.

1. 이자율 계산하기

주어진 잔액을 기준으로 이자율을 계산하는 SavingsAccount.interest_rate 메서드를 구현해요.

SavingsAccount.interest_rate(200.75)
#=> 0.5

반환되는 값은 Float의 인스턴스라는 점에 주의해요.

2. 연간 잔액 갱신액 계산하기

이자율을 고려해서 연간 잔액 갱신액을 계산하는 SavingsAccount.annual_balance_update 메서드를 구현해요.

SavingsAccount.annual_balance_update(200.75)
#=> 201.75375

반환되는 값은 Float의 인스턴스라는 점에 주의해요.

3. 목표 잔액에 도달하기까지 걸리는 연수 계산하기

목표 잔액에 도달하는 데 필요한 최소 연수를 계산하는 SavingsAccount.years_before_desired_balance 메서드를 구현해요.

SavingsAccount.years_before_desired_balance(200.75, 214.88)
#=> 14

반환되는 값은 Integer의 인스턴스라는 점에 주의해요.

GitHub에서 편집 링크가 새 창이나 탭에서 열려요
Ruby Exercism

저축 계좌 문제를 시작해 볼 준비가 됐나요?

Exercism에 가입하고 Ruby 트랙을 개념 21개연습 문제 121개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.