[컴][웹] reactjs 에서 dynamic 하게 component 를 load 하는 법

코드 분할 / dynamic loading / react component loading

code splitting 방법들

자세한 내용은 React 문서 "Code-Splitting – React" 를 참고하자.
여기 내용은 client-side rendering 을 위한 것이다.

import()

기본적으로 webpack 을 사용하면, import 를 할 때 dynamic import() 를 사용할 수 있다.

import {add} from './math';
console.log(add(10,10 ));
위의 statment 를 아래처럼 수정해서 사용할 수 있다.
import("./math").then(math => {
    console.log(math.add(10, 10))
});

React.lazy

v16.6 부터 지원한다 : React v16.6.0: lazy, memo and contextType – React Blog

현재 default export 에 대한 지원만 한다. 그래서 만약 named export 를 사용해야 하는 상황이면, 새로운 component 를 하나 만들고, 그 안에서 다시 default export 를 해서 default export 로 만들어서 사용하면 된다.(참고)

이 방법을 사용하면, webpack 에서 chunk 를 나눠준다.

import MyErrorBoundary from './MyErrorBoundary';
const OtherComponent = React.lazy(() => import('./OtherComponent'));
const AnotherComponent = React.lazy(() => import('./AnotherComponent'));

const MyComponent = () => (
  <div>
    <MyErrorBoundary>
      <Suspense fallback={<div>Loading...</div>}>
        <section>
          <OtherComponent />
          <AnotherComponent />
        </section>
      </Suspense>
    </MyErrorBoundary>
  </div>
);

Route-based code splitting

route 를 기준으로 code splitting 을 할 때는 아래처럼 사용하면 된다.
import { BrowserRouter as Router, Route, Switch } from 'react-router-dom';
import React, { Suspense, lazy } from 'react';

const Home = lazy(() => import('./routes/Home'));
const About = lazy(() => import('./routes/About'));

const App = () => (
  <Router>
    <Suspense fallback={<div>Loading...</div>}>
      <Switch>
        <Route exact path="/" component={Home}/>
        <Route path="/about" component={About}/>
      </Switch>
    </Suspense>
  </Router>
);

See Also

References

  1. Code-Splitting – React

[컴] telegram instant view 만들기

텔레그램, 인스턴트 뷰 만들기 / instant view editor / xpath / 즉시 보기 / 즉시보기 / ivh telegram / instant view


telegram instant view 만들기

참고로 instant view(즉시보기) 는 desktop 에서는 보이지 않는다.

instant view(IV) 를 만드는 것은 IV bot 에게 source page 의 어떤 부분을 가져다가 page 를 만들지를 알려주는 과정이다.
  • My Templates(https://instantview.telegram.org/my) 로 간다.
  • Instant view(IV) 를 만들고 싶은 page 링크를 넣는다.
  • instant view 를 만든다.
    • Instant view format: https://instantview.telegram.org/docs#instant-view-format
      • 여기에 있는 property 를 채우면 알아서 만들어진다. title, body 만 잘 채워지면 preview 에 instant view 가 보이기 시작한다.
    • 주의할 점
      • IV editor 에 보이는 view 를 가지고 작업을 하자. 그렇지 않으면 tag tree 가 좀 다를 수 있다. 예를 들면, mobile, desktop view 가 다른경우.








rules 예


~version: "2.1"

title: //header//span[@class='article__headline']
subtitle: //header//span[@class='article__subheadline']

body: //article/div[has-class("layout-article-body")]
@remove: //article//aside

# @debug: $body

instant view 에서 function 을 지원하는데, 아래처럼 사용할 수 있다.
@function: xpath_query

그러면 function 의 결과는 $@ 에 저장되고, $$ 에는 최근에 실행한 xpath_query 의 결과가 저장된다.

$가 변수를 나타낸다고 보면 된다. assign 방법은 아래 예제를 확인하자.

# Put a picture into a <figure> tag, then set it as the cover
@wrap(<figure>): //img[@id="cover"]
cover:           $@

# Insert a divider before each div.divider that's no longer required
@before(<hr>):   //div[has-class("divider")]
@remove          # this is the same as @remove: $$

# 위에서 set 한 변수 cover 를 아래처럼 사용할 수 있다. 다만, 결과가 list 인 경우 가장 첫 항목만 저장된다.
@after_el("./../../img"): $cover//p

template 제출(Instant View > Publishing templates)

아래처럼 template 에 대해서 10개이상의 url 을 통해서 검증을 하면 아래처럼 submit 을 할 수 있다.

다른 사람에게 적용은 telegram team 의 승인이 필요하다 한다.

하지만 특정 url 을 전송보내서 자신이 만든 template 을 통해 보도록 하는 것은 t.me/iv?url=...&rhash=... 로 가능하다.
ex: https://t.me/iv?url=https%3A%2F%2Fwww.economist.com%2Fbusiness%2F2020%2F02%2F29%2Fhow-asml-became-chipmakings-biggest-monopoly&rhash=05c6986cda93a5






rhash 얻기

아래처럼 view in telegram 을 선택한다. 그러면 주소가 나오는데, 거기에 rhash 가 있다.




template 변경

자신이 만든 template 이 변경되면, 아래처럼, 현재까지 확인했던 다른 template 도 확인 작업을 해야만 한다.

[컴] windows cmd 에서 alias 설정

alias 설정 / 단축키 설정 / .bashrc 설정 / 자동으로 설정 / bash function /


windows cmd 에서 alias 설정

regedit 를 이용해서 아래 처럼 설정하면 된다.

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Command Processor]
"AutoRun"="%USERPROFILE%\\alias.cmd"


위 같이 설정하면, cmd 를 실행할 때마다. %USERPROFILE%\\alias.cmd 를 한번 실행해 주게 된다.

그리고 나서 %UserProfile% 에 alias.cmd 를 아래처럼 작성하면 된다.
@echo off

DOSKEY ls=dir /b
DOSKEY ac=c:\a\envs\$1\Scripts\activate.bat $*
$* : 나머지 모든 parameter


References

  1. alias - Aliases in Windows command prompt - Stack Overflow, 2019-09-30

[컴] V8 관련 글들

크롬엔진 / 크로미엄 엔진 / 노드 엔진 / javascript engine / nodejs engine / j


V8 관련 글들

[컴] 해상도 4K 어원

4k / 8k / uhd / UHD / 모니터 해상도 / TV 해상도 / 4K란? / 4k 가 뭐지? / resoultion

4K 어원

기술적으로 가로 해상도가 4096 pixels 이면 4K 이다.

하지만, 실질적으로 우리가 이야기하는 UHD 는 가로의 해상도가 3840이다.

4K라는 용어는 이것은 Digital Cinema Initiatives 라는 회사가 디지털 시네마 시스템의 표준 구성을 만들었는데, 거기서 사용하던 용어이다. 거기서는 4096x1716 해상도를 이야기 했다.
하지만 이제 모두들 4K 가 UHD 를 뜻한다고 알고 있어서 그냥 그렇게 통용되고 있다.

1080p

주의해야 할 점은 1080p 까지는 세로부분의 해상도를 이야기했다면, 4K가로부분의 해상도를 이야기한다는 것이다. 아래 그림을 참고하자.
출처: https://www.hdmi.org/spec/hdmi2_1

See Also


  1. video - Why is vertical resolution a multiple of 360? - Super User

References

  1. TV resolution confusion: 1080p, 2K, UHD, 4K, 8K, and what they all mean - CNET

[컴] 조직 개편, 정비시 CIO 로서 역할과 관련된 tips


cio /cto / 관리자에게 도움이 되는 글 / 팁들 / 팁 / it 문화를 받아드릴때 주의해야 하는점.

조직 개편, 정비시 CIO 로서 역할과 관련된 tips

조직의 개편에서 놓치면 안되는 것들에 대한 것들이다. 요즘의 회사들이 IT 와 연관성이 많아지면서, 조직의 구조나 문화가 달라지고 있다. 관련돼서 도움이 될만한 이야기이다. 

성공을 위해 필요한 3가지 리더십 자질

출처 : The 2018 State CIO Survey - NASCIO 에서

  1. 소통자(communicator)
  2. 관계 관리자(Relationship manager)
  3. 전략가(Strategist)
  4. 동기부여자(Motivator)
  5. 외교에 능한사람(diplomat)
  6. 변화 관리자(Change Manager)
  7. 협상가(Negotiator)
  8. 조력자(Facilitator)
  9. 기술 전문가(Technologist)
  10. 교육자(Educator)

딜로이트 컨설팅의 CTO 빌 브릭스의 충고

  1. CIO는 애자일 기법 도입과 변화와 관련해 다른 임원과 부서로부터 필요한 것이 무엇인지 파악해야 한다
  2. 새로운 시스템안에서 성과측정을 위한 새로운 지표를 수립하여 측정해야 한다고 조언

카네기 멜론 대학교의 테퍼 경영대학원 비즈니스 기술 조교수 얀 황

  1. 적절한 목표를 수립하기 위해 CIO가 이해관계자에 집중해야 한다
  2.  특정 비즈니스 프로세스를 구조조정하려는 경우라도 CIO는 그 변화가 생태계 전체에 미치는 영향에 대해 생각해 보아야 한다. 프로세스 호환성, 보안공백 등.
  3. 임원들이 당면한 구조조정 요건을 넘어 좀더 장기적인 게임을 해야 한다
    1. CIO는 IT와 비즈니스 니즈가 지속적으로 빠르게 변화하기 때문에 최소한 1-2년 전에 무엇이 효과가 있을지 고려해야 한다
  4. 모두가 새로운 구조에 맞추도록 해야 한다. 따라서 직원에게 기술뿐 아니라 문화 변동에 대해서도 교육하는 프로그램이 필요하다. 그렇지 않으면 가치를 창출할 수 없다
    1. 직원들이 새롭게 구성된 덜 위계적인 구조 내에서 일하는 방식, 이런 환경에서 직원들이 교육하는 방식 등이 충돌을 일으켰다

References


  1. 조직 개편·정비, 'CIO 과제'로 부상 중··· 피해야 할 7가지 실수 - CIO Korea, 2020-01-29

[컴][머신러닝] 파이토치(Pytorch)에 대한 간략한 설명

What if pytorch / pytorch / desc / 파이토치 설명 / 파이토치 차이점. / Machine learning / ML / 머신러닝 / 기계학습

파이토치에 대한 간략한 설명

  • 파이토치는 문턱이 낮다
  • 파이토치는 공식 문서가 잘 만들어져 있다.
  • 자체 운영 포럼이 있다.
  • 연산 그래프 설정에서도 장점
    • 파이토치는 ‘Define by Run’ 방식, 텐서플로우가 ‘Define and Run’ 방식
    • ‘Define and Run’ 프레임워크에서는 연산 그래프를 먼저 정의하고 값을 넣어 결과를 얻는다. ‘Define by Run’ 프레임워크는 연산 그래프가 정의되는 동시에 연산이 이루어진다.(인용)
    • 텐서플로우 2.0의 ‘즉시실행(Eager execution)’ 모드와 비슷하다.

파이토치 tutorial

  1. 영문: Welcome to PyTorch Tutorials — PyTorch Tutorials 1.4.0 documentation
  2. 한글: 파이토치(PyTorch) 튜토리얼에 오신 것을 환영합니다 — PyTorch Tutorials 1.3.1 documentation

See Also

  1. 쿠…sal: [컴][머신러닝] PyTorch 설치

Reference

  1. 블로그ㅣ머신러닝에 관심있다면?··· 이제는 파이토치다 - CIO Korea
  2. 블로그 | 파이토치로 딥러닝해야 하는 5가지 이유 - CIO Korea, 2020-02-27