1. 다음은 C++로 짜여진 링크드 리스트 클래스입니다.


class Node {

private:

int data;

Node *next;

public:

Node(int Node *next = NULL) {this-> this->next=next;}

void setData(int data) {this->>

void setNext(Node *next) {this->next = next;}

int getData() {return data;}

Node* getNext() {return next;}

}

class linkedList

{

private:

Node *head; // 리스트 맨 앞

public:

linkedList() {this->head=NULL};

~linkedList();


void nodeAdd(int data);

void nodeDelete(int data);

.....

}


(1) 변수를 입력 받아 그 변수를 키 값으로 리스트 "맨 뒤"에 새 노드를 삽입하는 함수를 구현하세요.

(tip: List 안에 아무것도 없을 때, 첫 Node를 넣는 경우도 고려)

(tip: 반복문으로 탐색)


void linkedList::nodeAdd(int data) {

...

}



(2) 변수를 입력 받아 그 변수를 키 값으로 하는 노드를 삭제하는 함수를 구현하세요.

(tip: 해당 노드의 앞뒤 노드를 고려하는 것에 유의)

(tip: 반복문으로 탐색)


void linkedList::nodeDelete(int data) {

...

}






2. 데이터베이스에 다음과 같이 전공, 학생 테이블 2개를 생성하고 데이터를 입력했다고 가정해봅시다.



CREATE TABLE major

( id INT NOT NULL AUTO_INCREMENT,

name VARCHAR(20) NOT NULL,

PRIMARY KEY (id)

);


CREATE TABLE student

( id INT NOT NULL AUTO_INCREMENT,

name VARCHAR(15) NOT NULL,

age INT NOT NULL,

major_id INT,

email VARCHAR(30),

PRIMARY KEY (id),

FOREIGN KEY (major_id) REFERENCES major (id) ON DELETE SET NULL ON UPDATE CASCADE

);



(1) '컴퓨터공학부' (name) 에 소속된 학생의 수를 구하는 SQL문 작성하세요.

(tip: count 함수 사용. 조인 연산, 이중 쿼리)





(2) major 테이블에서 '컴퓨터공학부' (name) 기본키변경할 경우,

student 테이블에서 컴퓨터공학부에 소속되어 있던 학생들의 데이터 값은 어떻게 변화하는지 설명하세요





3. 일반적으로 다대다 관계 = 학생과 수강 과목과의 관계에서 스키마 구성을 어떻게 해야되는지 고르고 그 이유를 설명하세요. (기본적으로 BCNF 정규형까지 지킨다고 가정)


① 별도의 테이블을 만든다.

② 학생 테이블에 column을 추가한다.

③ 과목 테이블에 column을 추가한다.





4. 다음 HTML 문에서 추후 문제가 될 수 있는 2개의 이슈를 찾아서 알맞게 고치거나 빠진 코드를 추가하세요.

<html>

.........

<div class="content" id="sport">

<ul>

<li>축구</li>

<li>농구</li>

<li>배구</li>

</ul>

</div>

<div class="content" id="sport">

<span>Soccer

<span>Basket

<span>Volleyball

</div>

.........

</html>




5. MVC패턴의 정의와 장단점은 무엇인지 간략하게 서술하세요.







6. GET/POST 에 대한 차이점과 장단점을 간략하게 서술하세요.






7. jQuery를 이용하여 class = categoryButton 인 span들의 class 뒤에 selected 가 추가되도록 자바스크립트를 작성하세요.

(tip:코드 한 줄로)


<span class=”categoryButton”></span>

<span class=”categoryButton selected”></span>






8. jQuery와 Ajax를 이용하여 서버에서 리스트를 가져와 동적으로 다수의 버튼들을 만들고,

이 버튼을 클릭했을 때, 해당 버튼의 순서가 alert 창으로 뜨게 하려고 합니다.

(ex. 첫번째 버튼을 클릭했을 때는 alert 창에 0 이 표시, 두번째 버튼을 클릭했을 때는 alert 창에 1 이 표시 … )


하지만 아래 코드를 적용했을 때, 텍스트( list[i] )는 순서대로 입력이 되지만,

어떤 버튼을 클릭하건 간에 alert 창에는 모든 버튼의 총 수가 표시가 됩니다.

(ex. 리스트에 버튼이 총 5개일 경우, 1~5번째 버튼 모두가 alert창에 4가 표시)


..................................

$.ajax({

url: '/getlist',

type: 'POST',

cache: false,

data: {id:id},

dataType: 'json',

async: false,

success: function(response) {

var list = response['layerList'];

for (i in list) {

var button = $("<div class='layers'>" + list[i] + "</div>").appendTo( $('#layerPlace') );

button .c1ick( function(){

alert(i);

});

}

..................................



이런 현상이 왜 일어나며,

이를 원래 의도대로 각 버튼의 순서 번호가 alert 창에 표시되게 하려면 어떻게 해야 할지 간단히 설명하고,

올바르게 작동하게 코드를 수정하세요. (단, 제이쿼리 사용 필수)


(tip: 정답이 한 가지인 것은 아니나, for문 부분을 수정하여 for문을 사용하지 않으면 해결 가능)












주) 웹개발+DB설계

 

부) 존나 가끔씩 C++ 개발할 때가 있음



반드시 고쳐야될 좆병신 같은 문제들 지적받는다



tip은 원래 없엇는데 문제 잘 푸는 애들이 별로 없어서 추가함..