
하드코딩?
아직은 변수를 이용할 수 없기 때문에, HTML 문서에 아래와 같이 하나하나 입력해야 하는데. 이런 방식을 하드코딩이라고 한다.
// 하드코딩의 예
console.log('2 x 1 = 2')
console.log('2 x 2 = 4')
console.log('2 x 3 = 6')
console.log('2 x 4 = 8')
<!-- 실제로는 어떤 로직에 의해서 적절한 위치에 값이 들어가게 됩니다. -->
<div class="writer">김코딩</div>
<div class="content">SNS는 인생의...</div>


실제 VScode의 레이아웃을 분석해 큰 틀에서 추상화하면, 다음과 같이 영역을 나눌 수 있다.
Atomic CSS방법론 : 클래스 이름과 구현을 1:1로 일치시켜 아주 작은 단위로 CSS를 작성 기법.(https://www.sitepoint.com/css-architecture-block-element-modifier-bem-atomic-css/)
HTML 문서는 기본적인 스타일을 가지고 있는데, 이 HTML 문서가 갖는 기본 스타일이, 레이아웃을 잡는 데 방해가 되기도 한다.
(사례)

언급한 문제를 해결할 몇 줄의 코드를 적용시키면, 기본 스타일링을 제거하여 디자인한 대로 레이아웃을 구현할 수 있다.
(예시)
* {
box-sizing: border-box;
}
body {
margin: 0;
padding: 0;
}
박스를 유연하게 늘리거나 줄여 레이아웃을 잡는 방법입니다. display: flex 라는 CSS 속성도 Flexbox속성 중 하나이다.
display:flex 분석
main {
**display: flex;**
border: 1px dotted red;
}
부모 요소에 적용해야하는 Flexbox 속성들
1.flex-direction : 정렬 축 정하기
2.flex-wrap : 줄 바꿈 설정하기
3. justify-content : 축 수평 방향 정렬
4. align-items : 축 수직 방향 정렬
1. flex-direction : 정렬 축 정하기
flex-direction : row 가로로 정렬한다.main {
display: flex;
**flex-direction : row;**
}
/* 부모 요소인 main에 작성하여 자식 요소인 div들을 정렬할 축을 정합니다. */

주요 속성값.
2. flex-wrap : 줄 바꿈 설정하기
main {
display: flex;
**flex-wrap : nowrap;**
}
/* 부모 요소인 main에 작성하여 자식 요소인 div들의 줄 바꿈을 어떻게 할지 정합니다. */

3. justify-content : 축 수평 방향 정렬
-플렉스아이템들이 플렉스박스 주추글 따라 배치될 때, 요소 사이의 공간을 분배 하는 방식을 결정한다.
flex-start : 기본값.
flex-end : 순서는 유지한체 뒷쪽으로 붙인다.
center : 가운데로 정렬한다.
space-between : 양끝쪽의 여백 없이 item을 펼친다.
space-around : flex item이 각자 동일한 여백을 가지고 정렬된다.
space-evenly : 양끝을 포함해서 모든 여백이 동일하다.


4. align-items : 축 수직 방향 정렬
stretch : 플렉스아이템이 교차축 길이에 맞춰 늘어난다.(너비, 높이가 우선)
flex-start : 교차축의 시작점으로부터 끝점을 향해 배치한다.f
lex-end : 교차축의 끝점으로부터 시작점을 향해 배치한다.
center : 교차축의 중심부에 배치한다.

세 가지 값을 지정해 줄 수 있다.
flex: <grow(팽창 지수)> <shrink(수축 지수)> <basis(기본 크기)>
grow(팽창 지수) : 요소의 크기가 늘어나야 할 때 얼마나 늘어날 것인지
shrink(수축 지수) : 요소의 크기가 줄어들어야 할 때 얼마나 줄어들 것인지
basis(기본 크기) : 늘어나고 줄어드는 것과 상관없이 요소의 기본 크기는 얼마인지
grow(팽창 지수)는 정렬축 방향으로 빈 공간이 있을 때, 각 자식 요소들이 얼마나 늘어나서 남는 공간을 차지할 것인지 비율을 정하는 것이라고 생각하면 이해하기 쉽습니다.
shrink(수축 지수)는 grow와 반대로, 설정한 비율만큼 박스 크기가 작아집니다. 비율이 클수록 더 많이 줄어드는 것이죠. 그러나 flex-grow 속성과 flex-shrink 속성을 함께 사용하는 일은 추천하지 않습니다. 비율로 레이아웃을 지정할 경우 flex-grow 속성 또는 flex: <grow> 1 auto와 같이 grow 속성에 변화를 주는 방식을 권장합니다.