자바스크립트 리뷰

간단한 추상화 연습: 성적 데이터 관리 코드[혼공자 9-1-2]

가문비7 2023. 4. 5. 21:41

간단한 코드를 하나 연습해 본다. 학생들의 성적 데이터를 관리하는 프로그램이다. 

학생들의 데이터는 배열에 들어가고, 그 배열은 1개당 학생 1인의 데이터가 들어간 객체들로 이뤄져 있다. 코드를 보자.

      // 객체를 선언합니다.
      const students = []  // 배열 생성
      students.push({ 이름: '구름', 국어: 87, 영어: 98, 수학: 88, 과학: 90})  //push 메서드로 객체를 배열에 넣는다.
      students.push({ 이름: '별이', 국어: 92, 영어: 98, 수학: 96, 과학: 88})
      students.push({ 이름: '겨울', 국어: 76, 영어: 96, 수학: 94, 과학: 86})
      students.push({ 이름: '바다', 국어: 98, 영어: 52, 수학: 98, 과학: 92})

      // 출력합니다.
      let output = '이름\t총점\t평균\n'  //문자열 하나를 정의한다. \t는 띄어쓰기,  \n은 줄바꿈임.

      for (const s of students) {
        const sum = s.국어 + s.영어 + s.수학 + s.과학  
        const average = sum / 4
        output += `${s.이름}\t${sum}점\t${average}점\n`  // output = output + `${s.이름}\t${sum}점\t${average}점\n`
      }
      console.log(output)  //이 줄이 반복문의 바깥에 있기에 출력이 반복되지 않고 한번에 나온다. 
      // 궁금하면 이 줄을 반복문 안에 넣어볼 것.

이런 식으로 데이터를 처리하면 조금 더 효율적으로 관리할 수 있다. 현실의 객체에서 꼭 필요한 데이터만 추려서 객체를 표현하는 것을 추상화라고 한다. 구체화의 반대인 것 같다. 꼭 필요한 속성만으로 추상화해서 단순화하는 것이다.