From 589ed608c4025168c4dcce3dadddf27a52173aa1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=EB=B0=95=EC=86=8C=EC=98=81?=
<74605283+sso0711@users.noreply.github.com>
Date: Thu, 28 Sep 2023 18:20:26 +0900
Subject: [PATCH 01/11] Update unit3.md
---
Unit3/unit3.md | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/Unit3/unit3.md b/Unit3/unit3.md
index 370a370..44a0056 100644
--- a/Unit3/unit3.md
+++ b/Unit3/unit3.md
@@ -14,14 +14,15 @@
## ❗️ notion에 키워드 정리 완료 여부
내가 notion에 키워드를 정리를 완료한 경우 체크표시 해주세요~
-- [ ] 키워드 정리 완료
+- [x] 키워드 정리 완료
## ❗️ 3주차 과제
1. AWS EC2 인스턴스 생성
- 수행한 화면 혹은 내용을 작성해 주세요
-
+![image](https://github.com/sso0711/2023-Server-Study/assets/74605283/90130995-a641-47d8-a83f-d79028c2ea5a)
+public ip를 주소창에 쳤을 때 나타난 화면
2. ssh 사용하여 ubuntu 인스턴스 외부 접속
From ff1b6165c9231685db5bae3f5f2d01b761c413b5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=EB=B0=95=EC=86=8C=EC=98=81?=
<74605283+sso0711@users.noreply.github.com>
Date: Thu, 5 Oct 2023 11:53:50 +0900
Subject: [PATCH 02/11] Update unit4.md
---
Unit4/unit4.md | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/Unit4/unit4.md b/Unit4/unit4.md
index cff4f27..34c5137 100644
--- a/Unit4/unit4.md
+++ b/Unit4/unit4.md
@@ -3,9 +3,9 @@
## ❗️ 강의 수강 여부
수강한 강의에 체크표시 해주세요~
-- [ ] 데이터베이스
-- [ ] 데이터베이스_MySQL
-- [ ] 리눅스에 MySQL 설치하기
+- [x] 데이터베이스
+- [x] 데이터베이스_MySQL
+- [x] 리눅스에 MySQL 설치하기
@@ -19,6 +19,8 @@
## ❗️ 3주차 과제
1. 관계형 데이터베이스 이론적으로 이해하기
- 간단히 여러분이 공부한 내용을 적어주세요.
+ -
+데이터를 테이블(표)로 표현하여 2개 이상의 테이블의 각각의 항목과 속성이 모든 다른 항목의 속성과 연결됨.
@@ -34,6 +36,9 @@
4. AWS RDS 구축하기
- ERD를 바탕으로 내가 기존에 만들어둔 AWS에서 RDS를 만들어 봅시다. (완성 후 캡쳐본 올리기)
+![image](https://github.com/sso0711/2023-Server-Study/assets/74605283/3d132f23-8b10-48cd-9bcc-5fad4f7a1bfe)
+
+![image](https://github.com/sso0711/2023-Server-Study/assets/74605283/c284f897-408b-4537-9b95-53c9b8202e77)
From 9223e721b3beaa09bad67ee60be3893aa28e3f90 Mon Sep 17 00:00:00 2001
From: dbtjgus6988 <144633320+dbtjgus6988@users.noreply.github.com>
Date: Thu, 5 Oct 2023 14:23:22 +0900
Subject: [PATCH 03/11] Update unit4.md
---
Unit4/unit4.md | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/Unit4/unit4.md b/Unit4/unit4.md
index 6777af6..4597117 100644
--- a/Unit4/unit4.md
+++ b/Unit4/unit4.md
@@ -110,8 +110,7 @@ ex) MySQL / Oracle / Maria-DB 등
3. ERD 설계하기
- 2번에서 진행한 내용을 바탕으로 직적 ERD 제작 툴을 사용해 작성해봅시다. (완성 후 캡쳐본 올리기)
-![무신사 _erd (2)](https://github.com/dbtjgus6988/2023-Server-Study/assets/144633320/218c034e-2284-4d1b-92ea-140ea859ab1c)
-
+![무신사 _erd (3)](https://github.com/dbtjgus6988/2023-Server-Study/assets/144633320/18ad6fc1-6a9c-474a-89a9-f8f1161b216e)
From 0cb638d2772a8c1e7a1fb9ae564fc9a6cd8b9d02 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=EB=B0=95=EC=86=8C=EC=98=81?=
<74605283+sso0711@users.noreply.github.com>
Date: Mon, 9 Oct 2023 17:48:04 +0900
Subject: [PATCH 04/11] Update unit4.md
---
Unit4/unit4.md | 34 +++++++++++++++++++++++++++++++---
1 file changed, 31 insertions(+), 3 deletions(-)
diff --git a/Unit4/unit4.md b/Unit4/unit4.md
index 34c5137..5572502 100644
--- a/Unit4/unit4.md
+++ b/Unit4/unit4.md
@@ -19,19 +19,48 @@
## ❗️ 3주차 과제
1. 관계형 데이터베이스 이론적으로 이해하기
- 간단히 여러분이 공부한 내용을 적어주세요.
- -
-데이터를 테이블(표)로 표현하여 2개 이상의 테이블의 각각의 항목과 속성이 모든 다른 항목의 속성과 연결됨.
+### 관계형 데이터베이스
+데이터를 행과 열(속성,필드)를 갖는 테이블(표,entity,객체)로 표현하여 2개 이상의 테이블 간의 관계를 나타낸 것.
+- SQL을 이용하여 관리 및 접근한다. (비관계형DB의 경우는 NoSQL)
+- 관계에는 1:1, 1:다, 다:다 가 있다.
+- ex)oracle, MySQL, SQL server
+
+`장점`
+- 데이터 무결성, 높은 신뢰성
+- 데이터의 분류, 정렬, 탐색 속도가 빠름
+
+`단점`
+- 대량의 데이터 입력 처리 -> 데이터베이스 부하 분석이 어려움
+- 갱신이 발생한 테이블의 인덱스 생성 및 스키마 변경
+- 컬럼 확장이 어렵다.(row추가를 통한 수직확장만 지원)
+
2. 원하는 서비스(당근마켓, 인스타그램 등) 분석하기
- 원하는 서비스를 하나 타겟팅 후 페이지 4장가량을 선정하고 (캡쳐본 올리기) 데이터베이스에 들어갈 내용을 적어주세요.
+
+`화해` : 화장품 정보/구매 어플
+
+![image](https://github.com/sso0711/2023-Server-Study/assets/74605283/07092db0-9775-4957-a081-64180da682e2)
+마이페이지에 이름, 나이, 피부타입, 가입연도, 포인트, 쿠폰, 즐겨찾기 등의 정보가 포함되어 있다.
+한 명의 사용자가 여러 화장품을 구매할 수 있고, 여러 후기를 남길 수 있다.(1:다 관계)
+![image](https://github.com/sso0711/2023-Server-Study/assets/74605283/3d554d9f-fcbd-47a3-a4c9-75b3e140a83c)
+화장품 제품 별 이름, 가격, 브랜드, 할인율, 순위, 어플 내 구매가능여부
+![image](https://github.com/sso0711/2023-Server-Study/assets/74605283/2fe98980-d70a-4752-b360-7311f8cbcf11)
+하나의 화장품에는 여러가지 성분이 포함되어 있다. (1:다 관계)
+![image](https://github.com/sso0711/2023-Server-Study/assets/74605283/64be437f-8ec0-4dfc-9e69-1fb2f3b51996)
+후기에는 장점,단점,이미지를 작성할 수 있다.
+하나의 화장품에 여러 후기가 존재한다.(1:다 관계)
3. ERD 설계하기
- 2번에서 진행한 내용을 바탕으로 직적 ERD 제작 툴을 사용해 작성해봅시다. (완성 후 캡쳐본 올리기)
+![image](https://github.com/sso0711/2023-Server-Study/assets/74605283/c7687255-703b-408f-a29d-81d405e6e0c9)
+* 어려웠던 점 : 어떤 속성을 추가할 때 새로운 테이블로 생성해야할 지, 특정 테이블의 속성으로 추가해야 할 지가 고민되었다.
+* 주의할 점 : 데이터베이스의 확장성과 유지보수를 고려하여 작성해야 한다.
4. AWS RDS 구축하기
@@ -39,7 +68,6 @@
![image](https://github.com/sso0711/2023-Server-Study/assets/74605283/3d132f23-8b10-48cd-9bcc-5fad4f7a1bfe)
![image](https://github.com/sso0711/2023-Server-Study/assets/74605283/c284f897-408b-4537-9b95-53c9b8202e77)
-
From 046fa5e89b4ecc5ca6500e58b986c64155413272 Mon Sep 17 00:00:00 2001
From: dangeunii <101170415+dangeunii@users.noreply.github.com>
Date: Tue, 31 Oct 2023 17:03:39 +0900
Subject: [PATCH 05/11] Create unit6.md
---
Unit6/unit6.md | 42 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)
create mode 100644 Unit6/unit6.md
diff --git a/Unit6/unit6.md b/Unit6/unit6.md
new file mode 100644
index 0000000..904dccb
--- /dev/null
+++ b/Unit6/unit6.md
@@ -0,0 +1,42 @@
+### ⭐️ 6주차 과제 제출 ⭐️
+
+## ❗️ 강의 수강 여부
+수강한 강의에 체크표시 해주세요~
+
+- [ ] HTTP 통신
+- [ ] API
+- [ ] 데이터 포맷 - CSV, JSON, XML
+
+
+
+## ❗️ notion에 키워드 정리 완료 여부
+내가 notion에 키워드를 정리를 완료한 경우 체크표시 해주세요~
+
+- [ ] 키워드 정리 완료
+
+
+
+## ❗️ 6주차 과제
+1. 개발환경 구축하기 - nodejs 설치 및 사전에 올려둔 템플릿 적용하기
+ (완료된 내용 켬쳐본 올리기)
+
+
+
+2. 자신이 설계한 DB와 연동해서 API설계 (CRUD)
+ (완료된 내용 켬쳐본 올리기)
+
+
+
+3. Postman으로 API 테스트
+ (완료된 내용 켬쳐본 올리기)
+
+
+
+4. API Sheet 작성
+ (완료된 내용 켬쳐본 올리기)
+
+
+
+
+
+
From 5691b08af45cbd82d641fb41fe09d50a63c878ec Mon Sep 17 00:00:00 2001
From: dangeunii <101170415+dangeunii@users.noreply.github.com>
Date: Tue, 31 Oct 2023 17:08:58 +0900
Subject: [PATCH 06/11] =?UTF-8?q?Revert=20"4=EC=A3=BC=EC=B0=A8=20=EA=B3=BC?=
=?UTF-8?q?=EC=A0=9C=20=EC=A0=9C=EC=B6=9C(=EB=B6=80=EB=B6=84=EC=99=84)"?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Unit3/unit3.md | 5 ++---
Unit4/unit4.md | 39 +++------------------------------------
2 files changed, 5 insertions(+), 39 deletions(-)
diff --git a/Unit3/unit3.md b/Unit3/unit3.md
index 44a0056..370a370 100644
--- a/Unit3/unit3.md
+++ b/Unit3/unit3.md
@@ -14,15 +14,14 @@
## ❗️ notion에 키워드 정리 완료 여부
내가 notion에 키워드를 정리를 완료한 경우 체크표시 해주세요~
-- [x] 키워드 정리 완료
+- [ ] 키워드 정리 완료
## ❗️ 3주차 과제
1. AWS EC2 인스턴스 생성
- 수행한 화면 혹은 내용을 작성해 주세요
-![image](https://github.com/sso0711/2023-Server-Study/assets/74605283/90130995-a641-47d8-a83f-d79028c2ea5a)
-public ip를 주소창에 쳤을 때 나타난 화면
+
2. ssh 사용하여 ubuntu 인스턴스 외부 접속
diff --git a/Unit4/unit4.md b/Unit4/unit4.md
index 5572502..cff4f27 100644
--- a/Unit4/unit4.md
+++ b/Unit4/unit4.md
@@ -3,9 +3,9 @@
## ❗️ 강의 수강 여부
수강한 강의에 체크표시 해주세요~
-- [x] 데이터베이스
-- [x] 데이터베이스_MySQL
-- [x] 리눅스에 MySQL 설치하기
+- [ ] 데이터베이스
+- [ ] 데이터베이스_MySQL
+- [ ] 리눅스에 MySQL 설치하기
@@ -20,54 +20,21 @@
1. 관계형 데이터베이스 이론적으로 이해하기
- 간단히 여러분이 공부한 내용을 적어주세요.
-### 관계형 데이터베이스
-데이터를 행과 열(속성,필드)를 갖는 테이블(표,entity,객체)로 표현하여 2개 이상의 테이블 간의 관계를 나타낸 것.
-- SQL을 이용하여 관리 및 접근한다. (비관계형DB의 경우는 NoSQL)
-- 관계에는 1:1, 1:다, 다:다 가 있다.
-- ex)oracle, MySQL, SQL server
-
-`장점`
-- 데이터 무결성, 높은 신뢰성
-- 데이터의 분류, 정렬, 탐색 속도가 빠름
-
-`단점`
-- 대량의 데이터 입력 처리 -> 데이터베이스 부하 분석이 어려움
-- 갱신이 발생한 테이블의 인덱스 생성 및 스키마 변경
-- 컬럼 확장이 어렵다.(row추가를 통한 수직확장만 지원)
-
2. 원하는 서비스(당근마켓, 인스타그램 등) 분석하기
- 원하는 서비스를 하나 타겟팅 후 페이지 4장가량을 선정하고 (캡쳐본 올리기) 데이터베이스에 들어갈 내용을 적어주세요.
-
-`화해` : 화장품 정보/구매 어플
-
-![image](https://github.com/sso0711/2023-Server-Study/assets/74605283/07092db0-9775-4957-a081-64180da682e2)
-마이페이지에 이름, 나이, 피부타입, 가입연도, 포인트, 쿠폰, 즐겨찾기 등의 정보가 포함되어 있다.
-한 명의 사용자가 여러 화장품을 구매할 수 있고, 여러 후기를 남길 수 있다.(1:다 관계)
-![image](https://github.com/sso0711/2023-Server-Study/assets/74605283/3d554d9f-fcbd-47a3-a4c9-75b3e140a83c)
-화장품 제품 별 이름, 가격, 브랜드, 할인율, 순위, 어플 내 구매가능여부
-![image](https://github.com/sso0711/2023-Server-Study/assets/74605283/2fe98980-d70a-4752-b360-7311f8cbcf11)
-하나의 화장품에는 여러가지 성분이 포함되어 있다. (1:다 관계)
-![image](https://github.com/sso0711/2023-Server-Study/assets/74605283/64be437f-8ec0-4dfc-9e69-1fb2f3b51996)
-후기에는 장점,단점,이미지를 작성할 수 있다.
-하나의 화장품에 여러 후기가 존재한다.(1:다 관계)
3. ERD 설계하기
- 2번에서 진행한 내용을 바탕으로 직적 ERD 제작 툴을 사용해 작성해봅시다. (완성 후 캡쳐본 올리기)
-![image](https://github.com/sso0711/2023-Server-Study/assets/74605283/c7687255-703b-408f-a29d-81d405e6e0c9)
-* 어려웠던 점 : 어떤 속성을 추가할 때 새로운 테이블로 생성해야할 지, 특정 테이블의 속성으로 추가해야 할 지가 고민되었다.
-* 주의할 점 : 데이터베이스의 확장성과 유지보수를 고려하여 작성해야 한다.
4. AWS RDS 구축하기
- ERD를 바탕으로 내가 기존에 만들어둔 AWS에서 RDS를 만들어 봅시다. (완성 후 캡쳐본 올리기)
-![image](https://github.com/sso0711/2023-Server-Study/assets/74605283/3d132f23-8b10-48cd-9bcc-5fad4f7a1bfe)
-![image](https://github.com/sso0711/2023-Server-Study/assets/74605283/c284f897-408b-4537-9b95-53c9b8202e77)
From 0f65d855b5ce2a1631ae469870efa50c6b0cee58 Mon Sep 17 00:00:00 2001
From: dbtjgus6988 <144633320+dbtjgus6988@users.noreply.github.com>
Date: Wed, 1 Nov 2023 22:47:18 +0900
Subject: [PATCH 07/11] Update unit5.md
---
Unit5/unit5.md | 26 ++++++++++++++++++--------
1 file changed, 18 insertions(+), 8 deletions(-)
diff --git a/Unit5/unit5.md b/Unit5/unit5.md
index 9533b55..9edd6d1 100644
--- a/Unit5/unit5.md
+++ b/Unit5/unit5.md
@@ -1,46 +1,56 @@
-### ⭐️ 5주차 과제 제출 ⭐️
+### ⭐️ 5주차 과제 제출 ⭐️
## ❗️ 강의 수강 여부
수강한 강의에 체크표시 해주세요~
-- [ ] 데이터베이스 실습
-- [ ] 데이터베이스 실습 2
-- [ ] SQL
+- [x] 데이터베이스 실습
+- [x] 데이터베이스 실습 2
+- [x] SQL
## ❗️ notion에 키워드 정리 완료 여부
내가 notion에 키워드를 정리를 완료한 경우 체크표시 해주세요~
-- [ ] 키워드 정리 완료
+- [x] 키워드 정리 완료
## ❗️ 5주차 과제
1. ERD export해서 구축된 RDS에 반영하기
(완료된 내용 켬쳐본 올리기)
-
+
+
2. 데이터그립을 통해서 RDS에 접근하기
(완료된 내용 켬쳐본 올리기)
+
3. 접근된 RDS에 쿼리 작성하기
(완료된 내용 켬쳐본 올리기)
+
4. RDS에 더미데이터 반영하기
(완료된 내용 켬쳐본 올리기)
-
+
+
5. 화면 최소 3개 이상 쿼리 작성하기
(완료된 내용 켬쳐본 올리기)
-
+
+
+
+
+
+
+
From 437a61e594f1dc44d81de5acdf7142461694ac7d Mon Sep 17 00:00:00 2001
From: dbtjgus6988 <144633320+dbtjgus6988@users.noreply.github.com>
Date: Wed, 1 Nov 2023 23:13:02 +0900
Subject: [PATCH 08/11] Update unit5.md
---
Unit5/unit5.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Unit5/unit5.md b/Unit5/unit5.md
index 9edd6d1..aac9915 100644
--- a/Unit5/unit5.md
+++ b/Unit5/unit5.md
@@ -1,4 +1,4 @@
-### ⭐️ 5주차 과제 제출 ⭐️
+### ⭐️ 5주차 과제 제출 ⭐️
## ❗️ 강의 수강 여부
수강한 강의에 체크표시 해주세요~
From 9fe3d2e44327a3f88301f5d735e73942141c50b3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=EA=B3=A0=EB=8B=A4=EC=9D=80?= <2021057301>
Date: Thu, 2 Nov 2023 11:48:42 +0900
Subject: [PATCH 09/11] feat: Add nodejs template
---
.DS_Store | Bin 0 -> 6148 bytes
server_nodejs_templete/.gitignore | 5 ++
server_nodejs_templete/README.md | 1 +
.../config/baseResponseStatus.js | 49 ++++++++++++++++++
server_nodejs_templete/config/database.js | 15 ++++++
server_nodejs_templete/config/express.js | 24 +++++++++
.../config/jwtMiddleware.js | 38 ++++++++++++++
server_nodejs_templete/config/response.js | 18 +++++++
server_nodejs_templete/config/secret.js | 5 ++
server_nodejs_templete/config/winston.js | 48 +++++++++++++++++
server_nodejs_templete/index.js | 6 +++
server_nodejs_templete/package.json | 30 +++++++++++
.../src/app/User/userController.js | 17 ++++++
.../src/app/User/userDao.js | 0
.../src/app/User/userProvider.js | 4 ++
.../src/app/User/userRoute.js | 8 +++
.../src/app/User/userService.js | 15 ++++++
17 files changed, 283 insertions(+)
create mode 100644 .DS_Store
create mode 100644 server_nodejs_templete/.gitignore
create mode 100644 server_nodejs_templete/README.md
create mode 100644 server_nodejs_templete/config/baseResponseStatus.js
create mode 100644 server_nodejs_templete/config/database.js
create mode 100644 server_nodejs_templete/config/express.js
create mode 100644 server_nodejs_templete/config/jwtMiddleware.js
create mode 100644 server_nodejs_templete/config/response.js
create mode 100644 server_nodejs_templete/config/secret.js
create mode 100644 server_nodejs_templete/config/winston.js
create mode 100644 server_nodejs_templete/index.js
create mode 100644 server_nodejs_templete/package.json
create mode 100644 server_nodejs_templete/src/app/User/userController.js
create mode 100644 server_nodejs_templete/src/app/User/userDao.js
create mode 100644 server_nodejs_templete/src/app/User/userProvider.js
create mode 100644 server_nodejs_templete/src/app/User/userRoute.js
create mode 100644 server_nodejs_templete/src/app/User/userService.js
diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..0b93d250db31d25fb8646e498b0a38c2d68f94ab
GIT binary patch
literal 6148
zcmeHK&1%~~5T3Q2TEYY@Xo8Omy&9^-CTYnu^vL9
z`$%C43n)NAvJ=gYe~|%NyF(~}R&K4!cKuTLf_~}sz0AAwTrbkr*SIdP<6Om<_btB8
zv$FF2@1oP~?LFx`eP`f&3_q(ntfFdF&Z6aes=ZMvk6Sy6-)3pO7(P8$MHOX5y3`3-
zl48h*cUh6BdZt!IQtI5$G&ru~E{3DcX6m1g<>bX=JC>W5$NpGOCnwvj>l{3Le)f8C
znO_y^#t<#=pVYE%v4vYS{%FqYa9QN4_=I_FpKV`^%m6dM3_L~#>|W*!9^=RJH!}mw
zz+Yv6_6Lbd7+7o!>a7C{x;|2SkB|gydP@*Wi-E<)Ahw_glZt3kg?(ZOla79A;{uC~
zL6Z(bkBt4;k%fJs2t7Lbr49!X803-}U {
+ // read the token from header or url
+ const token = req.headers['x-access-token'] || req.query.token;
+ // token does not exist
+ if(!token) {
+ return res.send(errResponse(baseResponse.TOKEN_EMPTY))
+ }
+
+ // create a promise that decodes the token
+ const p = new Promise(
+ (resolve, reject) => {
+ jwt.verify(token, secret_config.jwtsecret , (err, verifiedToken) => {
+ if(err) reject(err);
+ resolve(verifiedToken)
+ })
+ }
+ );
+
+ // if it has failed to verify, it will return an error message
+ const onError = (error) => {
+ return res.send(errResponse(baseResponse.TOKEN_VERIFICATION_FAILURE))
+ };
+ // process the promise
+ p.then((verifiedToken)=>{
+ //비밀 번호 바뀌었을 때 검증 부분 추가 할 곳
+ req.verifiedToken = verifiedToken;
+ next();
+ }).catch(onError)
+};
+
+module.exports = jwtMiddleware;
\ No newline at end of file
diff --git a/server_nodejs_templete/config/response.js b/server_nodejs_templete/config/response.js
new file mode 100644
index 0000000..8992a22
--- /dev/null
+++ b/server_nodejs_templete/config/response.js
@@ -0,0 +1,18 @@
+const response = ({isSuccess, code, message}, result) => {
+ return {
+ isSuccess: isSuccess,
+ code: code,
+ message: message,
+ result: result
+ }
+ };
+
+ const errResponse = ({isSuccess, code, message}) => {
+ return {
+ isSuccess: isSuccess,
+ code: code,
+ message: message
+ }
+ };
+
+ module.exports = { response, errResponse };
\ No newline at end of file
diff --git a/server_nodejs_templete/config/secret.js b/server_nodejs_templete/config/secret.js
new file mode 100644
index 0000000..bef208e
--- /dev/null
+++ b/server_nodejs_templete/config/secret.js
@@ -0,0 +1,5 @@
+// 해당 KEY 값들을 꼭 바꿔서 사용하기!
+// 반드시 .gitignore에 추가하기!
+module.exports = {
+ 'jwtsecret' : '',
+};
\ No newline at end of file
diff --git a/server_nodejs_templete/config/winston.js b/server_nodejs_templete/config/winston.js
new file mode 100644
index 0000000..c01031e
--- /dev/null
+++ b/server_nodejs_templete/config/winston.js
@@ -0,0 +1,48 @@
+const { createLogger, format, transports } = require('winston');
+require('winston-daily-rotate-file');
+const fs = require('fs');
+
+const env = process.env.NODE_ENV || 'development';
+const logDir = 'log';
+
+// Javascript winston logger 이용하기
+// https://lovemewithoutall.github.io/it/winston-example/
+// Create the log directory if it does not exist
+if (!fs.existsSync(logDir)) {
+ fs.mkdirSync(logDir)
+}
+
+const dailyRotateFileTransport = new transports.DailyRotateFile({
+ level: 'debug',
+ filename: `${logDir}/%DATE%-smart-push.log`,
+ datePattern: 'YYYY-MM-DD',
+ zippedArchive: true,
+ maxSize: '20m',
+ maxFiles: '14d'
+});
+
+const logger = createLogger({
+ level: env === 'development' ? 'debug' : 'info',
+ format: format.combine(
+ format.timestamp({
+ format: 'YYYY-MM-DD HH:mm:ss'
+ }),
+ format.json()
+ ),
+ transports: [
+ new transports.Console({
+ level: 'info',
+ format: format.combine(
+ format.colorize(),
+ format.printf(
+ info => `${info.timestamp} ${info.level}: ${info.message}`
+ )
+ )
+ }),
+ dailyRotateFileTransport
+ ]
+});
+
+module.exports = {
+ logger: logger
+};
\ No newline at end of file
diff --git a/server_nodejs_templete/index.js b/server_nodejs_templete/index.js
new file mode 100644
index 0000000..3f8c580
--- /dev/null
+++ b/server_nodejs_templete/index.js
@@ -0,0 +1,6 @@
+const express = require('./config/express');
+const {logger} = require('./config/winston');
+
+const port = 3000;
+express().listen(port);
+logger.info(`${process.env.NODE_ENV} - API Server Start At Port ${port}`);
\ No newline at end of file
diff --git a/server_nodejs_templete/package.json b/server_nodejs_templete/package.json
new file mode 100644
index 0000000..584eaba
--- /dev/null
+++ b/server_nodejs_templete/package.json
@@ -0,0 +1,30 @@
+{
+ "name": "api-server-node",
+ "version": "1.0.0",
+ "description": "Node.js API Server",
+ "main": "index.js",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1",
+ "dev": "NODE_ENV=development node index.js",
+ "prod": "NODE_ENV=production node index.js"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git@gitlab.com:softsquared/template/api-server-node.git"
+ },
+ "author": "",
+ "license": "ISC",
+ "dependencies": {
+ "compression": "^1.7.4",
+ "cors": "^2.8.5",
+ "crypto": "^1.0.1",
+ "express": "^4.17.1",
+ "jsonwebtoken": "^8.5.1",
+ "method-override": "^3.0.0",
+ "mysql2": "^2.0.0",
+ "nodemon": "^2.0.7",
+ "regex-email": "^1.0.2",
+ "winston": "^3.2.1",
+ "winston-daily-rotate-file": "^4.2.1"
+ }
+}
diff --git a/server_nodejs_templete/src/app/User/userController.js b/server_nodejs_templete/src/app/User/userController.js
new file mode 100644
index 0000000..7c92afc
--- /dev/null
+++ b/server_nodejs_templete/src/app/User/userController.js
@@ -0,0 +1,17 @@
+const jwtMiddleware = require("../../../config/jwtMiddleware");
+const userProvider = require("../../app/User/userProvider");
+const userService = require("../../app/User/userService");
+const baseResponse = require("../../../config/baseResponseStatus");
+const {response, errResponse} = require("../../../config/response");
+
+const regexEmail = require("regex-email");
+const {emit} = require("nodemon");
+
+/**
+ * API No. 0
+ * API Name : 테스트 API
+ * [GET] /app/test
+ */
+ exports.getTest = async function (req, res) {
+ return res.send(response(baseResponse.SUCCESS))
+ };
\ No newline at end of file
diff --git a/server_nodejs_templete/src/app/User/userDao.js b/server_nodejs_templete/src/app/User/userDao.js
new file mode 100644
index 0000000..e69de29
diff --git a/server_nodejs_templete/src/app/User/userProvider.js b/server_nodejs_templete/src/app/User/userProvider.js
new file mode 100644
index 0000000..d510e3b
--- /dev/null
+++ b/server_nodejs_templete/src/app/User/userProvider.js
@@ -0,0 +1,4 @@
+const { pool } = require("../../../config/database");
+const { logger } = require("../../../config/winston");
+
+const userDao = require("./userDao");
diff --git a/server_nodejs_templete/src/app/User/userRoute.js b/server_nodejs_templete/src/app/User/userRoute.js
new file mode 100644
index 0000000..38f8d89
--- /dev/null
+++ b/server_nodejs_templete/src/app/User/userRoute.js
@@ -0,0 +1,8 @@
+module.exports = function(app){
+ const user = require('./userController');
+ const jwtMiddleware = require('../../../config/jwtMiddleware');
+
+ // 0. 테스트 API
+ app.get('/app/test', user.getTest)
+
+};
diff --git a/server_nodejs_templete/src/app/User/userService.js b/server_nodejs_templete/src/app/User/userService.js
new file mode 100644
index 0000000..a2a83fb
--- /dev/null
+++ b/server_nodejs_templete/src/app/User/userService.js
@@ -0,0 +1,15 @@
+const {logger} = require("../../../config/winston");
+const {pool} = require("../../../config/database");
+const secret_config = require("../../../config/secret");
+const userProvider = require("./userProvider");
+const userDao = require("./userDao");
+const baseResponse = require("../../../config/baseResponseStatus");
+const {response} = require("../../../config/response");
+const {errResponse} = require("../../../config/response");
+
+const jwt = require("jsonwebtoken");
+const crypto = require("crypto");
+const {connect} = require("http2");
+
+// Service: Create, Update, Delete 비즈니스 로직 처리
+
From bdfaac94d76aa3ab35e7a04fa88cb2cf43be6845 Mon Sep 17 00:00:00 2001
From: dbtjgus6988 <144633320+dbtjgus6988@users.noreply.github.com>
Date: Thu, 2 Nov 2023 17:00:50 +0900
Subject: [PATCH 10/11] Update unit5.md
---
Unit5/unit5.md | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/Unit5/unit5.md b/Unit5/unit5.md
index aac9915..6965f22 100644
--- a/Unit5/unit5.md
+++ b/Unit5/unit5.md
@@ -21,6 +21,8 @@
(완료된 내용 켬쳐본 올리기)
+ https://velog.io/@xxoznge/RDS-ERD-export-%EC%A0%81%EC%9A%A9-%EC%BF%BC%EB%A6%AC-%EC%9E%91%EC%84%B1
+
2. 데이터그립을 통해서 RDS에 접근하기
@@ -33,12 +35,16 @@
(완료된 내용 켬쳐본 올리기)
+https://velog.io/@msung99/Server-5%EC%A3%BC%EC%B0%A8-%EC%8B%A4%EC%8A%B5
+
4. RDS에 더미데이터 반영하기
(완료된 내용 켬쳐본 올리기)
+ https://velog.io/@leesomyoung/MySQL-%ED%94%84%EB%A1%9C%EC%8B%9C%EC%A0%80%EB%A1%9C-%EB%8D%94%EB%AF%B8%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%82%BD%EC%9E%85%ED%95%98%EA%B8%B0
+
From 918045e987b76e01858a9efd6390f2e7f15d129d Mon Sep 17 00:00:00 2001
From: Seohyeon Yoo <144633320+dbtjgus6988@users.noreply.github.com>
Date: Fri, 26 Apr 2024 15:37:37 +0900
Subject: [PATCH 11/11] Update README.md
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 576218b..7353a8b 100644
--- a/README.md
+++ b/README.md
@@ -17,7 +17,7 @@
고다은
# General
-A, B, C, ...
+유서현, ...
```