bookmark_borderCSS 기초 활용

CSS 테두리 : CSS Border Style

<style>
p.dotted {border-style: dotted;}
p.dashed {border-style: dashed;}
p.solid {border-style: solid;}
</style>
...
<p class="dotted">A dotted border.</p>
<p class="dashed">A dashed border.</p>
<p class="solid">A solid border.</p>

높이와 너비 : CSS Height and Width

div {
  height: 200px;
  width: 50%;
  background-color: powderblue;
}

CSS 여백 : CSS Margin

p {
  margin-top: 100px;
  margin-bottom: 100px;
  margin-right: 150px;
  margin-left: 80px;
}

CSS 박스모델 : CSS Box Model

div {
  width: 300px;
  border: 15px solid green;
  padding: 50px;
  margin: 20px;
}

CSS 아이콘 모델 : CSS Icons

<head>
<script src="https://kit.fontawesome.com/a076d05399.js" crossorigin="anonymous"></script>
</head>

<i class="fas fa-cloud"></i>
<i class="fas fa-heart"></i>
<i class="fas fa-cloud" style="font-size:24px;"></i>
<i class="fas fa-cloud" style="font-size:36px;"></i>

CSS 오버플로 모델 : CSS Layout – Overflow

div {
  width: 200px;
  height: 50px;
  background-color: #eee;
  overflow: visible;
}

CSS 가상클래스 :

CSS Links

/* unvisited link */
a:link {
  color: red;
}

/* visited link */
a:visited {
  color: green;
}

/* mouse over link */
a:hover {
  color: hotpink;
}

/* selected link */
a:active {
  color: blue;
}

CSS Dropdowns

<style>
.dropdown {
  position: relative;
  display: inline-block;
}

.dropdown-content {
  display: none;
  position: absolute;
  background-color: #f9f9f9;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
  padding: 12px 16px;
  z-index: 1;
}

.dropdown:hover .dropdown-content {
  display: block;
}
</style>

<div class="dropdown">
  <span>Mouse over me</span>
  <div class="dropdown-content">
    <p>Hello World!</p>
  </div>
</div>


bookmark_borderCSS 기본

CSS Tutorial

CSS Reference

CSS 정의와 구조

  • CSS (Cascading Style Sheets)
  • 스타일 시트의 정의
    – 문서의 외형을 구체적으로 명시하기 위한 문장의 집합
    – 웹 페이지 구성 요소에 크기, 색깔 등의 스타일을 일괄적으로 적용
    – 글자 간격, 문단 간격, 위치 등 HTML 태그로는 제어할 수 없는 부분을 제어
    – 문서의 구조와 스타일의 분리
    – 스타일의 변경과 웹 페이지의 일관성 유지가 용이
  • 스타일 시트 종류
    CSS (Cascading Style Sheet)
    – 스타일 속성, 속성값으로 스타일 제어
    : <style type=“text/css”> (CSS가 표준이므로 <style>만 사용 가능)
    JSSS (JavaScript Style Sheet)
    – Java script로 스타일 정보를 제어
    – {style type=“text/JavaScript”>
  • CSS의 형식



    – 선택자(selector) : 스타일을 지정하고자 하는 HTML 태그, CLASS나 ID 이름
    – 선언(declaration) : 속성(property)과 속성값(property value)으로 구성된 스타일 정보의 리스트
    – 속성과 속성값은 콜론(:)으로 연결
    – 하나의 태그에 여러 가지 속성 지정
    : 선언에 지정하고자 하는 속성들을 세미콜론으로 구분하여 나열
    : H3 { background-color:navy; color:white }
    – 여러 태그에 동일한 속성 지정
    : 선택자에 같은 스타일을 지정하는 경우 태그 이름 콤마로 구분하여 나열
    : H1 H2 { , background-color:navy }
    – 속성의 상속 (Inheritance)
    : 어떠한 태그에 지정된 속성은 그 안에 사용된 태그에도 적용됨
    : 예 : <p>태그의 글자 색: 회색 이면, <p><i> 태그 사용 시, <i>태그에 대해 회색으로 지정할 필요 없음
  • 스타일 정보 삽입 방법
    1. 웹 페이지 <head>태그 내 정의
    <head> <style>
    스타일의 내용
    </style></head>

    2. 인라인(in-line) 스타일 정의 : BODY 부분에 사용된 태그 내에 속성으로 정의
    <p style=”스타일내용”> </p>

    3. 별도의 style sheet 삽입
    <head>
    <link rel=”stylesheet” href=”CSS 파일 주소(URL)”>
    <head>
  • CSS 기초 실습
<!DOCTYPE html>
<html>
    <head>
        <style>
            h1 {color:white; background-color:blue}
            h2, h3 {color:white; background-color:green}
            p {color:red; font-size:15}
        </style>
    </head>
    <body>
        <h1>어서오세요! 환영합니다~</h1>
        <h2>거북선의 홈페이지입니다!</h2>
        <h3>이 페이지에는??</h3>
        <p>홈페이지를 <i>소개하는 글을</i> 써봅니다!</p>
        <p><font color="blue">이 홈페이지는 ...</font></p>
    </body>
</html>

bookmark_borderHTML 기본

HTML Tutorial

HTML TAG LIST

Html 기본 태그

링크삽입

<a href="https://www.w3schools.com/">Visit W3Schools.com!</a>

그림삽입

<img src="img_chania.jpg" alt="Flowers in Chania" width="460" height="345">

그림에 링크삽입

<a href="https://www.w3schools.com">
<img border="0" alt="W3Schools" src="logo_w3s.gif" width="100" height="100">
</a>

HTML 스타일

<body>
<h1 style="background-color:powderblue;">This is a heading</h1>
<p style="background-color:tomato;">This is a paragraph.</p>
</body>

텍스트 형식

<b>This text is bold</b>

<b> - Bold text
<strong> - Important text
<i> - Italic text
<em> - Emphasized text
<mark> - Marked text
<small> - Smaller text
<del> - Deleted text
<ins> - Inserted text
<sub> - Subscript text
<sup> - Superscript text

색상 변경

<h1 style="background-color:DodgerBlue;">Hello World</h1>
<p style="background-color:Tomato;">Lorem ipsum...</p>

리스트

<p>Unordered HTML List</p>
<ul>
  <li>Coffee</li>
  <li>Tea</li>
  <li>Milk</li>
</ul>

<p>Ordered HTML List</p>
<ol>
  <li>Coffee</li>
  <li>Tea</li>
  <li>Milk</li>
</ol>

Table, Iframe, Layer 만들기

<table> 태그로 테이블 만들기

<table>
  <tr>
    <th>Company</th>
    <th>Contact</th>
    <th>Country</th>
  </tr>
  <tr>
    <td>Alfreds Futterkiste</td>
    <td>Maria Anders</td>
    <td>Germany</td>
  </tr>
  <tr>
    <td>Centro comercial Moctezuma</td>
    <td>Francisco Chang</td>
    <td>Mexico</td>
  </tr>
</table>

<iframe> 태그로 프레임 만들기

<iframe src="demo_iframe.htm" style="height:200px;width:300px;" title="Iframe Example"></iframe>

<div>태그로 레이어 만들기

<style>
.myDiv {
  border: 5px outset red;
  background-color: lightblue;    
  text-align: center;
}
</style>
...
<div class="myDiv">
  <h2>This is a heading in a div element</h2>
  <p>This is some text in a div element.</p>
</div>
...

Html Layout

  • <header> – Defines a header for a document or a section
  • <nav> – Defines a set of navigation links
  • <section> – Defines a section in a document
  • <article> – Defines an independent, self-contained content
  • <aside> – Defines content aside from the content (like a sidebar)
  • <footer> – Defines a footer for a document or a section
  • <details> – Defines additional details that the user can open and close on demand
  • <summary> – Defines a heading for the <details> element

Form 태그 설문양식 만들기

Form 태그

<form action="/action_page.php">
  <label for="fname">First name:</label><br>
  <input type="text" id="fname" name="fname" value="John"><br>
  <label for="lname">Last name:</label><br>
  <input type="text" id="lname" name="lname" value="Doe"><br><br>
  <input type="submit" value="Submit">
</form> 

Form 기본 태그

<input> : 값의 입력 및 제출

<form>
  <label for="username">Username:</label><br>
  <input type="text" id="username" name="username"><br>
  <label for="pwd">Password:</label><br>
  <input type="password" id="pwd" name="pwd">
  <input type="submit" value="Submit">
</form>

<input type="button">
<input type="checkbox">
<input type="color">
<input type="date">
<input type="datetime-local">
<input type="email">
<input type="file">
<input type="hidden">
<input type="image">
<input type="month">
<input type="number">
<input type="password">
<input type="radio">
<input type="range">
<input type="reset">
<input type="search">
<input type="submit">
<input type="tel">
<input type="text">
<input type="time">
<input type="url">
<input type="week">

<select> : 콤보박스 선택

<label for="cars">Choose a car:</label>

<select name="cars" id="cars">
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select>

<textarea> : 메모(여러줄) 입력

<textarea id="w3review" name="w3review" rows="4" cols="50">
At w3schools.com you will learn how to make a website. They offer free tutorials in all web development technologies.
</textarea>

<button> : 버튼

<button onclick="myFunction()">Copy Text</button>

<script>
function myFunction() {
  document.getElementById("field2").value = document.getElementById("field1").value;
}
</script>

HTML5에 추가된 form 태그와 속성

<input type="color">
<input type="file">
<input type="number" min="1" max="5">

설문조사 페이지 실습

<!DOCTYPE html>
<html> <body>
    <h2>설문조사</h2>
    <form>
        이름 : <input type="text"><br>
        비밀번호 : <input type="password"><br>
        학년을 선택하세요<br>
        <div>
            <input type="radio">1학년<br>
            <input type="radio">2학년<br>
            <input type="radio">3학년<br>
            <input type="radio">4학년<br>
        </div>
        <br>
        담당자에게 하고 싶은 말을 쓰세요.<br>
        <textarea></textarea>
        <input type="submit">
        <input type="reset">
    </form>
</body> </html>

멀티미디어와 이미지맵

HTTPD설치와 웹 게시

  • Httpd (hypertext transfer protocol daemon)
    HTTP 서비스 제공 데몬 서버
    포트 : 80
    서버 패키지 : apache
    서버에서 웹 페이지 전송 서비스를 제공해주는 서버 프로그램
  • Httpd 설치 및 권한설정
  • Html문서를 웹에 게시

bookmark_borderHTML5

  • HTML
    – HyperText Markup Language
    – 웹페이지 기술을 위한 마크업 언어
    – 웹페이지의 내용과 구조를 담당
  • HTML5 지원 기능
    – 멀티미디어: 플러그인 없이 비디오, 오디오 자체적 지원
    – 그래픽: 3차원 그래픽 지원
    – 통신: 단방향 통신 -> 서버와의 양방향 통신
    – 디바이스 접근: 카메라, 센서 등 제어 가능
    – 오프라인 및 저장소: 오프라인에서도 동작 가능
  • HTML5 기본구조
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>Hello Word</title>
	</head>
	<body>
		<h1>Hello World</h1>
		<p>안녕하세요! HTML5</p>
	</body>
</html>
  • <head> 태그 사이
    – 메타데이터 , 문서 이름을 입력
    – meta 태그
    : 사용자에게는 나타나지 않음
    : <meta charset=“utf-8”> : 한글 사용
  • <body> 태그 사이는 웹 브라우저 출력
  • Visual Studio Code 설치 및 디버깅

HTML 학습

bookmark_border웹 개발환경

  • AWS : 아마존 웹서비스
    – aws.amazon.com
    – EC2
    : 클라우드 가상서버
    : Amazon Elastic Compute Cloud
  • Putty
    – SSH(Secure Shell) 를 통한 command line 으로 서버 프로그램 제어
  • WinSCP
    – FTP(File Transfer Protocol) 를 통한 서버에 파일 전송
    – 서버의 파일을 직접 편집 가능
  • vi 에디터
    – 입력모드(input mode)
    – 명령모드(command mode) -> vi 시작 시 기본모드
    – 라스트 라인모드(last-line mode 혹은 EX mode)

    – 내용 삽입
    a : 커서 바로 다음부터 입력
    A : 현재 행 끝부터 입력
    i : 커서 바로 앞부터 입력
    o : 커서 다음에 새로운 행이 추가되면서 입력

    – 내용 삭제
    x : 현재 커서 위치의 한 문자가 삭제
    dw : 현재 커서 위치의 한 단어가 삭제
    dd : 현재 커서 위치의 한 행이 삭제
    D : 현재 커서부터 그 행의 마지막까지 삭제

    – 단어나 문자 찾기
    /little : 첫 little 단어를 파일 아래로 내려가면서 찾음
    ?little : 첫 little 단어를 파일 위로 올라가면서 찾음
    n : 이전의 찾기 명령을 동일 방향으로 실행
    N : 이전의 찾기 명령을 반대 방향으로 실행

    – 종료하기
    wq [ filename ] : 저장하고 종료 (vi 시작 시 filename 이 없었다면 반드시 지정)
    :q! : 저장하지 않고 무조건 종료
    :w : 지금까지 작업 내용 저장 (종료 않음)
    :w [ filename ] : 지정한 이름으로 저장 (종료 않음)
  • Unix Shell
    – 유닉스 쉘 (Unix Shell) = 명령줄
    – 유닉스 운영 체제와 유닉스 계통 시스템을 위한 사용자 인터페이스 제공
    – 문자열 입력으로 쉘 실행
  • UNIX 기본 명령어
    $ ls -al : 파일 목록 보기
    $ cd 디렉토리명 : 디렉토리 이동, ( change directory )
    $ cd .. : 하위 디렉토리 이동
    $ mkdir 디렉토리명 : 디렉토리 생성
    $ rm 파일명 : 파일 삭제
    $ rm -r 디렉터리명 : 디렉토리 안의 파일 및 디렉토리 삭제. recursive
    $ rm -i 파일명 : 한번 묻고 삭제. (질문없이 삭제하면 복구불가하므로 주의 요망)
    $ mv 파일명1 파일명2 : 파일명 변경, move
    $ mv 파일명 디렉터리명 : 파일을 디렉토리로 이동, move
    $ cp [옵션] FILE1 FILE2 : FILE1을 FILE2로 복사, overwrite 주의, -i : overwrite 의 방지

bookmark_border인터넷과 웹앱

  • 인터넷 (inter + network)
  • 프로토콜 (protocol)
    – 컴퓨터나 통신 장비 사이에서 메시지를 주고 받는 양식과 규칙 체계
  • 패킷 (Packet) 전송
    – 큰 용량의 정보를 작은 단위의 패킷으로 나누어 전송하는 방법
  • TCP/IP
    – TCP (Transmission Control Protocol) : 송신자와 수신자 사이의 전송 단계에서 패킷의 주소와 내용을 담당하는 프로토콜
    – IP (Internet Protocol) : 패킷을 목적지까지 보내는 규칙을 정의한 프로토콜
  • 웹(web)
    – World Wide Web (WWW) 의 줄임말
    – 웹의 창시자 : 팀 버너스리
    – 인터넷에 연결된 컴퓨터를 통해 사람들이 정보를 공유할 수 있는 전 세계적인 정보 공간
    – 메일, 정보검색, 교육, 인트라넷 등으로 활용
    – Web 을 위한 프로토콜 : HTTP
  • DNS: Domain Name System
    – 사용자가 알기 쉬운 도메인을 컴퓨터가 알기 쉬운 ip주소로 변환하는 역할
  • 웹 접속 과정
  • 웹의 동작
    – 웹 브라우저를 통해 웹 서버에 접속하여 정보 획득 가능
    – 웹 접속과 실행을 위해 프론트 엔드와 백 엔드의 역할이 필요

  • 프론트 엔드
    – 빙하의 노출된 부분
    – 웹의 외관적으로 보이는 부분을 담당
  • 백 엔드
    – 빙하의 숨겨진 부분
    – 웹의 데이터 베이스 관리, 서버 연동 등의 외관적으로 보이지 않는 부분을 담당
  • 프론트 엔드와 백 엔드

    HTML : 웹 페이지의 기본 구조 담당
    CSS : 웹의 스타일을 담당
    JavaScript : 웹 페이지의 동작 담당
    Jquery, nodeJS : 자바스크립트의 기능을 활용
    Cordova : 하이브리드 앱 개발
  • 웹앱
    – 웹 브라우저를 통해서 실행되는 응용 프로그램을 총칭
    – Hosted App: 온라인 상태에서 URL 접속을 통해서 실행되는 웹앱
    – Packaged App: 실행에 필요한 모든 웹 문서와 파일들을 하나의 ZIP 파일로 압축하여 제공하는 웹앱
  • 네이티브 앱(Native App)
    – 각각의 스마트폰 OS 환경에 따라 제작된 앱
  • 모바일 웹(Mobile Web)
    – 웹 어플리케이션을 모바일 스크린 크기로 축소해 놓은 것
    – 일반적인 웹 기술로 개발되고 모바일 브라우저에서 실행됨
  • 모바일 웹앱(Mobile WebApp)
    – 모바일 웹보다 모바일에 더 최적화되고 네이티브 앱화됨
    – 단일 페이지 모델을 사용하여 화면을 전환
    – 모바일 웹보다 실행 속도가 빠름
  • 하이브리드 앱(Hybrid App)
    – 네이티브 앱과 웹 앱의 장점을 가지고 단점을 보완한 앱
    – 외부 형태는 네이티브 앱이지만, 실제 내부는 모바일 웹앱으로 실행
    – 예시: 은행 어플리케이션