내장 객체 실습부터는 안 풀리는 문제가 태반이라서 내가 예상한 공부 시간보다 3배이상 더 걸리고 있다. 수십 번 코드를 다시 실행해도 선생님 코드대로 똑같이 작성해도 문제가 계속 틀린다.
아마도 엘리스 프로그램에서 준비한 강의가 3년이 지나고 4년이 다 되가는 아주 오래된 수업을 넣었기에 지금과는 맞지 않는 문제가 발생한 것 같다. 아무튼 이만저만 실망이 너무 크다.
그래도 할 수 있는데까지 공부를 진행해볼 생각이다. 조금 전에 이런 문제점을 문의사항에 보냈는데 답은 오지 않을 것 같다. 이번에도 안 풀리면 그냥 넘어가려고 한다. 문제 자체가 잘못된 거니까.
실습 5 - 복리 계산기 구현하기
문제 풀기
1. 코드 살펴보기
HTML 파일
App.js 파일
2. 코드 실행하기
아직은 계산하기가 실행되지 않는다.
3. 사용자로부터 입력 받는 부분 코드 작성하기
폼 데이터는 작성되어 있다. 폼을 눌렀을 때 폼의 결과를 getFormData로 받아온다. form은 form의 entries를 기준으로 한다. 4개의 필드를 받아온다. year와 frequency의 경우 number 타입으로 변환하고 나머지는 String으로 되어 있어 변환할 필요가 없다. 그리고 소수점 둘째 자리까지 처리해준다.
이를 위해 별도의 치리 함수를 만든다. 여기에 폼 데이터를 처리하는 함수를 작성할 것이다.
4. 나머지 코드 작성하기
복리 이자율을 계산하는 함수를 만든다. 이 코드를 식에 따라 작성한다. 텍스트를 위해서 함수를 하나 더 작성한다. 사용자에게 입력 받은 값을 퍼센트로 변환하는 함수도 작성한다.
하지만 몇 번을 해도 계속 틀렸다고 나온다. 푸는 문제마다 이래서 너무 짜증이 나고 화가 나서 공부를 진행하기가 힘들다. 그래도 코드를 다시 수정해보았다.
5. 다시 도전해보기
아무리 풀어도 계속 오답만 나와서 그냥 넘어가기로 했다.
6. 마지막으로 한번 더 풀어보기
사용자 입력 부분과 이를 받을 수 있는 함수를 작성했다.
그런 다음 복리 이자율을 계산하는 함수를 만든다. getResultText에는 모든 정보를 다 보여줄 수 있는 코드를 작성한다. 콤마를 넣어주는 함수인 parseMoneyText도 작성한다.
하지만 0으로 나누는 오류가 발생했다. 그래도 여기까지 왔으면 정말 잘한 것이다. 조금만 더 힘을 내보자. “division by zero” 오류는 일반적으로 수학적 계산에서 0으로 나누기를 시도할 때 발생한다. 이 경우, calculateCompoundInterest 함수에서 rate / frequency 부분에서 문제가 발생할 수 있다.
여전히 답이 나오지 않아 포기다.
실습 6 - 주식 수익률 계산기 구현하기
1. 사용자의 입력 코드 작성하기
2 app 함수 부분 만들기
3. html 코드 부분 작성하기
코드를 작성할수록 문제가 더 이상해졌다. 폼도 하나도 안맞고 종목을 추가해도 아무것도 출력이 되지 않는다. 이전에 문제를 풀기 전에는 그래도 추가된 내용이 나오기는 했었다. 분명히 똑같이 작성을 했는데도 그렇다.
아무튼 이번 문제도 빵점이다.
학습을 마치고
공부를 할수록 더 모르겠다. 아무튼 요즘 공부하다가 이처럼 화가 나는 경우는 드물었는데 너무 성질이 나서 때려치고 싶은 마음까지 들었다. 개발 공부가 아니라 자바스크립트 공부 말이다.
후반기 실습 세 문제는 설명을 들어도 10%도 못 알아들어서 쓸 것도 없었다. 어쨌든 지금 내 실력으로는 이 수업을 이어가는 게 과연 의미가 있을까 하는 생각이 든다. 조금 쉬운 공부를 하는 게 나을 것 같다.
'웹 개발 > 자바스크립트' 카테고리의 다른 글
비동기 2 - 이벤트 루프 (0) | 2024.11.27 |
---|---|
비동기 1 - 자바스크립트 제어 흐름 (0) | 2024.11.27 |
자바스크립트 실행 7 - 자바스크립트 내장 객체 3 : 실습 문제 풀기 2 <상대 시간 표시 앱 구현하기> (0) | 2024.11.27 |
자바스크립트 실행 6 - 자바스크립트 내장 객체 3 : 실습 문제 풀기 1 <현재 시간 구하기와 알파벳 카운터 만들기> (0) | 2024.11.27 |
자바스크립트 실행 5 - 자바스크립트 내장 객체 3 : 이론 및 퀴즈 문제 풀기 (0) | 2024.11.27 |