본문 바로가기
☁︎KOSTA/☂︎KOSTA-WEB

[KOSTA] Spring 기반 Cloud 서비스 구현 개발자 양성 (Day 34) - div, span, bootstrap, JavaScript(basic, variable, function, src, confirm, DOM API)

by 하_센세 2022. 9. 21.

2022.09.20 [TUE]

- Day 34- 

 

수업 주요 목차

  • css (div, span)
  • Bootstrap
  • JavaScript - basic
  • JavaScript - variable
  • JavaScript - function
  • JavaScript - src
  • JavaScript - confirm
  • JavaScript - DOM API

🤖Review

 


 

HTML CSS JavaScript
web document 의 컨텐트를 담당 web document의 디자인 스타일 담당 web document의 행위를 담당

 

ECMAScript : 표준을 준수하는 스크립트 언어

ECMA International : 정보통신 표준을 제정하는 표준화 기구

 

ES5(ECMA5, 2009) : 변수 선언 var -> 중복선언 가능, function-level scope

ES6(ECMA6, 2015) : 변수 선언 let -> 중복 선언 불가, Block-level scope

const 상수, arrow function(화살표 함수) 등이 새롭게 추가

 

DOM(Document Object Model) :

  • JavaScript에서 HTML(web) 문서(document) 의 요소(element)를 제어하기 위한 프로그래밍 인터페이스(제어 방법)를 제공한다.
  • 웹브라우저에서 지원한다.
  • HTML 문서 요소를 계층적으로 지원한다.(DOM Tree)
  • 각 요소들을 자바스크립트에서 제어하고 조작하기 위한 함수를 제공한다.

Bootstrap : 부트 스트랩은 htmlcss framework : framework란 재사용한 컴포넌트와 개발의 기반(design pattern)을 제공하는 것을 말한다


 

🔎 Eclipse 실습 내용

 

1. div, span에 css 적용하기

  • div: 레이아웃 구성(화면 배치)시 사용, 전체 화면에 꽉 차는 속성 / 컨텐트가 부여되면 적용됨
  • span: 내용만큼의 화면만 차지하는 속성 /  컨텐트가 부여되면 적용됨
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>div, span에 css 적용하기</title>
<link rel="stylesheet" type="text/css" href="css/home.css">
</head>
<body>
<div>이 부분은 div 영역입니다 1</div>
<span>이 부분은 span 영역입니다</span>
<div class="testDiv">이 부분은 div 영역입니다 2</div>
<div>이 부분은 div 영역입니다 3</div>
<div class="testDiv">이 부분은 div 영역입니다 4</div>
<div>이 부분은 div 영역입니다 5</div>
</body>
</html>

 

2. Bootstrap 예시

<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet"
	href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css">
<script
	src="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.slim.min.js"></script>
<script
	src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js"></script>
<script
	src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>

	<div class="container">
		<h2>Earnest Ice cream</h2>
		<p>저세상 아이스크림</p>
		<img src="picture/IMG_6489.JPG" class="rounded-circle"
			alt="Cinque Terre" width="304" height="304"> <br>
		<br>
		<button type="button" class="btn btn-light">Light</button>
		<button type="button" class="btn btn-outline-success">성공</button>
		<p>부트스트랩을 이용한 테이블</p>

		<table class="table table-hover table-bordered">
			<tr>
				<td>상추</td>
				<td>당근</td>
				<td>양파</td>
			</tr>
			<tr>
				<td>3</td>
				<td>4</td>
				<td>5</td>
			</tr>
		</table>
		<br>
		<br>
		<table class="table table-hover table-bordered">
			<tr>
				<td>글번호</td>
				<td>작성자</td>
				<td>제목</td>
			</tr>
			<tr>
				<td>1</td>
				<td>지코</td>
				<td>사람</td>
			</tr>
			<tr>
				<td>2</td>
				<td>아이유</td>
				<td>이지금</td>
			</tr>
			<tr>
				<td>3</td>
				<td>Weekend</td>
				<td>I feel it coming</td>
			</tr>
		</table>
	</div>
</body>
</html>

 

3. JavaScript - basic

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JavaScript-basic</title>
</head>
<body>
<script type="text/javascript">
// 자바스크립트 주석(자바와 동일)
/*
 * 여러줄 주석
 */
	//window.alert("폭포횟집");
	//alert("폭포횟집"); // window 생략가능
	console.log("콘솔기록테스트");
	console.log("콘솔기록테스트2");
	
</script>
자바스크립트 기초
</body>
</html>

 

 

4. JavaScript - variable 1

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JavaScript 변수 var, let</title>
</head>
<body>
<script type="text/javascript">
// ECMA5 변수선언 var을 이
	var a=1;
	var a=2; // 중복선언 가능
	alert(a); 
//ECMA6 let을 이용 => 중복 선언 불가
	let b=1;
//	let b=2; let은 블록레벨로 중복선언 불가능
	b=3; // 재할당은 가능
	alert(b);
// ECMA6 상수 const 활용
	const c=1;
//	c=2; 상수는 재할당 불가능
	alert(c);
</script>
</body>
</html>

출력되는 숫자

2->3->1

 

 

5. JavaScript - function

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>step3-function</title>
</head>
<body>
JavaScript function 함수 테스트<br>
<button type="button" onclick="hello()">버튼</button>
<button type="button" onclick="bye(7)">버튼2</button>
<button type="button" onclick="test('아이유')">버튼3</button>
<button type="button" onclick="paramTest('개죽이',3)">버튼4</button>
<script type="text/javascript">
	function hello(){
		alert("즐거운 점심시간!");
	}
	function bye(count){
		alert(count);
	}
	function test(name){
		alert(name);
	}
	function paramTest(name2,count2){
		alert(name2+" "+count2);
	}
</script>	
</body>
</html>

alert로 뜨는 내용 순서

 

즐거운 점심시간!

7

아이유

개죽이 3

 

6. JavaScript - variable 2

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JavaScript variable : var과 let</title>
</head>
<body>
ES5 : var 중복 선언 가능 functional level scope <br>
ES6: let 중복 선언 불가 block level scope, 상수 const 등이 추가 <br>
<button type="button" onclick="varTest(7)">버튼 1</button>
<button type="button" onclick="letTest(7)">버튼 2</button>
<script type="text/javascript">
	function varTest(num){
		if(num>1){
			var a=1;
		}
		alert(a); //if문 내에 선언된 var a 변수 사용 가능 -> function level scope
	}
	function letTest(num){
		if(num>1){
			let b=2; 
		}
		alert(b); // if문 내에 선언된 let b 변수 사용 불가 -> block level scope
	}

</script>
</body>
</html>

(버튼2를 눌렀을 때)

 

7. JavaScript - src

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>별도의 JavaScript 파일의 기능을 이용하기</title>
<script type="text/javascript" src="script/home.js"></script>
</head>
<body onload="hello()">
외부 자바스크립트 파일 이용하기
<button type="button" onclick="bye()">src test</button>
</body>
</html>

(페이지 로딩될 때)

(src test 버튼 눌렀을 때)

8. JavaScript - confirm

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JavaScript confirm</title>
</head>
<body>
<button type="button" onclick="confirmTest()">내장함수 테스트</button>
<script type="text/javascript">
	function confirmTest(){
		let result=window.confirm("막국수 좋아하세요?");
		//alert(result);
		if(result){
			alert("결혼ㄱ") // result=true;
			location.href="https://www.naver.com/";
		} else{
			alert("결별ㄱ") // result=false;
		}
	}
</script>
</body>
</html>

버튼클릭 ▶ "막국수 좋아하세요?" ▶ 확인클릭 ▶ "결혼ㄱ" ▶ 페이지 이동

버튼클릭 ▶ "막국수 좋아하세요?" ▶ 취소클릭 ▶ "결별ㄱ" 

 

9. JavaScript - DOM 1

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>DOM을 이용한 element 제</title>
<script type="text/javascript">
	alert(document.getElementById("userNme")); //현 라인까지는 userName 요소(element)가 아직 존재하지 않아 null이 뜬다.
</script>
</head>
<body>
<input type="text" id="userNme" placeholder="사용자명">
<button type="button" onclick="test()">테스트</button>
<script type="text/javascript">
	alert(document.getElementById("userNme"));
	function test() { //버튼을 클릭하면 호출되어 실행되는 함수
		alert(document.getElementById("userNme").value); //사용자가 입력한 사용자명을 보여준다.
	}
</script>
</body>
</html>

페이지 로딩시 ▶ "null"

버튼 클릭 ▶ "object HTMLInputElement"

 

10. JavaScript - DOM 2

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JavaScript DOM API</title>
<script type="text/javascript">
	function checkInfo() {
		// 사용자가 입력한 아이디를 출력
		let user=document.getElementById("userId");
		if(user.value==""){ // 사용자가 아이디를 텍스트 입력양식에 입력하지 않으면
			alert("아이디를 입력하세요");
			user.focus();
		} else{
			alert(user.value); //userId 텍스트 입력양식에 입력한 정보를 출력
			// 텍스트 입력양식의 정보를 지운다.
			user.value=""; // 공란을 할당한다.
		}
	}
</script>
</head>
<body>
	<input type="text" id="userId" placeholder="아이디">
	<button type="button" onclick="checkInfo()">검색</button>
</body>
</html>

 

11. JavaScript - DOM 3

  • 문자 이동시키기
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>DOM API 이용하여 문자 이동시키기</title>
</head>
<body>
	<input type="text" id=orgText autofocus="autofocus" onkeyup="enterKey()">
	<button type="button" onclick="move()">이동</button>
	<input type="text" id=destText>
	<script type="text/javascript">
		function move() {
			let org = document.getElementById("orgText");
			let dest = document.getElementById("destText");
			dest.value = org.value;
			org.value = "";
		}
		function enterKey() {
			if (event.keyCode == 13) {
				move();
			}
		}
	</script>
</body>
</html>

 

12. JavaScript - DOM - form

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>DOM API를 이용해 Form 제어하기</title>
</head>
<body>
<form action="step10.jsp">
<!-- button에 별도의 타입을 명시하지 않으면 submit type의 버튼이 된다. 
		submit 버튼을 클릭하면 form에서 지정한 action url에 해당하는 서버 프로그램으로 요청을 시도한다.
-->
<button>전송버튼</button>
<button type="submit">전송버튼2</button>
<!-- 아래 일반 버튼으로 폼 요소 제어를 테스트 해본다 -->
<button type="button" onclick="checkForm()">일반버튼</button>
<input type="text" autofocus="autofocus" placeholder="아이디" id="memberId">
<input type="number" placeholder="입금액" id="money">
</form>
<script type="text/javascript">
	function checkForm() {
		let mId=document.getElementById("memberId");
		let money=document.getElementById("money");
		//alert(mId.value.length);
		//trim() : 양 여백을 제거
		alert(mId.value.trim().length);
		if(mId.value.trim()==""){
			alert("회원아이디를 입력하세요");
		} else if(money.value==""){
			alert("입금액을 입력하세요");
		} else if(money.value<0){
			alert("입금액은 0원을 초과해야 합니다")
		} else{
			alert(mId.value+"님"+money.value+"원 입금처리 하겠습니다.")
		}
	}
</script>
</body>
</html>

(전송버튼, 전송버튼2 클릭시)

(일반버튼 클릭시)

0

 

(아이디 입력 안하고 일반버튼 클릭시)

 

(아이디 입력하고 금액 입력 안할 시)

 

(아이디, 금액 입력할 시)

 

 

13. JavaScript - DOM - div,span

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>DOM API를 이용해 div와 span 요소 제어하기 </title>
<style type="text/css">
	div{
	background-color: lightyellow; 
	}
	
	span{
	background-color: pink;
	}
</style>
</head>
<body>
<div id="dt">이 부분은 div 영역입니다.</div>
<span id="st">이 부분은 span 영역입니다.</span><br><br>
<button type="button" onclick="accessDivTest()">div 테스트</button>
<button type="button" onclick="accessSpanTest()">span 테스트</button>
<script type="text/javascript">
	function accessDivTest() {
		// Form 양식에서는 값에 접근하기 위해 value 속성을 이용
		//div span p와 같은 tag들은 inneerHTML 속성으로 접근한다.
		let dt=document.getElementById("dt");
		alert(dt.innerHTML); // div dt의 정보를 얻어온다.
		dt.innerHTML="저녁 맛있게 드세요!" //div dt의 정보를 변경한다.
	}
	
	function accessSpanTest() {
		let st=document.getElementById("st");
		alert(st.innerHTML);
		st.innerHTML="내일 봐요!"	
	}
</script>
</body>
</html>

div 테스트 클릭 ▶ "이 부분은 div 영역입니다" 팝업

span 테스트 클릭 ▶  "이 부분은 span 영역입니다" 팝업

 

 

 

//오늘의 단축키

fn+F12 => 크롬 콘솔

 

//오늘의 숙제

복습+백준 1개 풀고 자기