1. 비동기 통신과 동기통신의 차이점은?
· 비동기 통신은 '동시에 일어나지 않는다'를 의마하며, 클라이언트 요청 시 응답 상태와 상관없이 다음 동작을 수행한다.
· 동기 통신은 클라이언트가 요청을 하는 경우 소요 시간과는 상관없이 응답을 받은 후에 다음 동작을 수행한다.
2. xml 과 json 에 대하여 설명하시오.
· xml은 문자 기반의 마크업 언어(<>)로, 데이터를 저장하고 전달할 목적으로 제작되었다.
· 마크업 언어를 설정하기 위해 규칙을 지정하며, html은 <h1></h1>처럼 이미 존재하는 태그만 사용가능하지만
xml은 사용자가 직접 정의할 수 있다.
· json은 자바스크립트를 확장하여 제작하였고, 객체 표기법 '[ ]' 을 따른다.
3. ajax + json으로 list를 출력하고, content_view 의 삭제 또한 ajax를 사용하여 실행하시오.
<RestBoardSpring4AfterController.java>
1
2
3
4
5
6
7
8
9
10
11
12
13
|
@Log4j
@AllArgsConstructor
@RestController
public class RestBoardSpring4AfterController {
private BoardService boardService;
@GetMapping("/rest/after")
public List<BoardVO> after(Model model) {
log.info("before");
return boardService.getList();
}
}
|
cs |
<BoardController.java>
1
2
3
4
5
6
7
8
9
10
11
12
13
|
@Log4j
@AllArgsConstructor
@Controller
public class BoardController {
private BoardService boardService;
@RequestMapping("/rest/list")
public String restList(){
log.info("list");
return "ajaxlist2";
}
}
|
cs |
<ajaxlist2.jsp>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script type="text/javascript">
function getList() {
var url = "${pageContext.request.contextPath}/rest/after.json";
$.ajax({
type: 'GET',
url: url,
cache : false, // 이걸 안쓰거나 true하면 수정해도 값반영이 잘안댐
dataType: 'json',// 데이터 타입을 제이슨 꼭해야함, 다른방법도 2가지있음
success: function(result) {
var htmls="";
$("#list-table").html("");
$("<tr>" , {
html : "<td>" + "번호" + "</td>"+ // 컬럼명들
"<td>" + "이름" + "</td>"+
"<td>" + "제목" + "</td>"+
"<td>" + "날짜" + "</td>"+
"<td>" + "히트" + "</td>"
}).appendTo("#list-table") // 이것을 테이블에붙임
if(result.length < 1){
htmls.push("등록된 댓글이 없습니다.");
} else {
$(result).each(function(){
htmls += '<tr>';
htmls += '<td>'+ this.bId + '</td>';
htmls += '<td>'+ this.bName + '</td>';
htmls += '<td>'
for(var i=0; i < this.bIndent; i++) { //for 문은 시작하는 숫자와 종료되는 숫자를 적고 증가되는 값을 적어요. i++ 은 1씩 증가 i+2 는 2씩 증가^^
htmls += '-'
}
htmls += '<a href="${pageContext.request.contextPath}/content_view?bId=' + this.bId + '">' + this.bTitle + '</a></td>';
htmls += '<td>'+ this.bDate + '</td>';
htmls += '<td>'+ this.bHit + '</td>';
htmls += '</tr>';
}); //each end
htmls+='<tr>';
htmls+='<td colspan="5"> <a href="${pageContext.request.contextPath}/write_view">글작성</a> </td>';
htmls+='</tr>';
}
$("#list-table").append(htmls);
}
});// Ajax end
}//end getList()
</script>
<script>
$(document).ready(function(){
getList();
});
</script>
</head>
<body>
<table id="list-table" width="500" cellpadding="0" cellspacing="0" border="1">
</table>
</body>
</html>
|
cs |
<구현 화면>

※연습문제※
♣데이터베이스 모델링 - 개념적 설계♣
MJ 주유소는 self 주유소로 고객이 직접 주유를 하는 시스템이다. 고객은 원하는 정유사의 주유기에서 주유를 할 수 있다.
고객이 주유를 할 때 날짜와 주유한 시간, 주유 가격, 결제 방법이 등록된다. 고객은 회원 가입을 할 수 있다.
회원 가입 시 이름, 연락처만 입력하면 회원 가입을 할 수 있다. 고객번호는 자동으로 등록 된다.
만약 회원인 고객은 회원번호를 입력하면 포인트를 모을 수 있다.
포인트는 주유 금액의 1%가 적립된다. 포인트에 따라 상품을 수령 할 수 있다.
100p는 티슈를 2000p는 세차 권을 10000p는 3만 원짜리 주유티켓을 준다. 상품을 수령했을 경우 포인트는 차감된다.
MJ 주유소의 주유기 소유자들은 좋은 기름을 공급 받을 수 있도록, 각 단말기의 공급자 목록을 관리해야 한다.
공급업자는 사원번호로 식별하고, 정유사, 이름, 연락처, 차량번호, 공급량, 계약기간을 가진다.
MJ 주유소의 주유기 소유자들은 고객들이 안심하고 거래 할 수 있도록 자신의 이름과 연락처를 기록해 놓아야 한다.
<엔티티 추출> <엔티티 간의 관계 설정>

<ER 다이어그램>

'bitcamp > 면접족보' 카테고리의 다른 글
면접족보 21/02/09_트랜잭션 (0) | 2021.02.17 |
---|---|
면접족보 21/02/08_RESTful (0) | 2021.02.16 |
면접족보 21/02/04_MyBatis (0) | 2021.02.15 |
면접족보 21/02/03_DB 설계, Mock test (0) | 2021.02.15 |
면접족보 21/02/02_Junit test (0) | 2021.02.15 |