일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 베어유
- 빡공단후기
- BEARU
- 패스트캠퍼스 #내일배움카드 #국비지원 #K디지털기초역량훈련 #바이트디그리 #react 강의
- 후기
- 개발자이력서
- 코딩테스트
- 개발자취업
- 개발자포트폴리오
- 동기부여
- 출처
- 합격후기
- 회고록
- 항해99
- jemini
- 클래스
- #패스트캠퍼스 #내일배움카드 #국비지원 #K디지털기초역량훈련 #바이트디그리 #react 강의
- 개발자
- 개발자취준
- 빡공단
- 자기계발
- 성장
- 챌린지
- Today
- Total
뚠뚜 개발일지
[면접준비] 기술 면접 기초 8일차 본문
VanillaJS와 비교하여 리액트를 사용하는 이유에 대해 설명해주실 수 있을까요?
1. 컴포넌트 기반 개발
- React는 컴포넌트라는 재사용 가능한 코드 블록을 사용하여 UI를 구성합니다.
- 이 방식은 코드를 효율적으로 관리하고 유지 관리하기 쉬우며, UI 변경 시 영향을 받는 코드 영역을 명확하게 파악할 수 있도록 합니다.
- VanillaJS에서는 이러한 코드 재사용 및 관리 기능을 직접 구현해야 하며, 이는 코드 복잡도를 높이고 유지 관리 어려움으로 이어질 수 있습니다.
2. 가상 DOM 사용
- React는 가상 DOM이라는 기술을 사용하여 DOM 트리를 효율적으로 업데이트합니다.
- 가상 DOM은 실제 DOM 트리에 직접 변화를 가하기 전에 변경 사항을 메모리에 저장한 후 필요한 부분만 업데이트합니다.
- 이는 성능 향상, 특히 대규모 애플리케이션에서 DOM 조작으로 인한 성능 저하를 방지하는 데 도움이 됩니다.
- VanillaJS에서는 직접 DOM을 조작해야 하기 때문에 성능 저하 문제가 발생할 가능성이 높습니다.
3. 데이터 흐름 관리
- React는 일방향 데이터 흐름 방식을 사용하여 데이터 변화를 효율적으로 관리합니다.
- 이 방식은 데이터 변화에 따른 UI 업데이트를 명확하게 추적하고 예측 가능하게 만들어 디버깅 및 유지 관리를 용이하게 합니다.
- VanillaJS에서는 직접 이벤트 처리 및 데이터 연동을 처리해야 하기 때문에 데이터 흐름을 관리하는데 어려움을 겪을 수 있습니다.
4. 확장성 및 유지 관리
- React는 풍부한 생태계와 다양한 라이브러리를 제공하여 개발자의 작업을 효율적으로 지원합니다.
- Redux, MobX, Styled Components 등 다양한 라이브러리를 활용하여 애플리케이션의 기능을 확장하고 코드 관리를 용이하게 할 수 있습니다.
- VanillaJS에서는 이러한 기능들을 직접 구현하거나 별도의 라이브러리를 찾아야 하며, 이는 개발 시간 및 비용을 증가시킬 수 있습니다.
5. 배우기 쉬운 문법
- React는 JSX라는 HTML과 유사한 문법을 사용하여 UI를 작성합니다.
- 이는 HTML 및 JavaScript 경험이 있는 개발자에게 친숙하여 학습 곡선을 낮추고 생산성을 향상시킬 수 있습니다.
- VanillaJS는 순수 JavaScript 코드를 사용하기 때문에 코드 가독성이 떨어질 수 있으며, 특히 초보 개발자에게 어려움을 줄 수 있습니다.
결론
React는 컴포넌트 기반 개발, 가상 DOM, 데이터 흐름 관리 등을 통해 VanillaJS 대비 여러 장점을 제공합니다. 특히, 대규모 애플리케이션 개발 시 코드 관리 및 유지 보수 측면에서 뛰어난 효율성을 발휘합니다.
하지만, VanillaJS는 더 가볍고 간단한 구조를 가지고 있으며, 특정 상황에서는 개발 프로세스를 간소화하는 데 도움이 될 수 있습니다.
어떤 방식을 선택할지는 프로젝트의 특성, 개발자의 경험, 그리고 필요한 기능 등을 고려하여 결정해야 합니다.
상태의 불변성이 중요한 이유가 무엇인가요?
상태의 불변성은 소프트웨어 개발, 특히 React와 같은 프레임워크에서 중요한 개념입니다. 상태 불변성을 유지하면 다음과 같은 여러 장점을 얻을 수 있습니다.
1. 예측 가능성 향상:
- 상태가 변하지 않기 때문에 언제든지 코드의 현재 상태를 정확하게 예측할 수 있습니다.
- 이는 디버깅 및 유지 관리를 훨씬 쉽게 만들고 코드 오류 발생 가능성을 줄입니다.
2. 순수 함수 사용:
- 불변한 상태는 순수 함수 사용을 가능하게 합니다.
- 순수 함수는 입력값에 따라 항상 동일한 출력값을 반환하며, 이는 코드 테스트 및 추론을 용이하게 합니다.
3. 데이터 공유 안전성:
- 불변한 상태는 여러 컴포넌트 간에 안전하게 공유될 수 있습니다.
- 한 컴포넌트에서 상태를 변경해도 다른 컴포넌트에 영향을 미치지 않아 예상치 못한 동작을 방지합니다.
4. 성능 향상:
- React는 불변한 상태를 기반으로 작동하도록 설계되었습니다.
- 상태가 변하지 않기 때문에 React는 최적화된 방식으로 UI를 업데이트할 수 있으며, 이는 성능 향상으로 이어집니다.
5. 코드 가독성 향상:
- 불변한 상태는 코드를 더 명확하고 이해하기 쉽게 만듭니다.
- 상태가 변하지 않는다는 사실을 이해하면 코드 동작을 추론하는 데 도움이 됩니다.
결론:
상태 불변성은 소프트웨어 개발에서 중요한 개념이며, 코드의 예측 가능성, 안전성, 성능, 가독성을 향상시키는 데 도움이 됩니다. React와 같은 프레임워크를 사용할 때 불변성을 유지하는 것은 특히 중요합니다.
라이프사이클이 의미하는 바에 대해서 설명해주세요.
라이프사이클은 시스템, 객체, 프로세스 등이 탄생부터 소멸까지 거치는 모든 단계를 의미합니다.
다양한 분야에서 라이프사이클 개념을 활용합니다.
1. 소프트웨어 개발:
- 개발 단계: 요구사항 분석, 설계, 코딩, 테스트, 배포
- 운영 단계: 유지 관리, 업데이트, 보안 관리
- 사용 종료 단계: 폐기, 지원 중단
2. 제품 및 서비스:
- 출시 단계: 제품 개발, 출시, 홍보
- 성장 단계: 판매 증가, 브랜드 인지도 향상
- 쇠퇴 단계: 경쟁 심화, 고객 감소
- 폐지 단계: 생산 중단, 판매 중단
3. 생물학:
- 탄생: 수정, 배아 발생, 출산
- 성장 단계: 발달, 성장, 성숙
- 노화 단계: 기능 저하, 질병 발생
- 사망: 생명 활동 종료
라이프사이클을 이해하는 이유:
- 시스템 및 프로세스를 효율적으로 관리: 각 단계에서 필요한 작업 및 리소스를 파악하고 계획 수립
- 문제점 파악 및 해결: 각 단계에서 발생할 수 있는 문제점을 예측하고 해결 방안 마련
- 최적화 및 개선: 각 단계의 효율성을 분석하고 개선 방안 마련
- 예측 및 준비: 미래 변화를 예측하고 이에 맞는 준비를 수립
결론:
라이프사이클은 모든 시스템, 객체, 프로세스 등이 거치는 과정을 의미하며, 이를 이해하는 것은 효율적인 관리, 문제 해결, 최적화, 예측 및 준비를 위해 매우 중요합니다.
'일상 > 취준일지' 카테고리의 다른 글
[면접준비] 기술 면접 기초 10일차 (0) | 2024.03.14 |
---|---|
[면접준비] 기술 면접 기초 9일차 (0) | 2024.03.14 |
[면접준비] 기술 면접 기초 7일차 (0) | 2024.03.11 |
[면접준비] 기술 면접 기초 6일차 (0) | 2024.03.09 |
[면접준비] 기술 면접 기초 5일차 (0) | 2024.03.08 |