47일차

김윤정·2024년 8월 22일

코딩

목록 보기
47/60
post-thumbnail

1. 아래를 예를 들어 설명하시오.

  • 리턴함수
    함수에서 결과값을 반환할 때 사용합니다.
    또한 함수에서 return 문이 실행되면 반복문의 break문과 비슷하게 코드가 강제 종료됩니다.

  • 콜백함수

  1. 매개변수로 함수를 전달(매개변수: 함수이름)
  2. 주의: 함수 호출은 안됨
  3. 함수 이름 = 메모리상의 해당함수가 시작되는 첫번째 주소임
  • 클로져

free variable(자유변수)에 의해서 함수가 닫혀(closed)있습니다.

2. 아래를 자바스크립트로 짜시오.

  • 두수를 파라미터로 받아 4칙연산을 수행하기 위한 4개의 함수 작성
  • 위의 4개의 함수를 파라미터로 받는 function callback(cb) 함수 작성
  • callback 함수에서 값을 두개를 입력받아, 콜백함수로 전달된 연산수행
   <script>

        function funCallback(funCB){
            let num = funCB(3,4);
            document.write(num + "<br>");
        }

        function add(x,y){
            return x + y;
        }

        function sub(x,y){
            return x - y;
        }

        function mul(x,y){
            return x * y;
        }
        function div(x,y){
            return x / y;
        }

        funCallback(add)
        funCallback(sub)
        funCallback(mul)
        funCallback(div)


    </script>

3. jstl 이란?

자바로 구현되는 웹프로그래밍에서 가장 많이 사용되는 JSP, Servlet, 데이터베이스 연동을 비롯하여, 개발 플랫폼에 사용되는 프로그램 함수들을 모아 XML 테이터 처리와 조건문, 반복문과 같은 기능을 수행할 수 있도록 구성한 작은 기능적 단위입니다.

jstl 사용하는 이유

  • 다른 JSP페이지 호출

  • 데이터베이스로의 입력, 수정, 삭제, 조회 가능

  • XML문서의 처리 가능

  • 문자열을 처리하는 함수 호출

  • JAVA의 장점을 그대로 사용

  • 다양한 Servlet간의 데이터 공유

  • 많은 사용자의 원활한 접속처리

  • Java Beans의 활용

  • 사용자 특화 커스텀 태그 라이브러리

4. 4개의 스코프에 대하여 설명하시오.

  • pageScope : 같은 페이지 내에서만 지속

  • applicationScope: 시간에 따라 지속

  • sessionScope: forwarding까지 유지

  • requestScope: 서버가 해당 프로젝트를 종료할때까지 유지

5. 아래의 문제를 푸시오(예습).

-아래를 구현하시오.
DTO - 클래스 EmpVO
DAO - 함수 작성 -위의 객체를 ArrayList로 담는 함수 작성
12명의 아래의 정보 출력
-el 및 jstl을 사용 할것
힌트)
<%
.......
pageContext.setAttribute("empList",emps);
%>
<c:forEach var="emps" items="${empDeptList}">

html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
  <h1>사원번호를 적으세요</h1>
  <form action="emp_info.jsp" method="post">
 	 <input type="text" name="empno">
  	 <input type="submit" value="전송">

  </form>
</body>
</html>

jsp

<%@page import="edu.ict.prj.vo.EmpVO"%>
<%@page import="java.util.List"%>
<%@page import="edu.ict.prj.dao.EmpDao"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
   <h1>사원 정보</h1>
   <%
      EmpDao dao = new EmpDao();
   
      List<EmpVO> empList = dao.empSelect();
      
      pageContext.setAttribute("empList", empList);
     
   %>
   <c:forEach var="emp" items="${empList}">
    사원번호:${emp.getEmpno()} 사원이름:${emp.ename} 직업:${emp.job} 매니저:${emp.mgr}
    입사일:${emp.hiredate} 급여:${emp.sal} 커미션:${emp.comm} 부서번호:${emp.deptno}
    <br>    
   </c:forEach>

   
</body>
</html>

6. mvc1 과 mvc2 의 차이는?(예습)

1. mvc1

model 1은 JSP 또는 Servlet을 사용하고 JSP 또는 Servlet이 요청에 대해서 모든 응답을 처리합니다.

요청 :

  • request,

  • valiating data,

  • handling businness logic,

  • generating response

model 1 은 business 로직과 presentation 로직이 결합되어 있습니다.
model 1 은 작고 , 개발하기 쉬운 간단한 기능에 사용됩니다.

2. mvc2

model 2는 content를 다루고 구하는데 사용되는 로직으로 부터
content의 display가 분리 되어 있습니다.
model 2는 logic과 display를 분리합니다.
model-view-controller (MVC) 로 구성이 되어집니다.

정확하게 MVC 안의 model 은 model 2 디자인에 의해서 결정된 것은 아닙니다.

model 2 어플리케이션에서는 client browser 가 controller 로 request하고 controller 는 display를 위한 content을 얻어오는데 필요한 logic을 구성합니다.

controller는 request를 전달할 view을 결정합니다.
view는 controller 에 의해서 content 전달 된 것을 render 합니다.
(화면을 구성한다.)

model 2는 중간이나 큰 크기의 어플리케이션에 적합합니다.

7. 실시간 타이머를 만드시오.

 <script>


        window.setInterval(function(){
                var today = new Date();   
    
                var hours = ('0' + today.getHours()).slice(-2); 
                var minutes = ('0' + today.getMinutes()).slice(-2);
                var seconds = ('0' + today.getSeconds()).slice(-2); 
    
                var timeString = hours + ':' + minutes  + ':' + seconds;
                document.body.innerHTML = timeString;          
             }, 1000);
        
    
        </script>
        
        

출력하면 아래 사진처럼 실시간으로 시계가 돌아간다

0개의 댓글