1. 클로져란 무엇인가?
: 반환된 함수의 Life-cycle이 종료될 때까지 호출된 함수의 Life-cycle이 유지되는 기능이다.
function funName() {
var varName = "var : " + x;
return function() { // return문에 익명함수를 선언한다.(Lifle Cycle 시작)
console.log(varName);
for(var i = 1; i < 10; i++) { // for문에 의해 Cycle을 형성한다.
console.log(x * i);
}
}; // return문 함수 종료(Life Cycle 종료)
}
var returnFun = funName(5); // 클로져가 적용된 함수를 호출한 뒤 가변 인자 값에 숫자 5를 넣는다.
// 위 메소드에 있는 x에 5가 대입되어 계산을 수행하는데
// 반환된 함수의 LifeCycle이 종료될때까지 지속적으로 수행한다.
2. JS를 이용하여, 구구단 중 홀수단만 나오게 하시오.
2-1. 소스코드
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>구구단 홀수로 찍기</title>
</head>
<body>
<table border="1">
<h1>구구단을 2단부터 9단까지 홀수로 출력</h1>
<script type="text/javascript">
document.write("<tr>");
for (var i = 3; i <= 9; i+=2) {
document.write("<td>" + i + "단 </td>");
}
document.write("</tr>");
for (var i = 1; i <= 9; i++) {
document.write("<tr>");
for (var j = 3; j <= 9; j+=2) {
document.write("<td>" + j + " * " + i + " = " + i*j + "</td>");
}
document.write("</tr>");
}
</script>
</table>
</body>
</html>
2-2. 구현화면
3. 부서별로 sal의 최소 값을 구하는데, 30번 부서의 sal 최소값 보다 큰것을 구하시오.
SELECT deptno, MIN(sal)
FROM emp
WHERE sal > (SELECT MIN(sal)
FROM emp
WHERE deptno = 30)
GROUP BY deptno;
4. 삼각형 및 사각형의 넓이를 구하는 프로그래밍을 IOC 컨테이너를 이용하여 프로그래밍 하시오.
4-1. RecMainClass.java (IOC 컨테이너를 담는 main 메소드가 있는 객체)
package com.javalec.ex;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.GenericXmlApplicationContext;
public class RecMainClass {
public static void main(String[] args) {
String configLocation = "classpath:applicationCTX.xml";
// IOC 컨테이너(스프링 객체)
AbstractApplicationContext ctx = new GenericXmlApplicationContext(configLocation);
RecInfo recInfo = ctx.getBean("recInfo", RecInfo.class);
recInfo.getInfo();
ctx.close();
}
}
4-2. RecInfo.java (사각형의 가로, 세로 및 넓이에 대한 정보를 setter 하는 객체)
package com.javalec.ex;
public class RecInfo {
private double width;
private double height;
private RecAreaCalculator recAreaCalculator;
// 다른 객체에서 가져왔으므로 getter도 추가한다.
public RecAreaCalculator getRecAreaCalculator() {
return recAreaCalculator;
}
public void setRecAreaCalculator(RecAreaCalculator recAreaCalculator) {
this.recAreaCalculator = recAreaCalculator;
}
public void setWidth(double width) {
this.width = width;
}
public void setHeight(double height) {
this.height = height;
}
public void recAreaCalculation() {
recAreaCalculator.recAreaCalculation(width, height);
}
public void getInfo() {
System.out.println("가로 : " + width);
System.out.println("세로 : " + height);
recAreaCalculation();
}
}
4-3. RecAraCalculator.java (사각형의 넓이 값을 리턴하는 메소드가 있는 객체)
package com.javalec.ex;
public class RecAreaCalculator {
// 사각형의 넓이
public void recAreaCalculation(double width, double height) {
double result = width * height; // 사각형의 넓이 공식
System.out.println("사각형의 넓이는 : " + result + " 입니다.");
}
}
4-4. applicationCTX.xml (Java Bean 객체를 가져와 일괄적으로 담아 관리하는 문서)
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="recAreaCalculator" class="com.javalec.ex.RecAreaCalculator">
</bean>
<bean id="recInfo" class="com.javalec.ex.RecInfo">
<property name="width">
<value>20</value>
</property>
<property name="height">
<value>20</value>
</property>
<property name="recAreaCalculator">
<ref bean="recAreaCalculator"/>
</property>
</bean>
</beans>
'WebDev > 본과정' 카테고리의 다른 글
Spring의 컨트롤러 및 멤버객체, JS의 핸들러 모델 (0) | 2021.05.16 |
---|---|
JS의 DOM 및 BOM 객체, Spring의 MVC 패턴개요 (0) | 2021.05.16 |
자바 스크립트의 변수와 자료형 (0) | 2021.05.16 |
DB의 무결성 제약조건 및 외래키와 JDBC의 예외 처리 (0) | 2021.05.16 |
MVC 패턴을 이용한 게시판 구현-2 (0) | 2021.05.16 |
최근댓글