소프트웨어 특강
알아두면 좋은 개발 용어
load
- 컴퓨터 시스템에서 실행을 할 수 있는 상태로 만들어 주는 것입니다.
- 실행하는 작업은 CPU가 하지만, 기본 상태에서 바로 실행하지는 못합니다.
- 컴퓨터의 물리적 저장소의 데이터를 메모리에 옮겨서 실행가능한 상태로 만드는 것이 load입니다.
fetch
- 필요한 데이터를 특정 위치에서 가져오는 작업
- 가져온 데이터를 사용하는 주체가 용도에 맞게 알아서 적절하게 사용 할 수 있습니다.
- 왜 api로 데이터를 가져오는 것을 fetch라고 하는가?
- fetch는 load와 달리 실행된다는 것을 강요하지 않습니다.
- 데이터를 불러오지만 실행성과 용도가 정의되지 않기 때문입니다.
buffer/cache
- 데이터를 효율적으로 관리하기 위한 메모리 저장소입니다.
buffer
- 데이터를 임시 저장하는 메모리 공간으로, 주로 데이터의 이동 속도를 맞추기 위해 사용됩니다.
- 선형적인 흐름으로 데이터 전달할 때 주로 쓰임
- 주로 load에서 많이 쓰입니다.
cache
- 자주 사용하는 데이터를 미리 저장해고, 재사용 시 빠르게 불러와 성능 향상
- 원본 데이터를 자주 호출하느 대신, 캐시에서 직접 데이터르 불러와 작업 부하 경감
- 주로 fetch 과정에서 많이 쓰임
MVC(Model/View/Controller)
- View
- 사용자에게 데이터를 보여줍니다.
- Model
- 데이터 정의, 데이터 저장/ 불러오기
- Controller
사용자의 요청에 따라 데이터를 처리하여 적절한 뷰에 데이터를 전달합니다.
MVVM(Model-View-View Model)
- 기존의 모델을 view에 최적화된 형태로 view model로 재구성
- view model을 바탕으로 view 구성
- 리액트와는 관련이 없음
- 데이터가 바뀌면 view가 자동으로 바뀌도록 자동화시킴
- 여러 컴포넌트에 대한 재사용성을 고려해 데이터를 관리하기 쉽도록 공통 부모를 가지는 상위 컴포넌트에 데이터를 저장
- 여러 재사용된 컴포넌트에 전달된 값을 수정하기 위해 business logic로 마찬가지로 공통 부모에 저장
- 값에다 객체를 담을 때, 어떤 위치에서든지 수정이 가능합니다.
functional Programming
- 변수가 없는 프로그래밍 방법(상수)
- redux에서 위 개념을 많이 차용했습니다.
- redux 이후에 나온 많은 상태관리 라이브러리(jotai,recoil,zustand)들도 redux와 비슷한 개념
CPU
- 그동안 계속 발전시켜 왔다가, 부품 및 열처리와 같은 물리적인 한계로 인해 속도 증가가 더이상 불가능해짐
- CPU 코어 갯수를 늘림
예) intel - i5,i7 같은 모델명이 있을 때, 보통 i 뒤에 붙은 숫자가 코어 갯수이 비례
후기
Fronted에 대한 지식 뿐만 아니라 소프트웨어에 대한 전반적인 기초 지식을 습득할 수 있어 너무 좋은 기회 였고, 이를 비롯하여 redux가 만들어진 배경과 역사에 대해 알 수 있어 redux 이전 상태 관리에 생태계에서 어떤 부분이 부족했는지에 대해 알게 되었습니다.