블로그/포트폴리오 만들기 가이드

이 페이지는 블로그/포트폴리오 웹사이트 예제 코드와 설명을 포함하는 페이지입니다.

본격적인 설명에 들어가기 전에 아래의 ‘코드 실행하기’ 버튼을 눌러 미리 아래에 제공해드린 코드로 어떤 형태의 웹사이트 디자인이 만들어지는지 확인해보세요.

코드 이해하기

1 | HTML의 기본 구조

[예제코드]

<!DOCTYPE html>
<html>
<head>
<style>
body {
background-color: linen;
}
h1 {
color: maroon;
margin-left: 40px;
}
</style>
</head>
<body>
<h1>Hello World</h1>
</body>
</html>

[ 설명 ]

1. `<!DOCTYPE html>`: 이 태그는 이 문서가 HTML5 문서임을 나타냅니다.
2. `<html>`: 이 태그는 HTML 문서의 시작과 끝을 나타냅니다. 모든 HTML 요소는 이 태그 안에 들어갑니다.
3. `<head>`: 이 태그는 HTML 문서에 대한 메타 정보를 포함하는 곳입니다. 예를 들어, CSS 스타일이나 JavaScript 파일 등을 포함합니다.
4. `<style>`: 이 태그는 CSS 스타일 정보를 HTML 문서 내에 포함하는데 사용됩니다. 이 예제에서는 body 요소의 배경색을 linen으로, h1 요소의 텍스트 색을 maroon으로 설정하였고, h1 요소의 왼쪽 마진은 40px로 설정하였습니다.
5. `<body>`: 이 태그는 보이는 웹페이지의 모든 내용을 포함하는 곳입니다. 이 예제에서는 h1 요소만 포함되어 있습니다. 6. `<h1>`: 이 태그는 HTML에서 가장 큰 제목을 나타냅니다. 이 예제에서는 “Hello World”라는 텍스트를 포함하고 있습니다.

2 | HTML에서 자주 사용되는 태그

[ 설명 ]

HTML 코드는 여러 웹페이지의 요소를 담고 있습니다. 주로 사용하는 태그에는 <head>, <body>, <div>, <h1> 등이 있습니다.
이 코드에서는 블로그 형식의 웹페이지를 디자인하는데 필요한 요소들이 담겨 있습니다. 다음은 각 섹션에 대한 간략한 설명입니다.
1. `<head>`: 이 태그는 문서의 메타데이터를 포함하고 있습니다. 이 데이터는 스타일시트(<link> 태그), 문자셋(<meta charset>), 뷰포트 설정(<meta name=”viewport”>) 등을 포함합니다. 웹페이지의 제목을 설정하는 <title> 태그도 이곳에 위치합니다.
2. `<body>`: 웹페이지의 주요 내용이 위치하는 곳입니다. 이 경우, 웹페이지는 ‘w3-light-grey’ 클래스를 가진 CSS 스타일을 적용합니다.
3. `<div>`: 웹페이지의 섹션을 나누는 데 사용하는 일반적인 컨테이너입니다. CSS를 통해 스타일링 할 수 있습니다. 이 예제에서는 탐색바, 헤더, 본문, 푸터 등의 주요 섹션을 구성하는 데 사용됩니다.
4. `<a>`: 이 태그는 하이퍼링크를 생성합니다. ‘href’ 속성은 링크의 목적지를 가리킵니다.
5. `<header>`: 문서나 섹션의 헤더를 나타냅니다. 일반적으로 소제목(h1-h6)이나 로고 등을 포함합니다.
6. `<h1>`, `<h2>`, `<h3>`, `<h4>`, `<h5>`, `<h6>`: 이들은 HTML에서 제공하는 6단계의 제목 태그입니다. `<h1>`이 가장 큰 제목을 나타내고, `<h6>`까지 점차 작아집니다.
7. `<p>`: 이 태그는 단락을 나타냅니다. 일반적인 텍스트 내용에 사용됩니다.
8. `<img>`: 이 태그는 웹페이지에 이미지를 삽입합니다. ‘src’ 속성은 이미지 파일의 URL을 가리키며, ‘alt’ 속성은 이미지가 로드되지 않을 경우 대체 텍스트를 제공합니다.
9. `<ul>`와 `<li>`: 이 태그들은 순서가 없는 리스트를 만드는 데 사용됩니다. `<ul>`은 리스트를 시작하며, 각 `<li>`는 리스트 항목을 나타냅니다.
이 코드에서는 주로 ‘w3-‘로 시작하는 클래스를 사용하여 스타일을 적용하고 있습니다.
‘w3-‘로 시작하는 이 클래스들은 W3.CSS 프레임워크에서 제공하는 것으로, 웹사이트의 레이아웃이나 디자인에 다양한 스타일을 쉽게 적용할 수 있습니다. 예를 들어, 이 코드에서 ‘w3-light-grey’ 클래스는 밝은 회색 배경색을 적용하며, ‘w3-container’ 클래스는 패딩이 적용된 컨테이너를 생성합니다. ‘w3-bar’, ‘w3-bar-item’ 클래스는 네비게이션 바를 디자인하는 데 사용됩니다.
다음은 코드의 나머지 부분에 대한 설명입니다:
10. `<footer>`: 이 태그는 웹페이지의 푸터를 나타냅니다. 일반적으로 저작권 정보, 문서 작성자 정보, 연락처 정보 등을 포함합니다.
11. `<script>`: 이 태그는 JavaScript 코드를 포함하는 데 사용됩니다. 웹페이지에 동적 기능을 추가하는 데 주로 사용됩니다. 이 예제에서는 W3.CSS에서 제공하는 함수를 이용해 클릭 시에 사이드바를 열고 닫는 기능을 구현하고 있습니다.
전체적으로 이 코드는 W3.CSS 프레임워크를 사용해 블로그 형식의 웹페이지를 생성하는 방법을 보여줍니다. 네비게이션 바, 헤더, 본문, 이미지, 푸터 등의 주요 웹 요소가 모두 포함되어 있습니다. HTML, CSS, JavaScript의 기본적인 사용법과 함께, W3.CSS 프레임워크를 이용한 웹페이지 디자인 방법을 이해하는 데 도움이 될 것입니다.

3 | 이 블로그/포트폴리오 예제의 구조

[ 설명 ]

예제 웹사이트는 개인 블로그, 특히 패션 블로그/포트폴리오의 템플릿 입니다. 이 웹사이트 예제의 주요 부분을 간략하게 분석해 보겠습니다:
1. Head: <head>에는 메타데이터, 스타일시트 링크, 페이지의 스타일 규칙이 포함됩니다. 여기에는 W3.CSS 라이브러리, Google 폰트 (Oswald 및 Open Sans), 아이콘용 Font Awesome 라이브러리에 대한 CDN 링크가 포함됩니다.
2. Body: <body>에는 웹사이트의 주요 콘텐츠가 포함됩니다.
– 내비게이션 바 (Navigation Bar): 네비게이션 바는 모바일 등의 작은 기기 화면에서는 숨겨지며 소셜 미디어 링크와 검색 아이콘을 포함합니다.
– 헤더 (Headers): <header>에는 제목과 환영 메시지(welcome message)로 블로그를 소개합니다. 또한 이미지 헤더에는 “제인의 패션 블로그”라는 텍스트와 구독 버튼이 있습니다.
– 블로그 항목 (Blog Entries): 항목은 각각 블로그 게시물을 포함하는 일련의 div 컨테이너입니다. 각 게시물에는 제목, 날짜, 이미지, 텍스트 콘텐츠, 게시물에 좋아요를 누르고 댓글을 표시하는 버튼이 있습니다. 댓글 섹션은 처음에는 숨겨져 있으며 ‘답글’ 버튼을 클릭하면 표시할 수 있습니다.
– 정보/정보 메뉴(About/Information menu): 블로그 항목의 오른쪽에는 정보 섹션, 인기 글 목록, 광고 공간, 태그 클라우드가 있는 열이 있습니다.
이 메뉴는 디자인 템플릿(프론트엔드 템플릿)일 뿐이므로 블로그 글과 댓글의 실제 콘텐츠 등의 백엔드 작업이 필요한 기능들은 동작하지 않는다는 점에 유의하세요. 이 블로그를 제대로 작동하는 블로그로 만들려면 플레이스홀더를 실제 블로그 콘텐츠로 바꾸고, 백엔드와 통합하여 블로그 게시물 데이터를 처리하고, 구독 및 좋아요 버튼에 대한 기능을 추가하는 등의 작업을 해야 합니다. 
 
해당 작업에 대한 문의는 페이지 맨 아래의 ‘문의하기’를 참고해주세요.

4 | 자바스크립트( JAVASCRIPT ) 코드

[이 페이지의 블로그/포트폴리오 웹사이트 템플릿에 사용된 자바스크립트 코드]

<script>
// Toggle between hiding and showing blog replies/comments
document.getElementById(“myBtn”).click();
function myFunction(id) {
var x = document.getElementById(id);
if (x.className.indexOf(“w3-show”) == -1) {
x.className += ” w3-show”;
} else {
x.className = x.className.replace(” w3-show”, “”);
}
}
function likeFunction(x) {
x.style.fontWeight = “bold”;
x.innerHTML = “✓ Liked”;
}
</script>

[ 설명 ]

1. `document.getElementById(“myBtn”).click();`: 이 자바스크립트 코드 줄은 스크립트가 로드되는 즉시 ID가 `myBtn`인 HTML 요소에 대한 클릭 이벤트를 시뮬레이션합니다.
2. `function myFunction(id) { … }`: ID를 인수로 받는 자바스크립트 함수입니다. 이 함수는 현재 상태에 따라 HTML 요소의 내용을 표시하거나 숨기도록 설계되었습니다.
 
– `var x = document.getElementById(id);`는 제공된 ID를 가진 HTML 요소를 가져와서 변수 `x`에 저장합니다.
– `if (x.className.indexOf(“w3-show”) == -1) {…}`는 HTML 요소의 클래스 이름에 “w3-show”가 포함되어 있는지 확인합니다. 인덱스 오브` 함수는 지정된 문자열(이 경우 “w3-show”)을 찾을 수 없는 경우 `-1`을 반환합니다.
– `x.className += ” w3-show”;` “w3-show”가 요소의 클래스 이름에 포함되지 않은 경우 이 줄은 요소의 클래스 이름에 “w3-show”를 추가합니다. 이는 아마도 요소를 표시하기 위한 것으로 추정됩니다(이 클래스의 요소를 표시하는 관련 CSS가 있다고 가정할 때).
– `else { … }` “w3-show”가 이미 클래스 이름의 일부인 경우 코드의 이 부분이 실행됩니다.
– `x.className = x.className.replace(” w3-show”, “”);`는 요소의 클래스 이름에서 “w3-show”를 제거하여 요소를 숨깁니다(이 클래스가 없는 요소를 숨기는 관련 CSS가 있다고 가정할 경우).
 
3. `function likeFunction(x) {…}`: 이 자바스크립트 함수는 호출 시 HTML 요소의 스타일과 내용을 변경하도록 설계되었습니다.
 
– `x.style.fontWeight = “굵게”;`는 HTML 요소의 글꼴 굵기를 “굵게”로 변경합니다.
– x.innerHTML = “✓ 좋아요”;` 요소의 내부 HTML(표시되는 콘텐츠)을 “✓ 좋아요”로 변경합니다.
 
이 스크립트는 웹 페이지의 요소에 대한 표시/숨기기 기능을 구현하고 ‘좋아요’ 기능을 제공하는 데 유용할 수 있습니다.
이 스크립트의 실제 동작은 상호 작용하는 HTML 요소 및 관련 CSS에 따라 달라집니다. 예를 들어 “w3-show”는 요소의 표시 속성을 처리하기 위해 CSS 파일에 정의된 클래스일 수 있습니다. 스크립트 자체는 실제로 요소를 표시하거나 숨기지 않으며, “w3-show” 클래스와 연결된 CSS에 의존하여 요소를 표시하거나 숨깁니다.

마무리 | 실제로 동작하는 완성된 웹사이트를 위해서는..

HTML, CSS, JavaScript로 구성된 웹사이트 템플릿은 웹 페이지를 시작하고 개발하는 데 필요한 기본 구조를 제공합니다. 이는 웹사이트의 시각적 요소, 사용자 인터페이스, 그리고 사용자의 상호작용을 제어합니다. 하지만 웹사이트를 완전히 작동하게 하려면 이 세 요소만으로는 충분하지 않습니다. 이에 대해 좀 더 자세히 살펴보겠습니다.

1. 웹 호스팅: 웹사이트의 ‘집’

HTML, CSS, JavaScript로 구성된 웹사이트 템플릿은 웹사이트의 ‘틀’이라고 할 수 있습니다. 그러나 이 ‘틀’이 실제로 작동하려면 그것을 지원하고 유지하는 ‘집’이 필요합니다. 이 ‘집’이 바로 웹 호스팅 서비스입니다.
웹 호스팅은 웹사이트의 모든 파일과 데이터를 저장하고, 이들을 인터넷에 연결하여 사람들이 이 파일들에 접근할 수 있게 해주는 서비스입니다. 웹사이트는 기본적으로 호스팅 서버에 저장된 파일들의 모음이기 때문에, 호스팅 없이는 웹사이트를 인터넷에 게시하거나 사용자가 이 웹사이트에 접근하는 것이 불가능합니다.
예를 들어, 웹사이트 템플릿이 가구라면, 웹 호스팅은 이 가구를 놓을 집 같은 것입니다. 가구만 있어서는 사람들이 이를 이용할 수 없습니다. 가구를 놓을 집이 있어야만 사람들이 이 가구를 이용하며 살아갈 수 있습니다.

 

2. 도메인 연결: 웹사이트의 ‘주소’

웹사이트가 인터넷에 게시되어 있다 하더라도, 사람들이 이를 찾을 수 있어야 합니다. 이를 가능하게 하는 것이 도메인입니다. 도메인은 웹사이트의 고유한 주소로, 이를 통해 사용자들은 웹사이트를 찾아 방문할 수 있습니다.
웹사이트 템플릿이 집의 가구라면, 도메인은 그 집의 주소라고 할 수 있습니다. 주소가 없다면, 사람들은 집을 찾아갈 수 없습니다. 마찬가지로, 도메인이 없다면, 사용자들은 웹사이트를 찾아갈 수 없습니다.

 

2. 백엔드 기능 생성: 웹사이트의 뇌

HTML, CSS, JavaScript는 웹사이트를 구성하는 데 필수적인 기술들입니다. 이들은 사용자가 보고 상호작용하는 웹사이트의 ‘프론트엔드’를 구성합니다. 웹사이트의 디자인, 레이아웃, 사용자 인터페이스 등을 담당하며, 이들은 웹사이트의 “표면”에 해당합니다. 하지만, 웹사이트의 깊은 곳에서 일어나는 복잡한 작업들을 처리하는 ‘백엔드’ 없이는 완전한 웹사이트를 만들 수 없습니다.
백엔드는 웹사이트의 ‘뇌’와 같은 역할을 합니다. 이는 사용자의 요청을 받아 데이터베이스와 상호작용하고, 적절한 응답을 사용자에게 전달하는 기능을 합니다.
예를 들어, 웹사이트에서 제공하는 서비스에 가입하려는 사용자가 있을 때를 생각해봅시다. 사용자는 가입 폼에 필요한 정보(이름, 이메일, 비밀번호 등)를 입력하고 제출 버튼을 누를 것입니다. 이때, HTML, CSS, JavaScript만으로는 사용자가 제출한 정보를 어디에 저장해야 할지, 어떻게 보관해야 하는지에 대한 처리를 할 수 없습니다. 이러한 정보는 데이터베이스에 저장되어야 하며, 이는 백엔드에서 처리되는 작업입니다.
또 다른 예시로, 사용자가 로그인을 시도할 때를 살펴봅시다. 사용자는 아이디와 비밀번호를 입력하고 로그인 버튼을 누를 것입니다. 이때, 사용자의 아이디와 비밀번호를 검증하는 과정이 필요합니다. 이때 백엔드는 입력 받은 아이디와 비밀번호를 데이터베이스의 정보와 비교하여 로그인 요청의 유효성을 판단합니다. 이러한 복잡한 데이터 처리와 검증 과정은 백엔드 없이는 처리할 수 없습니다.

 

3. 백엔드와 프론트엔드의 연결: 웹사이트의 심장

웹사이트가 완성되려면, 프론트엔드와 백엔드 사이의 원활한 통신이 필수적입니다. 이는 웹사이트의 ‘심장’과 같은 역할을 합니다. 프론트엔드에서의 사용자의 요청을 백엔드가 이해하고, 백엔드의 응답을 프론트엔드가 사용자에게 알맞게 표현해내는 과정이 필요합니다.
예를 들어, 사용자가 웹사이트에서 제품을 구매하려고 할 때, 사용자는 제품을 장바구니에 추가하고, 결제 버튼을 누를 것입니다. 이때, 장바구니에 추가된 제품 정보와 결제 정보는 백엔드로 전달되어야 합니다. 백엔드는 이 정보를 받아 결제 처리를 하고, 결제 결과를 다시 프론트엔드에 전달합니다. 프론트엔드는 이 응답을 받아 결제 성공 메시지를 사용자에게 보여줍니다. 이런 상호작용은 프론트엔드와 백엔드 사이의 원활한 연결이 없으면 이루어질 수 없습니다.
 

결론

HTML, CSS, JavaScript로 만든 웹사이트 템플릿은 웹사이트 구축의 시작점이지만, 완전하고 제대로 작동하는 웹사이트를 만들기 위해서는 호스팅, 도메인 연결, 백엔드 기능 생성 및 백엔드&프론트엔드 연결과 같은 추가적인 작업들이 필요합니다. 이런 작업들은 전문적인 지식과 기술을 요구하며, 복잡하고 시간이 많이 소요될 수 있습니다. 하지만 저희는 이런 과정들을 담당해드릴 준비가 되어 있습니다. 이를 통해 고객님께서는 원하는 웹사이트를 쉽고 빠르게 만들 수 있습니다.