웹브라우저 JavaScript

BOM

BOM(Browser Object Model)이란 웹브라우저의 창이나 프래임을 추상화해서 프로그래밍적으로 제어할 수 있도록 제공하는 수단이다. BOM은 전역객체인 Window의 프로퍼티와 메소드들을 통해서 제어할 수 있다. 따라서 BOM에 대한 수업은 Window 객체의 프로퍼티와 메소드의 사용법을 배우는 것이라고 해도 과언이 아닐 것이다. 본 토픽의 하위 수업에서는 Window 객체의 사용법을 알아볼 것이다.

댓글

댓글 본문
작성자
비밀번호
  1. 유유
    감사합니다.
  2. 감사합니다~!
  3. 감사합니다!
  4. tachyon
    감사합니다
  5. 이웃집토토로
    프로퍼티와 메소드는 객체지향 개념과 함께 HTML 및 JS의 특성을 알아야 하기 때문에
    설명이 어렵지 싶습니다. 100가지 말로 위의 개념들을 설명할 수 있으나 100가지가
    같은 맥락이란 것을 이해하려면 객체지향에 대한 이해와 경험이 있어야 할 것 같습니다.

    심지어 사실 이런 용어에 대한 사용 및 이해는 사람마다 다르기도 합니다.
    http://stackoverflow.com......ava
    학자가 될것이 아닌다음에야 대충 의미전달하는데 문제가 없는 수준이면 되는것 같습니다.

    우선 프로터티와 메소드를 프로퍼티는 변수다, 변수를 포함한 객체가 메소드가라고만
    이해하셨다면 빙산의 일각만 보고 계신 것이라 감히 말씀드리고 싶습니다.
    제가 하고 싶은 말은 프로그래밍 용어란게 알고보면 그 의미와 기저 배경이 있긴한데 실무수준에서
    혼용되서 사용되는 경우가 많다보니 설명하기가 참 어렵다는 것입니다. (컴퓨터과학이 비교적 신생학문임을 고려한다면 아직 컴퓨터과학은 체계적인 학문으로의 정립이 안되었다고 볼 수 있겠습니다.)
    저도 이런 세세한 용어 하나하나 늘 궁금했고, 고생을 많이 했어서 , (지금도 하고 있고..)
    간단에 글을 적습니다.


    1. 프로퍼티의 의미
    프로퍼티는 직역하면 소유물이라는 뜻입니다. 그런데 보통은 속성이라고 번역해 사용합니다.
    메소드는 방식, 방법, 즉 어떠한 행위를 기술합니다. 이 두가지를 멤버라고 하는데 객체를 이루는 요소입니다.
    (객체는 현실의 개념의 틀을 가져와서 프로그래밍용 데이터집합으로 표현한 것입니다.)

    2. 왜 프로퍼티라고 부르는가 ?
    window라는 전역객체가 그 하위 속성값들로 (객체지향 관점에서는 다형성이라고 하겠죠)
    강의에 소개된 다른 객체들을 포함하는 그 관계, 맵핑값을 프로퍼티라고 합니다.

    창이라는 객체 안에는 네비게이션바, 히스토리공간 등등의 개념(객체)가 포함되어 있잖아요?
    그런데 이 포함이라는 것이 계층적으로 상속관계인 것인지, 다형성으로 빌려다쓰는 관계인지가
    구분이 어렵습니다. 이 둘을 구분하는 것은 설계단계에서 필요합니다.

    =============================================
    혹시 궁금하실까봐 상세히 적자면 (안궁금하신 분은 ==를 넘기시고)
    바로 is a 관계와 has a 관계입니다. is a 관계는 포함을 하는 다형성을 보입니다.
    has a 관계는 상속을 보입니다.

    사람이라는 객체 안에 얼굴이 라는 속성이 있고, 손이라는 속성이 있는 것처럼요.
    그런데 이것이 is a 관계라면 말이 좀 이상하죠?? man is a hand.

    그래서 사람과 손의 관계는 has a 관계로 설계하는 것이 보다 바람직합니다. man has a hand.
    그리고 이 경우 사람은 손이라는 개념(객체)를 상속받습니다. 그럼으로 인해서 손이 가진 특성을
    사람도 갖지요. 가령 손을 설명할 때 털이라는 특성을 설명할 수 있다면 '사람의 손'(그냥손과는 다른 객체)을
    설명할 때도 털이라는 공통 특성을 같습니다. 언어마다 좀 다른 부분이긴한데 다중상속이 안되는 언어에서는
    여러 has a 관계(상속)를 설정하기 위해 상속말고 구현이라는 방식을 쓰기도 합니다.
    아무튼 has a 관계에 의해서 사람은 손이라는 상위클래스의 특성을 상속받게 됩니다.
    흔히 재산을 상속받는다고 하죠???? 바로 이것이 Property , 즉 재산입니다.
    =============================================

    즉 , window객체는 조상객체(전역객체) 이기 때문에 이러한 상속관계를 주로 강조하는 객체간의 관계이기
    떄문에 프로퍼티가 되는 것입니다. 한마디로 객체가 서로 상속관계를 이루는 경우 A가 B의 상위객체라면
    A는 B라는 프로퍼티를 갖습니다. 물론 Property를 단지 맵핑용 데이터명으로 부르는 경우도 있고.....
    변수도 사실은 종류가 굉장이 많기 떄문에 엄밀하게는 변수 == 프로터피라고 할 수 없습니다.

    3. 그러나 사실 이것이 다가 아니다. : 변수의 다양한 종류
    일반적으로 속성,재산의 의미를 갖는 프로퍼티라는 변수들과 행위를 하는 메소드를 멤버로 갖는 객체가
    만들어집니다. 그렇다면 변수는 모두 프로퍼티일까요??? 그렇기도 하고 아니기도 합니다.
    일반적으로 프로퍼티를 속성값,, 나아가 데이터로 이해한다면 그렇게 봐도 큰 의미는 없습니다.
    보통 객체만의 데이터는 프로퍼티라고 부를 수 있는 변수들만 있거든요
    그런데 객체를 구조적으로 뜯어보면 변수라는 녀석은 꼭 프로퍼티가 되지많은 않습니다.
    객체의 성질을 나타내는 데이터가 아닐 수도 있다는 것이지요.
    예로는 로컬변수 매개변수 참조변수 등이 있겠네요..... 변수는 그 구조적 위치와 객체내 영향범위, 용도,
    공개범위 등등에 따라 세분화되어 사용됩니다.

    이렇듯 프로퍼티라는 용어는 OOP에 대한 지식을 배경으로 해석하실 때 의미를 가지게 됩니다.
    프로그래밍이 처음이시라면 2번의 상속관계라서 재산을 준다. 재산, 혹은 재산을 줄 수 있는 후손객체는
    프로터티! 라고 이해하세요
    =================================================================
    결론 = simple is the best:
    1.특성,성격,포함,상속 등 뭔가 성질이 연결되면 프로퍼티, 행동, 기능을 하는 것은 메소드(펑션)
    2.이고잉님의 자바나 파이선 프로그래밍 강의 꼭 보세요! 2번 보세요!
    대화보기
    • cicada
      프로퍼티와 메소드에 대한 설명이 수업안에 있었으면 좋을것 같아요. 댓글보고 알았답니다.
    • yihsang
      "BOM에 대한 수업은 Window 객체의 프로퍼티와 메소드의 사용법을 배우는 것"
      DOM, BOM 이야기는 많이 들었는데 정리가 되는 느낌입니다.
      감사합니다.
    • JustStudy
      2016.07.07목
      고맙습니다 3.
    • JustStudy
      고맙습니다 2.
    • Rhys Jung
      늘 감사합니다.
    • 온달장군
      강좌 잘보고 갑니다. 감사합니다.
    • 이주환
      2016. 04. 27
      잘 보고 갑니다.
    • JustStudy
      고맙습니다
    • 박찬울
      본 답글은 수업 내용에 추가되면 좋을 것 같습니다.

      -프로퍼티와 메소드의 구분에 대해 이고잉님의 답변을 참고하여-
      변수가 객체에 담겨있으면 그걸 프로퍼티라고 하고
      함수가 객체에 담겨있으면 그걸 메소드라고 합니다.
      대화보기
      • egoing
        변수와 같은 뜻으로 생각해주세요~
        변수가 객체에 담겨있으면 그걸 프로퍼티라고 하고
        함수가 객체에 담겨있으면 그걸 메소드라고 합니다.
        대화보기
        • basicb
          갑자기 등장하여 이전 동영상부터 계속해서 언급되는 '프로퍼티'라는 용어가 도대체 무엇을 가리키는지 모르겠네요 ㅎㅎ 수업 끝날때쯤이면 알 수 있을런지 ㅎㅎ
        • 김정미
          학원다니다가 기간 끝나서 더 공부하고싶은데 할 방법은 별로없던 중...
          신랑의 강력추천으로 권유해준 사이트를 접하게 되었는데 정말 공부가 잘되네요~!!!
          정말 고맙습니다!!! 수고스럽게 만들어주신 이 수업을 듣고 저도 열심히 배우겠습니다^^
        • 박첩구드
          감사합니다
        • 엔트
          감사합니다!!
        • 호두과자
          감사합니다.^^
        • 육점이
          항상 감사합니다!!!!!!!! 첫 댓글을 달 수 있는 수업이 있어서 영광입니다. ^^
        버전 관리
        egoing
        현재 버전
        선택 버전
        graphittie 자세히 보기