개인과제 숙련 : 오늘의 한 일 ERD 작성, 면접 대비
ERD는 데이터 베이스 설계과정에서 사용되는 개념인데 데이터 베이스에 저장 될 데이터의 개체들과 그 개체들 간의 관계(1:1, 1:N, N:M)를 도식화한 다이어그램
ERD의 장점은 : 데이터 베이스 구조를 쉽게 이해하고, 데이터 중복과 누락 방지 및 설계 오류를 초기에 발견 가능
ERD에 들어가는 정보 : 숫자인지, 글자인지, 선택(enum)인지, 날짜 인지 등
; 사이트 가보니 선택할 수 있음
내가 이해한 ERD의 모습 : 스키마를 간단한 이미지화 시킨 것
ERD 사이트
저장이나 배포도 쉽게 할 수 있어서 좋음. ERD로 이미지화 시키고 api 작성 후에 스키마로 넘어 가면 될 듯
NULL을 줄건지, 기본값 등 일일히 작성할 수 있음..
<저번 제출 문제에 이어 추가 cs문제 및 내 생각>
- 문제11. 비동기 프로그래밍과 동기 프로그래밍의 차이점을 설명해주세요. Node.js에서 비동기 프로그래밍 기법이 중요한 이유는 무엇인가요?
- 작성된 순서대로 실행되는 동기 프로그래밍과 달리 쓰레드 또는 프로세스가 여러개 돌며 실행함으로써 멀티테스킹을 구현함. 이로 인해 시간을 줄이고 효율적으로 사용가능
- 문제12. 데이터 베이스 ACID에 대해 설명해주세요.원자성 : 나눠질 수 없는 단일 작업 (실행되는 명령을 하나의 묶음 처리하여 전부 성공 또는 모두 실패)격리성 : 트랜잭션이 실행중인 경우 다른 트랜잭션에 의해 데이터 변경되는 것을 방지. 외부에서 참조를 할 수 있지만 중간 과정, 중간 결과는 볼 수 없음
- 지속성 : 트랜잭션이 성공적으로 커밋 된 후 해당 트랜잭션에 의해 생성 또는 수정된 데이터가 어떤 상황에서도 보존됨
- 일관성 : 작업 성공시, 아무런 문제가 발생하지 않고 / 작업 실패시 실패한 상태로 데이터를 방치하지 않음
- 트랜잭션을 이용해 데이터 베이스를 안전하게 구성할 수 있도록 도와주는 것
- 문제13. node.js에서 이벤트 루프란 무엇이고 어떻게 동작하나요?웹 api작업 끝낸 순서대로 콜백함수 → 테스크 큐로 이동하게끔 밀어넣음 → 자바스크립트 실행하게함
- 비동기 작업이나 클릭 등의 사용자 입력으로 부터 오는 콜백함수를 자바스크립트에서 실행되도록 함.
- 문제14. 실행컨텍스트에 대해 알고있는대로 설명해주세요.선언된 변수 끌어올리는 호이스팅, 외부환경정보 구성, this값 설정; VE(식별자 정보,외부환경정보,선언시점), LC(VE와 동일하지만 변경사항을 실시간 반영), thisBinding(this 식별자가 바라봐야 하는 객체)
- 전역실행 컨텍스트는 코드 실행시 가장 먼저 생성되는 기본 컨텍스트 : app.js?
- 실행 컨텍스트에 담기는 정보는 VE, LC, thisBinding 있음
- 자바스크립트 코드가 실행되는 환경. 코드 실행하는데 필요한 정보 모아놓음. (콜스택에⇒ 코드 환경 및 순서 보장)
- 문제15. 프로미스와 async/await의 개념과 사용 방법을 설명하고, 두 방식의 차이점을 비교해주세요async/await : 프로미스에 비해 간결하고 직관적임. 비동기 작업할 함수 앞에 async 붙이면 프로미스를 반환하는데, await가 프로미스 처리 완료 될때 까지 기다렸다 결과값 반환 수행 후에 다음 작업 수행
- 프로미스는 비동기 작업결과를 처리하는 객체, async await는 프로미스 기반의 비동기 작업을 동기코드처럼 작성할 수 있게 해주는 구문
- 프로미스 : 가독성도 떨어지고 실수할 위험이 있는 콜백지옥을 해결하기 위해 도입. 프로미스를 반환하는 함수는 다음작업을 위한 then을 활용하여 콜백을 수행. 비동기 작업을 연결하여 순차적으로 해결하는 것을 체이닝 방식이라고 함.
회고 - 내일은 상세값 주고 api 작성 해야겠다.