드디어 코딩 공부할 시간이 왔다... 저번 til을 작성한 날 이후 지금까지 가게를 대신 봐줘야 해서 끝나고 운동하면 기절 일어나면 가게 나가고 반복이라 공부나 무얼 할 시간은 없었고 유튜브로 아 이런 프로그래밍이 있구나 이력서는 이렇게 적구나 등 영상으로만 봤는데 이번 주부턴 다시 공부할 시간을 충분히 가질 수 있었다.
react를 공부하는데 아직 유데미에서 구매한 강의가 JS 복습 부분이라 react를 시작하진 못했는데 튜터님 멘토링 시간 전까지 todolist를 만들어야 해서 일단 깃헙에 있는 Creat React app을 이용해 앱을 만들고 구글링과 유튜브 영상을 통해 만들기 시작했다
평소 쓰던 바닐라 JS와는 많이 달라 당황했는데 Java 공부를 한 적이 있어서 그런지 생각보다 금방 적응 했다. 다만 Java의 class등의 개념과는 다름!
react는 컴포넌트 기반 언어라고 하는데
컴포넌트
프로그래밍에 있어 재사용이 가능한 각각의 독립된 모듈
마치 레고블록처럼 이미 만들어진 컴포넌들을 조합하여 화면을 구성함
유저가 사용하는 시스템에 대한 조작장치. 통상 컨트롤이라고도 하며 UI라고도 한다.
- 컴포넌트는 독립적인 소프트웨어 모듈
- 소프트웨어 시스템에서 독립적인 업무 또는 독립적인 기능을 수행하는 '모듈'로서 이후 시스템을 유지보수 하는데 있어 교체 가능한 부품
- 컴포넌틑는 구현, 명세화, 패키지화 , 그리고 배포 될 수 있어야 한다.
재사용 부품으로서의 컴포넌트가 되기 위해서는 아래 내용을 만족하자
- 소스코드가 아닌 실행코드 기반으로 재사용할 수 있도록 이미 구현 완료되어 있어야한다.
- 컴포넌트는 해당 컴포넌트의 용도, 유형, 기술표준과 인터페이스등에 대한 정보들에 대해서 명세화 되어 있어야 한다.
- 교체가능한 컴포넌트를 개발하기 위해서는 표준을 준수하여 개발
- 컴포넌트가 개발되어 배포될 때 관련 문서와 코드들이 독립적인 단위로 패키지화되어 있어야한다.
- 컴포넌트는 독립적인 업무단위로 개발된 것이므로 사용자가 필요한 기능만을 패키지한 컴포넌트를 재사용 할 수 있도록 독립적으로 배포 가능해야한다.
- 하나의 컴포넌트는 하나 이상의 클래스록 구성될 수 있다.
- 컴포넌트와 클래스는 다른개념, 컴포넌트가 되기 위해서는 반드시 클래스나 객체로 만들어야 한다는 것은 아니다.
- 현재의 컴포넌트 기술 표준들과 핵심 개념들이 객체지향에서 비론된 개념들이 많아 컴포넌트를 개발하는데 있어 객체지향 기술을 바탕으로 하는 것이 보다 효과적일 수 있다.
- 하나의 컴포넌트를 개발하기 위해서는 하나 이상의 클래스들을 바탕으로 개발할 수 있으며 이렇게 개발된 컴포넌트가 실행될 때 해당 컴포넌트 인스턴스인 컴포넌트 객체가 수행
- 이 때 컴포넌트 내부에는 하나 이상의 클래스에 대응하는 하나 이상의 객체들이 수행되고 있는 거싱라고 생각할 수 있다.
- 컴포넌트는 인터페이스를 통해서만 접근할 수 있다.
- 컴포넌트내의 정보는 외부로부터 모두 숨겨진다
- 외부에서 접근할 수 있도록 컴포넌트가 제공하는 서비스를 정의한 인터페이스만을 제공하고 컴포넌트를 사용하기 위해서는 어떤 인터페이스를 사용해야 하는지만을 알 수 있다.
- 인터페이스 외부와의 연결을 위해 반드시 존재해야만하며, 이처럼 컴포넌트가 내부 정보를 숨기고 인터페이스만 제공함으로써 소프트웨어도 하드웨어처럼 조립 기반으로 갈 수 있게 되는 것이다.
개념적인 부분은 역시 어려운 것 같다. 여러번 사용해보고 개념적인 부분을 대입시켜 이해해봐야겠따