1차 세미나
Git
- 버전 관리 용이
- 수정한 내용 비교 가능
- 파일을 이전 상태로 돌릴 수 있음
- 프로젝트 자체를 이전 상태로 돌릴 수 있음
- 누가, 언제 만들었는지 추적할 수 있음
- 파일 복구 가능
- 협업 용이
- 브랜치로 분기를 지정하여 기능별로 분리하여 작업할 수 있음
- feature
- develop
- release
- master
- glt flow를 이용하여 브랜치 병합 과정에서 충돌을 최대한 피하기 위해서
- 충돌 시
pull request을 이용하여 자동으로 merge되는 것을 방지함- 버전 선택 가능
- 충돌 시
- 각자 다른 부분을 작업한 후 합칠 수 있음
- 브랜치로 분기를 지정하여 기능별로 분리하여 작업할 수 있음
- 브랜치를 통한 비선형적인 개발
- 원격 저장소가 있다면 어디서나 개발 가능 (Github)
- 어디서나 clone 받을 수 있음
- 하나의 repository를 여러 사람과 공유할 수 있음
- remote가 남아있다면 복구 가능
- LOCAL
- Working Directory
- 새로 생성: Untracked
- 변경됨: Modified
- Staging Area
- Commit할 파일들을 모아놓는 공간
- Repository
- Commit 후에 버전이 기록되는 공간
- history 관리
- Working Directory
- REMOTE
Git 관련 용어
- Working Tree
- Commit
- Branch
- Merge
- HEAD
Git 기본 명령어
개인 작업 시
- local
1 | git init <folder name> |
git
new Repository 생성
1
2git remote add origin <address>
git remote -v // 상태 확인
update
1 | git add . |
1 | git log // log 확인 |
1 | git push origin master // 원격 저장소 master 브랜치 업데이트 |
WEB
WEB 동작 원리
- DNS (Domain Name Server)
- 3-way / 4-way handshake
URL / URI
- URL
http://sopt.org:80/wp- 인터넷 상의 자원의 위치
- URI
http://sopt.org:80/wp/url.pdf- 인터넷에 있는 자원을 나타내는 식별자
http://sopt.org:80/wp/?page_od=2519
- protocol
http- 원거리 통신 장비 사이에서 메시지를 주고받는 규칙
- http는 www 상에서 하이퍼텍스트를 주고받는 규칙
- // 없어도 작동함
domain name
sopt.org- 네트워크 상에서 컴퓨터를 식별하는 호스트명
- DNS에서 IP 주소로 변경해준다
- e.g. 172.217.25.238 : google.com
port
80- 네트워크 서비스나 특정 프로세스를 식별하는 논리 단위
- 다른 방으로 들어가는 문과 같다
- e.g. 80번: HTTP, 443번: HTTPS
path
wp- 요청한 자원에 대한 웹 서버 내 경로
query
?page_id=2519- 웹 서버에 제공하는 추가 파라미터
IP
- 통신에 필요한 각 장치를 나타내는 주소
HTTP
request
- http method
reponse
- status code
HTML
HyperText Markup Language
웹 페이지의 뼈대를 담당한다.
HyperText
- 참조를 통해 한 문서에서 다른 문서로 즉시 접근할 수 있는 텍스트
- 웹 상에 존재하는 여러 문서끼리 참조할 수 있는 기술
Markup Language
- 태그 등을 이용하여 문서나 데이터의 구조를 명기하는 언어의 한 가지
- 데이터를 기술하는 정도로만 사용되기에 프로그래밍 언어가 아님
- e.g. 마크다운
<!DOCTYPE html>명시- semantic tag 지원
- form 기능 개선
- 다양한 API 지원
Tag
1 | <tag attribute="value"> ...content... </tag> |
태그 이름은 대소문자 구분이 없다
태그가 엇갈려서 중첩되면 안 된다
여러 속성이 tag에 들어갈 수 있음
content
- 텍스트 / 다른 태그
- 감싸진 태그의 자식노드가 됨
<단독 태그 />
구성 Tag
<html>
- 전체 html 을 감싼다
<!DOCTYPE html>을 벗어날 수 없음
<head>
<meta>- metadata // 기타 정보
<style>- 외부 style이 아닌 내부에 정의 가능
<body>
- space / enter 많이 해도 한개 이외에는 반영 안 됨
iframe은 보안 문제가 있으므로embed이용하기
블록 / 인라인
- 블록
- 줄 바꿈이 일어나는 형태
- 영역의 너비가 상위 영역의 전체 너비만큼 늘어남
- 내부에 다른 요소를 포함할 수 있음
<div>로 블록 요소를 그룹화
- 인라인
- 줄 바꿈이 일어나지 않는 형태
- 영역의 너비가 하위 영역의 전체 너비만큼 늘어남
- 내부에 다른 요소를 포함할 수 없음
<span>으로 인라인 요소를 그룹화
Semantic Tag
- 컴퓨터가 이해하기 쉽도록 구분한 태그
- 의미를 가지고 있는 블록 요소
기타
- 주석
- 특수 문자
CSS
CSS3
- 웹 문서용
- 모듈 기반
- 원하는 모듈만 탑재 가능
- 필요한 모듈만 빠르게 업데이트 가능
- 기존의 도구 없이도 화려하고 동적인 스타일 구현 가능
1 | <tag style="color: red;"> ...content... </tag> |
tag 별로 style 첨부
<head>안에 style 첨부외부 css 파일 import
1
<link rel="stylesheet" type="text/css" href="*.css">
적용 우선순위
중요도 (선언 위치)
- 태그 내부의 style
<head>의<style>- 2 내의 @import
<link>로 연결된 css 파일- 4 내의 @import
- 브라우저의 기본 css
대상의 명시도
- !important
- inline 스타일
- id 선택자
- 클래스 / 가상 선택자
- 태그 선택자
- 상속된 스타일
코드 순서
늦게 선언된 스타일을 우선 적용
Selector (선택자)
- 전체 선택자
* - 태그 선택자
- id 선택자
# - class 선택자
.
다중 값 적용 방법
- 다중 태그는
,로 구분 - 다중 속성은
;로 구분 - 다중 속성 값은
,로 나열
복합 선택자
선택자 사이의 띄어쓰기: 선택자 조합
h3 p {...}- h3 태그 내부의 모든 p 태그
선택자 사이의
>: 자식 선택자h3 > p {...}- h3 태그 바로 아래의 p 태그
가상 클래스 선택자
Attribute (속성)
text-transform- UPPERCASE
- LOWERCASE
position- absolute
- parent-context에 맞게
- context에 관계 없이 사용자가 지정한 위치에 고정되어서
- relative
- child-context에 맞게
- context에 따라 위치 다르게 적용
- fixed
- 위치 변하지 않음
- absolute
overflow- auto
- 스크롤 하지 않을 때는 보이지 않음
- auto
box-sizing- border-box 설정
- border를 포함한 전체 box의 크기가 설정한 값과 일치하게
- 설정 안 하는 경우
- 추가 border 등의 값이 반영되어 box size가 달라짐
- border-box 설정
- transform, transition 만으로 animation 효과 줄 수 있음
Box Model
- content : 요소가 차지하는 공간
- padding : 요소와 테두리 사이의 공간
- border : 테두리
- margin : 다른 요소 사이의 빈 공간
Flexible Box
- flex container
- display
- flex-direction
- flex-wrap : 줄 바꿈
- justify-content : 주 축의 정렬 방법
- align-items : 교차 축의 정렬 방법
- flex items
- flex-grow : 증가 너비 비율
- flex-shrink : 감소 너비 비율
- flex-basis
- default:
0 1 auto - 많이 설정:
1 0 auto
- default: