[포스코x코딩온] 웹 풀스택 과정 7기 1주차 목요일 회고
예비군
포스코X코딩온 웹 풀스택 7기 과정을 등록했다.
그러나 첫 주부터 상큼하게 예비군에 걸려 훈련을 받게 되었다.
때문에 4일차 CSS 부터 수강하게 되었다. 내용을 많이 놓칠까 걱정했지만 다행히 대부분 내가 이미 아는 내용이었기에 중간부터 참여해도 문제는 없었다.
CSS
Display
요소를 어떻게 보여줄지를 결정한다.
none
: 요소를 보이지 않게 한다.block
width
,height
,margin
,padding
속성을 모두 사용할 수 있다.- 기본적으로 가로폭 전체를 차지하기 때문에 줄바꿈이 된다.
div
,p
,h1
등
inline
- width, height, margin-top, margin-bottom 속성을 사용할 수 없다.
- 내부 컨텐츠의 크기만큼만 차지하기 때문에 줄바꿈이 되지 않는다.
span
,a
,img
등
inline-block
inline
과block
의 특징을 모두 가지고 있다.inline
처럼 한 줄에 표시되면서block
처럼 width, height, margin 속성을 모두 사용할 수 있다.
flex
display: flex
를 사용하면 자식 요소들을 flex item으로 만들 수 있다.justify-content
center
: 가운데 정렬space-around
: 여백을 동일하게, 양 끝 여백 Ospace-between
: 여백을 동일하게, 양 끝 여백 X
align-items
start
: 위로 붙임center
: 가운데 정렬end
: 아래로 붙임
Animation
요소의 애니메이션을 설정한다.
- 애니메이션을 적용할 요소
animation-name
: 애니메이션 이름animation-duration
: 애니메이션 1회 지속시간animation-iteration-count
: 애니메이션 반복 횟수animation-timing-function
: 애니메이션 속도linear
: 일정한 속도ease
: 느리게 시작해서 빠르게ease-in
: 느리게 시작
@keyframes
: 애니메이션의 중간 중간 상태를 지정from
: 시작 상태to
: 끝 상태<0 ~ 100>%
: 중간 상태
Position
요소의 위치를 설정한다.
top: px;
left: px;
relative
- 원래 있어야 할 위치를 기준으로 이동한다.
- 기존의 자리를 차지한다.
absolute
- 부모의 위치를 기준으로 이동한다.
- 기존의 자리를 차지하지 않는다.
Shadow
요소의 그림자를 설정한다.
다람쥐 헌 쳇바퀴에 타고파
px
px
px
text-shadow
- 가로 거리, 세로 거리, 번짐 정도, 색상
- 텍스트에 그림자 효과를 준다.
box-shadow
- 가로 거리, 세로 거리, 번짐 정도, 색상
- 요소에 그림자 효과를 준다.
JS
JS도 대부분 아는 내용이었다.
변수
변수를 할당하는 키워드는 var
, let
, const
가 있다.
var
- 함수 스코프 내에서 호이스팅 되어 선언 전에 사용 가능하기 때문에 사용하지 않는 것이 좋다.
- 재할당 가능
let
- 블록 스코프내에서만 유효하고 호이스팅이 발생하지 않기에
var
보다 안전하다. - 재할당 가능
- 블록 스코프내에서만 유효하고 호이스팅이 발생하지 않기에
const
- 마찬가지로
var
에 비해 안전하다. - 재할당이 불가능하다. 다만 이는 변수가 가리키는 값을 변경할 수 없다는 의미로, 객체의 속성은 변경할 수 있다.
- 마찬가지로
var
는 이제 사용하지 않는 것이 좋다.
웬만하면 const
를 사용하고, 재할당이 필요한 경우에만 let
을 사용하는 것이 좋다.
자료형
JS의 자료형은 크게 원시형과 참조형으로 나뉜다.
- 원시형
number
bigint
string
boolean
null
undefined
symbol
- 참조형
object
array
function
date
null
typeof
연산자를 사용하면 자료형을 확인할 수 있다.
Number
, String
, Boolean
, Symbol
등의 생성자 함수를 사용하면 형변환을 할 수 있다.
함수
함수는 function
키워드를 사용하여 function <함수 이름>(<매개변수>) { <함수 내용> }
형태로 선언한다.
이름을 생략하여 function(<매개변수>) { <함수 내용> }
형태의 익명함수로 정의할 수도 있다.
이 경우에는 선언 전에 호출할 수 없다. (호이스팅이 발생하지 않는다.)
또한 function
키워드 대신 화살표 함수를 사용할 수도 있다.
(<매개변수>) => { <함수 내용> }
형태로 선언한다. (익명함수로만 사용할 수 있다.)
<함수 이름>(<매개변수>)
형태로 호출한다.
나머지 공부
중요한 내용은 모두 다뤄주셨지만 조금 부족한 부분이 있어서 추가로 찾아봤다.
flex
display
속성에는 위에서 배운 네 가지 값 이외에도 grid
등의 값이 있다고 알고 있어서 찾아봤다.
그런데 생각보다 양이 많았다…
MDN > CSS > display 속성 에 따르면 카테고리만 6개나 된다고 한다.
이에 대해서는 나중에 정리해야겠다.
다만 flex
는 자주 사용할 것 같아서 정리했다.
display: flex
를 사용하면 자신은 Flex container
, 자식 요소들은 Flex item
이 된다.
Flex item은 주축의 방향으로 배치된다.
주축의 방향이 row
, row-reverse
인 경우, width
는 자신의 내용물의 크기만큼만 차지하고 height
는 부모의 높이만큼 차지한다.
이 때, Flex container의 height
는 자식 요소들의 height
의 최댓값으로 자동으로 설정된다.
그러므로 일부 Flex item의 height
가 변화하면 형제 요소들의 height
도 변화할 수 있다.
flex-direction
- 주축의 방향을 설정한다. 방향에 맞춰 자식요소들의 나열 방향이 바뀐다. 또한 교차축도 주축에 따라 바뀐다.
- 값
row
: 가로 시작선에서 끝선으로 (기본값)row-reverse
: 가로 끝선에서 시작선으로column
: 세로 시작선에서 끝선으로column-reverse
: 세로 끝선에서 시작선으로-
왼쪽, 오른쪽이 아니라 가로 시작선에서 끝선인 이유
`direction` 속성을 사용해서 방향을 바꿀 수 있기 때문이다. 예를 들어서 대부분의 언어는 왼쪽부터 읽지만 아랍어 같은 경우 오른쪽부터 읽는다. 이런 경우 `direction` 속성을 사용해서 방향을 바꿀 수 있다.
flex-wrap
- 자식 요소들이 한 줄에 다 들어가지 않을 때 줄바꿈을 할지 설정한다.
- 값
nowrap
: 한 줄에 다 들어가지 않으면 줄바꿈을 하지 않는다. (기본값)wrap
: 한 줄에 다 들어가지 않으면 줄바꿈을 한다.wrap-reverse
: 한 줄에 다 들어가지 않으면 줄바꿈을 한다. 단, 줄바꿈을 할 때 교차축의 반대 방향 으로 한다.
flex-flow
flex-direction
과flex-wrap
을 한 번에 설정한다.flex-flow: <flex-direction> <flex-wrap>
형태로 사용한다.
justify-content
- 자식 요소들을 교차축을 기준으로 정렬한다.
- 값
flex-start
: 교차축의 시작점에 정렬한다. (기본값)flex-end
: 교차축의 끝점에 정렬한다.center
: 교차축의 중앙에 정렬한다.space-between
: 교차축의 시작점과 끝점에 정렬하고 나머지 요소들은 균등하게 정렬한다.space-around
: 요소들을 균등하게 정렬하고 양 끝에는 절반만큼의 공간을 둔다.space-evenly
: 요소들을 균등하게 정렬하고 양 끝에도 균등하게 공간을 둔다.
align-items
- 자식 요소들을 교차축을 기준으로 정렬한다.
- 개별 값을 설정하고 싶다면 Flex item의
align-self
속성을 사용한다. - 값
stretch
: 교차축의 길이만큼 요소들을 늘린다. (기본값)flex-start
: 교차축의 시작점에 정렬한다.flex-end
: 교차축의 끝점에 정렬한다.center
: 교차축의 중앙에 정렬한다.baseline
: Text baseline1에 정렬한다.
align-content
- 자식 요소들을 교차축을 기준으로 정렬한다.
- 값 (flex-wrap이 wrap일 때만 적용된다.)
stretch
: 교차축의 길이만큼 요소들을 늘린다. (기본값)flex-start
: 교차축의 시작점에 정렬한다.flex-end
: 교차축의 끝점에 정렬한다.center
: 교차축의 중앙에 정렬한다.space-between
: 교차축의 시작점과 끝점에 정렬하고 나머지 요소들은 균등하게 정렬한다.space-around
: 요소들을 균등하게 정렬하고 양 끝에는 절반만큼의 공간을 둔다.space-evenly
: 요소들을 균등하게 정렬하고 양 끝에도 균등하게 공간을 둔다.
flex-basis
- flex item의 초기 크기를 설정한다.
flex-grow
- Flex item의 증가 비율을 설정한다.
- 주어진 수의 비율만큼 여백 부분을 나눠 갖는다.
flex-shrink
- Flex item이 flex-basis 이하로 작아지지 않도록 설정한다.
- 값
- 1: flex-basis 이하로 작아질 수 있다. (기본값)
- 0: flex-basis 이하로 작아지지 않는다.
flex
함수 표현식과 화살표 함수의 차이
함수 표현식으로 정의된 함수에는 함수 객체에 this
바인딩이 존재한다.
하지만 화살표 함수는 this
바인딩이 존재하지 않는다.
예를 들어서 다음과 같은 코드를 보자.
const cat = {
name: 'meow',
foo1: function() {
const foo2 = function() {
console.log(this);
}
foo2();
}
};
cat.foo1(); // window
const cat = {
name: 'meow',
foo1: function() {
const foo2 = () => {
console.log(this);
}
foo2();
}
};
cat.foo1(); // Object { foo1: foo1() }
글자를 작성하는 밑줄. g, y, p 등의 일부 로마자의 꼬리가 내려가는 선. ↩︎