{"id":22234864,"url":"https://github.com/chinsun9/2020-web-test","last_synced_at":"2026-04-11T11:04:57.429Z","repository":{"id":126361569,"uuid":"295674040","full_name":"chinsun9/2020-web-test","owner":"chinsun9","description":"https://youtu.be/VPq9A_xo2uA","archived":false,"fork":false,"pushed_at":"2020-10-21T06:19:38.000Z","size":743,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-30T08:43:09.182Z","etag":null,"topics":["bootstrap","docker","express","mariadb","nodejs"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chinsun9.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-09-15T09:10:01.000Z","updated_at":"2021-06-22T05:20:20.000Z","dependencies_parsed_at":"2023-06-16T10:30:55.615Z","dependency_job_id":null,"html_url":"https://github.com/chinsun9/2020-web-test","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chinsun9%2F2020-web-test","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chinsun9%2F2020-web-test/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chinsun9%2F2020-web-test/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chinsun9%2F2020-web-test/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chinsun9","download_url":"https://codeload.github.com/chinsun9/2020-web-test/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245432563,"owners_count":20614343,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bootstrap","docker","express","mariadb","nodejs"],"created_at":"2024-12-03T02:09:56.489Z","updated_at":"2025-10-17T11:24:45.011Z","avatar_url":"https://github.com/chinsun9.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 2020-web-test\n\n- 도커라이징 하였습니다.\n- 도커라이징한 프로젝트는 [docker 브랜치](https://github.com/chinsun9/2020-web-test/tree/docker)를 확인해주세요.\n\n  \u003cbr\u003e\n  \n- 회원가입, 로그인, 게시판, 페이지네이션, 게시글 정보 api 제공하는 웹서버를 만들어보았습니다.\n- nodejs express, ejs로 만들었습니다.\n- 로컬 작업시 db는 mariadb를 사용했습니다.\n- aws ec2에 올려서 사용할때는 rds로 연결하도록 했습니다.\n\n```json\n  \"scripts\": {\n    \"start\": \"cross-env NODE_ENV='development' node ./web/bin/www\",\n    \"ec2\": \"node ./web/bin/www\"\n  }\n```\n\n- 웹화면의 경우 [SB Admin](https://startbootstrap.com/templates/sb-admin/) 부트스트랩을 템플릿을 받아서 수정하였습니다.\n\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n\n## 데모 동영상\n\n[![시연영상](https://img.youtube.com/vi/VPq9A_xo2uA/0.jpg)](https://www.youtube.com/watch?v=VPq9A_xo2uA)\n\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n\n### ERD\n\n\u003cimg src=\"readmeRes/erd.png\"\u003e\n\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n\n### 디렉터리 구조\n\n    .\n    ├── node_modules/\n    ├── web\n    │   ├── bin\n    │   │   └── www\n    │   ├── public\n    │   │   ├── css\n    │   │   │   ├── login.css\n    │   │   │   ├── notice-write.css\n    │   │   │   ├── notice.css\n    │   │   │   ├── plugins.css\n    │   │   │   ├── register.css\n    │   │   │   └── sb-admin-2.min.css\n    │   │   ├── js\n    │   │   │   ├── juso-api.js\n    │   │   │   ├── login.js\n    │   │   │   ├── notice-detail.js\n    │   │   │   ├── notice-edit.js\n    │   │   │   ├── notice-write.js\n    │   │   │   └── register.js\n    │   │   └── vendor/\n    │   ├── routes\n    │   │   ├── api.js\n    │   │   ├── index.js\n    │   │   ├── login.js\n    │   │   ├── logout.js\n    │   │   ├── notice.js\n    │   │   ├── register.js\n    │   ├── utils\n    │   │   ├── chk-session.js\n    │   │   ├── error-message.js\n    │   │   ├── error.js\n    │   │   ├── myDAO.js\n    │   │   ├── mysql.js\n    │   │   └── secret.js\n    │   ├── views\n    │   │   ├── inc\n    │   │   │   ├── footer.ejs\n    │   │   │   └── sidebar.ejs\n    │   │   ├── error-page.ejs\n    │   │   ├── error.ejs\n    │   │   ├── juso-api.ejs\n    │   │   ├── login.ejs\n    │   │   ├── notice-detail.ejs\n    │   │   ├── notice-edit.ejs\n    │   │   ├── notice-write.ejs\n    │   │   ├── notice.ejs\n    │   │   └── register.ejs\n    │   └── app.js\n    ├── .gitattributes\n    ├── .gitignore\n    ├── package-lock.json\n    ├── package.json\n    ├── README.md\n    └── sqldump.sql\n\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n\n### 클론해서 돌려보기\n\n- [다운받기](https://github.com/chinsun9/2020-web-test/archive/master.zip)\n- 디비 생성하기 ; sqldump.sql 의 내용으로 생성\n- nodejs 패키지 설치하기 `npm i`\n- 도로명주소 api key 갱신하기\n\n  ```js\n  // web/views/juso-api.ejs 57번째 줄 수정하기\n  var confmKey = '도로명 주소 api 키 입력하는 곳!';\n  ```\n\n- 웹서버 실행하기 `npm start`\n- 브라우저로 접속하기 http://localhost:3000\n\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n\n### 버그\n\n- 이름 유효성 검사 없음\n- 비밀번호 대소문자 구분 없음\n\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n\n\u003chr\u003e\n\u003chr\u003e\n\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n\n### 도로명 주소 api 신청방법\n\nhttps://www.juso.go.kr/addrlink/devAddrLinkRequestWrite.do?returnFn=write\u0026cntcMenu=URL\n\n- 딱히 기업에 들어가 있지 않아도 발급 받을 수 있다.\n- 서비스 용도를 개발로 고르면 7, 30, 90일 선택하여 발급받을 수 있다.\n- 이때 발급받은 키는 다시 확인이 불가하니 꼭 메모한다.\n\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n\n### express-generator\n\n- express 템플릿.\n- express 프로젝트를 시작할때 디렉터리 구조를 잡아줌\n- 하는 방법\n\n  - express-generator 패키지 전역 설치`npm install express-generator -g`\n  - express 프로젝트 생성 `express --view=ejs myExpressApp`\n  - 아래와 같은 프로젝트가 만들어 진다.\n    ```\n        root\n        ├── bin\n        │ └── www\n        ├── public\n        │ ├── images\n        │ ├── javascripts\n        │ └── stylesheets\n        │ └── style.css\n        ├── routes\n        │ ├── index.js\n        │ └── users.js\n        ├── views\n        │ ├── error.ejs\n        │ └── index.ejs\n        ├── app.js\n        └── package.json\n    ```\n  - 열심히 편집한다.\n\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchinsun9%2F2020-web-test","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchinsun9%2F2020-web-test","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchinsun9%2F2020-web-test/lists"}