1. 상속

기본적으로 font-size나 color는 부모의 속성을 자식이 상속 받음

1-1) initial

<style>
    div{
        border: 1px solid silver;
        margin: 2px;
    }
    .parent{
        color: red;
        font-size: 20px;
    }
    .child2{

    }
</style>
<body>
    <div class="parent1">
        parent
        <div class="child1">child1</child>
        <div class="child2">child2</child>
    </div>
</body>
  • child2의 style을 따로 지정하지 않은 경우
  • child2의 style 중 color를 blue로 지정한 경우
  • child2의 style을 initial로 처리한 경우 : initial은 상속받지 않겠다는 의미

1-2) inherit

상속을 받겠다는 처리

1-3) unset

- 부모로부터 상속받을 값이 있을 때 : inherit

- 부모로부터 상속받을 값이 없을 때 : initial


2. text 속성

2-1) text-align

텍스트의 위치를 결정해주는 속성

  • text-align은 block 요소에서만 적용이 가능
    • inline요소는 컨텐츠의 길이만큼만 너비를 가지기 때문에 왼쪽, 가운데, 오른쪽 정렬이 불가
    • block요소는 부모를 기준으로 너비가 최대한 늘어나기 때문에 왼쪽, 가운데, 오른쪽 정렬 가능!
  • text-align이 적용되지 않는 경우 요소가 inline인지 확인 필요
  • 적용되지 않을때
    • 부모가 block 속성을 가진 element에서 text-algin 속성을 적용시키기2-2) text-indent들여쓰기 해주는 속성
  • 상속 가능
  • block 요소에서만 적용 가능

3. 단위

3-1) 상대길이 

<style>
    .parent{
        color: blue;
        font-size: 24px;
    }
    .child{
        color: red;
        font-size: 0.5em;
    }
</style>
<body>
	<div class="parent">
        Hi
        <div class="child">
            Hi
        <div>
    </div>
</body>

 

1) em, rem

  • em : 부모의 font-size
    • 별도의 설정을 하지 않은 경우 font-size는 16px
  • rem : root의 font-size가 기준(=body태그)

2) vw, vh

  • 뷰표트 백분율 길이
    • vw : 뷰포트의 초기 컨테이닝 블록 너비 1%와 같음
    • vh : 뷰포트의 초기 컨테이닝 블록 높이 1%와 같음

3) vmin, vmax

  • 가로모드, 세로모드일때에 따라 vmin, vmax가 달라짐
  • 더 긴 쪽이 vmax, 더작은 쪽이 vmax
    • 가로모드, 세로모드일때 vmax, vmin 모두 동일한 값을 유지함

3-2) 함수표기법

1) calc()

width: calc(100% - 80px);
  • 덧셈, 뺄셈, 곱셈, 나눗셈 모두 사용 가능
    • 연산자 좌우에 공백 필수
  • 여러 개의 단위를 섞어서 사용
    • 상대길이 중에서 절대길이 만큼만 빼고 싶을때 사용

2) min(), max()

.container{
	width: min(100%, 200px);
    height: 200px;
}
  • min : 2개의 값 중 작은 값을 width로 선택
  • max : 2개의 값 중 큰 값을 width로 선택 

'Dev-log > CSS' 카테고리의 다른 글

CSS 레이아웃2(flex, grid)  (0) 2024.04.10
CSS 요소 변화(transform, transition, 애니메이션)  (0) 2024.04.10
CSS 레이아웃  (0) 2024.04.09
CSS Box Model  (0) 2024.04.08
CSS 기초 & 선택자  (1) 2024.04.07

1. CSS(Cascading Style Sheets)

  • 룰 기반의 언어
  • 여러가지 규칙을 나열하는 방식으로 작성
  • 특정 요소, 특정 요소들의 집합의 스타일 규칙을 정의
  • h1{ color:red; font-size: 12px; }
  • 사용방법
    • 선택자(Selector) : 스타일을 지정할 HTML 요소를 선택
    • 선언블록: 중괄호 내부에 여러 선언들을 작성
    • 선언 : 프로퍼티와 값으로 이루어진 쌍
    • 선택자의 형태로 이루어진 하나의 rule

2. Cascading 원칙

계단식으로 구성되어 위에서부터 아래로 떨어지는 것을 의미

  1. 스타일 우선순위
  • 동일한 스타일이라도 선언된 곳에 따라 우선순위가 정해짐

    • 브라우저에 의해 정의된 스타일 < 개발자가 선언한 스타일(inline, embeded, external) < 사용자가 구성한 스타일

      <html>
      <head>
          <style>
              #box{
                  color:red;
              }
          </style>
          <link href="style.css" ref="stylesheet"> // #box{color: blue;}
      </head>
      <body>
          <div id="box">Box</div>
      </body>
      </html>
      • style 태그가 link태그보다 먼저 선언되었기 때문에 style 태그가 우선 : 글자색은 red
      <html>
      <head>
            <style>
                #box{
                    color:red;
                }
            </style>
            <link href="style.css" ref="stylesheet">
      </head>
      <body>
            <div id="box">Box</div>
      </body>
      </html>
      • link태그가 style 태그보다 먼저 선언되었기 때문에 외부 stylesheet가 우선 : 글자색 blue
  • 적용 범위가 적을수록 우선시 된다
    • tag 스타일 < class 스타일 < id 스타일 < 인라인 스타일
    • 인라인 스타일로 작성하면 css파일로 style을 구성해도 인라인 스타일이 적용됨
  • 소스코드의 순서가 뒤에 있으면 덮어쓴다 : 동일한 스타일을 준 경우에 해당됨
  1. 스타일 상속
  • 부모 요소에 있는 스타일 속성들이 자식 요소로 전달된다.
    • 자식 요소에서 재 정의할 경우, 부모의 스타일을 덮어씀
  • 상속이 되지 않는 속성도 존재(배경이미지, 배경 색 등)

3. CSS 적용 방법

  1. 내부스타일(embeded)
    • HTML 내부의 head태그에 style태그를 선언하여 작성
  2. 인라인스타일(inline)
    • 하나의 요소에만 스타일을 적용하고 싶을 때 사용
  3. 외부스타일(external)
    • link태그로 연결

4. 선택자

4-1) 요소 선택자(type selector, tag selector)

  • 태그 이름으로 요소를 선택

  • 하나의 HTML에 있는 특정 태그를 모두 선택(모든 h2를 선택)

    h2{
    color:red;
    }

4-2) id 선택자

  • HTML 태그의 전역 속성 중 id 속성으로 선택
  • 이름표를 달아준다고 생각하면 됨(HTML 전체 요소중 하나의 요소에만 지정해야함)
  • #welcome{ color: red; }

4-3) class 선택자

  • HTML 태그의 전역 속성 중 class 속성으로 선택

  • 이름표를 달아주지만, 중복이 가능

  • 해당 class를 가진 모든 요소를 선택

  • 요소가 2개의 class를 가지는 경우 마지막에 작성된 스타일이 적용됨

    .title{ color:red; }    
    .title{ color: blue; }
  • class가 title인 요소는 색상이 blue로 적용

4-4) 속성 선택자(Attribute selector)

<style>
    a[target] {
        color:hotpink;
    }    
    a[href="http://example.com"]{
        color:skyblue;
    }
    a[href^="http://"]{
        color:purple;
    }
    a[href$=".com"]{
        color:silver
    }
    a[href*="example"]{
        color:red
    }
</style>
<body>
    <a href="http://example.com" target="_blank">Example Link(com/http)</a>
    <a href="http://example.org" target="_blank">Example Link(org/http)</a>
    <a href="https://exa-mple.com">Example Link(com/https)</a>
    <a href="https://example.org">Example Link(org/https)</a>
</body>
  • 태그[속성]
  • 태그[속성="값"] : 값이 정확해야만 선택
  • 태그[속성^="값"] : 시작하는 요소를 선택
  • 태그[속성$="값"] : 끝나는 요소를 선택
  • 태그[속성*="값"] : 중간이라도 상관없이 값을 가지는 요소를 선택

5. 가상클래스 선택자 (selector:___)

실제로 존재하지 않는 상태에 이름을 붙여준 것(클래스가 없지만 마치 있는 것 처럼 이름을 붙여줌)

<body>
    <h2>Movie List</h2>
    <ul>
        <li class="movie">Toy Story</li>
        <li class="movie">Zootopia</li>
        <li class="movie">Inside Out</li>
        <li class="movie">Finding Nemo</li>
    </ul>
    <ol>
        <li>Americano</li>
        <li>Latte</li>
        <li>Hot Choco</li>
    </ol>
    <p>Lorem ipsum dolor sit amet</p>
    <p>consectetur adipiscing elit</p>
    <p>Commodi voluptates sint iure quas quasi.</p>
</body>

5-1) :first-child(:last-child)

  • 선택된 요소의 부모 기준으로 첫번째 형제가 선택됨

  • class 선택자로 first-child를 선택하게 될 경우 style이 적용되지 않을 수 있음

    • selector 중 첫번째 자식을 의미하지 않음 → selector에 의해 선택된 부모 태그 기준 첫번째 형제

    • class가 movie인 요소들의 부모는 ul태그(ul을 부모로 두는 요소들의 형제 태그 중 첫번째 태그는 Toy Story)

    • 첫번째 형제는 class 속성을 가지지 않기 때문에 HTML문서에서 32px의 글자크기를 가지는 요소는 없음

      <style> 
          li:last-child { 
              color: green 
          }     
          .movie:first-child { 
              font-size: 32px; 
          }     
      </style> 
      <body> 
         <ul> 
           <li class=>Toy Story</li> 
           <li class="movie">Zootopia</li> 
           <li class="movie">Inside Out</li> 
           <li class="movie">Finding Nemo</li> 
       </ul> 
      </body>

5-2) :nth-child(num)

  • 숫자외에도, 2n, 2n-1, even, odd 등으로 요소를 선택할 수 있음

    li:nth-child(3){ 
      color: orange; 
    }

5-3) :first-of-type(:last-of-type)

  • type(태그)들 중에 첫번째

    <body>
      <section> 
        <div>Toy Story</div> 
        <p>Zootopoa</p> 
        <p>Inside Out</p> 
        <p>Finding Nemo</p> 
        <div>Coco</div> 
      </section>
    </body>

    :first-child를 이용하면 style 적용이 불가

    • p 태그의 형제 태그 중 첫번째를 선택
    • 첫번째 형제가 div 태그(p 태그가 아님)

5-4) :nth-of-type()

  • 숫자외에, 2n등과 같이 함수형으로 사용 가능
  • p:nth-of-type(odd){ color:blue; }

5-5) not

  • selector:not(selector){} : 콜론 앞의 selecotr를 선택하고, 괄호안의 selector를 제외한 나머지를 선택

5-6) hover, active, focus

  • hover : 마우스를 올려놓고 있을때
  • active: 마우스를 클릭하고 있을때부터 떼는 시점
  • focus : 키보드로 tap키를 눌러 요소를 선택한 경우 or input 태그를 입력을 위해 클릭한 경우
<style>
    input[type=button]{
        background-color: skyblue;
        border: none;
    }
    input[type=button]:hover{
        background-color: teal;
        color: white;
    }
    input[type=button]:active{
        background-color:red;
    }
    input[type=button]:focus{
        background-color: blue;
    }
    input[type=text]:focus{
        background-color: blue
    }
</style>
<body>
    <input type="button" value="클릭">
    <input type="button" value="클릭">
    <input type="button" value="클릭">
    <input type="button" value="클릭">
    <input type="text">
</body>

6. 가상 요소 선택자 (selector::__)

실제로 존재하지 않는 요소, 범위를 만들어 스타일을 부여함

  • 반드시 content 프로퍼티를 추가해주어야 함

6-1) before(after)

<style>
    .movie::before{
        content: 'Movie';
        color: indianred;
    }
</style>
<body>
    <div class="movie">ToyStory</div>
    <div class="movie">Zootopia</div>
    <div class="movie">InsideOut</div>
    <div class="movie">Coco</div>
    <div class="movie">Finding Nemo</div>
</body>
  • 가상의 요소에 style이 적용됨
  • class가 movie인 요소들에는 적용되지 않음

  • 존재하지 않는 요소인 ::before가 생성됨
  • content를 가지고 있지만 내용이 의미가 있지 않음 : 꾸밈을 위한 요소라고 여겨짐
  • 메뉴 사이에 구분 bar를 추가할 때 사용

6-2) first-letter

  <style>
    .lorem::first-letter {
      color: red;
    }
    .lorem::before{
        content: 'BEFORE';
    }
  </style>
  <body>
    <p class="lorem">Lorem ipsum dolor sit amet consectetur, sequi.</p>
    <p class="lorem">Lorem ipsum dolor sit amet consectetur, sequi.</p>
    <p class="lorem">Lorem ipsum dolor sit amet consectetur, sequi.</p>
  </body>
  • first-letter를 before 가상요소 선택자와 함께 사용하면, before의 content에 style이 적용됨


7. 선택자 결합

7-1) 하위선택자 : spacing

<body>
    <ul>
        <li>리스트1</li>
        <li>리스트2</li>
        <li>리스트3</li>
        <li>리스트4</li>
    </ul>
</body>
  • ul태그의 li태그를 선택하고 싶을때는 spacing
  • ul li {style 속성}

7-2) 자식선택자 : >

<body>
    <ul>
        <li>리스트1</li>
            <ol>
                <li>리스트1</li>
                <li>리스트2</li>
            </ol>
        <li>리스트2</li>
        <li>리스트3</li>
        <li>리스트4</li>
    </ul>
</body>
  • 바로 밑의 하위 자식만 선택하고 싶은 경우에 사용
  • ul > li

7-3) 일반 형제 선택자 : ~

형제 요소가 특정 요소 뒤에 있을때 선택가능

<body>
    <div>
        <p>P</p>
        <span>Span</span>
        <code>Code</code>
        <p>P2</p>
        <div>Div</div>
    </div>
</body>
  • code의 형제는 총 5개 : p, span, code, p, div

  • 형제는 코드 앞뒤로 2개씩 있음 : 선택된 형제를 기준으로 뒤에 있는 형제만 선택 가능(p, div)

    • 앞에 있는 p나 span태그는 선택 불가!

      <style>
      code ~ p{
          color:red;
      }
      </style>

7-4) 인접 형제 선택자 : +

<body>
    <div>
        <p>P</p>
        <span>Span</span>
        <code>Code</code>
        <p>P2</p>
        <div>Div</div>
    </div>
</body>
  • 선택된 요소의 바로 뒤에 인접한 요소만 선택이 가능

  • code + div를 하게 되면 style 속성 부여 불가

    <style>
        code + p{
            background-color: blue;
        }
    </style>

'Dev-log > CSS' 카테고리의 다른 글

CSS 레이아웃2(flex, grid)  (0) 2024.04.10
CSS 요소 변화(transform, transition, 애니메이션)  (0) 2024.04.10
CSS 레이아웃  (0) 2024.04.09
CSS Box Model  (0) 2024.04.08
CSS 상속&속성  (0) 2024.04.07

전역속성

특정 태그에서만이 아니라, 전체 태그에서 사용할 수 있는 속성

1. id

  • 고유 식별자
  • HTML 문서 전체에서 고유한 값을 가져야 함
  • 공백 불가, 숫자나 특수문자로 시작할 수 없음!

2. class

  • 식별자
  • HTML 문서 전체에서 고유값을 가질 필요 없음 → 같은 class가질 수 있음
  • 공백 사용 가능 : class를 여러개 가질 때 사용

3. style

  • 하나의 요소에만 style 적용할 때 사용
  • style sheet에서 작성한 style보다 최우선되어 적용됨

4. title

  • 하나의 태그에 추가적인 설명을 툴팁으로 적용(마우스 올리면 말풍선이 보여짐)
  • 개행과 스페이스 모두 인식

5. lang

  • 웹 접근성을 높이기 위한 수단
  • html태그에서 lang 속성은 전체 문서가 어떤 언어로 이루어져 있는지 나타냄
  • 상속 됨
  • 부분적으로 특정 태그에서 다른 언어를 사용하게되면 명시해줘야 함

6. data

  • 속성의 이름을 정해줄 수 있음 : data-*속성로 정의
  • data-columns : 실제 존재하는 속성이 아님(속성을 만든 사람이 붙여준 것)
  • 자바스크립트 적용시에 사용
    • 태그에 대한 정보가 필요할 때 사용(html 요소가 가지고 있어야 하는 정보를 넣는 속성) : 화면을 보는 사람들의 눈에는 보이지 않지만 자바스크립트가 해당 태그에 대한 정보를 이해하길 원할때 사용
      <article
          id="electric"
          data-columns="3"
          data-index-number="12314"
          data-parent="cars"
      >    
      </article>
    • 몇개의 columns을 갖고 있는지, index-number가 몇개인지 등

7. draggable

  • 드래그가 가능한지 여부를 나타내는 속성
  • true, false를 반드시 명시(boolean속성은 아님 → boolean속성인 경우 기본값은 true로 기재하지 않아도 됨)
  • 자바스크립트와 관계가 있는 속성 → 이벤트에 따른 행동을 적용할 수 있음

8. hidden

  • boolean
  • 시각적으로도 스크린리더 등 다른 모든 표시 방식에서 숨겨짐
  • 사용자에게 보이지 않길 원하는 요소를 hidden으로 처리
    • 그러나, 보안상의 정보를 숨기고 싶을때는 hidden 사용금지
    • 개발자 도구에서는 태그의 내용을 모두 볼수 있음

'Dev-log > HTML' 카테고리의 다른 글

HTML 태그  (0) 2024.04.06
HTML 기초  (0) 2024.04.06
HTML과 웹브라우저  (0) 2024.04.06

프로젝트 진행시, Sourcetree로 git clone할 때 발생하는 에러 해결

1. 상황

원격저장소 ssh 경로를 복사했는데

"유효한 소스 경로/URL이 아닙니다." 라는 문구가 떴고, clone 진행이 불가했다.

2. 구글링 결과

Sourcetree에서 사용하는 git의 버전이 시스템에 내장되어 있는 구버전의 git인 경우 URL을 인식하지 못한다고 함

3. Try

  1. Sourcetree setting - git 메뉴로 이동
  2. '시스템 git 사용' 클릭
    → 이렇게 하면 된다고 했지만, 여전히 "유효한 소스 경로/URL이 아닙니다" 문구 뜨면서 진행 불가
  3.  구버전의 git일수 있다고 생각하여 homebrew, git 삭제후 재설치
    • 버전을 맞춰줬지만 에러 지속적으로 발생

 

4. 해결방법

혹시나 해서 CLI로 git clone이 진행되는지 확인
CLI로 진행했더니 publickey 문제가 발생

  1. 'git@github.com: Permission denied (publickey) 에러 해결 방법' 검색
  2. git@github.com에 연결된 ssh key가 설정되어있지 않기 때문에 발생함
  3. ssh key를 만들기
    ssh-keygen -t rsa -C “본인 GitHub 계정 이메일”
    패스워드는 지정하지 않아도 상관없음(패스워드 미생성시 Enter입력)
    따로 설정하지 않으면 기본위치 (~/.ssh/id_rsa/pub)에 ssh key가 생성됨
    (~/.ssh/id_rsa/pub)에 저장된 내용 전체를 복사
  4. ssh key 복사
    cat ~/.ssh/id_rsa.pub
  5. github에 ssh key 등록
    Settings - SSH and GPG keys - New SSH Key로 이동
    복사한 키 내용을 붙여넣고 등록

 

5. 결과

  • CLI로 Clone 성공
  • Sourcetree로 성공

Reference

'Dev-log > ERROR' 카테고리의 다른 글

React/Next Google OAuth - redirect_uri_mismatch  (2) 2024.09.06

1. Clone

1) 정의

로컬에서 작업하기 위해 Remote Repository를 복제해 내 pc의 Local Repository로 저장
소스파일, 변경이력, 설정을 복제하여 내 pc에 저장**(Local Repository를 생성)**

2) clone 방법

  1. ssh 방식 : ssh key를 github에 미리 등록하여 클론할 컴퓨터가 원격저장소의 프로젝트에 접근할 권한이 있는지 체크
  2. https 방식 : 보안상의 문제로 권장하지는 않음3. Clone하기소스트리를 이용한 clone
  3. github 원격저장소에서 ssh주소 복사
  4. 소스트리에 url에서 복제를 선택
  5. 복사한 ssh 주소입력, 복사할 폴더 설정, 이름설정(Local repositiry의 이름)
  6. clone 완료 → .git 폴더까지 생성됨

2. Add, Commit, Push, Pull

1) Add

변경된 파일 중 Repository에 올릴 파일들을 등록

  • 내 pc(working directory)에서 올리고 싶은 파일을 staging area에 등록
    git add

2) Commit

  • Add로 등록된 파일들을 한 덩어리로 묶고, 메시지를 추가해 Local 저장소에 업로드

3) push

  • commit되어 로컬 저장소에서 변경이 된 파일들을 원격저장소로 올리는 단계
  • push이전까지는 내pc에서만 진행됨
  • origin : 원격저장소

4) pull

  • 원격저장소의 변경사항을 로컬 저장소로 가져오고 내 작업소스에 합침
  • fetch(원격저장소의 로컬저장소로) + merge(로컬저장소에서 내작업파일로 합치는 것)
    • fetch : 원격 저장소의 소스를 로컬 저장소로 받아옴(내 작업 소스에는 반영되지 않음)
    • merge: fetch해온 로컬 저장소의 소르를 내 작업 소스에 합침

3. Branch

새로운 가지를 만들어 다른방향으로 작업을 이어나가는 것

  • 브랜치 생성 : 브랜치 이름 작성 후 생성(feature1)
  • 새 브랜치 체크아웃 : 브랜치를 생성한 후 현재 작업 소스를 해당 브랜치의 상태로 변경
    • 생성 직후에는 변경사항이 없어 브랜치는 로컬 저장소에만 반영되어있음
  • main 브랜치에 커밋 & 푸시
    • feature1 브랜치는 가만이 있고 main 브랜치만 뻗어나감
    • main 브랜치는 원격 저장소에까지 반영됨
  • feature1 브랜치에 커밋 & 푸시
    • feature1 브랜치와 main 브랜치가 서로 다른 방향으로 뻗어나감
    • 원격저장소에 feature1 브랜치 생성됨

4. Merge

각각의 브랜치에서 작업이 완료된 후 통합 브랜치(Main)으로 모아 합치는 작업

  • 기준이 되는 브랜치(main)로 체크아웃
  • merge 대상 브랜치(featrue)에서 merge 진행

5. Conflict

Branch를 Merge 할 때 발생할 수 있음

같은 파일의 같은 부분을 수정한 브랜치들을 merge할때 발생

  • merget시 충돌이 일어나면, 메시지 발생(해결해야할 병합 충돌이 있음을 안내)
  • 충돌 브랜치들의 내용을 각각 보여줌 -> 양자택일 필요
    • vsc에서도 확인가능

다른 팀원과 함께 브랜치를 머지할때는 해당 작업자와 논의 필요!


6. Fork 복제

다른 사람의 원격저장소에서 어떤 부분을 수정하고나 추가 기능을 넣고 싶을때 해당 원격 저장소를 재 원격 저장소에 그대로 복제하는 것

  • 다른 계정으로 접속
  • 원하는 레포지토리의 깃헙 페이지 접속 후 fork 버튼 클릭

fork 🆚 clone

- fork : 다른 사람의 원격저장소를 내 계정의 깃헙 원격저장소로 복제

- clone : 원격저장소에서 내 로컬 저장소로 복제

 


7. Git Cli 명령어

  • git clone [원격 저장소 주소]
  • git status : 저장소 상태 보기

  • git add & git status

         👉🏻 git add 후 status 확인해보기

  • git restore --staged [파일경로] : staging했던 파일 다시 working directory로 내리기

          👉🏻 git restore로 staging되었던 파일을 다시 working directory로 내렸을때 status 확인해보기

  • git push
  • git log --decorate --graph

'Dev-log > GIT' 카테고리의 다른 글

Git  (0) 2024.04.06

1. 정의

버전 관리시스템

2. 효과

프로젝트 소스코드를 효과적으로 관리

  • 소프트웨어의 여러 버전을 동시에 관리
  • 프로젝트 진행의 모든 로그를 볼 수 있고 해당시점으로 되돌리는 것도 가능
  • 각 기능별 분업 후 하나이 코드로 합칠 수 있음

3. 설정

1) 사용자 설정

  • git config --global : 한 사용자의 전체 git repository에 적용
  • git config --list : 설정확인

2) Github 계정에 ssh key 등록

  • 컴퓨터에서 ssh key 생성
  • github 계정에 ssk key 값을 등록

4. 기본 명령

1) 초기화

git init
.git 폴더가 생성됨

  • 폴더안에는 설정파일, 버전들에 대한 기록이 담기게 됨

2) 삭제

rm -rf.git

  • .git을 삭제하면 설정파일부터 버전기록까지 모두 삭제한다는 의미

3) .gitignore

  • 사용자가 git에 등록(커밋) 되지 않길 원하는 파일 또는 폴더들의 목록을 저장
    • 비밀번호
  • .gitignore에 등록된 파일들은 커밋시 자동으로 제외
  • 작성법
    • #은 주석의 역할
    • 폴더 : /폴더명(ex: /docs)
    • 파일 : 파일명.확장자(ex: text.txt)
    • 폴더 안 파일 : /폴더명/파일명.확장자(ex: /docs/text.txt)
    • 폴더 안 특정 확장자 파일 전부(ex: /docs/*.text)
    • 폴더 하위 모든 특정 확장자 파일 전부(ex: /docs/*/.txt)

5. 기본동작 원리

순서대로 진행되어야 함

  • working directory : 작업하는 파일이 있는 디렉토리
    • git add로 staging area로 보냄
  • staging area : git에 등록할 파일들이 올라가는 영역
    • 변경사항을 잠시 기록하는 공간 
    • git에 올리기전에 어떤 파일들이 올라갈지 결정
    • git commit하면 local repository에 등록
  • local repository : 로컬 git 프로젝트의 메타데이터와 데이터 정보가 저장되는 영역
    • git push로 온라인 repository 등록
  • remote repository : github등의 서비스를 통한 온라인 상의 저장소

6. 기본용어

  • origin : 원격에 있는 코드
  • head : 내가 지금 작업하고 있는 로컬브랜치
  • add : working directory에서 staging area로 등록
  • commit : staging area에 등록된 파일을 local storage로 등록
  • commit message: commit시 함께 작성해 저장하는 메모
  • push : local repository에서 변경된 파일들을 remote repository로 등록
  • fetch : remote repository의 변경된 파일들을 local repository로 전달
  • merge : local repository의 변경사항을 working repository로 전달
    • staging area를 거치진 않음
  • branch : 독립적으로 어떤 작업을 따로 진행하기 위한 가지
  • checkout : 사용할 다른 브랜치를 지정

7. 저장소

1. 저장소

파일이나 폴더를 저장하는 곳
Git저장소는 파일 변경 이력별로 구분되어 저장

2. Local Repository

내 pc에 파일이 저장되는 개인전용 저장 공간

1) Local Repository 생성

  1. 원하는 폴더 생성
  2. 해당 폴더에서 git init 명령어 입력
  3. . git폴더 생성 확인

3. Remote Repository

파일이 전용 서버에서 관리되며 여러 사람이 함께 공유
Github를 통해 생성

 

'Dev-log > GIT' 카테고리의 다른 글

Git 실행하기  (0) 2024.04.06

1. 구조를 나타내는 요소

div

정의

  • division, section을 의미
  • HTML 요소의 구역을 나누는 역할
  • display:block 속성을 가짐
    • 폭(width)만큼 길이를 차지하는 속성을 가짐

사용목적

  • 일단 div 태그로 구역을 나누어서 웹페이지를 구성
  • 유지보수, 협업 용이

2. 텍스트 요소

figure

독립적인 콘텐츠를 표현

  • pre, blockquote와 같은 태그는 그 자체로 독립적인 내용을 담고 있지 않음
    • 이런 태그들을 묶어서 위 혹은 아래에 설명을 추가하는 태그
  • 이미지, 비디오, 도표 등을 묶어서 설명하기도 하는 태그
  • 연관성이 있는 컨텐츠를 묶어줌

3. 임베디드 요소

1) img

  • 빈요소 → 내용을 작성하는 태그가 아님

  • 어떤 이미지를 가져오고 어떻게 띄울지를 속성으로 정함

  • 속성

    • src속성에 경로를 넣어줌

    • width, height: 사이즈 정해줌

    • srcset : 작은 화면에서 접속한 사람은 작은 이미지를, 큰화면에 접속한 사람들은 큰 이미지를 제공

      • 여러개의 경로를 입력할 수 있음
      • 반응형 이미지를 만들기 위함(사용자의 viewport 기준)
      • 2개 이상의 이미지 파일을 쉼표로 구분하고 너비서술자, 픽셀미도서술자 사용
        <img
          src="images/large.png"
          srcset="image/small.png 300w,
                  image/medium.png 450w,
                  image/large.png 600w"
        >
      • srcset속성은 지원이 안되는 브라우저가 존재함 → 반드시 src 속성이 필요함, 그래야 srcset 속성이 지원되지 않는 브라우저에 기본값으로 이미지를 띄워줄 수 있음
      • srcset 속성의 경우 작은화면(300)에서 접속한 사용자의 브라우저에는 medium이나 large 이미지를 미리 다운 받지 않음 → 300을 넘어갈때 medium 이미지를 다운 받아서 보여줌
    • size : 특정 조건에 따라서 다른 이미지를 지정된 사이즈로 보여줌

        <img 
        src="images/large.png"
        srcset="image/small.png 300w,
                image/medium.png 450w,
                image/large.png 600w"
        size="(min-width: 600px) 600px,
              (min-width: 450px) 450px,
              300px"
        >
      • 조건에서 많이 사용하는 것 : min-width, max-width

2) iframe

  • 현재 문서 안에 다른 HTML 페이지를 삽입
  • 일방적으로 사용자들에게 정보를 전달

4. 폼관련 요소

  • 사용자들에게 정보를 입력할 수 있는 장치를 마련해줌

1) form 태그

단독으로 사용하면 눈에 보이는 화면은 없음 → 그자체로 요소인 태그가 아님

  • action 속성 : form 데이터를 모아 전송할때 전송할 주소 / 목적지의 주소
    • 사용자가 정보를 제출 → 어디로 요청을 보내야할지에 관한 정보를 가짐
  • method 속성 : 양식을 제출할 때 사용할 HTTP 매서드(form 태그가 제출되었을때 어떤 방식으로 정보를 전달할지 방식을 결정
    • get
      • url로 어떤 페이지에 접속했는지 표현(경로)
      • ?를 기준으로 정보를 url에 표현
      • &를 통해 정보가 2개이상일 때 정보를 나열(사용자가 입력한 데이터를 주소창에 나열)
      • input태그의 name의 값과 사용자가 입력한 정보의 형태로 전달해줌(name=사용자가 입력한정보)
    • post
      • 사용자가 어떠한 정보를 입력했는지 url로 보여주지 않음
      • 서버에다가 action의 값인 url에 정보를 요청

2) input 태그

사용자가 정보를 입력하는 영역

  • type 속성 : input의 유형을 정함

    • text, email, password, button, checkbox 등
    • type에 따라 사용할 수 있는 속성이 달라짐input type이 submit 🆚 button
      • input type이 submit인 경우 : form으로 제출 가능
      • input type이 button인 경우 : 버튼을 눌렀을때 form으로 제출 불가
        ⇒ input 태그는 type이 submit일때만 form 제출 가능
      • button type이 submit인 경우 : 제출 가능
      • button의 type이 없는 경우 : 제출 가능
        ⇒ button태그는 type에 상관 없이 form 제출 가능
    <form action="./result.html" method="get"> 
      <div>ID : <input name="id" type="text" /></div> 
      <div>PW : <input name="password" type="password" /></div> 
      <input type="submit" value="로그인"/> 
      <input type="button" value="로그인" /> 
      <button type="submit">로그인</button> 
      <button>로그인</button> 
    </form>
  • name 속성 : 서버에 사용자 정보를 전송할때 전체 form 데이터를 구분하기 위함

    • 전체 form 데이터 중 해당 필드가 어떤 데이터를 가지고 있는지 구별
    • form태그를 통해 전달되는 정보를 담고 있는 역할(form 데이터 상에서 구분 가능)
  • id 속성 : 하나의 form에서 중복 불가

  • minlength 속성 : 글자수를 제한하여 최소글자보다 많이 입력하도록 처리

  • autocomplete : 자동완성으로 값은 on 또는 off

  • required 속성 : 필수 속성 지정 시 사용

  • disabled 속성 : 입력 불가하도록 처리 → form 제출에 해당 input이 포함되지 않음

  • readonly 속성 : 수정만 불가 → form 제출시 제출 가능(value 속성으로 값 지정도 가능)

3. label 태그

input에 labeling을 해줌

  • for 속성 : 어떤 input을 가리키는지 명시

    • input 태그의 id 속성과 동일한 값 지정

      <label for="foodname">음식이름 : </label>
      <input type="text" name="food" id="foodname">
  • input 태그를 label의 자식 요소로 작성하면 for 속성을 사용하지 않아도 됨

4. fieldset & legend 태그

<fieldset>
      <legend>FOOD</legend>
      <label for="foodname">음식이름 : </label>
      <input type="text" name="food" id="foodname" />
</fieldset>
  • fieldset : 여러 컨트롤과 레이블을 묶을 때 사용
    • 첫번째 자식이 반드시 legend 태그여야 함
    • disabled 속성 : 사용시 모든 자손 input태그 전체가 disabled 처리됨
  • legend: 부모 fieldset 콘텐츠의 설명을 나타냄

5. button 태그

자식 요소를 가질 수 있음

  • type 속성 : reset, button, submitinput태그의 type속성 button 🆚 button
    • input 태그 : value 속성으로 button의 이름을 설정
    • button 태그 : 내용에 text입력으로 button 이름을 설정
    • 차이점
      • input의 value는 문자열만 가능
      • button 태그는 내부적으로 스타일링 가능 : 제출하기

6. select & option 태그

  • select : 드롭다운 메뉴를 만들어주는 태그
  • option : select의 후보군을 넣어주는 태그
    • value 속성 : 서버로 보내질때 사용
      • value 속성을 사용하지 않으면 내용요소를 value값으로 사용
      • value를 사용하지 않으려면 value=""처럼 빈문자열로 처리해야함
        → option 태그의 내용은 한글로 작성하고, 서버로 보낼때 영어로 보내고 싶을 때는토이스토리
      • option태그의 내용은 UI적 요소만을 담당

7. datalist 태그

드롭다운 형태로 값을 추천하고 수정할 수 있는 태그

  • option 속성 사용

8. textarea태그

여러줄의 text를 입력 받음

  • rows 속성 : 여러 행을 보여줄 때 사용
  • cols 속성 : 가로 폭 사이즈를 조정

3. meta 데이터 요소

데이터를 설명하는 데이터(HTML문서를 설명하는 데이터)

head

  • 페이지에 표시되지 않고, 문서에 대한 정보를 제공
  • 메타 데이터들은 head안에 들어있음
  • 검색엔진이 검색결과를 노출시키기 위해 문서의 내용을 확인하고, 그때 메타데이터를 사용해 정보를 분류

1) title

  • 하나의 head에는 하나의 title만 존재
  • 결과 페이지의 순서를 결정하는 구성 요소 중 하나

2**) meta**

  • 빈요소이기 때문에 요소를 가질 수 없고, 속성을 사용해야 함
  • 웹페이지들의 정보를 포함
  • 사용자가 볼수 없음
  • 부가적인 설명이 포함되어, 검색엔진이 웹페이지가 어떤 종류의 사이트인지 판단하는데 도움을 줌

3) link

  • 현재문서와 외부 리소스를 연결할 때 사용(외부파일) - css연결, 아이콘
  • 여러개의 파일 연결 가능 -> 여러개의 링크 태그 사용

4) MIME 타입

  • 오디오, 비디오 등을 링크태그를 사용해서 불러올 때, 경로를 문자열 형탱로 입력

    • HTML은 어떤 파일인지 해석할 수 없음
    • 단순히 기재된 경로를 문서로 불러올 뿐임
  • 파일이 어떤 파일인지 인지하기 위해 타입을 명시해주는 것

5) style

  • HTML 내부에서 스타일 태그를 사용해 스타일 지정 가능

6) script

  • 대부분 자바스크립트 코드를 연결하기 위해 사용
  • 외부의 자바스크립트 파일을 연결할 때, HTML 내부에서 직접 자바스크립트를 작성할 수 있게해줌
  • script태그는 head에서도 body에서도 작성 가능
    • HTML문서는 위에서부터 순서대로 문서를 읽어나감
    • 문서를 읽다가 script 태그를 만나면 안에 내용을 확인 → 내용에 자바스크립트가 있으면 잠시 멈추고 자바스크립트 코드를 해석
      • 지연발생 → body태그는 head태그보다 뒤에 작성되어 있기 때문
      • body태그의 첫번째에 script태그를 사용한 경우에도 지연 발생!
    • 자바스크립트 코드가 포함된 script 태그는 body태그의 제일 마지막에 작성하는 것을 권장

'Dev-log > HTML' 카테고리의 다른 글

전역속성  (0) 2024.04.07
HTML 기초  (0) 2024.04.06
HTML과 웹브라우저  (0) 2024.04.06

1. HTML

  • HTML의 요소 하나하나는 태그
  • HTML은 태그들의 집합
  • 태그를 활용하여 어떤 요소인지 명시 

2. HTML 문서 구조

<!DOCTYPE html>
<html>
  <head>
  	<!-- head 입력 -->
  </head>
  <body>
  	<!-- body 입력 -->
  </body>
</html>
  • DOCTYPE html : 브라우저에게 HTML파일임을 알려줌
    • Document Type의 약어
    • 웹문서가 어떠한 형식으로 작성되었는지 최상단에 선언
  • html 태그 : head + body로 이루어짐(페이지 전체의 컨텐츠를 감싸는 루트요소)
    • head 태그 : 사용자가 body태그를 읽기 전에 알아야 할 정보, html 파일의 기본적인 정보
      1. 사람이 읽을 수 있는 정보는 아님(화면에 나타나지 않음) → 브라우저가 식별할 수 있는 정보
      • body 태그 : 사용자에게 보여주고 싶은 컨텐츠

3. 태그

  • <태그이름> 으로 선언
  • 여는태그와 닫는태그로 구성
    <div>내용(content)</div>
  • 내용 : 요소의 내용
    • 컨텐츠(내용)에는 문자열이 들어가거나 다른 태그가 들어갈 수도 있음
      <p>
      	컨텐츠가 들어갑니다.
      	<span>그렇군요</span>
      </p>
  • 요소 : 여는태그, 닫는태그, 내용을 통틀어서 표현
    • 위에서 2개의 요소로 이루어져있음(p태그, span태그)

 

  • 빈태그(컨텐츠가 필요로 하지 않는 태그) : 열고 닫는 태그로 구성할 필요 없음 
    • 내용을 가지지 않는 요소
    • 대표적으로 <img>, <hr>, <br>
    • 닫는 태그를 추가로 명시하지 않아도 문법적으로 문제가 없음

 

  • 태그들은 계층적으로 이루어져 있음(요소는 중첩 가능)
    <body>
    	태그들은 계층적으로 이루어져 있다
    	<p>
    		컨텐츠를 입력!
    		<span>
    			안녕하세요
    		</span>
    	</p>
    </body>
    • p태그를 기준으로 body태그는 부모 태그
    • span태그는 자식태그
      • 자식 태그들은 부모 태그가 닫히기 전에 닫혀야 함

 

4. 태그를 구분짓는 특성

1) 구획을 나누는 태그

  • 단독으로 사용했을 때에 눈에보이지 않음
  • layout을 위한 태그
  • 여러가지 요소들을 묶어서 그룹화

2) 그 자체로 요소인 태그

  • 단독으로 사용했을 때에도 눈으로 확인 가능

 

5. 시멘틱 태그

  • 특별한 의미를 가지는 태그
  • 구획을 나누는 태그로 단독으로 사용했을 때는 눈에 보이지 않음
  • 단순 스타일링을 위해 사용하지 않도록 주의
    •  <strong></strong>태그는 의미적으로 강조할때만 사용
      → 글자를 굵게 만들기 위해 사용하지 않기

 

6. 블록과 인라인

태그가 정의될때 블록인지 인라인인지 정해짐
1️⃣ 블록

  • 블록 레벨 요소는 새로운 줄에서 시작, 좌우 양쪽으로 최대한의 너비를 차지
    • 화면 전체를 차지한다는 의미는 아님 : 부모가 허용한 최대 너비를 차지
    • 상자를 아래로 쌓는것

2️⃣ 인라인

  • 인라인 요소는 줄의 어느 곳에서나 시작 가능
  • 바로 이전 요소가 끝나는 지점에서 시작하여 요소(content)의 내용만큼 차지
포함규칙
- 같은 형태의 다른 요소를 안에 포함할수 있음(블록 > 블록, 인라인 > 인라인)
- 대부분의 블록 요소는 다른 인라인 요소를 안에 포함할 수 있음
⚠️ 인라인 요소는 블록 요소를 포함할 수 없음

 

7. 경로

1) 절대경로

  • 인터넷, url로 접속가능한 경로
    <a href="www.naver.com">네이버</a>

2) 상대경로

  • (통상적으로) 개발 환경에서 시작되는 경로
  • 디렉토리
    HTML
    ├── **test**
    │   ├── sample.html
    ├── index.html
    ├── style.css
    • index.html
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <link rel="stylesheet" ***href="style.css"*** />
        </head>
        <body>
          <a href="./test/sample.html">sample</a>
        </body>
      </html>
      • ./ : 현재 파일이 위치한 경로
      • 현재파일이 위치한 상대 경로 ./는 생략 가능
    • sample.html
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8" />
          <meta name="viewport" content="width=device-width, initial-scale=1.0" />
          <title>Document</title>
        </head>
        <body>
          <h1>test 폴더의 sample.html입니다.</h1>
          <a href="../index.html">index로 돌아가기</a>
        </body>
      </html>
      
      • ../ : 상위 경로 또는 이전 경로

 

8. 벡터 이미지 🆚 래스터 이미지

  • 벡터 이미지
    • 이미지를 확대해도 이미지가 깨지지 않음
    • 점과 점을 이어주는 직선으로 연결되어 있음(아이콘, 그래프) 
    • SVG
  • 비트맵 이미지
    • 확대되면 이미지가 깨지는 현상(풍경사진)
    • 브라우저의 해상도에 맞게 하나의 픽셀로 이루어져 렌더링(격자 하나하나가 정보를 가짐)
    • JPEG : 정적이미지(손실 압축에 적합)
    • PNG : 정적이미지 + 투명도가 필요한 경우
    • GIF : 여러장의 이미지로 이루어진 애니메이션 표현 가능
    • WEBP : 압축등이 우수하나 브라우저가 제한적

 

 

'Dev-log > HTML' 카테고리의 다른 글

전역속성  (0) 2024.04.07
HTML 태그  (0) 2024.04.06
HTML과 웹브라우저  (0) 2024.04.06

+ Recent posts