티스토리 뷰
역할 분담 완료 담당 기능, 페이지
- 커뮤니티 조회 페이지 (게시글 정렬 최신순, 좋아요 순)
- 검색기능, 검색 결과 조회 페이지 (select box로 노래 or 가수명(해당 가수가 부른 노래 리스트 출력), 커뮤니티 제목)
- 플레이어 영역 전체 (드로그앤 드롭)
순서를 정해 원하는 기능, 페이지를 선택했다
새로운 기능을 경험해보고 싶어서 플레이어 영역을 선택했는데... 생각해 보니 이거 프로젝트의 핵심 기능이네?
제대로 만들지 않으면 프로젝트 자체가 위험할 수 있겠구나 싶지만 이미 선택해 버린 걸 어째ㅠㅠ
아무래도 플레이어 영역에 대해 정확히 어떤 기술스택을 사용해야 하는지 어떤 식으로 작업해야 하는지 모르다 보니 다른 하나는 비교적 간단한 커뮤니티 조회 페이지를 골랐다. 만들어진 데이터를 조회만 하면 되니까~
근데 검색 페이지를 또 생각 못했네? ㅎㅎㅎ 생각보다 일이 좀 많은 느낌이지만 걱정부터 하지 말고 어떻게 더 좋은 프로젝트를 만들 수 있을지 생각하자, 다음 주 월요일부터 진짜 시작!
다음 주 금요일부터 모의 면접을 진행하기 전, 사전 모의 면접? 을 진행했다 질문은 총 3개.
제대로 대답하지 못해 많이 아쉬워서 이참에 제대로 정리하자
핵심은 두괄식으로 답하기!
Q. 지금 프로젝트에 Next.js를 사용한 이유는 무엇인가?
- Next.js는 서버와 클라이언트 렌더링 방식을 지원하기 때문에 페이지별로 렌더 방식을 다르게 하여 초기 로딩 속도를 빠르게 하거나 SEO에 최적화되어 있는 등 성능최적화에 도움을 주며, 이미지가 많이 들어가는 이번 프로젝트 특성상 이미지 최적화기능을 위해 Next.js를 사용하게 됐습니다.
(이 질문에 대한 답변은 아직 어떻게 대답해야 할지 잘 모르겠다... 프로젝트 시작 후 다시 작성할 것)
Q. Next.js의 4가지 렌더링 기법의 장점은 무엇인가?
- SSR(Server-Side-Rendering) : 서버 측 활성화( Rendering : 표현, 연출 등이지만 이해가 쉽게 활성화로 적음)
- SSG(Static-Site-Generation) : 정적 사이트 생성
- ISR(Incremental-Static-Regeneration) : 분기적 정적 재생( Incremental : 증분이지만 이해가 쉽게 분기적으로 적음)
- CSR(Client-Side-Rendering) : 클라이언트 측 활성화( Rendering : 표현, 연출 등이지만 이해가 쉽게 활성화로 적음)
4가지 렌더링 방식의 차이는 크게 서버와 클라이언트로 나뉩니다.
ssg, ssr, isr은 서버 사이드 렌더링 방식으로,
정적 리소스를 빠르게 받아오고 검색 엔진에 최적화되어 있다는 장점이 있지만,
페이지 전환 및 데이터 변경 시 전체를 서버에서 새로 받아와야 하기 때문에 리렌더링이 오래 걸리며 깜빡임 등의 현상으로 사용성이 떨어진다는 단점이 있습니다.
csr은 동적 리소스를 받아오기까지 초기 렌더링이 오래 걸리지만,
데이터 변경, 페이지 전환 시 필요한 데이터를 동적으로 가져오기 때문에 리렌더링이 빠르고 사용성이 좋습니다
Q. SQL과 NoSQL의 차이점은 무엇인가?
SQL | NoSQL |
관계형 데이터베이스 | 비관계형 |
구조화 쿼리 언어(SQL) | 구조화되지않음 |
정의된 스키마 | 동적 스키마 |
수직적 확장 | 수평적 확장 |
테이블 기반으로 데이터 중복 방지 | 키-값 그래프 또는 와이드 컬럼 스토어 |
다중 행 트랜젝션에 적합 | 문서, Json과 같은 비정형 데이터에 적합 |
SQL( Structured Query Language )
- 관계형 데이터 베이스
- 구조화된 쿼리 언어를 사용한다 (SQL)
- 미리 정의되어 있는 엄격한 스키마
- 수직적 확장이 가능하다
- 테이블 기반이다
스키마
데이터베이스에 저장되는 자료 구조와 제약 조건을 정의한 것
장점
- 데이터 중복 불가
- 데이터 무결성 유지, 제약 조건, 트랜잭션, 외래 키 등을 사용하여 데이터베이스의 일관성을 보장할 수 있다
- 표준화된 언어 사용으로(SQL) 여러 시스템 간의 호환성 유지
- 데이터 분석 및 보고 작업에 유용함
- 사용자 및 권한 관리, 데이터 암호화 등 접근 제어 등을 통해 데이터 보안을 유지한다
- 인덱스, 쿼리, 튜닝, 캐싱 등의 기술로 데이터베이스의 성능을 향상할 수 있다
데이터 무결성
데이터 전송, 저장, 처리 등의 과정에서 변경 또는 손상되지 않고, 완전성, 정확성 일관성을 보장하는 특성
단점
- 복잡한 쿼리를 작성할 때 가독성이 떨어진다
- 복잡한 데이터 모델링
- 수평적 확장이 어렵다
- 정형 데이터에 적합하다
NoSQL( Not Only SQL )
- 키-값으로 구성되어 있다
- JSON과 같은 문서 형태로 데이터를 저장한다(ex. MongoDB )
- 와이드 컬럼 스토어로 행과 열이 아닌, 테이블과 칼럼으로 데이터를 저장한다
- 그래프 데이터베이스로, 그래프형태로 데이터를 저장하고 관리한다
장점
- 유연한 데이터 모델로, 고정된 스키마가 필요하지 않기 때문에 데이터의 형태가 자주 변경되는 환경에서 유용하다
- 수평적 확장이 가능하며, 여러 서버에 데이터를 분산 처리할 수 있어 확장성이 용이하기 때문에 대용량 데이터를 처리, 저장하는 분산환경에 적합하다
- 단순 쿼리, 데이터 모델을 사용하기 때문에 대량의 데이터를 빠르게 처리할 수 있다
- 키-값, 문서, 와이드컬럼, 그래프 등 다양한 데이터 모델을 지원하여 여러 종류의 데이터를 저장, 처리할 수 있다
단점
- 데이터의 일관성을 유지하기 어렵다
- SQL을 사용하지 않기 때문에 복잡한 쿼리나 조인 연산을 수행하기 어렵다
'면접' 카테고리의 다른 글
[모의 면접] 성능최적화, CI/CD, 자바스크립트, 타입스크립트 (0) | 2024.06.20 |
---|---|
[모의 면접] 바벨, 원시 타입 (0) | 2024.06.20 |
[모의 면접] 메모이제이션, 레이지로딩, 모듈 번들러 (0) | 2024.06.19 |
[모의 면접] 프레임워크와 라이브러리, CSS, 이벤트 버블링, CORS (0) | 2024.05.30 |
[모의 면접] 돔, 호이스팅, 이벤트루프, 동기와 비동기 (0) | 2024.05.27 |