1.6 리액트에서 자주 사용하는 자바스크립트 문법객체 조작, 객체의 얕은 동등 비교 문제를 피하기 위한 객체 분해 할당 등 바벨: 최신 문법을 다양한 브라우저에서 일관적으로 지원할 수 있도록 코드를 트랜스파일트랜스파일의 결과로 어떤 코드가 생성되는지 이해하면 애플리케이션을 디버깅하는데 도움됨 1.6.1 구조 분해 할당배열 구조 분해 할당useState가 배열을 반환하는 이유는 이름을 자유롭게 선언하여 사용하기 위함값이 undefined일 때만 기본값을 사용const array = [1, 2, 3, 4, 5];const [first, second, third, ...arrayRest] = array;// 배열 구조 분해 할당 트랜스파일var array = [a, 2, 3, 4, 5];var first = ..
1.1 자바스크립트의 동등 비교1.1.4 리액트에서의 동등 비교Object.is를 기반으로 shallowEqual이라는 함수를 만들어 사용리액트에서 사용하는 JSX props 객체를 비교하기 위함Object.is로 비교 수행객체 1 depth 비교(얕은 비교) 수행props에 객체를 넘긴다면 렌더링이 예상치 못하게 작동메모이제이션(useMemo, useCallback, React.memo)를 올바르게 사용하기 위해 고려 필요 1.2 함수함수 네이밍useEffect나 useCallback 등의 훅의 콜백 함수에 네이밍을 한다면 디버깅에 도움받을 수 있음useEffect(function apiRequest() { ...}, []); 1.3 클래스정적 메서드정적 메서드 내부의 this는 인스턴스가 아닌 클래..
인덱스 데이터베이스에서 자료를 빨리 찾게 해 줌스택 가드(Stack Guard) 특정값을 저장해두었다가 값이 변경된 경우 오버플로우 상태로 가정하여 프로그램 실행을 중단하는 기술데크(Deque) 리스트 양쪽 끝에서 삽입 삭제 가능. 스택+큐 트리 근노드(Root Node), 차수(Degree 자식수), 단말노드(Terminal Node 마지막노드) 정렬내부 정렬 - 주기억장치외부 정렬 - 보조기억장치 삽입정렬 키값 기준버블정렬 한 번 실행시마다 가장 큰 값이 마지막이 됨선택정렬 뒤의 값 중 가장 작은 값과 현재 값의 위치 변경병합정렬, 퀵정렬(n**2), 힙정렬 검색 방식 종류 이진 검색, 선형 검색, 피보나치 검색, 블록 검색, 이진트리 검색 해싱 속도는 빠르지만 충돌 발생 가능제산 방법, 중간제곱방법..
모듈화의 원리 분할과 지배, 정보 은폐, 자료 추상화, 모듈의 독립성작업 절차 코딩 계획 → 코딩 → 컴파일 → 테스트IDE 종류 이클립스, VS, 엑스 코드, 안드로이드 스튜디오, IDEA 빌드 자동화 도구프로세스: 컴파일 → 패키징 → 단위 테스트 → 정적 분석 → 리포팅 → 배포 → 최종 빌드종류: Gradle(JVM. 안드로이드 기본 빌드 시스템), Jenkins(Java 오픈소스), Makefiles, Ant(Apache), Maven(리스트 형태로 종속성 관리) 패키징 도구 역할불법 복제 방지를 위해 사용 구너한 제어, 패키징, 라이선스 관리, 권한 통제고려사항내부 컨텐츠 암호화, 보안이기종 컨텐츠 및 단말기간 DRM 연동 고려사용자 편의성을 위한 복잡성 및 비효율성 문제 고료구성요소 암호화..
1과목 소프트웨어설계소프트웨어특징: 상품성, 복잡성, 변경가능성, 복제성시스템 기본요소: 조직, 입력, 처리, 출력, 제어, 피드백소프트웨어 위기- 하드웨어 비용을 초과하는 개발 비용- 개발 기간 지연- 개발 인력 부족 및 인건비 상승- 성능 및 신뢰성 부족- 유지보수 어려움 소프트웨어 공학저비용, 빠르고 쉽고 정확하게 만든느 방법기본요소: 현대적인 프로그래밍 기술 전용, 신뢰성, 사용성, 유지보수성, 지속적인 검증 재공학기존에 만든 것 재사용- 개발 시간 및 비용 감소- 품질, 생산성, 신뢰성 향상- 구축방법 공유- 프로젝트 실패 위험 감소목적- 유지보수성 향상- 복잡한 시스템 다루는 방법 구현- 다른 뷰 생성- 잃어버린 정보 복구 및 제거- 재사용 수월, 소프트웨어 수명 연장과정분석 → 구성 → 역..
