코딩/1-JavaScript

B0502클래스와DAO

tree0505 2025. 4. 4. 11:22
반응형
  • DAO
    • 클래스와. 클래스의 배열은 밖에 있었다. 
    • 배열을 클래스로 만든게. DAO라고 한다. 
    • 현재 실무에서 사용하는것은 DAO이다. 
  • DAO
    • DAO란 
    • 클래스가 2개가 있는 것이다.
    • 1번째 개별 클래스 
      • 개별 데이터
      • 변수를 만들고. 아직까지는 주석이다.
      •  setData(num, name, kor, math) { //클래스 안에 함수이다. . 메소드이다.  
                    this.num = num; //클래스 안에 있는 함수에서 변수를 사용할때. this를 사용한다. 
                    this.name = name;
                    this.kor = kor;
                    this.math = math;
                };
        • 클래스 안에 있는 함수에서 변수를 사용할때에는 this를 사용한다. 
        • 위의 것은 변수를 생성한 것 
      • printData(){ //클래스 안에 넣을려고 함수를 사용하는것 
                    // 클래스 안에서 출력을 하고 싶어서. 함수를 쓰고 출력을 하는것 
                    document.write(this.num + ", " + this.name + ", " + this.kor + ", " + this.math + "<br/>");
                }
        • 출력을 하고 싶을때에도
        • 함수를 만들고 그 안에서 출력을 하는 것이다. 
    • 2번째. 전체 배열 클래스
      • 클래스들을 담는 배열을 클래스로 만든 것을 DAO라고 한다. 
      • class StudentDAO{ //배열을 가지고 있는 클래스 
                // 위데이터의 배열을 가지고있다. 
                studentList = []; //핵심은 이것이다. //DAO//배열을 클래스로 만든것 

                printList(){ //전체출력. 편리하다. 
                    for(let i = 0; i < this.studentList.length; i++){ 
                        //나머지것들을 사용할때는 this.로 사용한다. 
                        this.studentList[i].printData();
                    }
                }

                insertData(data){ //새로운 데이터 추가 
                    this.studentList.push(data);
                }

                deleteData(index){ //데이터 삭제. 
                    this.studentList.splice(index , 1);
                   
                }

            }
        • 클래스를 만든다.
          • 전체 배열 만들기
          • 출력하기
            • 반복문 돌려서 
          • 새로운 데이터 추가하기
          • 데이터 삭제하기 
      • let studentDAO = new StudentDAO(); // new해야지 생긴다. 클래스가 생긴다 dao 

            // 밑의 것들은. 데이터를 추가한 상황이다.
            // 현재 전체배열을 새로 만들고 아직 데이터가 없는 상황
            // 그래서 밑에서. 데이터를 빈 배열에 넣는 상황. 
            let st1 = new Student();
            st1.setData(1001 , '김철수' , 20 , 40); //빈배열에 데이터를 넣은것 
            studentDAO.insertData(st1); //전체배열에 넣은것 .
            //studentDAO.studentList.push(st1);

            st1 = new Student();
            st1.setData(1002 , '이민정' , 10 , 60);
            studentDAO.insertData(st1);

            st1 = new Student();
            st1.setData(1003 , '조주연' , 80 , 10);
            studentDAO.insertData(st1);

            st1 = new Student();
            st1.setData(1004 , '송민정' , 50 , 40);
            studentDAO.insertData(st1);

            // 밑의 식 때문에. 전체배열에서 함수가 작동하는 것 .
            studentDAO.printList();
            document.write("<hr/>");
            //데이터를 한개 지운것 | 지울때에도. 전체배열에서 함수를 이용헤서 지우는것 
            studentDAO.deleteData(2);
            // 지운 데이터를 나머지것들을 출력하라 
            studentDAO.printList();
        • new를 해야지 클래스가 생긴다. 
        • 데이터를 만들고
        • 데이터를 클래스 전체배열에 넣는다. 
        •     studentDAO.printList(); 을 사용해서. 클래스에 있는 함수가 작동하는 것 

B0502개념01_클래스와DAO.html
B0502개념01_클래스와DAO.html


  • 문제

B0502문제01.html
B0502문제01.html


  • 처음에
    • 개별 배열 클래스 만들기
    • 전체 배열 클래스 만들기 
    • arr 배열 데이터 넣고
    • 여기서 중요!!!
      • patientDAO = new PatientDAO(); 
      • 1개가 만들어 진다. 
      • new를 한것. 
        •  // 사용할려고 new한것이다.   
              // 1개의 new 이고 
              // arr배열을 담을것. 가지고 있는거 
              //class PatientDA | 빈거 한개 만들고 
              //이걸 사용해야지 전체 배열 클래스가 생긴다. 
              // dao 1개 필요 
              // 클래스가 7개가 필요. 
      • 반복문 돌리기 !!! 이게 중요하다.
        • 개별 데이터를 => 개별 클래스에 반복문을 통해서 넣는것 
        • new를 만든다. 
        • let patient = new Patient();
          • 7개를 만들수 있다. 반복문을 통해서 7개가 되는 것이다. 
        • 클래스에서 벗어나도. 클래스 안에 함수를 적었기에. 
          • patient.setData => 즉 이것으로 함수를 찾을 수 있다. 
          • 개별 데이터를 개별 클래스에 넣기 위해서. 이 함수를 적은것 

반응형