코딩 교육 WIL
2024 1월 3주차 AI 코딩 WIL
HyunjunPark
2024. 2. 16. 20:24
한 주간 기본적인 코딩 프로그래밍인 html과 css javascript를 이용한 웹페이지 만들기와 mysql를 이용한 데이터 베이스 관리 및 데이터 이용방법에 대해서 배웠다.
기본적인 프로그래밍을 이용해서 내가 원하는 정보를 찾아낼 수 있으며 내가 원하는 것을 직접 만들어 보는 것이 아주 시간이 가는지 모르게 배웠으며 내가 해보고 싶었던 하는데서 오는 만족감이 아주 좋았습니다.
VScode 를 이용한 html 작성에 내가 배웠던 용어들을 정리하여 보자
일반적인 구조로
부트스크랩을 이용하면 좀 더 편리하게 내가 원하는 것들을 가져와서 이용할 수 있다.
부트 스트랩을 이용하여 좀더 편리하게 내가 원하는 ui를 가져와서 바로 사용할 수 있는 것이 좋으므로 사이트에서 내가 찾아서 하는 방법을 잘 이용해야 한다.
그리고 일반적으로 우리가 사용하는 사이트의 html이 어떻게 작성이 되었는지 알아보기 위해서는 f12를 누르거나 마우스 오른쪽 버튼을 눌러 검사를 클릭하여 개발자 모드로 들어가 원하는 부분의 마우스를 가져가 어떻게 작성이 되었는지 알 수 있으므로 내가 보고 있는 html이 어떻게 작성이 되었는지 쉽게 알 수 있는 부분이다.
원하는 폰트를 가져와서 글씨에 적용을 할 수있는 사이트
ex ) 사용 방법
온라인에서 내가 만든 html를 인터넷으로 다같이 볼 수 있게 데이터를 넣어 둘 수 있는 사이트
ex ) 사용 방법
처음으로 배웠던 html에서의 용어로
let : 변수 선언 같이 무엇인가를 정의할 때 사용.
console : html 화면상에는 보이지 않지만 개발자 모드에 들어갔을때 개발자들끼리 정보를 적어두는 용도로 사용하는
리스트 : let a = ['사과','배','수박'] 같이 하나의 변수에 여러 가지 데이터를 가져올 때 사용하는 방법이며
꺼내는 법은 console.log(a[0])으로 0번부터 원하는 위치에 꺼내 쓸 수 있다.
딕션너리 : let a = ['이름' : '밥' , '나이' : '30' ,'키' : '180']
위와 같이 각 변수에 특정 값을 저장을 해주는 방법으로 꺼내는 법은
console.log(a['이름'])를 입력하면 '밥'이라는 글자가 나온다.
<div
> : 구역
<p
> : 문단
<ul
> : 범위
??? <li
> : 줄 단위
? <!-- 구역 내 콘텐츠 태그들
--> <h1
> : 제목
<h2
> : 소제목
<h3
~6> : 숫자가 커질수록 글자가 작아진다
. <hr
> : 줄띄움
<span style
="color:red">글자
</span
> : 특정 글자 꾸밈 또는 지정 설정
<a href
="http://naver.com/"> 하이퍼링크
</a
> : 태그 설정 img 태그입니다
: <img src
="https://.png" /> input 태그입니다
: <input type
="text" /> button 태그입니다
: <button
> 버튼입니다
</button
> textarea 태그입니다
: <textarea
>글박
</textarea
>
height: 250px
; /* 공간의 높이를 설정하는 명령어 */ color: white
; /* 글자의 색을 변경하는 주는 명령어 */ display: flex
; /* 글자의 위치를 원하는 대로 변경을 할 수 있게 해주는 명령어 */ flex
-direction
: column
; /* 구성을 (세로 = 열 = verical) 로 정렬을 한다는 뜻 -> row는 ( 가로 = 행 = horizontal )으로 정렬*/ align
-items
: center
; /* 세로의 위치를 어디에 정렬을 시킬 것인가를 정하는 명령어 사용 가능 한 설정으로는 [stretch, center, flex-start, flex-end, baseline, initial, inherit]가 있다. */ justify
-content
: center
; /* 가로의 위치를 어디에 정렬을 시킬 것인가를 정하는 명령어 사용 가능 한 설정으로는 [stretch, center, flex-start, flex-end, baseline, initial, inherit]가 있다. */ /* 배경이미지를 붙여주는 명령어 */ background
-image
: url('https://images.unsplash.com/photo-1511992243105-2992b3fd0410?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1470&q=80'); background
-position
: center
; background
-size
: cover
; }
■ 스타일안에서 사용 - /* 버튼, 사진, 그림 크기를 변경해 주는 명령어 모음 */
.
mytitle>button { /* 넓이 설정 */ width: 150px; /* 높이 설정 */ height: 50px; /* 배경화면의 색을 변경해주는 명령어 - transparent은 뒤에 배경을 투과시킨다는 의미 */ background-color: transparent; /* 글자색 변경 */ color: white; /* 배경에 그림자? 두께를 설정해주는 것 */ border: 1px solid white; /* 모서리의 끝을 둥글게 깍아주는 것 */ border-radius: 5px; /* 마진으로 내가 넣은 그림 또는 이미지의 크기 위로 그림을 얼마나 띄울껀지 설정하는 것 */ margin-top: 20px; /* 마진와 패딩의 명령어 */ /* 마진으로 공간 밖의 크기를 설정할 수 있으며 순서대로 "위", "오른쪽," "아래", "왼쪽"으로 공간의 크기를 설정해줄 수 있으며 auto는 자동으로 최대까지 입력이 되어진다.*/ margin: 30px auto 0px auto; /* 패딩으로 공간 안의 크기를 설정할 수 있으며 순서대로 "위", "오른쪽," "아래", "왼쪽"으로 공간의 크기를 설정해줄 수 있으며 auto는 자동으로 최대까지 입력이 되어진다.*/ padding: 20px; /* 그림의 그림자를 설정해줄 수 있으며 그림자의 길이는 "위", "오른쪽," "아래", "왼쪽" 순으로 설정을 하며 마지막은 그림자의 색을 설정해 줄수 있다.*/ box-shadow: 0px 0px 3px 0px blue;
■ 데이터 베이스에 받아오고 받아온 데이터로 html안에서 적어주는 코딩
$("#postingbtn").click(async function () { /* $('#image').val() 이걸로 내가 지정한 id의 값을 가져올수 있다 */ let image
= $('#image').val(); let title
= $('#title').val(); let content
= $('#content').val(); let date
= $('#date').val(); let doc
= { 'image': image
, 'title': title
, 'content': content
, 'date': date
, }; /* 입력 값 서버에 저장 */ await addDoc(collection(db
, "albums"), doc
); /* 알림창 뜨게 */ alert('저장 완료!'); /* 새로고침 시켜주는거 */ window
.location
.reload(); }) $("#savebtn").click(async function () { $('#postingbox').toggle(); }) let url
= "http://spartacodingclub.shop/sparta_api/seoulair"; fetch(url
).then(res => res
.json()).then(data => { /* api에서 데이터 받아오기 */ let mist
= data
['RealtimeCityAir']['row'][0]['IDEX_NM'] /* 받아온 데이터 텍스트 기입 */ $('#msg').text(mist
); }) let docs
= await getDocs(collection(db
, "albums")); /* 반복문 'doc' */ docs
.forEach((doc) => { /* doc'의 서버값 받아서 그걸 'row'에 저장*/ let row
= doc
.data(); let image
= row
['image']; let title
= row
['title']; let content
= row
['content']; let date
= row
['date']; /* 카드 만들어서 추가시키는 것 바디에서 적었던 내용을 ``여기안에 똑같이 적어준다고 보면 된다 `는 1번 왼쪽에 있는 버튼이다. */ let temp_html
= ` <div class="col"> <div class="card h-100"> <img src="${image}" class="card-img-top" alt="..."> <div class="card-body"> <h5 class="card-title">${title}</h5> <p class="card-text">${content}</p> </div> <div class="card-footer"> <small class="text-body-secondary">${date}</small> </div> </div> </div>`; $('#card').append(temp_html
); });
<!-- 클레스 설정 --> <div class="mytitle"> <h1>나만의 추억앨범</h1> <p>현재 서울의 미세먼지 : <!-- 일정 구간만 id 설정 --><span id="msg">나쁨</span></p> <button id="savebtn">추억 저장하기</button> </div> <div class="mypostingbox" id="postingbox"> <div class="form-floating mb-3"> <input type="email" class="form-control" id="image" placeholder="앨범 이미지"> <label for="floatingInput">앨범 이미지</label> </div> <div class="form-floating mb-3"> <input type="email" class="form-control" id="title" placeholder="앨범 제목"> <label for="floatingInput">앨범 제목</label> </div> <div class="form-floating mb-3"> <input type="email" class="form-control" id="content" placeholder="앨범 내용"> <label for="floatingInput">앨범 내용</label> </div> <div class="form-floating mb-3"> <input type="email" class="form-control" id="date" placeholder="앨범 날짜"> <label for="floatingInput">앨범 날짜</label> </div> <div class="mybtn"> <button id="postingbtn" type="button" class="btn btn-primary">기록하기</button> <button type="button" class="btn btn-outline-primary">닫기</button> </div> </div> <div class="mycards"> <!-- row row-cols-1 row-cols-md-4 g-4 여기서 "md-4" 여기에 적힌 숫자를 변경해주면 한줄에 몇게에 카드를 넣을지 설정 가능 --> <div id="card" class="row row-cols-1 row-cols-md-4 g-4"> </div> </div>
style.css 를 따로 만들고 그 안에 내가 만들었던 스타일을 코딩을 넣어줄 수 있다.