259122 • 2024년 1학기 • 교통대학교
Date | Lecture | Content | Logistics | |
---|---|---|---|---|
3/6 | | Week #1: Unit 0. 시작하기 / Getting Set up - 수업 소개 - Node.JS 소개
| [ 과제 am ] [ 과제 pm ] | |
3/13 | [ slides2 ] | Week #2: Unit 0. 시작하기 / Getting Set up - Lesson 0. Node.js의 설정과 JavaScript 엔진 설치 / Setting up Node.js and the JavaScript engine - Lesson 1. 환경설정 / Configuring your environment - Lesson 2. Node.js 애플리케이션 실행 / Running a Node.js application
| [ 과제 am ] [ 과제 pm ] | |
3/20 | | Week #3: Unit 1. Node.js의 시작 / Getting started with Node.js - Lesson 3. Node.js 모듈의 생성 / Creating a Node.js module - Lesson 4. Node.js에서 웹 서버 만들기 / Building a simple web server in Node.js - Lesson 5. 수신 데이터 다루기 / Handling incoming data
| [ 과제 am ] [ 과제 pm ] | |
3/27 | | Week #4: Unit 1. Node.js의 시작 / Getting started with Node.js - Lesson 6. 라우트와 외부 파일 / Writing better routes and serving external files - Lesson 7. 캡스톤 프로젝트: 첫 번째 웹 애플리케이션 만들기 / Capstone: Creating your first web application
| [ 과제 am ] [ 과제 pm ] | |
4/3 | | Week #5: Unit 2. Express.js를 통한 웹 개발 / Easier web development with Express.js - Lesson 8. Express.js의 설정 / Setting up an app with Express.js - Lesson 9. Express.js에서의 라우트 / Routing in Express.js
| [ 과제 am ] [ 과제 pm ] | |
4/10 | [ slides ] | Week #6: No Class Election | ||
4/17 | | Week #7: Unit 2. Express.js를 통한 웹 개발 / Easier web development with Express.js - Lesson 10 뷰와 템플릿의 연결 / Connecting views with templates - Lesson 11. 설정과 에러 처리 / Configurations and error handling - Lesson 12. 캡스톤 프로젝트: Express.js를 통한 Confetti Cuisine 사이트 개선 / Capstone: Enhancing the Confetti Cuisine site with Express.js
| [ 과제 am ] [ 과제 pm ] | |
4/24 | Midterm Test | |||
5/1 | | Week #8: Unit 3. 데이터베이스 연결 / Connecting to a database - Lesson 13. 몽고DB 데이터베이스 셋업 / Setting up a MongoDB database - Lesson 14. Mongoose를 사용한 모델 제작 / Building models with Mongoose - Lesson 15. 컨트롤러와 모델과의 연결 / Connecting controllers and models - Lesson 16. 캡스톤: 사용자 구독 저장 / Capstone: Saving user subscriptions
| [ 과제 am ] [ 과제 pm ] | |
5/8 | | Week #9: Unit 3. 데이터베이스 연결 / Connecting to a database - Lesson 15. 컨트롤러와 모델과의 연결 / Connecting controllers and models - Lesson 16. 캡스톤: 사용자 구독 저장 / Capstone: Saving user subscriptions
| [ 과제 am ] [ 과제 pm ] | |
5/15 | [ slides ] | Week #10: No Class Buddha's Birthday | ||
5/22 | | Week #11: Unit 4. 사용자 모델 제작 / Building a User model - Lesson 17. 데이터 모델의 개선 / Improving your data models - Lesson 18. 사용자 모델의 구현 / Building the user model
| [ 과제 am ] [ 과제 pm ] | |
5/29 | | Week #12: Unit 4. 사용자 모델 제작 / Building a User model - Lesson 19. 모델의 생성과 읽기 / Creating and reading your models - Lesson 20. 모델의 업데이트와 삭제 / Updating and deleting your models - Lesson 21. 캡스톤 프로젝트: Confetti Cusine에 CRUD 모델 추가 / Capstone: Adding CRUD models to Confetti Cuisine
| [ 과제 am ] [ 과제 pm ] | |
6/5 | [ slides ] | Week #13: No Class School Birthday! | ||
6/12 (대면 보강) | | Week #14: Unit 5. 사용자 계정 인증 / Authenticating User accounts - Lesson 22. 세션과 플래시 메시지의 추가 / Adding sessions and flash messages - Lesson 23. 사용자 로그인 폼 생성과 패스워드 해시 / Building a user login and hashing passwords - Lesson 24. 사용자 인증 추가 / Adding user authentication
| [ 과제 am ] [ 과제 pm ] | |
6/11 (LMS) | | Week #15: Unit 6. API 빌드 / Building an API - Lesson 26. 애플리케이션에 API 추가 / Adding an API to your application - Lesson 27. 애플리케이션에서 API 액세스 / Accessing your API from your application - Lesson 28. API 보안 / Adding API security - Lesson 29. 캡스톤 프로젝트: API 구현 / Capstone: Implementing an API
| [ 과제 am ] [ 과제 pm ] | |
6/14 (LMS) | | Week #16: Unit 7. 채팅 기능 추가 / Adding Chat functionality - Lesson 30. socket.io로의 작업 / Working with Socket.io - Lesson 31. 채팅 메시지의 저장 / Saving chat messages - Lesson 32. 채팅 알림 표시 추가 / Adding a chat notification indicator - Lesson 33. 캡스톤 프로젝트: Confetti Cuisine에 채팅 기능 추가 / Capstone: adding a chat feature to Confetti Cuisine
| [ 과제 am ] [ 과제 pm ] | |
6/19 | Final Test 오후 퀴즈 오후 실기 |
Node.js는 Javascript로 웹 서버를 만들 수 있으며, npm을 통해 다양한 미리 만들어진 패키지를 사용할 수 있습니다. 이 수업은 책에 나열된 5개의 프로그래밍 프로젝트를 따르며, 수업이 끝난 후 최종 프로젝트를 수행하도록 합니다.
주제로는 웹 개발 프로세스, 보안, 데이터베이스 관리 (Mongoose), 사용자 계정 인증 등이 포함됩니다. 비동기 코드 디버깅, 데이터 모델 및 Javascript 모듈에 대해서도 배우게 됩니다.
Node.js is used to build web servers in Javascript, and there are numerous pre-built packages available through npm. This class follows 5 programming projects listed in the book and requires students to work on a final project at the end of the class.
Topics such as the web development process, security, database management (Mongoose), and user account authentication are covered. You will also learn about debugging asynchronous code, data models, and Javascript modules.
학생들은 Node.js 및 Express를 사용하여 웹 서버 및 웹 사이트에서 CRUD 기능을 배우고, 채팅 및 기타 상호 작용 기능을 구현하는 방법을 배우고, 국제 시대에 적합한 영어 표현을 배우게 됩니다.
이 수업은 2시간 간격의 강의 (중간에 휴식)로 제공되며, 제공된 스타터 코드를 사용하여 강사가 지도하는 연습 문제를 통해 학생들이 수업을 적용할 수 있도록 실습실 세션을 제공합니다.
이 수업은 다음과 같은 주제를 다룹니다.
Students will learn about CRUD functions in web servers and websites with Node.js and Express, learn to implement chatting and other interactive functions, and learn English expressions suitable for the international era.
The course will be delivered as a series of 2-hour lectures (with a break in the middle), followed by Practice Lab sessions where students will apply the lessons in a series of instructor-guided exercises using the provided starter code as part of the exercises.
The course will cover the following topics.
| |
|
시간이 지나도 변하지 않고 컴퓨팅 세계의 기반을 강화하는 데 도움이 되는 전문적이고 안전하며 이식 가능한 C 코드를 작성하는 방법을 알아본다.
Students will learn how to write professional, safe, and portable C code that doesn’t change over time and helps strengthen the foundations of the world of computing.
Most of my courses are graded based on the following components. Please note that the weights of each component may vary depending on the course. The grading policy will be announced in the first class and will be available on the course website.
대부분의 강의는 다음 구성요소에 따라 평가됩니다. 각 구성요소의 가중치는 강의에 따라 다를 수 있습니다. 평가 방법은 첫 강의에서 발표되며 강의 웹사이트에서 확인할 수 있습니다.
This may be the most important part of the class. Please pay careful attention to the following.
이것은 수업의 가장 중요한 부분일 수 있습니다. 다음 사항에 주의 깊게 주목해 주세요.
I appreciate everyone being actively involved in the class! Students who will succeed are those who are actively involved.
저는 수업에 적극적으로 참여해 주시는 모든 분들을 감사하게 생각합니다! 성공할 학생들은 적극적으로 참여하는 학생들입니다.
The following types of projects may be assigned in my courses:
다음 유형의 프로젝트가 강의에서 할당될 수 있습니다:
There will be two tests in this class: a midterm and a final. Both tests may include both written and programming questions. The written questions will be similar to the homework questions, and the programming questions will be similar to the programming assignments. Written questions will be closed-book, and programming questions will be open-book (i.e., you can use any resources you want, including the Internet).
Homework assignments must be done individually: each student must hand in their own answers. However, it is acceptable to collaborate when figuring out answers and to help each other solve the problems. We will be assuming that you will be taking the responsibility to make sure you personally understand the solution arising from such collaboration. You also must indicate on each homework with whom you have collaborated.
You will be allowed 6 total homework late days without penalty for the entire semester. You may be late by up to 6 days on any homework assignment. Once those days are used, you will be penalized according to the following policy:
You must turn in 75% of the practices and assignments, even if for zero credit, in order to pass the course.
If you feel that we have made a mistake in grading your homework, please submit a regrading request via email and I will consider your request. Please note that regrading of a homework may cause your grade to go either up or down.
The software we will be using is listed below. 수업에서 사용할 소프트웨어가 다음과 같다.
GitHub Classroom에서 과제에 액세스하고 제출하는 방법에 대한 자세한 지침은 여기에서 확인할 수 있습니다.
만약 JavaScript, HTML 또는 CSS에 이미 익숙하지 않다면, 수업 시작 전에 익숙해지려고 노력하는 것이 좋습니다. 그러면 툴에 익숙해지는 데 시간을 훨씬 적게 소비하고, 더 많은 시간을 메서드에 집중할 수 있습니다. 다음 링크는 웹 프로그래밍에 대한 기본 소개를 제공하며, 수업이 시작되기 전에 스스로의 속도에 맞게 공부할 수 있습니다.
Detailed instructions can be found here for accessing and submitting Assignments in GitHub Classroom.
If you are not already familiar with JavaScript, HTML, or CSS, you are STRONGLY ENCOURAGED to attempt to become familiar before the start of the course. That way, you will spend much less time becoming familiar with the tools, and will be able to focus more on the methods. The following links provide basic introductions to web programming, which you can study at your own pace before the course begins.
수업 시작 전에 git 및 GitHub과 관련된 다음 자료를 통해 작업하는 데 시간을 할애하는 것이 좋습니다. 이미 GitHub 계정이 없는 경우 새로 만들도록 요청됩니다.
You are also strongly recommended to spend some time before the course working through the following materials related to working with git and GitHub and turning in homework. If you do not already have a GitHub account, you will be asked to create one.
Aaron Snowberger earned his Ph.D. in Information and Communications Engineering from Hanbat National University in South Korea in 2024. He also holds degrees in Computer Science and Media Design. He has taught technology courses for over 8 years, English for over 15 years, and has freelanced as a web developer and magazine designer for over 5 years. His current research interests include computer vision, natural language processing, image processing, signal processing, and machine learning.
Aaron Snowberger는 2024년 한국 한밭대학교에서 정보통신공학 박사 학위를 취득했습니다. 그는 또한 컴퓨터 과학 및 미디어 디자인 학위를 취득했습니다. 그는 8년 이상 기술 과정을 가르쳤고, 15년 이상 영어를 가르쳤으며, 5년 이상 웹 개발자 및 잡지 디자이너로 프리랜서로 일했습니다. 그의 현재 연구 관심사는 컴퓨터 비전, 자연어 처리, 이미지 처리, 신호 처리 및 머신 러닝입니다.