• 카테고리

    질문 & 답변
  • 세부 분야

    기타 (개발 · 프로그래밍)

  • 해결 여부

    미해결

뮤직플레이>인트로 컴포넌트 작성강의에 관련해서 궁금한게있어서 문의드립니다!

23.02.09 22:52 작성 조회수 203

0

인트로 클래스에서 createRenderElement()를 정적메소드를 선언한 이유가

Intro컴포넌트에서만 돔을 그리게끔 하고싶어서 그런걸까요?

Intro를 인스턴스화했을때 element를 생성하지 못하도록 한걸까요?

왜 Intro 인스턴스에서는 createRenderElement를 하면 안되는건지가 궁금해서요ㅠㅠ

제가 정적메소드에대해서 잘모르고 질문하는거일수도있습니다ㅠ 답변부탁드리겠습니다! :)

답변 1

답변을 작성해보세요.

1

안녕하세요, simjieun님!

이 부분은 조금 설명하기가 어려운 것이지만, 아주 예리한 질문입니다~!

 

Intro컴포넌트에서만 돔을 그리게끔 하고싶어서 그런걸까요?

Intro 클래스 안에 존재하는 createRenderElement 는 Intro 컴포넌트만의 부모 컴포넌트를 만들기 위해서 작성한 것입니다.

이것만이 목적이라면 정적 메소드이든, 인스턴스 메소드이든 상관없습니다.

 

Intro를 인스턴스화했을때 element를 생성하지 못하도록 한걸까요?

못하도록 하려는 목적은 아닙니다. 해당 강의 내에서는 root element 를 생성하기 위한 방법으로 작성하다 보니 그렇게 된 것 뿐입니다.

왜 Intro 인스턴스에서는 createRenderElement를 하면 안되는건지가 궁금해서요ㅠㅠ

만약 createRenderElement 내부에 this 를 사용하는 등과 같이 Intro 클래스 객체를 참조할 일이 있다면 정적 메소드를 사용할 수 없게 되므로 인스턴스 메소드를 사용해야 합니다. 반대로 this 를 사용할 일이 없다면 정적 메소드를 사용하는 편이 좀더 유리합니다. 이런 식으로 작성을 하다보면 일반적으로 인스턴스에 의존하지 않는 경우에는 공통적인 부분이 있을 수도 있는데, 그 부분들을 다시 공통 utils 등으로 빼내는 리팩토링 작업을 할 수 있기도 하구요.

모든 개발이 그렇지만 이 강의에서도 이 코드가 이론적으로 완벽하게 만들어진 코드라고 하기에는 어려운 부분을 말씀드리면서 한편으로는 좀더 좋은 방향이 있지 않았을까?하는 생각도 항상 있습니다. 좋은 질문 감사드립니다~!!

 

 

simjieun님의 프로필

simjieun

질문자

2023.02.20

말씀해주신대로라면 의도가 파악이 되서 궁금증이 해결되었습니다. :) 친절한 답변 감사합니다.^^