Skip to content

Commit

Permalink
[ chore ] edit the Title
Browse files Browse the repository at this point in the history
  • Loading branch information
eunbeann committed May 19, 2024
1 parent df42edf commit 72cea17
Show file tree
Hide file tree
Showing 46 changed files with 444 additions and 365 deletions.
2 changes: 1 addition & 1 deletion Algorithm/EdgeCase.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
### 엣지 케이스 (edge case)
# 엣지 케이스 (edge case)

- 하나의 매개변수 값이 극단적인 최대값 또는 최소값이여서 로직에 문제가 발생할 수 있는 경우
- 알고리즘이 처리하는 데이터의 값이 알고리즘 특성에 따른 일정한 범위를 넘을 경우에 발생하는 문제를 가리킴
Expand Down
2 changes: 1 addition & 1 deletion Algorithm/GCD.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
### 유클리드 알고리즘
# 유클리드 알고리즘

- 주어진 두 수 사이에 존재하는 최대공약수 (GCD\*)를 구하는 알고리즘

Expand Down
6 changes: 4 additions & 2 deletions Algorithm/Hash.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
//HTTPS://YOUTU.BE/ZFL29YDL9D8
# 해시(Hash)

### 1. 해시 개념

# 1. 해시 개념
//HTTPS://YOUTU.BE/ZFL29YDL9D8

### key:value의 형태를 갖는 자료 구조

Expand Down
4 changes: 3 additions & 1 deletion CS/BrowserRender.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
## 브라우저
# 브라우저 렌더링

# 브라우저

- Chrome, Safari, Firefox, Internet Explorer
- MDN : 웹에서 페이지를 찾아 보여주고, 사용자가 하이퍼링크를 통해 다른 페이지로 이동할 수 있도록 하느 ㄴ프로그램
Expand Down
4 changes: 3 additions & 1 deletion CS/Cookie,Session,Token.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
### 쿠키
# 쿠키 세션 토큰

## 쿠키

- 쿠키를 이용해 서버는 브라우저에 데이터를 넣을 수 있음
- 이용자를 기억하기 위해서
Expand Down
2 changes: 2 additions & 0 deletions CS/GETvsPOST.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# GET과 POST

## GET

- 클라이언트 서버에서 어떠한 리소스로 부터 정보를 요청하기 위해 사용되는 메서드
Expand Down
2 changes: 2 additions & 0 deletions CS/TDD, BDD.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# TDD,BDD

### TDD

- 테스트 주도 개발
Expand Down
12 changes: 7 additions & 5 deletions CSS/img-center-align.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
# 이미지 중앙정렬

## CSS에서 이미지 중앙 정렬하기

1. 이미지를 block 요소로 만들고 margin 값으로 중앙 정렬하기

```css
img {
display:block;
margin-left:auto;
margin-right:auto;
}
display: block;
margin-left: auto;
margin-right: auto;
}
```

1. 이미지 상위 요소에 text-align 속성 적용
1. 이미지 상위 요소에 text-align 속성 적용
20 changes: 10 additions & 10 deletions CSS/margin-collapsing.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# 마진 상쇄

## 박스의 기본

![Untitled](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/212869d7-af21-4dc1-b218-5769bced87f9/Untitled.png)
Expand All @@ -10,17 +12,15 @@
## 마진 상쇄 발생 상황

- 인접한 형제 박스 간 상하 마진이 겹치는 경우
- 큰 마진 값 하나만 적용되며, 동일한 마진을 가지는 경우 동일한 값을 한 번만 갖게 됨
- 큰 마진 값 하나만 적용되며, 동일한 마진을 가지는 경우 동일한 값을 한 번만 갖게 됨
- 빈 요소(height == 0)의 상하 마진이 겹치는 경우
- 위 아래의 경계가 없으므로 본인의 상단 마진 값과 하단 마진 값 중 더 큰 값으로 상쇄함.
- 위 아래의 경계가 없으므로 본인의 상단 마진 값과 하단 마진 값 중 더 큰 값으로 상쇄함.
- 부모 박스와 첫 번째 자식 박스의 상단 마진이 겹치는 경우
- 브라우저는 부모 바그와 자식 박스 강의 경계를 그 사이의 border / padding / inline 콘텐츠 유무로 판단
- inline 콘텐츠가 없거나, 명시적인 padding, border 값을 주지 않은 경우 마진이 겹침
- 자식 요소의 마진 크기와 관계 없이 상쇄된 마진은 부모 박스 바깥으로만 렌더링

![Untitled](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/45ca46ba-8535-430e-b122-bb20f1ce12c3/Untitled.png)

- 위와 같은 방법으로 padding 혹은 border 값을 주어 벽을 만들어주면 의도대로 자식 요소 배치 가능
- 브라우저는 부모 바그와 자식 박스 강의 경계를 그 사이의 border / padding / inline 콘텐츠 유무로 판단
- inline 콘텐츠가 없거나, 명시적인 padding, border 값을 주지 않은 경우 마진이 겹침
- 자식 요소의 마진 크기와 관계 없이 상쇄된 마진은 부모 박스 바깥으로만 렌더링
![Untitled](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/45ca46ba-8535-430e-b122-bb20f1ce12c3/Untitled.png)
- 위와 같은 방법으로 padding 혹은 border 값을 주어 벽을 만들어주면 의도대로 자식 요소 배치 가능

## 마진 상쇄 규칙

Expand All @@ -33,4 +33,4 @@
1. position : absolute인 경우
2. float:left/right인 경우 (clear되지 않은 상태)
3. display:flex 일 때 내부 flexbox item
4. display:grid일 때 내부 grid item
4. display:grid일 때 내부 grid item
9 changes: 1 addition & 8 deletions ETC/Aline.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,4 @@
<!-- <details>
<summary> title </summary>
<div markdown="1">
contents
</div>
</details> -->
# 리액트에서 불변성 지키기

<details>
<summary> 리액트에서 불변성 지키기 </summary>
Expand Down
2 changes: 2 additions & 0 deletions ETC/SPA_MPA_CSR_SSR.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# SPA_MPA_CSR_SSR

### SPA ↔ MPA

(Single Page Application) ↔ (Multi Page Application)
Expand Down
2 changes: 2 additions & 0 deletions Error/createStore_strikethrough.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# createStore_strikethrough

## 에러 코드

### Console
Expand Down
2 changes: 2 additions & 0 deletions GIT/GitFlow.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# Git Flow

## Git flow

- GitFlow는 feature 브랜치와 여러 기본 (primary) 브랜치를 사용하는 대안적인 git 브랜치 모델
Expand Down
20 changes: 10 additions & 10 deletions GIT/commitConventions.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# 커밋 컨벤션

## 커밋 메시지 형식

```powershell
Expand Down Expand Up @@ -65,16 +67,14 @@ The <type> and <summary> fields are mandatory, the (<scope>) field is optional.

- **모든 주요 변경 내역 (Breaking changes)**
- 다음과 같이 하단에 언급되어야 함
- 변경점(description of the change)
- 변경 사유 (justification)
- 마이그레이션 지시 (migration instructions)
- 변경점(description of the change)
- 변경 사유 (justification)
- 마이그레이션 지시 (migration instructions)
- 해결된 이슈 (Referencing issues)
- 해결된 이슈는 커밋 메시지 하단에 `Closes #<이슈번호>`와 같이 기록되어야 함
- 해결된 이슈가 여러개인 경우 다음과 같이 작성

`Closes #123, #245, #992`
Closes 대신 Fixes 를 사용하기도 함 (Angular 9 규약)

- 해결된 이슈는 커밋 메시지 하단에 `Closes #<이슈번호>`와 같이 기록되어야 함
- 해결된 이슈가 여러개인 경우 다음과 같이 작성
`Closes #123, #245, #992`
Closes 대신 Fixes 를 사용하기도 함 (Angular 9 규약)

```powershell
feat($browser): onUrlChange event (popstate/hashchange/polling)
Expand Down Expand Up @@ -159,4 +159,4 @@ scope: {
}
The removed `inject` wasn't generaly useful for directives so there should be no code using it.
```
```
4 changes: 3 additions & 1 deletion GIT/specificCommit.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# git reset --hard <commit id>

일반적인 방식으로 git clone을 하면 기본값은 가장 최신 버전

특정 버전의 커밋을 받아야하는 경우가 생겨서 찾아보았다
Expand All @@ -20,4 +22,4 @@ git log

```jsx
git reset --hard <commit id>
```
```
2 changes: 2 additions & 0 deletions HTML/buttonType.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# Button Type

## 개념

- button은 총 3가지의 type 속성을 가짐
Expand Down
2 changes: 2 additions & 0 deletions JAVA/Annotation.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# Annotation

- 주석이라는 의미를 가지며 소스 코드 사이에 @ 기호를 붙여서 사용
- 기존 주석과 의미는 유사하지만 코드 작성 여부에서 차이가 있다.
- JDK 1.5 버전 이상에서 사용 가능
Expand Down
2 changes: 2 additions & 0 deletions JAVA/확장for문.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# 확장 For 문

### 일반 for 문

```java
Expand Down
11 changes: 9 additions & 2 deletions JS/Array.prototype.map().md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# Array.prototype.map()

## 개념

- map() 메서드는
Expand Down Expand Up @@ -58,17 +60,21 @@

- **간단한 예제 1**
배열에 들어있는 숫자들의 제곱근을 구해 새로운 배열 만들기
```jsx

````jsx
var numbers = [1, 4, 9];
var roots = numbers.map(Math.sqrt);

// roots는 [1, 2, 3]
// numbers는 그대로 [1, 4, 9]
```

````

- **간단한 예제 2**
index 가 짝수인 값들만 객체 배열에서 뽑아내기
```jsx

````jsx
const data = [
{id: 0, name: '홍길동', age: 10},
{id: 1, name: '강호동', age: 20},
Expand All @@ -88,6 +94,7 @@
//{id: 2, name: '유재석', age: 30}
//{id: 4, name: '장채연', age: 50}
```
````

## 참고 링크

Expand Down
8 changes: 4 additions & 4 deletions JS/JSX.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
# JSX

🔗[https://ko.reactjs.org/docs/introducing-jsx.html](https://ko.reactjs.org/docs/introducing-jsx.html)

- 기능적인 큰 차이는 없음
- JSX는 리액트 엘리먼트를 생성

# JSX

javascript에 xml을 추가한 확장형 문법

빌드시에는 Babel에 의해 JS로 변환된다.

```jsx
const element = <h1> Hello, world!</h1>
const element = <h1> Hello, world!</h1>;
```

JS를 확장한 문법인 JSX.
Expand All @@ -31,4 +31,4 @@ document.getElementById('root')
);

출처: https://gocoder.tistory.com/2219 [고코더 IT Express]
```
```
6 changes: 6 additions & 0 deletions JS/Math.Floor,ParseInt.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,25 @@
# Math.Floor,ParseInt

- 두 메서드가 양수일 경우 ⇒ 내림한 결과

```jsx
a = Math.floor("18.34"); // 18
b = Math.floor("72.78"); // 72

a2 = parseInt("18.34"); // 12
b2 = parseInt("72.78"); // 56
```

- 두 메서드 **음수일 경우** ⇒ 차이 발생

```jsx
c = Math.floor("-18.34"); // -19
d = Math.floor("-72.78"); // -73
c2 = parseInt("-18.34"); // -18
d2 = parseInt("-72.78"); // -72
```

- Math.floor : 소수 첫째 자리에서 양수일 때 처럼 **내림**
- parseInt : 올림 → 소수점을 버려 **올림한** 값이 나옴

Expand Down
66 changes: 32 additions & 34 deletions JS/NaN===NaN.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# **Why “NaN === NaN” is False?**
# Why “NaN === NaN” is False?

- NaN은 특별한 값을 가지고 있어서, NaN과 NaN은 동등 비교(===)를 하면 항상 false를 반환.
- 이는 NaN이 "숫자가 아님"을 나타내는 특수한 값이지만, 실제로는 값이 정의되어 있지 않은 상태이기 때문!!!!
- **다른 어떤 값과도 (자기 자신 포함) 같지 않기 때문임.**
- 이 동작은 부동 소수점 산술을 위한 IEEE 754 표준의 결과입니다. 이 표준은 `NaN`을 정의하며,
이는 **정의되지 않거나 나타낼 수 없는 수학적 작업의 결과를 나타내는 특수한 값**
이는 **정의되지 않거나 나타낼 수 없는 수학적 작업의 결과를 나타내는 특수한 값**
- `NaN`은 "숫자가 아님"을 의미하지만, 실제로는 JavaScript에서 특정 값으로 반환될 수 있는 특정 값이다.
**예를 들어** 0을 0으로 나누거나 잘못된 숫자를 구문 분석하려고 시도하는 경우 `NaN`이 반환될 수 있음.
**예를 들어** 0을 0으로 나누거나 잘못된 숫자를 구문 분석하려고 시도하는 경우 `NaN`이 반환될 수 있음.

- `NaN`은 특정한 숫자 값이 아니기 때문에, `===` 연산자를 사용하여 자기 자신을 비롯한 어떤 값과도 비교할 수 없음

Expand All @@ -16,51 +16,49 @@
## **NaN 여부 확인을 위해 isNaN() 을 써야하는 상황?**

1. **사용자 입력 값의 유효성 검사**
1. 사용자로부터 입력받은 값이 숫자인지 아닌지를 확인하여 유효성을 검사함
1. 사용자로부터 입력받은 값이 숫자인지 아닌지를 확인하여 유효성을 검사함
2. **계산 결과의 유효성 검사**
1. 계산 결과가 숫자인지 아닌지를 확인하여 유효성을 검사하는 데 사용됨
1. 계산 결과가 숫자인지 아닌지를 확인하여 유효성을 검사하는 데 사용됨
3. **데이터 처리**
1. 데이터를 처리하는 도중에 유효하지 않은 값을 처리하는 데 사용
1. **문자열을 숫자로 변환할 때 생기는 오류 처리**
1. parseInt(), praseFloat() 함수를 이용해서 문자열을 순자로 변환할 수 있지만 변환 결과가 NaN일 경우

```jsx
let num = parseInt("Hello World");
if(isNaN(num) {
console.log("문자열을 숫자로 반환할 수 없습니다.");
}
```

2. **수학적 계산에서 NaN 값이 생성될 수 있는 경우**
1. 0으로 나누거나, Infinity를 0으로 나누는 수학적 계산을 수행하는 경우.

```jsx
let result = 10/0;
if(isNaN(result)) {
console.log("0으로 나누어 계산할 수 없습니다.");
}
```

1. 데이터를 처리하는 도중에 유효하지 않은 값을 처리하는 데 사용
1. **문자열을 숫자로 변환할 때 생기는 오류 처리**
1. parseInt(), praseFloat() 함수를 이용해서 문자열을 순자로 변환할 수 있지만 변환 결과가 NaN일 경우

```jsx
let num = parseInt("Hello World");
if(isNaN(num) {
console.log("문자열을 숫자로 반환할 수 없습니다.");
}
```
2. **수학적 계산에서 NaN 값이 생성될 수 있는 경우**
1. 0으로 나누거나, Infinity를 0으로 나누는 수학적 계산을 수행하는 경우.
```jsx
let result = 10 / 0;
if (isNaN(result)) {
console.log("0으로 나누어 계산할 수 없습니다.");
}
```
## **===Number나 ===float, ===int 대신 isNaN()을 쓰는 이유?**
**`===Number`****`===float`**, **`===int`** 와 같은 비교 연산자는
**`===Number`** 나 **`===float`**, **`===int`** 와 같은 비교 연산자는
특정 타입의 값을 확인하기 위해 사용 됨.
하지만 **`isNaN()`** 함수는 값이 **`NaN`** 인지 여부를 확인하기 위해 사용
하지만 **`isNaN()`** 함수는 값이 **`NaN`** 인지 여부를 확인하기 위해 사용
또한, JavaScript에서는 몇 가지 유형의 값들이 서로 상호작용할 때, 예기치 않은 결과를 일으킬 수 있음
또한, JavaScript에서는 몇 가지 유형의 값들이 서로 상호작용할 때, 예기치 않은 결과를 일으킬 수 있음
예를 들어, **`NaN === NaN`** 비교 연산의 결과는 **`false`**
예를 들어, **`NaN === NaN`** 비교 연산의 결과는 **`false`**
숫자가 아닌 값들에 대해서도 예상되는 결과를 얻기 위해서 **`isNaN()`** 함수를 쓴다!
숫자가 아닌 값들에 대해서도 예상되는 결과를 얻기 위해서 **`isNaN()`** 함수를 쓴다!
**`isNaN()`** 함수는 숫자인지 여부를 확인하기 위해 사용되며, 다양한 유형의 값들에 대해서도 정확한 결과를 얻을 수 있다. 그러므로, 값이 **`NaN`** 인지 여부를 확인하기 위해서는 **`isNaN()`** 함수를 사용해야한다.
**`isNaN()`** 함수는 숫자인지 여부를 확인하기 위해 사용되며, 다양한 유형의 값들에 대해서도 정확한 결과를 얻을 수 있다. 그러므로, 값이 **`NaN`** 인지 여부를 확인하기 위해서는 **`isNaN()`** 함수를 사용해야한다.
## **숫자가 아니면 다 NaN인 거 아니야?**
- 부동 소수점 방식에서는 "NaN(Not a Number)"이라는 값이 존재함.
NaN은 숫자가 아님을 나타내는 값으로, 예를 들어 0으로 나누거나 0을 곱하면 NaN이 된다.
NaN은 숫자가 아님을 나타내는 값으로, 예를 들어 0으로 나누거나 0을 곱하면 NaN이 된다.
- 하지만 모든 비숫자 값이 NaN은 아닙니다.
예를 들어 `Infinity(양의 무한대)``-Infinity(음의 무한대)`는 숫자이며, 또한 `null`, `undefined` 등의 값도 NaN은 아님!!!!!!
예를 들어 `Infinity(양의 무한대)``-Infinity(음의 무한대)`는 숫자이며, 또한 `null`, `undefined` 등의 값도 NaN은 아님!!!!!!
- 따라서 부동 소수점 방식에서는 NaN 외에도 Infinity, -Infinity 등의 특수한 값을 가질 수 있다.
Loading

0 comments on commit 72cea17

Please sign in to comment.