개발/국비교육

(국비교육) 40 - project1 이어하기8 + 6회차 시험

개발하는 인사담당자 2023. 7. 26. 14:49

■ SQL IF() 함수

 

 

참이기 때문에 '1은 1입니다.' 가 출력된다. 

 

 

현재 시간을 알 수 있다. 

 

 

현재 시간을 뒤에 형식처럼 찍을 것이다. 

 

 

시간도 다음과 같이 표현 가능하다. 

우리는 이제 오늘 쓴 글은 시간이 뜨고, 오늘 쓰지 않은 게시글은 날짜가 나오도록 표시할 것이다. 

 

 

다음과 같이 나온다. 

 

 

이제 다음과 같이 오늘 작성한 글은 시간,

이전에 작성 글은 날짜가 나오게 설정해준다. 

 

 

초도 삭제할 수 있다. 

 

 

이제 boardview 에 해당 if 구문을 넣어서 설정해주면 오늘글은 시간,

이전글은 날짜로 표신된다. 

 

■ 전자정부 페이징

 

 

pageSize 는 다음 사진과 같이 하단의 페이지 건수 몇 개 담을 것인

전체 게시물 건 수 : 해당 페이지에 몇 개의 글이 있어요

 

https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte:ptl:view:paginationtag 

 

egovframework:rte:ptl:view:paginationtag [eGovFrame]

전자정부프레임워크에서는 페이징 처리의 편의를 위해 <ui:pagination/> 태그를 제공한다. 페이징 기능을 사용할때 기능은 유사하지만 이미지나 라벨등의 포맷만 다양하게 사용하게 되는 경우가 있

www.egovframe.go.kr

 

 

총 162 개의 글이 있다. 

 

 

168개가 있다면 10개씩 올림처리해서 총 17개 페이지가 나와야 한다. 

10개씩 보여주는 것 총 2페이지가 나와야 한다. 

 

■ 세팅하기

 

 

pom.xml 에서 저장소 저장해주고 전자정부 페이징 jar 넣어준다. 

 

 

그러면 다음과 같이 3개 생성된 것을 확인 가능하다. 

 

 

이제 해당 코드를 복사하고 root 에 복사해준다. 

 

 

붙여넣어준다. 그러나 오류 뜬다. 

왜냐면 해당 이름의 class 가 없기 때문이다. 

 

 

class 로 써져있는 위치에 가서 해당하는거 만들어주고,

이름은 id 에 적힌 것으로 한다. 

 

객체 세 개 만들어진다.

그런데 매니저 안에 이미지와 text 가 포함되어 있기 때문에 

그래서 우리는 paginationManager 를 가져와 사용할 것이다. 

 

클래스를 생성하고 다음과 같이 복붙해준다. 

 

 

PaginationInfo 객체 생성해준다. 

model 에 정보 담아준다. 

 

※ 하단 오류 addALL이 아니라 추후 addAttribute 로 변경함 

 

 

 

 

 

전체 게시글 가져오는 sql 문 작성한다. 

 

 

 

160부터 10개 

 

 

pageNo 라는 값 오면 int 타입으로 저장할게요.

 

 

따라서 해당 페이지 번호를 pageNo 값으로 넣어주면 된다.

 넣으면 다음과 같이 나온다.

 

 

PageDTO 도 만들어준다. 

롬복(lombok)은 알아서 getter setter 만들어준다.

 

 

page

 

 

 

 

별칭 등록해준다. 

 

 

보드뷰에서 limit 10 삭제해준다. 

 

 

해당 pageNo=번호 넣으면 해당하는 페이지가 동적으로 나온다. 

 

 

객체 제대로 연결되었는지 확인 가능하다. 

 

 

복사해준다. 

그러나 오류 뜨는 것은 taglib 가 없기 떄문이다. 

 

 

위에 붙여넣어준다. 

 

 

해당 부분 /board 로 변경해주고 복붙한다. 

 

 

이제 클릭하면 페이지가 이동이 된다. 

 

* 에러해결

: 나의 경우 이동 경로를 ./board 로 설정해야 하는데 . 을 누락했다. 

 

 

 

 

 

 

 

 

 

* 시험문제 

[문항1]  다음은 RDBMS 기본 자료형에 대한 설명이다. 틀린 것은? 4번 

1) int는 표준 정수값이다.
 2) VARCHAR 타입은 최대 255문자를 저장한다.
 3) 날짜 형식은 DATE 타입으로 지정한다.
 4) 정수는 DOUBLE 타입으로 지정한다.

 

[문항2]  다음은 주요 제약조건에 대한 설명이다. 이 중 옳은 것을 선택하시오. 2번

 1) UNIQUE : 테이블에 저장된 데이터(행)는 중복을 허용한다.
 2) PRIMARY KEY : UNIQUE 제약조건에 NOT NULL 제약조건이 합쳐진 것과 동일하다.
 3) FOREIGN KEY : 입력 가능한 값의 범위 등을 제한한다.
 4) CHECK: NULL 허용여부를 제한한다.

 

[문항3]  다음은 테이블 생성 시 주의사항에 대한 설명이다. 이 중 틀린 것은? 2번

 1) PRIMARY KEY는 데이터를 조회하거나 수정, 삭제하기 위한 조합으로 설정한다.
 2) 테이블 및 필드명은 중복이 가능하다.
 3) 제약 조건은 CONSTRAINT를 이용하여 추가한다.
 4) 테이블 및 필드명은 숫자로 시작해서는 안된다.

 

[문항4]  게시판 글 번호를 만들 때 주로 사용하는 것으로 중복되지 않은 유일한 숫자를 자동으로 생성하며 한번 삭제된 번호는 다시 저장되지 않는 기능을 가진 것을 무엇이라 하는가? 2번

 

 1) 테이블
 2) 기본키
 3) 저장 프로시저
 4) 데이터 타입

 

[문항5]  다음 조건에 맞는 View를 생성하시오.

 

EMP 테이블에서 사원 번호(empno), 이름(ename), 업무(job), 부서코드(deptno)를 포함하는 emp_view라는 VIEW를 생성하시오.

 

-> CREATE VIEW emp_view AS SELECT empno, ename, job, deptno FROM EMP;

 

[문항6]  auto increment 에 대해 서술해주세요.

auto increment 는 데이터베이스에서 기본키를 생성하기 위해 사용되는 기능이다. 게시판 글 번호와 같이 중복 없이 유일한 값이 필요한 경우에 자동 증가 기능을 활용하여 번호를 자동 생성 가능하다 이를 통해 데이터 무결성과 데이터베이스 효율성을 향상시킬 수 있다. 
한 번 삭제된 글번호는 복구할 수 없다. 

 

[문항7]  if() 함수 사용법에 대해 서술해주세요.

: IF() 함수는 조건에 따라 값을 반환하는 함수로 
IF(expr, true_value, false value) 로 쓴다.
expr 는 평가할 조건식 또는 값
true_value 는 조건식이 참일 경우 반환값
false_value 는 조건식이 거짓일 경우 반환값이다. 

따라서 IF( 3 > 2 , 'T' , 'F' ) 라는 IF() 함수가 있다면 T 를 반환한다. 

 

[문항8]  SQL문의 실행 순서를 바르게 나열해 주세요.

 

SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY

 

-> FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY

 

[문항9]  RDBMS에서 두 테이블을 연결할때 사용하는 기법은? 3

 1) UNION
 2) WHERE
 3) JOIN
 4) EXCEPT

 

[문항10]  쿼리문 속에 쿼리문을 삽입하는 것을 무엇이라고 하는가?

-> 쿼리문 속에 쿼리문을 삽입하는 것은 서브쿼리라고 한다.