학습내용
Firebase 특강 복습
CS
- 프로세스와 스레드
- 비동기
기초프로젝트
- 데이터 설계
- 기능
필수 체크 권장 항목
SPA에 대해 설명할 수 있다.
Authentication 서비스의 용도를 설명할 수 있다.
Cloud Firestore 서비스의 용도를 설명할 수 있다.
Cloud Storage 서비스의 용도를 설명할 수 있다.
AWS S3를 사용하여 정적 웹호스팅을 할 수 있다.
기초 프로젝트부터 Firebase를 적용할 수 있다선택 체크 권장 항목
가비아에서 구입한 도메인을 S3 정적 웹호스팅 주소와 연결할 수 있다.
로그인, 회원가입 시 입력값에 대한 유효성검사를 적용할 수 있다.
1. GitHub 활성화
2. Register a New OAuth application
3. 클라이언트 ID
GitHub의 Client ID값 입력
4. 클라이언트 보안 비밀번호
프로세스(Process)와 스레드(Thread)에 대한 개념을 설명할 수 있는가?
멀티 프로세스와 멀티 스레드에 대한 개념을 설명하고 각각의 장단점을 설명할 수 있는가?
비동기(Asyncronous)에 대한 개념을 설명할 수 있는가?
비동기가 왜 필요한지에 대한 설명을 할 수 있는가?
인스턴스
설계된 것을 바탕으로 구현된 구체적인 실체
ex) PC에 크롬을 설치한다고 가정했을 때, 크롬을 설치한 것은 설계이고 크롬 브라우저가 실행되면 인스턴스라고 함
정의
장점
단점
함수A와 함수B를 호출한다고 가정했을 때,
싱글스레드 논블로킹 모델의 환경에서 실행. 대표적인 비동기 프로그래밍으로는 callback
, Promise
, .then()
, .catch()
, async
/await
가 있다.
블로킹과 논블로킹
함수A가 함수B를 호출 후,
- 블로킹
함수B의 리턴값이 올 때까지 기다린 후 진행 = 제어권을 넘겨줌- 논블로킹
함수B의 작업 완료 여부와 상관없이 진행 = 제어권을 넘겨주지 않음
싱글스레드는 무거운 작업을 수행시 뒷순서에 있는 작업을 진행하지 않는다. 이 같은 환경에서 동기 프로그래밍을 사용시 웹페이지를 실행시 화면 로딩과 통신 연결에 많은 시간이 소요된다. 비동기 프로그래밍을 사용하면 이러한 단점을 보완하고 훨씬 효율적으로 작업을 수행할 수 있다.
원래는 마이피드만 하는 거였는데 슬라이더 유무와 내 게시글 모아보기 정도를 제외하면 마이피드와 메인피드와 레이아웃도 데이터도 같기 때문에 메인피드도 내가 하기로 했다. 이런 이유로 마이피드는 별도로 제작하지 않고 메인피드에서 프로필을 클릭시 마이피드에 해당하는 데이터를 보여주는 방식으로 해야할 것 같다.