Web Programming Application 2023
한국교통대학교, 충주 | KNUT (Korea National University of Transportation)
This Week / 14주차 6월9일
14. Unit 5: 24 User Authentication with Passport.js / Passport.js으로 사용자 인증
This week we will use Passport.js to do user authentication. We will add a login and logout button, and add a loggedIn
status to the navbar. This means we will need to remove bcrypt
and some other functionality.
이번 주에는 Passport.js를 사용하여 사용자 인증을 수행합니다. 로그인 및 로그아웃 버튼을 추가하고 네비게이션 바에 loggedIn
상태를 추가합니다. 이것은 bcrypt
및 일부 다른 기능을 제거해야 함을 의미합니다.
Assignment / 과제
See the List of Assignments for specifics about grading. 과제의 세부 사항은 과제 목록을 참조하십시오.
Resources / 리소스
- PPT Unit 5: 24 User Authentication with Passport.js / Passport.js으로 사용자 인증
- PPT Capstone 5. User Authentication / 사용자 인증
As the last step in your final project, use the Capstone 5 PPT to add User Authentication.
마지막 단계로 최종 프로젝트에서 사용자 인증을 추가하십시오.
Required Reading / 필수 독서
- Get Programming with Node.js
- pp. 349-360 (Lesson 24: 사용자 인증 추가)
- pp. 361-374 (Lesson 25: 캡스톤 프로젝트5: 사용자 인증 추가)
Recommended reading / 추천 독서
- Node.js 교과서
- pp. 443-461 (9.3: Passport 모듈로 로그인 구현하기)
Course Topics / 과정 화제
Week | Date | Unit | 화제 | Topic |
---|---|---|---|---|
1 | 3/3 | – | 수업 소개 | Overview and introduction to class |
2 | 3/10 | 0 | 깃허브 클래스룸과 웹프로그래밍 복습 | GitHub Classroom & Web Programming Review |
3 | 3/17 | 1 | 노드 웹서버 첫 걸음 | Node Webserver First Steps |
4 | 3/24 | 1 | 캡스톤1: 첫 웹 앱 | Capstone 1: First Web App |
5 | 3/31 | 1 | 캡스톤1: 연속 (부트스트랩 사용) | Capstone 1: Continued (with Bootstrap) |
6 | 4/7 | 2 | Express를 통한 웹 개발 | Express Webserver |
7 | 4/14 | 3 | MongoDB 연결 | Connecting MongoDB |
8 | 4/21 | – | 중간고사: 캡스톤2 | Midterm Exam: Capstone 2 |
9 | 4/28 | 3 | MongoDB 연결 + 캡스톤3: MongoDB 추가 | Connecting MongoDB + Capstone 3 |
– | 5/5 | – | 공휴일: 어린이날 | HOLIDAY: Children’s Day |
10 | 5/12 | 4 | 사용자 데이터 모델 | User Data Models |
11 | 5/19 | 4 | 캡스톤4: CRUD (생성, 조회, 수정, 삭제) | Capstone 4: CRUD (Create, Read, Update, Delete) |
12 | 5/26 | 5 | 사용자 인증 | User Authentication |
13 | 6/2 | 5 | 캡스톤5: 사용자 인증 추가 | Capstone 5: Adding User Authentication |
14 | 6/9 | 6 | API 추가 (+ 캡스톤6?) | Adding an API (+ Capstone 6?) |
15 | 6/16 | – | 최종 프로젝트 + 기말고사 | Final Projects + Final Exam |
Previous Weeks / 이전 주차
Week 1 / 1주차 3월3일
1. Orientation and introduction to class / 오리엔테이션 및 수업 소개
We will use this session to get to know the range of interests and experience students bring to the class, as well as to survey the topics to be covered. We will discuss class goals, grading, the textbook, and get to know the instructor.
우리는 이 세션을 통해 학생들이 수업에 가져오는 관심사와 경험의 범위를 파악하고 다룰 주제를 조사할 것입니다. 우리는 수업 목표, 채점, 교과서에 대해 논의하고 강사를 알게 될 것입니다.
Resources / 리소스
Recommended reading / 추천 독서
↑ Schedule / 일정 다시 가기
Week 2 / 2주차 3월10일
2. GitHub Classroom & Web Programming Review / 깃허브 클래스룸과 웹프로그래밍 복습
This week will introduce GitHub Classroom and how to submit assignments. We will then install the programs we will need to use in this class. We will also do a web programming review, including building a simple, responsive, website menu with HTML, CSS, and JavaScript. Finally, we’ll write a few simple scripts and run them in Node.
이번 주에는 GitHub 클래스룸과 과제 제출 방법을 소개합니다. 그런 다음 이 수업에서 사용할 프로그램을 설치합니다. 또한 웹프로그래밍 복습을 수행하고 HTML, CSS, 및 JavaScript를 사용하여 간단하고 반응 가능 웹사이트 메뉴를 만들 것입니다. 마지막으로 몇 가지 간단한 스크립트를 작성하고 Node.js에서 실행할 것입니다.
Assignment / 과제
책에서 다음 코드 연습을 완료하십시오. 그런 다음 다시 GitHub 클래스룸으로 “커밋 및 푸시” 하십시오.
messages.js
numbers.js
print.js
Resources / 리소스
- PollEv 설문
- Google 설문
- PPT *1. Git & GitHub Classroom / 깃과 깃허브 클래스룸
- PPT *2. Web Programming Review / 웹프로그래밍 복습
Required Reading / 필수 독서
- Get Programming with Node.js
- pp. 25-33 (들어가며)
- pp. 47-57 (Lesson 1: 환경설정)
- pp. 59-68 (Lesson 2: Node.js 애플리케이션 실행)
Recommended reading / 추천 독서
- Node.js 교과서
- pp. 23-64 (1장: 노드 시작하기)
- pp. 66-92 (2장: 알아둬야 할 자바스크립트)
- pp. 94-178 (3장: 노드 기능 알아보기)
- Heropy HTML + CSS 튜토리럴
- Dev.to JavaScript 메뉴 튜토리럴
↑ Schedule / 일정 다시 가기
Week 3 / 3주차 3월17일
3. Node Webserver First Steps / 노드 웹서버 첫 걸음
This week we take a look at some of the major problems and mistakes from last week and how to fix them. We will have a brief introduction to what Node is, how it works, and why it’s important. Finally, we’ll get to work on creating a web server and simple website in Node.js.
이번 주에는 지난주의 주요 문제와 실수를 살펴보고 이를 수정하는 방법을 알아봅시다. Node.js가 무엇인지, 어떻게 작동하는지, 왜 중요한지에 대해 간략하게 소개하겠습니다. 마지막으로 Node.js에서 웹 서버와 간단한 웹 사이트를 만드는 작업을 시작합니다.
Assignment / 과제
책에서 다음 코드 연습을 완료하십시오. 그런 다음 다시 GitHub 클래스룸으로 “커밋 및 푸시” 하십시오.
/practice/lesson-5/listing.5.4.EX.js
/practice/lesson-5/listing.5.6.TODO.js
Resources / 리소스
- PPT *3. Assignment Problems & Solutions / 과제 문제와 해결
- PPT *4. Understanding Node.js / Node.js의 이해
- PPT Unit 1. Starting Node.js / Node.js의 시작
Required Reading / 필수 독서
- Get Programming with Node.js
- pp. 37-46 (Lesson 0: Node.js 설정과 JavaScript 엔진 설치)
- pp. 67-78 (Lesson 3: Node.js 모듈 생성)
- pp. 79-88 (Lesson 4: Node.js에서 웹 서버 만들기)
- pp. 89-100 (Lesson 5: 수신 데이터 다루기)
- pp. 101-116 (Lesson 6: 라우트와 외부 파일)
Recommended reading / 추천 독서
- Node.js 교과서
- pp. 179-216 (4장: http 모듈로 서버 만들기)
- pp. 217-240 (5장: 패키지 매니저)
- Node.js란 무엇인가?
- Node.js란…?
↑ Schedule / 일정 다시 가기
Week 4 / 4주차 3월24일
4. Capstone 1: First Web Application / 캡스톤 1: 첫 번째 웹 애플리케이션
This week we will finish Lesson 6 in dealing with routes and external files. Then we will build our first full web application in Lesson 7 with our first Capstone Project.
이번 주에 우리는 라우트와 외부 파일을 다루는 6과를 끝낼 것입니다. 그런 다음에 첫 번째 캡스톤 프로젝트를 사용하여 7과에서 첫 번째 웹 애플리케이션을 만듭니다.
Assignment / 과제
책에서 다음 코드 연습을 완료하십시오. 그런 다음 다시 GitHub 클래스룸으로 “커밋 및 푸시” 하십시오.
- 지난주의 저장소 (학습)
/practice/lesson-6/listing.6.4.EX.js
/practice/lesson-6/listing.6.6.TODO.js
/practice/lesson-6/listing.6.6.TODO.js
- 이 번주의 저장소 (과제)
- 프로젝트 readme.md의 지침을 따르고 완성된 웹 애플리케이션을 GitHub 클래스룸으로 “커밋 및 푸시” 하십시오.
Resources / 리소스
- PPT Unit 1. Starting Node.js / Node.js의 시작
- PPT Unit 1-7. Capstone 1: First Web Application / 캡스톤1: 첫 웹 애플리케이션
- Bootstrap CSS
- Tailwind CSS (다른 CSS 프레임워크) • Tailwind Elements (컴포넌트 예시)
- Pixabay.com (저작권 없는 이미지)
Required Reading / 필수 독서
- Get Programming with Node.js
- pp. 101-116 (Lesson 6: 라우트와 외부 파일)
- pp. 117-129 (Lesson 7: 캡스톤 프로젝트: 첫 번째 웹 애플리케이션)
Recommended reading / 추천 독서
- Node.js 교과서
- pp. 179-216 (4장: http 모듈로 서버 만들기)
- pp. 217-240 (5장: 패키지 매니저)
↑ Schedule / 일정 다시 가기
Week 5 / 5주차 3월31일
5. Capstone 1: Continued (with Bootstrap) / 캡스톤 1: 연속 (부트스트랩 사용)
This week will include more in-class coding time. We will continue working on our first Capstone Project, adding Bootstrap to our web application. We will build a simple index.html
page together with Bootstrap and students will add their own pages to the project.
이번 주에는 수업 중 더 많은 코딩 시간이 포함될 것입니다. 우리는 웹 응용 프로그램에 부트스트랩을 추가하여 첫 번째 캡스톤 프로젝트를 계속 작업할 것입니다. 우리는 간단한 index.html
페이지를 부트스트랩과 함께 만들고 학생들은 자신의 페이지를 프로젝트에 추가할 것입니다.
Assignment / 과제
- 이 번주의 저장소 (과제)
- 프로젝트 readme.md의 지침을 따르고 완성된 웹 애플리케이션을 GitHub 클래스룸으로 “커밋 및 푸시” 하십시오.
Resources / 리소스
- PPT Unit 1-7. Capstone 1: First Web Application / 캡스톤1: 첫 웹 애플리케이션
- PPT Unit 1-7b. Capstone 1 (with Bootstrap) / 캡스톤 1 하고 부트스트랩 포함
- Heropy 튜토리얼
- Bootstrap CSS (한국어)
- Pixabay.com (저작권 없는 이미지)
- 2주차 과제의 readme.md
- 4주차 과제의 readme.md
Required Reading / 필수 독서
- Get Programming with Node.js
- pp. 117-129 (Lesson 7: 캡스톤 프로젝트: 첫 번째 웹 애플리케이션)
Recommended reading / 추천 독서
↑ Schedule / 일정 다시 가기
Week 6 / 6주차 4월7일
6. Unit 2: Web Development with Express.js / Express.js를 통한 웹 개발
Let’s change things up a little bit this week. We will be learning about Express.js, a popular web framework for Node.js. It makes it easier to build web applications and APIs. We will also learn about the EJS template engine, which is used to generate HTML, and middleware, which is code that runs between the request and the response.
이번 주에는 조금 다른 것을 배워보겠습니다. 우리는 Express.js를 배울 것입니다. 이것은 Node.js의 인기있는 웹 프레임워크입니다. 웹 응용 프로그램과 API를 더 쉽게 만들 수 있습니다. 우리는 또한 HTML을 생성하기 위해 사용되는 EJS 템플릿 엔진과 요청과 응답 사이에 실행되는 코드인 미들웨어에 대해 배울 것입니다.
Assignment / 과제
See the List of Assignments for specifics about grading. 과제의 세부 사항은 과제 목록을 참조하십시오.
Resources / 리소스
- PPT Unit 2: 8-11. Web Development with Express.js / Express.js를 통한 웹 개발
- Express.js
- Express 미들웨어
- EJS 템플릿 엔진
Required Reading / 필수 독서
- Get Programming with Node.js
- pp. 133-141 (Lesson 8: Express.js 설정)
- pp. 143-154 (Lesson 9: Express.js에서의 라우트)
- pp. 155-164 (Lesson 10: 뷰와 템플릿의 연결)
- pp. 165-171 (Lesson 11: 설정과 에러 처리)
Recommended reading / 추천 독서
- Node.js 교과서
- pp. 241-290 (6장: 익스프레스 웹 서버 만들기)
↑ Schedule / 일정 다시 가기
Week 7 / 7주차 4월14일
7. Unit 3: Connecting to MongoDB / MongoDB에 연결
It’s time to start working with a database where we can store our data. We will be using MongoDB, a popular NoSQL database. We will also be using Mongoose, an Object Data Modeling (ODM) library for MongoDB and Node.js. This week we will also be going over the Midterm Study Guide.
데이터를 저장할 수 있는 데이터베이스를 사용하여 작업을 시작할 시간입니다. 우리는 인기있는 NoSQL 데이터베이스인 MongoDB를 사용할 것입니다. 우리는 또한 MongoDB와 Node.js를 위한 객체 데이터 모델링 (ODM) 라이브러리인 Mongoose를 사용할 것입니다. 이번 주에는 중간고사 스터디 가이드도 다룰 것입니다.
Assignment / 과제
See the List of Assignments for specifics about grading. 과제의 세부 사항은 과제 목록을 참조하십시오.
Resources / 리소스
- PPT Unit 3: 13-16. Connecting to MongdoDB / MongoDB에 연결
- Midterm Study Guide / 중간고사 스터디 가이드
- MongoDB
- MongoDB Shell
- Mongoose
- Mongoose Schema
- How to Install MongoDB on Windows (사진)
- Windows에서 Chocolatey를 사용하여 MongoDB 설치
Required Reading / 필수 독서
- Get Programming with Node.js
- pp. 189-202 (Lesson 13: MongoDB 셋업)
- pp. 203-211 (Lesson 14: Mongoose를 사용한 모델 제작)
- pp. 213-226 (Lesson 15: 컨트롤러와 모델과의 연결)
Recommended reading / 추천 독서
- Node.js 교과서
- pp. 241-415 (8장: 몽고디비)
↑ Schedule / 일정 다시 가기
Week 8 / 8주차 4월21일
8. Midterm Test / 중간고사
The midterm test consists of 2 parts. / 중간고사는 2가지 부분으로 이루어집니다.
- Online Quiz / 온라인 퀴즈 (Study Guide / 스터디 가이드)
- Capstone Project / 캡스톤 실기 시험
This test is OPEN BOOK. You may use any resources you want, including the Internet, books, notes, etc. You may not communicate with other students or use any other resources during the test.
이 시험은 OPEN BOOK입니다. 인터넷, 책, 노트 등을 포함한 모든 자료를 사용할 수 있습니다. 시험 중에 다른 학생과 통신하거나 다른 자료를 사용할 수 없습니다.
This midterm project, together with the online quiz, will be worth 15% of your final grade.
이 중간 프로젝트는 온라인 퀴즈와 함께 최종 성적의 15% 를 차지합니다.
Test / 시험
- Quiz: Node.js Google Forms / Node.js 구글 폼 퀴즈: 5%
- Capstone: Lesson 12 / 12과 캡스톤 실기 시험: 10%
- TOTAL / 총점: 15%
Resources / 리소스
- PPT Unit 2: Capstone: Enhance your site with Express / 캡스톤: 익스프레스로 사이트 개선하기
- Midterm Study Guide / 중간고사 스터디 가이드
Required Reading / 필수 독서
- Get Programming with Node.js
- pp. 189-202 (Lesson 12: 캡스톤 프로젝트: Express.js를 통한 사이트 개선)
Recommended reading / 추천 독서
- Node.js 교과서
- pp. 241-290 (6장: 익스프레스 웹 서버 만들기)
↑ Schedule / 일정 다시 가기
Week 9 / 9주차 4월28일
9. Unit 3: Continuing MongoDB + Capstone / MongoDB 계속하기 + 캡스톤
First, we will be going over the Midterm Test solution. After that, we will continue with MongoDB and Mongoose. We will also be starting the Capstone project, which will be due in 2 weeks (on May 12, 2023).
먼저 중간고사 해설을 진행합니다. 그 후에는 MongoDB와 Mongoose를 계속 진행합니다. 또한 2주 후에 (2023년 5월 12일) 제출할 캡스톤 프로젝트를 시작합니다.
Assignment / 과제
See the List of Assignments for specifics about grading. 과제의 세부 사항은 과제 목록을 참조하십시오.
Resources / 리소스
- PPT M. Midterm Test Solution / 중간고사 해설
- PPT Unit 3: 13-15. Connecting to MongdoDB / MongoDB에 연결
- PPT Unit 3: 16. MongdoDB Capstone / MongoDB 캡스톤
Required Reading / 필수 독서
- Get Programming with Node.js
- pp. 189-202 (Lesson 13: MongoDB 셋업)
- pp. 203-211 (Lesson 14: Mongoose를 사용한 모델 제작)
- pp. 213-226 (Lesson 15: 컨트롤러와 모델과의 연결)
- pp. 227-235 (Lesson 16: 캡스톤: 사용자 구독 저장)
Recommended reading / 추천 독서
- Node.js 교과서
- pp. 241-415 (8장: 몽고디비)
↑ Schedule / 일정 다시 가기
Week 10 / 10주차 5월12일
10. Unit 4: Building a User Model / 사용자 모델 제작
This week we will begin building our User and Course model-view-controllers. First we add some validation to our models, then we add CRUD methods to our controllers. Finally, we will add our new routes to our application.
이번 주에는 사용자와 코스 모델-뷰-컨트롤러를 제작하기 시작합니다. 먼저 모델에 일부 유효성 검사를 추가한 다음 컨트롤러에 CRUD 메서드를 추가합니다. 마지막으로 새로운 라우트를 애플리케이션에 추가합니다.
Assignment / 과제
See the List of Assignments for specifics about grading. 과제의 세부 사항은 과제 목록을 참조하십시오.
Resources / 리소스
Required Reading / 필수 독서
- Get Programming with Node.js
- pp. 239-256 (Lesson 17: 데이터 모델의 개선)
- pp. 257-273 (Lesson 18: 사용자 모델의 구현)
Recommended reading / 추천 독서
- Node.js 교과서
- pp. 387-396 (8.5: CRUD 작업하기)
- pp. 397-415 (8.6: 몽구스 사용하기)
- pp. 415-416 (8.7: 함께 보면 좋은 자료)
↑ Schedule / 일정 다시 가기
Week 11 / 11주차 5월19일
11. Unit 4: CRUD Operations / CRUD 작업
This week we will build out the rest of our CRUD operations for our User model. We will also add some additional validation to our model and add some additional routes to our application. Then we will talk about our Final Project and you will have time to work on it.
이번 주에는 사용자 모델의 CRUD 작업을 완성합니다. 또한 모델에 추가적인 유효성 검사를 추가하고 애플리케이션에 추가적인 라우트를 추가합니다. 그런 다음 최종 프로젝트에 대해 이야기하고 작업할 시간을 드립니다.
Assignment / 과제
This week’s assignment is continuing Week 10’s assignment. 이번 주의 과제는 10주차 과제를 계속하는 것입니다.
See the List of Assignments for specifics about grading. 과제의 세부 사항은 과제 목록을 참조하십시오.
Resources / 리소스
Required Reading / 필수 독서
- Get Programming with Node.js
- pp. 275-287 (Lesson 19: 모델의 생성과 읽기)
- pp. 289-300 (Lesson 20: 모델의 업데이트와 삭제)
Recommended reading / 추천 독서
- Node.js 교과서
- pp. 387-396 (8.5: CRUD 작업하기)
- pp. 397-415 (8.6: 몽구스 사용하기)
- pp. 415-416 (8.7: 함께 보면 좋은 자료)
↑ Schedule / 일정 다시 가기
Week 12 / 12주차 5월26일
12. Unit 5: 22 Flash Messaging / 플래시 메시지
This week we will add flash messages.
이번 주에는 플래시 메시지를 추가합니다.
Assignment / 과제
See the List of Assignments for specifics about grading. 과제의 세부 사항은 과제 목록을 참조하십시오.
Resources / 리소스
Required Reading / 필수 독서
- Get Programming with Node.js
- pp. 323-332 (Lesson 22: 세션과 플래시 메시지의 추가)
Recommended reading / 추천 독서
↑ Schedule / 일정 다시 가기
Week 13 / 13주차 6월2일
13. Unit 5: 23 Password Hashing / 패스워드 해싱
This week we will add password hashing with bcrypt
.
이번 주에는 bcrypt
를 사용하여 패스워드 해싱을 추가합니다.
Assignment / 과제
This week’s assignment is continuing Week 12’s assignment. 이번 주의 과제는 12주차 과제를 계속하는 것입니다.
See the List of Assignments for specifics about grading. 과제의 세부 사항은 과제 목록을 참조하십시오.
Resources / 리소스
Required Reading / 필수 독서
- Get Programming with Node.js
- pp. 333-348 (Lesson 23: 사용자 로그인 폼 생성과 패스워드 해시)
Recommended reading / 추천 독서
↑ Schedule / 일정 다시 가기
Week 14 / 14주차 6월9일
14. Unit 5: 24 User Authentication with Passport.js / Passport.js으로 사용자 인증
This week we will use Passport.js to do user authentication. We will add a login and logout button, and add a loggedIn
status to the navbar. This means we will need to remove bcrypt
and some other functionality.
이번 주에는 Passport.js를 사용하여 사용자 인증을 수행합니다. 로그인 및 로그아웃 버튼을 추가하고 네비게이션 바에 loggedIn
상태를 추가합니다. 이것은 bcrypt
및 일부 다른 기능을 제거해야 함을 의미합니다.
Assignment / 과제
See the List of Assignments for specifics about grading. 과제의 세부 사항은 과제 목록을 참조하십시오.
Resources / 리소스
- PPT Unit 5: 24 User Authentication with Passport.js / Passport.js으로 사용자 인증
- PPT Capstone 5. User Authentication / 사용자 인증
As the last step in your final project, use the Capstone 5 PPT to add User Authentication.
마지막 단계로 최종 프로젝트에서 사용자 인증을 추가하십시오.
Required Reading / 필수 독서
- Get Programming with Node.js
- pp. 349-360 (Lesson 24: 사용자 인증 추가)
- pp. 361-374 (Lesson 25: 캡스톤 프로젝트5: 사용자 인증 추가)
Recommended reading / 추천 독서
- Node.js 교과서
- pp. 443-461 (9.3: Passport 모듈로 로그인 구현하기)