서비스 전체적인 관점에서 보면 웹 프론트엔드는 사용자와 서버 / DB 사이에 존재하는 입출력 인터페이스
리덕스,,,, 는 잘 몰라서... 리덕스 프로세스에 대한 것은 공부가 좀 필요할 것 같다는 생각
대신 리덕스 와 같이 리액트에서 상태 관리를 하는 리코일을 배웠기 때문에 상태 관리 자체에 대한 것은 이해할 수 있었다.
웹 프론트엔드는 앱 여러 부분에서 각 요소의 상태를 관리해야 하는데 서버에서 받아오거나 ( 로그인 유저의 정보 ), 유저가 입력한 상태 등이 여러 컴포넌트에 뿌려져 있는 경우가 많고, 멀리 떨어져 있는 컴포넌트에서 사용해야 할 수도 있다. 이렇게 전역에서 상태 관리를 위해 쓰는 경우가 있음!
Input이 많은 Form에서 제어 컴포넌트(state)와 비제어 컴포넌트(ref)도 있음
상태 관리는 리액트에서 가장 중요한 포인트
promise : 서버에 요청을 보내놓고, 미래에 성공/실패라는 응답을 돌려줄 것이라는 약속
resolve : 약속이 잘 지켜진 상황
pending : 기다리고 있는 상황
대기 상황에 사용자는 ?
로딩바 , 스피너, 스켈레톤 등을 활용한 대기 화면을 보게 된다
Cache : 미리 받아놓은 결과가 있었다면, 추가 요청을 보내지 않아도 된다
Rejected : 약속이 잘 지켜지지 않을 수도 있다
Retry : 다시 요청할 수 있다
유저가 액션을 했을 때의 피드백 주는 것
alert => 실패 했다면 인지할 수 있도록, 삭제/업뎃 (파괴적 동작) 할 때
Cumulative Layout Shift(누적 레이아웃 이동, CLS)
데이터가 나오기 전에 자리를 미리 차지해놓고 있어야, 레이아웃이 나중에 이동하지 않게 된다
시각적 요소 + 웹 접근성(스크린 리더, 키보드) + SEO (검색최적화) => 사용자 친화적 웹 서비스 만들기 위한 지식 및 구현 연습
비즈니스
규칙구현 방식 대신 무엇인지를 나타내는 변수명 (How vs What
) 을 선택하여 개발자의 의도를 드러내기
is-
, has-
, can-
, ...get-
, handle-
, submit-
, …-s
(ex. users.map(user ⇒ user.id)
), …data
, info
, foo
, user1
, mdhms
, …명령형은 특정한 동작을 어떻게(How) 달성할 것인지에 집중하고, 선언형은 무엇을(What) 할지에 집중
DRY(Don’t Repeat Yourself)라는 원칙 => 중복 코드를 만들지 말라는 뜻
같은 로직을 10군데서 썼다가, 버그가 발견되면? vs 1번 썼다가, 버그가 발견되면?
단일 책임 원칙 을 따르라 => 하나의 함수가 한 가지 일을 하도록 코드를 작성
회고
와 나 이거 진짜 왜 안했냐... 좋아요 누르고 갑니당^^