Vanila JS를 이용하여 Front & Back 기능을 구현합니다.
주어진 HTML 및 CSS는 수정하지 않는 것을 원칙으로 합니다.
- Front-End 개발
여기를 참고.
여기로 이동하여 ZIP
압축 파일을 다운로드 받아주십시오.
MIT
우리밋_woorimIT
모던 애자일 개발 과제
License: MIT License
시험 시간: 3시간
SW 개발 동아리 소속인 우애는 주어진 API 명세를 보고 UI 기능을 구현하는 업무를 맡고 있다.
구현해야할 기능은 3가지다.
"HTML 구조"와 "API 명세"를 이해하고 todolist.js 를 완성해야한다.
아래의 Front-End 구현 방법과 API 명세서를 참고하여 우애의 Front-End 기능 개발을 도와주도록 하자.
여기로 이동하여 ZIP
압축 파일을 다운로드 받아주십시오.
- 초기 UI와 HTML
<body>
<div>
<h2>To Do List - Wooahan Agile</h2>
<label for="name">Name</label>
<input id="name" type="text">
<label for="description">Description</label>
<input id="description" type="text">
<button>등록</button>
</div>
<div id="table">
<table>
<tr>
<th class="th-name">Name</th>
<th class="th-description">Description</th>
<th class="th-update">Update</th>
<th class="th-delete">Delete</th>
</tr>
</table>
</div>
</body>
- 등록되었을 때 UI와 HTML
Name과 Description을 입력한 후 등록을 클릭하면 하단 테이블 태그<table>
에 추가되도록 구현해야한다.
이때, 각 To Do에는 index 번호가 지정되어야 한다는 점을 유의하자.
아래 HTML
참고.
<body>
<div>
<h2>To Do List - Wooahan Agile</h2>
<label for="name">Name</label>
<input id="name" type="text">
<label for="description">Description</label>
<input id="description" type="text">
<button>등록</button>
</div>
<div id="table">
<table>
<tr>
<th class="th-name">Name</th>
<th class="th-description">Description</th>
<th class="th-update">Update</th>
<th class="th-delete">Delete</th>
</tr>
<tr index="661f2f841dcfd6348d20">
<td>개발하기</td>
<td>로그인 기능 구현하기</td>
<td><button id="td-update">수정</button></td>
<td><button id="td-delete">삭제</button></td>
</tr>
</table>
</div>
</body>
- 수정되었을 때 UI와 HTML
Name과 Description을 입력한 후 수정을 클릭하면 입력한 값으로 수정되어야 한다.
즉, 하단 테이블 태그<table>
안에 클릭된 tr 태그<tr>
의 HTML이 수정되도록 구현해야한다.
이때, 서버에서 응답해 준 index와 동일한 tr 태그<tr>
가 수정되어야함을 유의하자.
아래 HTML
참고.
<body>
<div>
<h2>To Do List - Wooahan Agile</h2>
<label for="name">Name</label>
<input id="name" type="text">
<label for="description">Description</label>
<input id="description" type="text">
<button>등록</button>
</div>
<div id="table">
<table>
<tr>
<th class="th-name">Name</th>
<th class="th-description">Description</th>
<th class="th-update">Update</th>
<th class="th-delete">Delete</th>
</tr>
<tr index="661f2f841dcfd6348d20">
<td>수정합니다</td>
<td>우아한 애자일</td>
<td><button id="td-update">수정</button></td>
<td><button id="td-delete">삭제</button></td>
</tr>
</table>
</div>
</body>
- 삭제되었을 때 UI와 HTML
삭제를 클릭하면 클릭된 To Do가 삭제되어야 한다.
즉, 하단 테이블 태그<table>
안에 클릭된 tr 태그<tr>
가 삭제되도록 구현해야한다.
이때, 서버에서 응답해 준 index와 동일한 tr 태그<tr>
가 삭제되어야함을 유의하자.
아래 HTML
참고.
<body>
<div>
<h2>To Do List - Wooahan Agile</h2>
<label for="name">Name</label>
<input id="name" type="text">
<label for="description">Description</label>
<input id="description" type="text">
<button>등록</button>
</div>
<div id="table">
<table>
<tr>
<th class="th-name">Name</th>
<th class="th-description">Description</th>
<th class="th-update">Update</th>
<th class="th-delete">Delete</th>
</tr>
</table>
</div>
</body>
개발이 완료되었다면 조용히 손을 들고 멘토의 검증을 받은 후 PR(Pull Request)를 보냅니다.
- 등록
URL : /api/todolist
Method : POST
Content-type : application/json; charset=utf-8
{
name: String,
description: String
}
{ name: "개발하기", description: "로그인 기능 구현하기" }
Status
성공 : 201 (Created)
실패 : 400 (Bad Request)
Content-type : text/html; charset=utf-8
(String) 새로 등록된 To Do에 대한 index 값
"661f2f841dcfd6348d20"
(String) 실패 메세지
"To Do 등록에 실패하셨습니다."
- 수정
URL : /api/todolist/:index /api/todolist/661f2f841dcfd6348d20
Method : PUT
Content-type : application/json; charset=utf-8
{
name: String,
description: String
}
{ name: "개발하기", description: "로그인 기능 구현하기" }
Status
성공 : 201 (Created)
실패 : 400 (Bad Request)
Content-type : text/html; charset=utf-8
(String) 수정된 To Do에 대한 index 값
"661f2f841dcfd6348d20"
(String) 실패 메세지
"To Do 수정에 실패하셨습니다."
- 삭제
URL : /api/todolist/:index /api/todolist/661f2f841dcfd6348d20
Method : DELETE
Content : Null (Body를 통해 데이터를 전달하지 않습니다.)
Status
성공 : 200 (OK)
실패 : 400 (Bad Request)
Content-type : text/html; charset=utf-8
(String) 삭제된 To Do에 대한 index 값
"661f2f841dcfd6348d20"
(String) 실패 메세지
"To Do 삭제에 실패하셨습니다."
시험 시간: 1시간
SW 개발 동아리 소속인 모애는 주어진 API 명세를 보고 UI 기능을 구현하는 업무를 맡고 있다.
구현해야할 기능은 2가지다.
"HTML 구조"와 "API 명세"를 이해하고 checkbox.js 를 완성해야한다.
아래의 Front-End 구현 방법과 API 명세서를 참고하여 모애의 Front-End 기능 개발을 도와주도록 하자.
여기로 이동하여 ZIP
압축 파일을 다운로드 받아주십시오.
- 초기 UI와 HTML
<body>
<section>
<h2>Q&A - Wooahan Agile</h2>
<h4>Q. 모던 애자일의 <span>선발 기준</span>은 무엇일까요? 🤩</h4>
<div id="checkbox">
<label><input type="checkbox" value="열정">열정</label>
<label><input type="checkbox" value="정의">정의</label>
<label><input type="checkbox" value="기술력">기술력</label>
<label><input type="checkbox" value="인성">인성</label>
<label><input type="checkbox" value="외모">외모</label>
</div>
<button id="submit_btn">제출</button>
<span id="result">답안을 선택한 후 제출을 클릭해주십시오.</span>
</div>
</body>
- 오답을 제출했을 때 UI와 HTML
Check Box에서 답안을 선택한 후 제출을 클릭하면 버튼 하단 span 태그<span id="result">
에 정답 여부가 출력되도록 구현해야한다.
아래 HTML
참고.
<body>
<section>
<h2>Q&A - Wooahan Agile</h2>
<h4>Q. 모던 애자일의 <span>선발 기준</span>은 무엇일까요? 🤩</h4>
<div id="checkbox">
<label><input type="checkbox" value="열정">열정</label>
<label><input type="checkbox" value="정의">정의</label>
<label><input type="checkbox" value="기술력">기술력</label>
<label><input type="checkbox" value="인성">인성</label>
<label><input type="checkbox" value="외모">외모</label>
</div>
<button id="submit_btn">제출</button>
<span id="result">오답</span>
</div>
</body>
- 정답을 제출했을 때 UI와 HTML
Check Box에서 답안을 선택한 후 제출을 클릭하면 버튼 하단 span 태그<span id="result">
에 정답 여부가 출력되도록 구현해야한다.
아래 HTML
참고.
<body>
<section>
<h2>Q&A - Wooahan Agile</h2>
<h4>Q. 모던 애자일의 <span>선발 기준</span>은 무엇일까요? 🤩</h4>
<div id="checkbox">
<label><input type="checkbox" value="열정">열정</label>
<label><input type="checkbox" value="정의">정의</label>
<label><input type="checkbox" value="기술력">기술력</label>
<label><input type="checkbox" value="인성">인성</label>
<label><input type="checkbox" value="외모">외모</label>
</div>
<button id="submit_btn">제출</button>
<span id="result">정답</span>
</div>
</body>
개발이 완료되었다면 조용히 손을 들고 멘토의 검증을 받은 후 PR(Pull Request)를 보냅니다.
정답 제출 API
URL : /api/checkbox/submit
Method : POST
Content-type : application/json; charset=utf-8
{
answers: Array,
}
{ answers: ["열정", "기술력", "인성"] }
Status
성공 : 200 (OK)
실패 : 오류는 발생하지 않는 것으로 가정한다.
Content-type : application/json; charset=utf-8
// 정답
(Boolean) true
// 오답
(Boolean) false
true
시험 시간: 1시간
SW 개발 동아리 소속인 모애는 주어진 API 명세를 보고 UI 기능을 구현하는 업무를 맡고 있다.
구현해야할 기능은 2가지다.
"HTML 구조"와 "API 명세"를 이해하고 selectbox.js 를 완성해야한다.
아래의 Front-End 구현 방법과 API 명세서를 참고하여 모애의 Front-End 기능 개발을 도와주도록 하자.
여기로 이동하여 ZIP
압축 파일을 다운로드 받아주십시오.
- 초기 UI와 HTML
<body>
<section>
<h2>Q&A - Wooahan Agile</h2>
<h4>Q. 모던 애자일의 <span>개설 목적</span>은 무엇일까요? 🤩</h4>
<select name="selectbox">
<option value="연애">연애: 내가 그의 이름을 불러 주었을 때 그는 나에게로 와서 꽃이 되었다.</option>
<option value="도박">도박: 아싸 고도리!</option>
<option value="유흥">유흥: 성공을 기원하고! 발전을 기원하며!</option>
<option value="세계정복">세계정복: 자기 자신을 정복하지 못한 사람은 결코 자유로울 수 없다.</option>
<option value="개발">개발: 실력있는 개발자를 양성함으로 IT 미래를 선도한다.</option>
</select>
<button id="submit-btn">제출</button>
<span id="result">답안을 선택한 후 제출을 클릭해주십시오.</span>
</div>
</body>
- 오답을 제출했을 때 UI와 HTML
Select Box에서 답안을 선택한 후 제출을 클릭하면 버튼 하단 span 태그<span id="result">
에 정답 여부가 출력되도록 구현해야한다.
아래 HTML
참고.
<body>
<section>
<h2>Q&A - Wooahan Agile</h2>
<h4>Q. 모던 애자일의 <span>개설 목적</span>은 무엇일까요? 🤩</h4>
<select name="selectbox">
<option value="연애">연애: 내가 그의 이름을 불러 주었을 때 그는 나에게로 와서 꽃이 되었다.</option>
<option value="도박">도박: 아싸 고도리!</option>
<option value="유흥">유흥: 성공을 기원하고! 발전을 기원하며!</option>
<option value="세계정복">세계정복: 자기 자신을 정복하지 못한 사람은 결코 자유로울 수 없다.</option>
<option value="개발">개발: 실력있는 개발자를 양성함으로 IT 미래를 선도한다.</option>
</select>
<button id="submit-btn">제출</button>
<span id="result">오답</span>
</div>
</body>
- 정답을 제출했을 때 UI와 HTML
Select Box에서 답안을 선택한 후 제출을 클릭하면 버튼 하단 span 태그<span id="result">
에 정답 여부가 출력되도록 구현해야한다.
아래 HTML
참고.
<body>
<section>
<h2>Q&A - Wooahan Agile</h2>
<h4>Q. 모던 애자일의 <span>개설 목적</span>은 무엇일까요? 🤩</h4>
<select name="selectbox">
<option value="연애">연애: 내가 그의 이름을 불러 주었을 때 그는 나에게로 와서 꽃이 되었다.</option>
<option value="도박">도박: 아싸 고도리!</option>
<option value="유흥">유흥: 성공을 기원하고! 발전을 기원하며!</option>
<option value="세계정복">세계정복: 자기 자신을 정복하지 못한 사람은 결코 자유로울 수 없다.</option>
<option value="개발">개발: 실력있는 개발자를 양성함으로 IT 미래를 선도한다.</option>
</select>
<button id="submit-btn">제출</button>
<span id="result">정답</span>
</div>
</body>
개발이 완료되었다면 조용히 손을 들고 멘토의 검증을 받은 후 PR(Pull Request)를 보냅니다.
정답 제출 API
URL : /api/selectbox/submit
Method : POST
Content-type : application/json; charset=utf-8
{
answer: String,
}
{ answer: "개발" }
Status
성공 : 200 (OK)
실패 : 오류는 발생하지 않는 것으로 가정한다.
Content-type : application/json; charset=utf-8
// 정답
(Boolean) true
// 오답
(Boolean) false
true
목적...
시험 시간: 2시간
SW 개발 동아리 소속인 모애는 주어진 API 명세를 보고 UI 기능을 구현하는 업무를 맡고 있다.
구현해야할 기능은 3가지다.
"HTML 구조"와 "API 명세"를 이해하고 login.js 를 완성해야한다.
아래의 Front-End 구현 방법과 API 명세서를 참고하여 모애의 Front-End 기능 개발을 도와주도록 하자.
여기로 이동하여 ZIP
압축 파일을 다운로드 받아주십시오.
- 초기 UI와 HTML
<body>
<div>
<h2>Log In - Wooahan Agile</h2>
<label for="id">ID</label>
<input id="id" type="text">
<label for="password">Password</label>
<input id="password" type="text">
<button id="login">로그인</button>
<button id="confirm">정보 확인</button>
</div>
<div>
<span id="result">로그인 후 정보확인을 클릭해주십시오.</span>
</div>
</body>
- 아이디와 패스워드를 잘못 입력했을 때 UI
ID와 PASSWORD를 잘못 입력한 후 로그인을 클릭하면 서버에서 응답한 메세지("아이디와 패스워드를 제대로 입력해 주십시오")를 경고창alert()
에 출력되도록 구현해야한다.
- 아이디와 패스워드를 정상적으로 입력했을 때 UI
ID와 PASSWORD를 정상적으로 입력한 후 로그인을 클릭하면 서버로부터 코드를 응답받으며, "코드가 발급되었습니다." 라는 메세지를 경고창alert()
에 출력되도록 구현해야한다.
- 로그인을 하지 않고 '정보확인'을 클릭했을 때 UI
로그인을 실패한 채로 정보확인을 클릭하면 서버에서 응답한 메세지("정보확인에 실패하셨습니다." )를 경고창alert()
에 출력되도록 구현해야한다.
- 로그인에 성공한 후 '정보확인'을 클릭했을 때 UI
로그인을 성공적으로 수행하면 서버로부터 코드를 응답받게 된다. 이때 응답받은 코드를 정보확인 버튼이 클릭될 때 서버로 전달할 줄 아는 것이 관건이다.
개발이 완료되었다면 조용히 손을 들고 멘토의 검증을 받은 후 PR(Pull Request)를 보냅니다.
- 로그인 API
URL : /api/login
Method : POST
Content-type : application/json; charset=utf-8
{
id: String,
password: String
}
{
id: "test",
password: "test"
}
Status
성공 : 200 (OK)
실패 : 오류는 발생하지 않는 것으로 가정한다.
Content-type : application/json; charset=utf-8
// 정상적인 아이디와 패스워드를 입력한 경우
{
msg: String,
code: String
}
// 비정상적인 아이디와 패스워드를 입력한 경우
{
msg: String
}
// 정상적인 아이디와 패스워드를 입력한 경우
{
msg: "success",
code: "39ej2kns9n4knq0n"
}
// 비정상적인 아이디와 패스워드를 입력한 경우
{
msg: "아이디와 패스워드를 제대로 입력하십시오"
}
- 정보확인 API
URL : /api/check?code=:code /api/check?code=39ej2kns9n4knq0n
Method : GET
Content : Null (body에 실어서 보내는 데이터는 없습니다.)
Status
성공 : 200 (OK)
실패 : 400 (Bad Request)
Content-type : application/json; charset=utf-8
// 정상적으로 로그인을 한 후 코드를 전달했을 경우
{
msg: String,
user: {
id: String,
password: String,
name: String.
code: String
}
}
{
msg: "success",
user: {
id: "test",
password: "test",
name: "모던 애자일".
code: "39ej2kns9n4knq0n"
}
}
// 로그인하지 않고 '정보확인'을 할 경우
{
msg: String
}
// 로그인하지 않고 '정보확인'을 할 경우
{
msg: "정보확인에 실패하셨습니다."
}
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.