웹 프론트엔드의 기본 구성 요소
HTML : 웹 페이지의 콘텐츠 구조를 정의한다. 모든 텍스트, 이미지, 링크 등은 HTML을 통해 웹 페이지에 배치된다.
CSS : HTML로 정의된 콘텐츠의 스타일과 레이아웃을 제어하며, 색상, 글꼴, 레이아웃 등이 CSS로 결정된다.
JavaScript : 웹 페이지에 동적인 기능을 추가해준다고 알고 있으면 된다.
HTML 태그 정리
<h1> ~ <h6> : 제목(헤딩) 태그로 h1에서 h6로 갈수록 중요도가 낮아진다.
<p> : 문단을 정의하는 태그다.
<strong> : 굵은 텍스트로 만들어주며, 의미적으로 중요성을 나타낸다.
<em> : 기울임 텍스트로 만들어주며, 의미적으로 강조할 때 쓴다.
<a href="URL"> : 링크를 생성해주고 href 속성을 사용하여 링크할 URL을 지정한다.
<img src=".png" alt="이미지 설명"/> : 이미지를 삽입해주는 태그로, src 속성으로 이미지 파일의 경로를 지정하고, alt 속성으로 대체 텍스트를 추가한다.
<ul> : 순서가 없는 목록을 생성하며, 항목은 <li> 태그로 감싸준다.
<ol> : 순서가 있는 목록을 생성하며, 마찬가지로 항목은 태그로 감싸준다.
<form> : 사용자 입력을 수집하여 서버로 제출할 때 사용하며 텍스트 입력, 라디오 버튼, 체크박스, 버튼 등 다양한 입력 요소를 포함하고 있다.
CSS 선택자와 속성
기본 선택자
- 태그 선택자: HTML 태그 이름을 사용하여 특정 태그를 선택한다.
- 클래스 선택자: 클래스 이름을 사용하여 특정 그룹의 요소를 선택하며, 클래스 이름 앞에 .을 붙인다
- 아이디 선택자: 고유한 ID를 가진 요소를 선택하며, ID 이름 앞에 #을 붙인다.
속성
- 배경과 색상
- background-color: 요소의 배경색을 지정
- color: 텍스트의 색상을 지정
- 텍스트 스타일
- font-size: 텍스트의 크기를 지정
- font-weight: 텍스트의 두께를 지정
- text-align: 텍스트의 정렬을 지정(왼쪽, 가운데, 오른쪽 등)
- 레이아웃
- margin: 요소의 외부 여백을 지정
- padding: 요소의 내부 여백을 지정
- border: 요소의 테두리를 지정
JavaScript 문법
JavaScript의 역할로는 웹 페이지에 동적인 기능을 추가하는 것이며, 사용자와의 상호작용, 데이터 검증, 애니메이션 효과 등을 구현하는 데 사용한다. 기본 문법으로는 변수 선언, 함수 정의, 조건문, 반복문 등이 있다.
변수 선언: let, const 키워드를 사용하여 변수를 선언한다. let은 값이 변하는 변수를, const는 값이 변하지 않는 변수이다.
데이터 타입으로는 문자열(string), 숫자(number), 불리언(boolean), 배열(array), 객체(object)가 있다.
함수 정의: JavaScript에서 함수는 코드를 재사용하기 위한 방법으로
function greet(name) {
return "안녕하세요, " + name + "님!";
}
let greeting = greet("홍길동");
console.log(greeting);
예시를 보면 이 함수는 인자로 받은 name에 맞춰 인사 메세지를 반환, 함수를 호출하여 인사말을 출력한다.
이벤트 처리: 버튼 클릭, 폼 제출 등 사용자의 행동에 반응하도록 이벤트를 처리하도록 만드는 것이며
<button id="myButton">클릭하세요</button>
<script>
document.getElementById("myButton").addEventListener("click", function() {
alert("버튼이 클릭되었습니다!");
});
</script>
예시를 보면 클릭했을 때 알림 메시지가 나타나도록 이벤트 리스너를 추가하였고, 버튼의 ID를 선택하여 이벤트를 연결했다.
Django 프로젝트를 진행하며 프론트엔드 특강을 듣게 되었는데
직접 적용하기 위해서 실습을 좀 더 해보면서 궁금한 것들을 배우고
Bootstrap도 넣어서 Bootstrap을 활용하여 홈페이지 디자인을 좀 더 해보고 관련 내용을 추가해야 겠다.
'웹 개발' 카테고리의 다른 글
[Django] Django ORM (0) | 2024.08.23 |
---|---|
[Django] Django Model (0) | 2024.08.21 |
[Django] 다중 앱을 위한 URL 분리 (0) | 2024.08.20 |
[Django] HTTP form으로 데이터 다루기 (0) | 2024.08.17 |
[Django] MTV(View로 Template 다루기) (1) | 2024.08.15 |