웹 개발/웹개발종합
웹 개발의 기초 1
개발자명백
2023. 2. 13. 17:19
웹은 기본적으로 HTML, CSS, JavaScript로 구성됩니다.
HTML은 뼈대를,
CSS는 꾸미기를,
JavaScript는 동작을 담당합니다.
브라우저는 웹을 기반으로한 컨텐츠를 열람하기위한 소프트웨어로서 사용자에게 HTML 문서와 그림, 멀티미디어 파일을 보여줍니다.
1. HTML의 기초
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>스파르타코딩클럽 | HTML 기초</title>
</head>
<body>
<!-- 구역을 나누는 태그들 -->
<div>나는 구역을 나누죠</div>
<p>나는 문단이에요</p>
<ul>
<li> bullet point!1 </li>
<li> bullet point!2 </li>
</ul>
<!-- 구역 내 콘텐츠 태그들 -->
<h1>h1은 제목을 나타내는 태그입니다. 페이지마다 하나씩 꼭 써주는 게 좋아요. 그래야 구글 검색이 잘 되거든요.</h1>
<h2>h2는 소제목입니다.</h2>
<h3>h3~h6도 각자의 역할이 있죠. 비중은 작지만..</h3>
<hr>
span 태그입니다: 특정 <span style="color:red">글자</span>를 꾸밀 때 써요
<hr>
a 태그입니다: <a href="http://naver.com/"> 하이퍼링크 </a>
<hr>
img 태그입니다: <img src="https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png" />
<hr>
input 태그입니다: <input type="text" />
<hr>
button 태그입니다: <button> 버튼입니다</button>
<hr>
textarea 태그입니다: <textarea>나는 무엇일까요?</textarea>
</body>
</html>
2. CSS 기초
CSS는 Cascading StyleSheet라고 합니다. HTML 태그는 부모-자식 구조 혹은 트리 구조를 가지는데 부모 노드에 적용된 CSS는 자식 노드에 적용이 되기 때문에 붙여진 이름입니다.
CSS는 head 태그 내 style 태그에서 작성합니다.
배경 관련 CSS : background-color, background-image, background-size
사이즈 관련 CSS : width, height, max-width
폰트 관련 CSS : font-size, font-weight, font-family, color
간격 관련 CSS : margin, padding
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>스파르타코딩클럽 | 로그인페이지</title>
<style>
.mytitle {
color: white;
width: 300px;
height: 200px;
background-image: url('https://www.ancient-origins.net/sites/default/files/field/image/Agesilaus-II-cover.jpg');
background-position: center;
background-size: cover;
border-radius: 10px;
text-align: center;
padding-top: 40px;
margin: auto;
}
</style>
</head>
<body>
<div class="mytitle">
<h1>로그인 페이지</h1>
<h5>아이디, 비밀번호를 입력해주세요</h5>
</div>
<div>
<p>
ID: <input type="text" />
</p>
<p>
PW: <input type="password" />
</p>
</div>
<button>로그인하기</button>
</body>
</body>
</html>
3. 구글 폰트 적용하기
구글 웹 폰트 링크 : https://fonts.google.com/?subset=korean
헤드 태그 안에 링크 태그를 복사하고 CSS를 복사해 스타일 태그에 붙여넣기를 합니다.
<!-- HTML에 이 부분을 추가하고 -->
<link href="https://fonts.googleapis.com/css2?family=Jua&display=swap" rel="stylesheet">
/* CSS에 이 부분을 추가하면 완성! */
* {
font-family: 'Jua', sans-serif;
}
4. 주석달기
파이참의 경우 Ctrl + / 를 활용합니다.
5. CSS 파일 분리
<!-- style.css 파일을 같은 폴더에 만들고, head 태그에서 불러오기 -->
<link rel="stylesheet" type="text/css" href = "(css파일이름).css">
6. 부트스트랩
부트스트랩 링크 : https://getbootstrap.com/docs/5.0/getting-started/introduction/
부트스트랩을 활용해 나만의 영화 페이지 만들기
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<!--Responsive meta tag-->
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!--bootstrap CDN-->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js"
integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM"
crossorigin="anonymous"></script>
<!--jQuery google CDN-->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<title>스파르타코딩클럽 | 부트스트랩 연습하기</title>
<!--Google font CDN-->
<link href="https://fonts.googleapis.com/css2?family=Gowun+Dodum&display=swap" rel="stylesheet">
<style>
* {
font-family: 'Gowun Dodum', sans-serif;
}
.mytitle {
height: 250px;
width: 100%;
background-image: linear-gradient(0deg, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url("https://movie-phinf.pstatic.net/20210715_95/1626338192428gTnJl_JPEG/movie_image.jpg");
background-size: cover;
background-position: center;
color: white;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.mytitle > button {
width: 200px;
height: 50px;
background-color: transparent;
color: white;
border: 1px solid white;
border-radius: 50px;
margin-top: 10px;
}
.mytitle > button:hover {
border: 2px solid white;
}
.mycomment {
color: gray;
}
.wrap {
width: 80%;
margin: 20px auto 0px auto;
}
.mypost {
max-width: 500px;
width: 95%;
margin: 20px auto 0px auto;
padding: 20px;
box-shadow: 0px 0px 3px 0px gray;
}
.mybtn{
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
margin-top: 10px;
}
.mybtn > button {
margin-right: 10px;
width: 100px
}
</style>
</head>
<body>
<!--Title-->
<div class="mytitle">
<h1>내 생애 최고의 영화들</h1>
<button>영화 기록하기</button>
</div>
<!--Posting Box-->
<div class="mypost">
<div class="form-floating mb-3">
<input type="email" class="form-control" id="floatingInput" placeholder="name@example.com">
<label for="floatingInput">영화URL</label>
</div>
<div class="input-group mb-3">
<label class="input-group-text" for="inputGroupSelect01">별점</label>
<select class="form-select" id="inputGroupSelect01">
<option selected>--선택하기--</option>
<option value="1">⭐</option>
<option value="2">⭐⭐</option>
<option value="3">⭐⭐⭐</option>
<option value="4">⭐⭐⭐⭐</option>
<option value="5">⭐⭐⭐⭐⭐</option>
</select>
</div>
<div class="form-floating">
<textarea class="form-control" placeholder="Leave a comment here" id="floatingTextarea"></textarea>
<label for="floatingTextarea">코멘트</label>
</div>
<div class="mybtn">
<button type="button" class="btn btn-dark">기록하기</button>
<button type="button" class="btn btn-outline-dark">닫기</button>
</div>
</div>
<!--CARD-->
<div class="wrap">
<div class="row row-cols-1 row-cols-md-4 g-4">
<div class="col">
<div class="card h-100">
<img src="https://movie-phinf.pstatic.net/20210728_221/1627440327667GyoYj_JPEG/movie_image.jpg"
class="card-img-top" alt="...">
<div class="card-body">
<h5 class="card-title">영화제목</h5>
<p class="card-text">영화내용</p>
<p>⭐⭐⭐</p>
<p class="mycomment">코멘트</p>
</div>
</div>
</div>
<div class="col">
<div class="card h-100">
<img src="https://movie-phinf.pstatic.net/20210728_221/1627440327667GyoYj_JPEG/movie_image.jpg"
class="card-img-top" alt="...">
<div class="card-body">
<h5 class="card-title">영화제목</h5>
<p class="card-text">영화내용</p>
<p>⭐⭐⭐</p>
<p class="mycomment">코멘트</p>
</div>
</div>
</div>
<div class="col">
<div class="card h-100">
<img src="https://movie-phinf.pstatic.net/20210728_221/1627440327667GyoYj_JPEG/movie_image.jpg"
class="card-img-top" alt="...">
<div class="card-body">
<h5 class="card-title">영화제목</h5>
<p class="card-text">영화내용</p>
<p>⭐⭐⭐</p>
<p class="mycomment">코멘트</p>
</div>
</div>
</div>
<div class="col">
<div class="card h-100">
<img src="https://movie-phinf.pstatic.net/20210728_221/1627440327667GyoYj_JPEG/movie_image.jpg"
class="card-img-top" alt="...">
<div class="card-body">
<h5 class="card-title">영화제목</h5>
<p class="card-text">영화내용</p>
<p>⭐⭐⭐</p>
<p class="mycomment">코멘트</p>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
7. Javascript 기초
모든 인터넷의 브라우저는 자바스크립트를 표준으로 사용합니다.
script 태그는 곧 우클릭->개발자도구->console과 동일합니다. script에 정의된 자바스크립트 함수들을 console에서 호출해서 사용할 수 있습니다.
변수, 자료형, 함수, 조건문, 반복문
변수 : let을 통해 선언합니다. ex) let a = 3, let first_name = '최'
자료형 : 배열은 여러 데이터를 저장합니다. 딕셔너리는 key-value의 구조로 데이터를 저장합니다. ex) let a_list = ['수박', '참외', 배'], a.push('감'), let a_dict = {'name' : 'bob', 'age' : 27 }, a_dict['name'], a_dict['height'] = 180
함수 : 정해진 동작을 수행합니다. 스크립트 안에 작성되며 콘솔창에서 호출할 수 있습니다. ex) function sum(a, b) { alert(a + b); console.log(a + b); return a + b; }
조건문 : if (조건) { 실행할 내용 } else { 실행할 내용 } 의 형태로 작성합니다.
반복문 : for(let i = 0; i < a_list.length; i++) { console.log(a_list[i] } 의 형태로 작성합니다.