수정 및 추가된 기능 정의


  1. con.chat() 채팅 시작 시 사용자가 사용하는 언어 설정 메세지 출력

    con.chat()
    
    // Expected Console
    🌽conchat을 시작합니다!
    우리는 JavaScript와 React 환경에서 채팅이 가능합니다.
    1. JavaScript
    2. React
    어떤 언어를 사용하고 있나요? con.setLanguage("js" 또는 "react")를 입력해주세요!
    
  2. con.setLanguage(language) JavaScript 또는 React 언어 설정

    con.setLanguage("js");
    
    // Expected Console
    // js를 지원하는 메서드 리스트 및 설명 출력
    
    con.setLanguage("react");
    
    // Expected Console
    // react를 지원하는 메서드 리스트 및 설명 출력
    
    con.setLanguage("python");
    
    // Expected Console
    // 유효하지 않은 언어입니다. 'js' 또는 'react'를 입력해주세요.
    
  3. Debug Element 클릭 시 console 출력 기능

    콘솔창에서 출력된 DOM 정보를 클릭하면 해당 요소가 강조 표시됩니다.

  4. con.applyScript() 코드와 타겟을 인자로 받아 디버깅

  5. con.shareComponentTree() 두 가지 리액트 어플리케이션 차이점 판별

    con.shareComponentTree()
    
    // Expected Console
    <App>
      ├─ <Header>
          발신자 userName: FiberNode (state, props)
    	│	  수신자 userName: FiberNode (state, props)
      │  ├─ <Logo>
      │  └─ <Nav>
      ├─ <Main>
      │  ├─ <Content>
      │  │  └─ <Article>
      │  └─ <Sidebar>
      └─ <Footer>
    
  6. ~~con.applyJSX(jsxCode, componentName) JSX 코드 삽입~~

    발신자 console

    // JSX 코드와 컴포넌트명을 인자로 전달
    const jsxCode = "
    	<header>
    		<h1>{text}</h1>
    		<p className='text'>텍스트 입니다.</p>
    	</header>
    ";
    const componentName = 'Header';
    
    // con.applyJSX 메서드를 사용하여 컴포넌트의 DOM 구조 변경
    con.applyJSX(jsxCode, componentName);
    

    수신자 console

    발신자 userName: usename
    Component: Header
    Code: // html 코드로 변환되어 수신자에게 출력
    <header>
    	<h1>제목</h1>
    	<p class="text">텍스트 입니다.</p>
    </header>
    
  7. con.showComponentTree() 이진 트리 구조로 컴포넌트 트리를 구현하기

    기존 기능 정의대로 유지

    기대 수정안

    모달창을 띄워 컴포넌트 트리를 이진트리 형식으로 보여준다.

구현 방안 모색

Fiber node를 탐색한 결과 children값이 저장된 것을 확인

이 값을 이용해서 순서대로 탐색하며 배열에 저장하는 것 가능

질문 사항


  1. js 코드를 실행하는 메서드들을 con.applyScript() 하나로 취합할 경우 파라미터의 타입 설정 문제