본문 바로가기
내일배움캠프 TIL

2023-11-01 본 캠프 20일차 / 39일차 TIL

by KMS_99 2023. 11. 2.

2023-11-01 본 캠프 20일차 / 39일차 TIL

 

주요진행사항

- 리액트 입문반 강의 완강 (내일배움캠프)

- 리액트 개인프로젝트 ToDoList


리액트 개인프로젝트 ToDoList

리액트 입문반 강의 수강을 마치고 리액트를 사용해보며 공부하기 위해서 To-Do List 프로젝트를 시작하였다.

 

1. 프로젝트 구현 기능

- UI 구현

- 리스트 추가

- 리스트 삭제

- 리스트 수정

- 완료 여부에 따라 위치 변겅

- localStorage와 연동

 

2. 현재 구현 완료기능

- 리스트 추가

리스트 추가 기능

- 리스트 삭제

리스트 삭제 기능

- 리스트 수정

리스트 수정 기능

 

- 완료 여부에 따라 위치 변경

리스트 완료 체크 기능

- localStorage와 연동

 

3. 어려웠던 점, 배운점

리액트 라이브러리로 처음 개발해 보면서 기존 익숙하던 바닐라 자바스크립트 개발과는 전혀 다른 느낌이 들었다.

우선 개발 방식에 대한 고민이 많았다.

리액트은 앞서 배웠던 것 처럼 컴포넌트로 구성되어 있다.

여기서 들었던 의문점은 컴포넌트은 어떤 단위로 지정해야 하는가이다.

 이 의문을 해결하기 위해서 구글 검색을 해보았으며, 인상 깊었던 내용이 있다.

 

"리액트 Atomic Design"

 

Atomic Design은 말그대로 원자 단위로 쪼개는 디자인을 말한다.

즉 컴포넌트를 더이상 쪼개지지 않는 형태로 제작하고 구성한다.

Atomic Design의 구성은 다음과 같다.

 

Atom (원자)

Atom

Atom은 더이상 분리될 수 없는 형태의 컴포넌트이다.

기본 구성요소인 button, texarea, input 등이 이에 해당된다.


Molecule (분자)

molecule

Molecule은 Atom을 조합하여 어떠한 의미를 만들 수 있는 컴포넌트 이다.


Organism (유기체)

organism

Organism은 Atom과 Molecule를 조합하여 만들 수 있는 구성단위이다.


Template (템플릿)

template

Template은 Organism과 그 하위 요소들로 구성한 컴포넌트이다.

크게 헤더, 메인, 풋터 등 으로 나누는 것들을 의미한다.

 


Page (페이지)

page

page는 하위요소로 구성한 최종적인 결과물이라고 할 수 있다.

 

atomic design의 장점은 

- 최소단위로 나누어 재사용성 극대화

- 유지 보수의 효율성

- 컴포넌트 계획 및 기준 구성

이라고 생각한다.

 

이번 프로젝트에서 Atomic Design을 시도해보면서 이미 바닐라자바스크립트에 적응되어있기 때문에 더이상 쪼개지지 않는 atom 형태까지 나누어 개발하는데 어려움을 느끼긴 했지만, 프로젝트를 구성하는데 아주 큰 도움이 되었다.

 

아직 부족한 부분이 많아서 완벽히 적용해보진 못했지만, 추후 개발에 Atomic Design을 좀 더 체계적으로 계획해서 사용해 볼 예정이다.