전체 글 78

REST API & RESTful 이란?

1. REST의 구체적인 개념 HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미한다. 2. REST 구성 요소 2.1 자원(Resource): URI -모든 자원에 고유한 ID가 존재하고, 이 자원은 Server에 존재한다. -자원을 구별하는 ID는 ‘/groups/:group_id’와 같은 HTTP URI 다. -Client는 URI를 이용해서 자원을 지정하고 해당 자원의 상태(정보)에 대한 조작을 Server에 요청한다. 2.2 행위(Verb): HTTP Method -HTTP 프로토콜의 Method를 사..

System/네트워크 2021.12.23

[mongoDB] 데이터베이스, 콜렉션, 도큐먼트 네이밍 관습

1. 데이터베이스 네이밍 -카멜게이스나 전부 소문자로 작성할 것(소문자 추천) -영문자a-z, 숫자0-9사용 -대소문자 구별에 주의한다. -소문자로 작성하는 것이 좋다 -64바이트 미만 -운영체제에 따라 금지되는 특수문자가 있다. -데이터 베이스 이름은 공백일 수 없다. -널 문자열이나 공백 문자 띄어쓰기를 포함해선 안된다. -가독성 좋게 구분자를 넣는 것을 권유한다. 구분자는 "-", "_"를 쓸 수 있다. 2. 콜렉션 네이밍 -카멜게이스나 전부 소문자로 작성할 것(소문자 추천) -콜렉션의 이름은 $, 공백문자, 널문자, 접두사 사용 금지는 포함되선 안된다. -구분자를 포함하는 것이 가독성이 좋아진다. -120바이트 이하 -복수형을 권장한다.(ex. products, employees) 3. 도큐먼트 ..

DB/MongoDB 2021.12.23

URL과 URI의 차이

URI URI는 특정 리소스를 식별하는 통합 자원 식별자(Uniform Resource Identifier)를 의미한다. 웹 기술에서 사용하는 논리적 또는 물리적 리소스를 식별하는 고유한 문자열 시퀀스다. URL URL은 흔히 웹 주소라고도 하며, 컴퓨터 네트워크 상에서 리소스가 어디 있는지 알려주기 위한 규약이다. URI의 서브셋이다. 비록 URL은 URI의 서브셋이지만 URI와 URL의 가장 큰 차이점은 바로 아래와 같다 URI는 식별하고, URL은 위치를 가르킨다. 두 주소는 모두 index.html을 가리키고 있다. 첫번째 주소는 웹서버의 실제 파일 위치를 나타내는 주소이므로 URI이면서 URL이다. 두번째 주소는 실제로 index라는 파일이 웹서버에 존재하지 않으므로 URL은 아니다. 하지만 서..

System/네트워크 2021.12.23

[보안]DB연결 할때 비밀 키(SECRET_KEY) 관리하기

1. 비밀 키(SECRET_KEY) 관리하기 프로젝트를 배포하기 위해 SECRET_KEY를 분리하는 실습을 진행하려고 합니다. 1.1 비밀 값을 관리하는 이유 만약에 설정값에 시크릿 값이 포함되어 있는 상태에서 Github이나 Bitbucket과 같은 버전 관리 시스템에 코드를 공개하는 경우, 자칫하면 시크릿 값을 잘못 관리함으로 인해 큰 피해를 볼 수도 있다. 가령 시크릿 값을 탈취해 남의 서버 자원을 비정상적으로 사용하는 경우도 있고, 암호키 값인 경우 서버 애플리케이션을 향한 악의적 공격이나 해킹 문제로 이어질 수도 있다. 이 SECRET_KEY는 프로젝트마다 유일한 값으로 세팅되어야 합니다. 또한 VCS(Version Control System)에서 제외되어야 하는데 git과 같은 사이트에 올라갔..

DB/MongoDB 2021.12.16

이미 push된 파일 .gitinore 적용하기

1. 이미 push된 파일 .gitinore 적용하기 git으로 관리하고 싶지 않은 파일들은 .gitignore 에 명시함으로써 해당 파일을 무시할 수 있다. 하지만 종종 무시할 파일을 .gitignore 에 추가하기 전에 git push 해버리는 경우가 있다. 이 때 뒤늦게 .gitignore 을 수정하여 push를 하지만 원격 저장소에서 해당 파일은 사라지지 않는다. 아래의 git 명령들을 실행해주면 .gitignore의 파일들이 적용되어 원격 저장소에서 사라진다. $ git rm -r --cached . $ git add . $ git commit -m "Apply .gitignore" $ git push 만약 vopgh@DESKTOP-7GBJ0PD MINGW64 /c/WonJin/sparta/ho..

SERVER/Git 2021.12.16

서버 branch 삭제 후 로컬 branch 업데이트(동기화)

1.서버 branch 삭제 후 로컬 branch 업데이트(동기화) 로컬 저장소의 브랜치에서 작업 완료 -> 서버로 push -> Pull Request -> main으로 브랜치 merge하고 브랜치 삭제한다. 그러면 웹에서는 브랜치가 삭제되었다. 하지만 원격 저장소의 branch가 삭제되어도 Local에서 git branch -r 로 나오는 list는 변화가 없다. 이를 아래 코드로 서버 브랜치와 로컬 브랜치를 동기화하면 이를 해결할 수 있다. 로컬에 남아있는 브랜치는 로컬에서 삭제하면된다. # 서버 브랜치와 로컬 브랜치 업데이트(동기화), 로컬브랜치는 따로 삭제 $ git remote update --prune

SERVER/Git 2021.12.16

미들웨어 body-parser& compression (압축)

1. 미들웨어 body-parser HTTPpost put 요청 시 request body에 들어오는 데이터 값을 읽을 수 있는 구문으로 파싱함과 동시에 req.body로 입력해주어 응답 과정에서 요청에 body 프로퍼티를 새로이 쓸 수 있게 해주는 미들웨어입니다. 1.1 body-parser 설치 # compression설치 $ npm install body-parser --save Examples var express = require('express') var bodyParser = require('body-parser') var app = express() // parse application/x-www-form-urlencoded app.use(bodyParser.urlencoded({ exte..

SERVER/Node.js 2021.11.26

Express 란?

1. Express Express는 웹 및 모바일 애플리케이션을 위한 일련의 강력한 기능을 제공하는 간결하고 유연한 Node.js 웹 애플리케이션 프레임워크입니다. 1.1 Express사용법 Hello world 예제 const express = require('express') const app = express() const port = 3000 app.get('/', (req, res) => { res.send('Hello World!') }) app.listen(port, () => { console.log(`Example app listening at http://localhost:${port}`) }) 2. 페이지 구현 2.1 Route Parameter로 data 받아오기 Route Para..

SERVER/Node.js 2021.11.26

물리적 데이터 모델링

물리적 데이터 모델링 1. 물리적 설계 물리적 설계란 논리적 설계 단계에서 논리적 구조로 표현된 데이터를 디스크 등의 물리적 저장장치에 저장할 수 있는 물리적 구조의 데이터로 변환하는 과정이다. 이상적인 표를 제품에 맞는 구체적인 표로 만드는 작업 여기서 중요한건 성능입니다. 2. 역정규화 역정규화란 시스템의 성능 향상, 개발 및 운영의 편의성 등을 위해 정규화된 데이터 모델을 통합, 중복, 분리하는 과정으로 의도적으로 정규화 원칙을 위해하는 행위이다. 역정규화를 수행하면 시스템의 성능이 향상되고 관리 효율성은 증가하지만 데이터의 일관성 및 정합성이 저하될 수 있다. 과도한 반정규화는 오리혀 성능을 저하시킬 수 있다. 역정규화를 위해서는 사전에 데이터의 일관성과 무결성(정확성)을 우선으로 할지, 데이터베..

DB/Mysql 2021.11.03

논리적 데이터 모델링

1.논리적 데이터 모델링 논리적 설계 단계에서는 개념적 데이터 모델링 작업에서 만든 ERD를 기반으로 기술된 데이터 타입과 이 데이터 타입들 간의 관계로 표현되는 논리적 구조의 데이터로 모델화한다. 즉 ERD( 개념적 스키마)를 평가 및 정제하고 DBMS에 따라 서로 다른 논리적 스키마를 설계하는 단계이다. 관계형 데이터베이스의 데이블을 설계하는 단계이다. 1.1 ERD -> 논리적 데이터 모델링의 스키마 ERD 논리적 스키마 2. 논리적 데이터 모델링 - 정규화(Normalization) 2.1 정규화(Normalization) 정규화란 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마를 만들어가는 과정입니다. 정규화는 데이터베이스의 논리적 설계 단계에서 수행한다. 정규화된 데..

DB/Mysql 2021.11.03