개발일지

2024.02.27 TIL

과일바구니♡ 2024. 2. 27. 20:59

프로젝트 명 : 찌리릿(zziririt) - zrr.kr/zziririt.kr

프로젝트 소개 : 네이버가 운영하는 인터넷 방송 플랫폼 치지직의 시청자 커뮤니티 서비스. 치지직의 각종 뉴스와 이벤트를 게재한다.

 

와이어 프레임 작성중, 팀 노션 작성중.

API 작성중-튜터님께 질문할 것 있음, DB 어느것 쓰는게 좋을지-포스트SQL사용하기로함, 스웨그대신 포스트맨 사용-테스트.

팀 컨벤션 작성중.(이모티콘 쓸것인지 고민중)

깃 레지토퍼리 연결함.(팀원들초대) , ERD작성중입니다.

 

1. 기술면접질문

1)NoSQL과 RDBMS의 특징과 차이점에 대해서 장, 단점을 들어 설명해주세요.

NoSQL(비관계형 데이터베이스)과 RDBMS(관계형 데이터베이스 관리 시스템)은 데이터베이스 시스템의 두 가지 주요 타입입니다. 각각의 특징과 차이점, 그리고 장단점을 살펴보겠습니다.

NoSQL의 특징:

스키마 유연성: NoSQL은 스키마가 없거나 유연한 스키마를 가지고 있어 데이터 모델을 동적으로 변경할 수 있습니다.확장성: NoSQL은 수평적인 확장에 용이하며, 대용량 데이터 처리와 분산 환경에서의 성능을 향상시킬 수 있습니다.다양한 데이터 모델: NoSQL은 다양한 데이터 모델을 제공하며, 키-값 저장소, 문서 데이터베이스, 그래프 데이터베이스, 열 지향 데이터베이스 등 다양한 형태의 데이터를 저장할 수 있습니다.

NoSQL의 단점:

질의 언어의 제한: NoSQL은 SQL과는 다른 쿼리 언어를 사용하며, 복잡한 질의를 지원하지 않을 수 있습니다.데이터 무결성의 부족: NoSQL은 ACID(원자성, 일관성, 격리성, 지속성) 특성을 모두 보장하지 않을 수 있으며, 데이터의 일관성과 무결성에 대한 책임은 개발자에게 있습니다.

RDBMS의 특징:

강력한 일관성과 무결성: RDBMS는 ACID 특성을 보장하여 데이터의 일관성과 무결성을 유지합니다.정형화된 데이터 모델: RDBMS는 테이블과 열의 구조로 데이터를 저장하며, 정형화된 데이터를 다루는 데 용이합니다.복잡한 질의 지원: SQL을 사용하여 복잡한 질의를 수행할 수 있으며, 데이터 간의 관계를 쉽게 조작할 수 있습니다.

RDBMS의 단점:

확장성의 한계: RDBMS는 주로 수직적인 확장에 의존하며, 대용량 데이터 처리와 분산 환경에서는 제한이 있을 수 있습니다.고정된 스키마: RDBMS는 정해진 스키마에 맞춰 데이터를 저장하므로, 데이터 모델의 변경이 어려울 수 있습니다.

NoSQL과 RDBMS의 차이점:

데이터 모델: NoSQL은 다양한 데이터 모델을 지원하며, RDBMS는 주로 테이블과 열의 구조로 데이터를 저장합니다.스키마: NoSQL은 유연한 스키마를 가지거나 스키마가 없는 경우가 많지만, RDBMS는 정의된 스키마에 따라 데이터를 저장합니다.확장성: NoSQL은 수평적인 확장에 용이하며, RDBMS는 주로 수직적인 확장을 지원합니다.질의 언어: NoSQL은 SQL과 다른 쿼리 언어를 사용하며, RDBMS는 SQL을 사용하여 데이터에 접근합니다.

NoSQL과 RDBMS는 데이터베이스 요구사항과 개발 목표에 따라 선택되어야 합니다. NoSQL은 대용량 데이터 처리와 유연성이 중요한 경우에 적합하며, RDBMS는 일관성과 무결성이 중요하며 복잡한 질의가 필요한 경우에 적합합니다.

 

4줄(요약) 대답

NoSQL은 비관계형 데이터베이스로, 유연한 데이터 모델과 확장성을 제공합니다. RDBMS는 관계형 데이터베이스로, 정형화된 데이터 구조와 ACID 특성을 갖고 있습니다. NoSQL은 분산 환경에서 대용량 데이터 처리와 빠른 속도를 지원하며, 스케일 아웃이 쉽습니다. RDBMS는 데이터 일관성과 무결성을 보장하며, 복잡한 관계를 다루기에 용이합니다. NoSQL의 단점은 일관성과 트랜잭션 지원의 부족이며, RDBMS의 단점은 스케일 아웃의 어려움과 제한된 유연성입니다.

 

2)mvc 패턴에 대해서 설명해주세요.

MVC(Model-View-Controller) 패턴은 소프트웨어 개발에서 사용되는 디자인 패턴 중 하나입니다. 이 패턴은 소프트웨어의 구조를 세 가지 주요 요소로 분리하여 개발을 용이하게 합니다.

Model(모델): 모델은 데이터와 비즈니스 로직을 담당합니다. 데이터베이스나 파일 시스템과 같은 데이터 저장소와 상호작용하며, 데이터의 유효성 검사, 데이터의 변경 및 업데이트 등을 처리합니다. 모델은 주로 데이터의 구조와 동작을 정의하는 클래스로 구성됩니다.View(뷰): 뷰는 사용자에게 데이터를 시각적으로 표현하는 역할을 합니다. 웹 애플리케이션에서는 HTML, CSS, JavaScript를 사용하여 사용자 인터페이스를 구성하며, 데스크톱 애플리케이션에서는 GUI(그래픽 사용자 인터페이스)를 구성합니다. 뷰는 모델의 데이터를 표시하고, 사용자 입력을 받아 컨트롤러에 전달합니다.Controller(컨트롤러): 컨트롤러는 모델과 뷰 사이의 상호작용을 관리합니다. 사용자의 입력을 받아 해당하는 모델의 동작을 호출하고, 모델로부터의 결과를 받아 뷰를 업데이트합니다. 컨트롤러는 뷰와 모델 간의 의존성을 제거하고, 애플리케이션의 흐름을 제어하는 역할을 합니다.

MVC 패턴을 사용하면 개발자는 각 요소를 독립적으로 개발하고 유지할 수 있습니다. 이로 인해 코드의 재사용성과 유지보수성이 향상되며, 코드의 가독성과 확장성도 증가합니다. 또한, 사용자 인터페이스와 비즈니스 로직을 분리함으로써 애플리케이션의 유연성과 확장성이 향상됩니다.

MVC 패턴은 다양한 소프트웨어 개발 분야에서 사용되며, 특히 웹 애플리케이션 개발에서 널리 사용됩니다. 웹 프레임워크들도 MVC 패턴을 기반으로 구성되어 있어 개발자가 웹 애플리케이션을 구축할 때 유용하게 활용할 수 있습니다.

 

4줄(요약) 대답

MVC (Model-View-Controller) 패턴은 소프트웨어 개발에서 사용되는 아키텍처 패턴입니다. 이 패턴은 애플리케이션을 세 가지 주요 구성 요소로 분리합니다. Model은 데이터와 비즈니스 로직을 관리하고, View는 사용자 인터페이스를 담당하며, Controller는 사용자 입력을 처리하고 Model과 View를 조정합니다. 이렇게 구성된 MVC 패턴은 코드 재사용과 유지 보수성을 향상시키며, 애플리케이션의 유연성과 확장성을 제공합니다.

'개발일지' 카테고리의 다른 글

2024.02.29 TIL  (3) 2024.02.29
2024.02.28TIL  (0) 2024.02.28
2024.02.26 TIL  (0) 2024.02.26
2024.02.23 TIL  (0) 2024.02.23
2024.02.22 TIL  (0) 2024.02.22