본문 바로가기

Total44

[ MEVN 스택 ] 1. Vue + express프로젝트 생성 MEVN 스택이란? Mongoose DB + Express + Vue.js + Node.js 의 약자이다. 몽구스 DB를 이용하며, Node.js런타임 위에서 동작하는 JS의 Express 프레임워크로 백엔드를 구성하고, 프론트엔드를 Vue.js프레임워크로 구성한다고 이해하면 된다. 유사한 MEAN, MERN스택은 프론트엔드의 Vue만 Angular, React로 바뀐 것이라고 생각하면 된다. 프로젝트 과정 1. vsCode에 vue, express 프로젝트를 생성한다. - 현재 포스트 2. vue와 express를 연동한다. 3. Mongoose DB를 생성한다. (로컬이 아닌 클라우드 서비스 이용할 예정) 4. 웹 프로젝트와 DB를 연동한다. 5. Google Cloud Platform에서 원격 컴퓨.. 2020. 6. 10.
[web] 동일 출처 정책과 CORS의 존재 이유 동일 출처 정책이란 동일 출처 정책(Same Origin Policy)은 어떤 출처에서 불러온 문서나 스크립트가 다른 출처에서 가져온 리소스와 상호작용 하는것을 제한하는 보안정책이다. XmlHTTPRequest로 다른 서버에 접근할 때 발생하는데, 실제 사례에는 보통 Javascript를 통한 AJAX통신과정에서 보통 발생한다. 이 때 출처는 오리진이라는 개념으로 구분하는데, 쉽게 말하자면 오리진 = 프로토콜 + 도메인 + 포트번호 라고 이해할 수 있다. 즉, 같은 프로토콜, 도메인, 포트번호를 가져야 클라이언트와 서버가 원활하게 통신할 수 있는 것이다. 동일 출처 정책이 왜 필요한가? 기본적으로 자바 스크립트는 자신이 실행된 문서의 서버의 내용만 읽을 수 있다. 만약 다른 서버의 내용까지 읽을 수 있게.. 2020. 5. 28.
[C++] template class 템플릿 클래스 파일 분할 템플릿 클래스의 파일 분할은 일반적인 클래스의 파일 분할과는 방법이 다르다. 우선 직접적인 구현 이전에 왜 템플릿 클래스는 일반적인 클래스처럼 파일을 헤더파일과 소스파일(cpp)로 분할할 수 없는지 알아보자. 왜 오류가 나는가? 템플릿 클래스를 헤더파일에서 선언하고, cpp파일에서 구현한다면 다음과 같은 링크 오류를 만나게 된다. 일반 함수와는 다르게 템플릿은 컴파일 시점에 인스턴스가 생성되어야 한다. 왜냐하면 일반 함수는 컴파일 시점에 정의를 볼 수 없어도, 함수가 호출 되면 어떤 함수가 호출되었는지 링킹 과정에서 파악할 수 있다. 하지만 템플릿은 호출 될 때마다 그 정의를 확인해야 정확한 코드를 작성할 수 있다. 즉, 사용되는 개별 번역단위(translation unit)마다 그 정의를 포함시켜줘야 .. 2020. 5. 20.
[HTTP] HTTP Request Method 종류와 설명 HTTP Request Method 서버에서 주어진 리소스에 수행하길 원하는 행동을 나타낸다. 메소드에 따라 서버에서 여러가지 작업을 수행하도록 제작되었지만, GET과 POST이외에는 찾아보기 힘들다. 1. GET 리소스를 검색하고, 반환받기 위해 사용되는 메소드이다. 원하는 정보를 서버에 요청할 때 쓰인다. (일반적으로) 리소스의 위치를 URL에서 쿼리로 표현하기 때문에 RequestBody가 없다. 2. HEAD 서버의 각종 정보를 확인하기 위해 사용되는 메소드이다. GET과 동일하지만, response에 Body가 없고 response Code와 Head만 응답받는다. 3. POST 요청된 자원을 생성하기 위해 사용되는 메소드이다. POST로 정보를 전송하면 URL에 파라미터가 나타나지 않으므로 각.. 2020. 5. 15.
[HTTP] HTTP Request Message 구조 HTTP HTTP는 Hyper Text Tranfer Protocol의 약자로, www상에서 정보를 주고받을 수 있는 프로토콜이다. 응용계층에 속하며 80번 포트를 사용해서 통신한다. (HTTPs는 443번 포트를 사용한다.) HTTP Request Message format HTTP는 Request를 전송하고, Response를 전송받는 형태이며, HTTP Request Message는 Start Line, Headers, Message Body로 이루어져있다. (Header와 Body 사이에는 한 줄의 공백이 있다.) 1. Request Start Line Request Start Line은 HTTP Method와 Request Target, 프로토콜 버전으로 구성되어있다. HTTP Method는 G.. 2020. 5. 15.
[UML] 유스케이스 다이어그램 (Usecase Diagram) 기초 및 그리는 방법 Usecase Diagram 시스템에서 제공해야 하는 기능이나 서비스를 명세한 다이어그램이다. 사용자와 시스템 사이의 상호작용에 집중하는 것이 특징이다. 외부에서 본 시스템의 기능을 표현하기 때문에, 실제 내부의 비즈니스 로직이 아닌, 사용자가 수행하는 기능을 파악하고 싶을 때 작성한다. Usecase Diagram을 그리는 시기 유스케이스 다이어그램은 각종 액터가 프로그램의 기능과 상호작용을 하는 것을 표현하는 것이 메인 컨텐츠이기 때문에 요구사항을 추출하는 분야에 특화되어있다. 그러므로 보통 프로젝트를 시작하고, 제품의 요구사항 명세서를 작성하는 요구분석 단계에서 그려야 한다. 프로젝트의 개발 범위를 정하거나, 사용자의 요구사항을 정의하고, 이 프로그램에 수행해야 하는 기능의 명세를 알아야 할 때 그.. 2020. 5. 14.