본문 바로가기

Sparta

(64)
MVC 패턴 Q. MVC 패턴에 대해 설명하시오. A.  편리한  디자인 패턴 중 하나로, Model, View, Controller의 세가지 역할로 이루어져있다. 사용자가 컨트롤러를 조작하면 모델을 통해 데이터를 가져오고 그 정보를 바탕으로 시각적인 표현을 담당하는 View를 제어해서 사용자에게 전달하게 된다.모델은 애플리케이션의 정보, 데이터를 나타내며 그것을 가공하는 컴포넌트이다. 사용자가 편집하길 원하는 모든 데이터를 갖고 있어야하며, 뷰나 컨트롤러와 완벽하게 분리되어야 한다. 뷰는 데이터를 기반으로 사용자가 볼 수 있는 화면을 나타내며 역시 모델이 가지고 있는 정보를 따로 저장해선 안 된다는 대원칙과, 변경이 일어나면 변경통지에 대한 처리방법을 구현해야 한다. 컨트롤러는 데이터와 인터페이스 요소를 잇는 다리..
객체지향과 절차지향의 차이/ 함수형 프로그래밍 1. 객체란 기존의 방식인 변수 따로, 함수 따로와 같이 분산적이고 통일성 없는 추상화 과정을 통합하여 문제 해결 대상을 좀더 모듈화 하기 쉽게 도와주는 도구 에 불과하며, 객체지향 프로그래밍은 객체의 디자인을 한 뒤에 이들의 데이터 흐름을 짜고 진행 시나리오를 설계해나가는 방식의 개발 방법론이다. 그에 반해  절차지향 프로그래밍은 프로그램의 순서와 흐름을 먼저 세우고, 필요한 자료구조와 함수들을 설계하는 방식이다. 플로우 차트를 먼쩌 짜느냐 데이터 모델링을 먼저 하는냐가 가장 큰 차이점이라고 생각하면 된다. 2. 함수형 프로그래밍은 거의 모든 것을 순수함수로 나누어 문제를 해결하는 기법으로, 작은 문제를 해결하기 위한 함수를 작성하여 가독성을 높이고 유지보수를 용이하게 해준다. 유명한 이론으로는 클린코..
해시테이블과 이진 검색트리의 장단점 비교 1. 정의 1) 해시테이블: 키-밸류로 데이터를 저장하는 자료구조 중 하나로 빠르게 데이터를 검색할 수 있고, 내부적으로 배열(버킷)을 사용하여 데이터를 저장한다. 각각의 key값에 해시함수를 적용해 배열의 고유한 index를 생성하고 이 index를 활용해 값을 저장하거나 검색하게 된다. 여기서 실제 값이 저장되는 장소를 버킷 또는 슬롯이라고 한다. 2) 이진검색트리: 키-밸류로 데이터를 저장하는 자료구조 중 하나로 이진검색과 연결리스트(Linked list)를 결합한 자료구조이며 이진검색의 효율적인 탐색능력을 유지하면서도, 번번한 자료 입력과 삭제를 가능하게끔 고안되었다. 정렬된 이진트리라고 생각하면 되며 중복된 키를 허용하지 않는다. 2. 장단점 1) 해시테이블 장점: 데이터 저장/읽기 속도가 빠르..
동기 비동기 차이, Deadlock 1. 동기(Synchronous) / 비동기(As ynchronous)의 차이점은 요청과 결과가 동시에 일어나는 지에 대한 여부이다. 동기는 말 그대로 현재 작업의 응답과 다음 작업의 요청가 동시에 일어난다는 약속(Promise)이다. 요청을 하면 시간이 얼마나 걸리든지 요청한 자리에서 결과가 주어져야하고 순서에 맞춰 진행되는 장점이 있지만, 여러 요청을 동시에 처리할 수 없다. 반대로, 비동기는 요청과 결과가 동시에 일어나지 않은 것이라는 약속이다. 하나의 요청에 따른 응답을 즉시 처리하지 않아도 그 시간동안 또 다른 요청에 대해 처리가 가능한 방식이다. 여러개의 요청을 동시에 처리할 수 있는 장점이 있지만 동기보다 속도가 떨어질 수 있다. 그리고 순서를 보장하지 않기 때문에 비동기를 동기처럼 보이게 ..
그래프와 트리의 차이점/ 이진트리, 힙, 이진검색트리 설명 1. 그래프와 트리를 설명하고 차이점 네트워크 모델인 그래프는 노드와 노드 간을 연결하는 간선으로 구성된 자료구조이다. 순환 또는 비순환 구조를 이루며, 방향이 있는 그래프와 방향이 없는 그래프가 있고 부모-자식 관계라는 개념이 없으며 2개 이상의 경로가 가능하다. 계층형 모델인 트리는 그래프 중에서도 특수케이스에 해당하며 반드시 1대의 경로만을 가지고 사이클이 존재하지 않는 방향 그래프이다. 부모-자식관계가 성립하고 노드가 n이면 간선은 n-1개,이며 전위/중위/후위순회 3가지 종류가 있다. 대표적인 그래프는 네비게이션의 최단거리, 트리는 폴더구조 생각하면 편하다. 2. 이진트리, 이진검색트리, 힙의 차이점 이진트리는 각 노드가 최대 2개의 자식노드만을 가질 수 있는 트리이다. 이진 검색트리는 자료들을..
정규화, 무결성에 대해 알아보자 1. 정규화의 개념과 목적에 대해 설명하라 정규화(Normalization)란 데이터 모델링의 핵심 중 하나라고 할 수 있으며, 중복데이터와 이상현상을 제거함으로써 데이터 정합성과 무결성을 확보하기 위해 테이블을 나누는 것이다. 정합성(Consistency)는 데이터가 모순없이 일치해야 함을 의미하며 중복데이터가 제거되지 않은 이상현상이 발생할 경우 정합성이 깨지게 된다. 데이터 베이스 변경 시 이상현상 제거가 가능하고 새로운 데이터 형의 추가 시 구조변경 소요가 줄어든다. 단점으로는 릴레이션 분해로 인해 JOIN연상이 많아지고, 요청응답 시간이 느려질 수 있다. 2. 무결성에 대해 설명하라 무결성(Integrity)은 데이터 값이 정확한 상태를 의미하며 정규화의 한 조건이다. 종류는 인스턴스는 고유한 ..
[TIL] AWS 공부하는 중 용어정리 1. 컴퓨팅 서비스 1)EC2 AWS에서 가장 기본적이고 널리 쓰이는 인프라로, 물리환경의 컴퓨터처럼 컴퓨팅 리소스를 제공하는 서비스다. 클라우드에서 컴퓨팅 파워와 규모를 자유자재로 변경할 수 있다. 가상 머신으로 제공되며 인스턴스라고 불린다. 안정성을 위해 여러 AWS 리전과 가용역역에 걸쳐 배포된다. 2)Lambda(Serverless Computing) 모든 유형의 애플리케이션이나 백엔드 서비스에 대한 코드를 별도 관리없이 실행하는 서비스 사용자는 서버에 대한 걱정없이 코드만으로 서비스를 실행할 수 있다. serverless 아키텍처 구현에 사용 서버 및 운영체제 유지보수, 용량 프로비저닝 및 자동확장, 코드 모니터링 및 로깅과 같은 컴퓨팅 리소스의 모든 관리를 자체적으로 수행하므로 Lambda가 ..
url을 입력했을 때 일어나는 과정, OSI 7계층 1. 주소창에 naver.com을 치면 일어나는 일 1) IP주소 IP 주소란 많은 컴퓨터들이 인터넷 상에서 서로를 인식하기 위해 지정받은 식별용 번호라고 생각하면 된다. 현재는 IPv4 버전(32비트)로 구성되어 있으며, 한번씩은 들어봤을 법한 127.0.0.1 같은 주소를 말한다 시간이 갈수록 IPv4 주소의 부족으로 IPv6가 생겼는데, 128비트로 구성되어 있기 때문에 IP 주소가 부족하지 않다는 특징이 있다. 2) 도메인 네임 IP 주소는 12자리의 숫자로 되어 있기 때문에 사람이 외우기 힘들다는 단점이 있기에 문자로 표현한 주소가 필요하다 도메인 네임은 'naver.com'처럼 몇 개의 의미있는 문자들과 .의 조합으로 구성되며, 사람의 편의성을 위해 만든 주소이므로 실제로는 컴퓨터가 이해할 수..