전체 (142) 썸네일형 리스트형 AWS 기초 - https 쓰는 방법 일반적인 가상 서버에 배포하는 방식은 아래 그림과 같다. HTTPs는 표준이 되었는데, 그 이유는 encrypt된 데이터를 주고 받기 때문에 보안이 좋고, 검색엔진 노출(SEO)의 측면에서도 더 뛰어난 성능을 가지기 때문이다. 그렇기에 요즘 배포를 한다면 https로 하는 것이 기본이 되었는데, 지난 프로젝트에서 적용하는 데에 애를 먹어서 정리해보려고 한다. HTTPs는 443포트로 들어오는데, Node App내부에 설치하는 방법도 있고, Nginx를 이용해서 할 수도 있지만, 더 쉽고 사실상 서버배포시 필수적으로 필요한 로드밸런서를 이용한 방법을 알아보고자 한다. 443포트를 단순히 열어주는 것에 그치는 것이 아니라 인증서를 발급받아서 설정해줘야한다. 오히려 다른 방법들이 더 어렵고 불편할 수 있기에.. 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)이다. 요청을 하면 시간이 얼마나 걸리든지 요청한 자리에서 결과가 주어져야하고 순서에 맞춰 진행되는 장점이 있지만, 여러 요청을 동시에 처리할 수 없다. 반대로, 비동기는 요청과 결과가 동시에 일어나지 않은 것이라는 약속이다. 하나의 요청에 따른 응답을 즉시 처리하지 않아도 그 시간동안 또 다른 요청에 대해 처리가 가능한 방식이다. 여러개의 요청을 동시에 처리할 수 있는 장점이 있지만 동기보다 속도가 떨어질 수 있다. 그리고 순서를 보장하지 않기 때문에 비동기를 동기처럼 보이게 .. [React] cookie 적용 시간 처리 주말동안 메인페이지를 만드는 작업을 진행했는데, 메인페이지에서 로그인 여부에 따른 버튼 노출을 처리하면서 겪은 트러블 슈팅 기록이다. 로그인 이전에는 회원가입과 로그인 버튼을 노출시키고 로그인 이후에 쿠키에 토큰이 들어가면 회원정보를 담은 프로필과 로그아웃 버튼을 노출시켜야 하는데, 리액트에서 쿠키를 사용해본 경험이 없다보니 적용을 처리하는 데에 에러를 겪었다. 쿠키에 토큰이 정상적으로 들어가고 난 이후에 노출되었다면 로그인 시 즉시 적용되어야 하는데, 새로고침을 해야 쿠키가 들어간 것이 적용되었다. 분명 useEffect 훅을 사용하고 있는데도 이런 일이 발생하는 것이 이상했다. 로딩 상태를 관리 하는 코드도 적용해봐도 별다른 차도가 없어서 어떻게 해야하는지 고민하던 차, useEffect의 의존성 배.. 그래프와 트리의 차이점/ 이진트리, 힙, 이진검색트리 설명 1. 그래프와 트리를 설명하고 차이점 네트워크 모델인 그래프는 노드와 노드 간을 연결하는 간선으로 구성된 자료구조이다. 순환 또는 비순환 구조를 이루며, 방향이 있는 그래프와 방향이 없는 그래프가 있고 부모-자식 관계라는 개념이 없으며 2개 이상의 경로가 가능하다. 계층형 모델인 트리는 그래프 중에서도 특수케이스에 해당하며 반드시 1대의 경로만을 가지고 사이클이 존재하지 않는 방향 그래프이다. 부모-자식관계가 성립하고 노드가 n이면 간선은 n-1개,이며 전위/중위/후위순회 3가지 종류가 있다. 대표적인 그래프는 네비게이션의 최단거리, 트리는 폴더구조 생각하면 편하다. 2. 이진트리, 이진검색트리, 힙의 차이점 이진트리는 각 노드가 최대 2개의 자식노드만을 가질 수 있는 트리이다. 이진 검색트리는 자료들을.. 정규화, 무결성에 대해 알아보자 1. 정규화의 개념과 목적에 대해 설명하라 정규화(Normalization)란 데이터 모델링의 핵심 중 하나라고 할 수 있으며, 중복데이터와 이상현상을 제거함으로써 데이터 정합성과 무결성을 확보하기 위해 테이블을 나누는 것이다. 정합성(Consistency)는 데이터가 모순없이 일치해야 함을 의미하며 중복데이터가 제거되지 않은 이상현상이 발생할 경우 정합성이 깨지게 된다. 데이터 베이스 변경 시 이상현상 제거가 가능하고 새로운 데이터 형의 추가 시 구조변경 소요가 줄어든다. 단점으로는 릴레이션 분해로 인해 JOIN연상이 많아지고, 요청응답 시간이 느려질 수 있다. 2. 무결성에 대해 설명하라 무결성(Integrity)은 데이터 값이 정확한 상태를 의미하며 정규화의 한 조건이다. 종류는 인스턴스는 고유한 .. 이전 1 ··· 4 5 6 7 8 9 10 ··· 18 다음