Skip to content

Commit 77029e9

Browse files
committed
Update blog
1 parent 178c7e8 commit 77029e9

34 files changed

+275
-406
lines changed
Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,24 @@
11
---
2-
title: Base64 Encoding이란?
3-
tags:
4-
- Encode
2+
aliases: [../articles/2020-05/Base64-Encode]
53
date: 2020-05-11
6-
aliases:
7-
- ../articles/2020-05/Base64-Encode
4+
tags: [Encode]
5+
title: Base64 Encoding
86
---
9-
10-
## Encoding이란?
7+
# Encoding이란?
118
- 정보의 형태나 형식을 `표준화`, `보안`, `처리 속도 향상`, `저장 공간 절약` 등을 위해서 다른 형태나 형식으로 변환하는 방식을 말한다.
129

1310
## Base64 Encoding이란?
1411
- Binary Data를 Text 형태로 변환하는 방식을 말한다.
1512
- Character set에 영향을 받지 않는 공통 `ASCII 영역`의 문자로만 이루어진 문자열로 바꾸는 Encoding이다.
1613

17-
#### 왜 Base64를 사용하는가?
14+
### 왜 Base64를 사용하는가?
1815
- ASCII는 7 bits Encoding인데 나머지 1bit를 처리하는 방식이 시스템 별로 다르게 처리할 수 있다.
1916
- 일부 제어문자(Line ending)의 경우 시스템 별로 다른 코드값을 갖는다.
2017
- ASCII는 시스템간 데이터를 전달하기에 안전하지가 않다.
2118
- Base64는 ASCII 중 제어문자와 일부 특수문자를 제외한 64개의 안전한 출력 문자만 사용한다.
2219
- `안전한 출력 문자`는 문자 코드에 영향을 받지 않는 `공통 ASCII`를 의미한다.
2320

24-
#### How to work?
21+
### How to Work?
2522
- 길이 3인 "ace"를 encode 해보자.
2623
- `ace`를 10진수로 변환한다.
2724
- a= 97, c= 99, e= 101
@@ -35,7 +32,7 @@ aliases:
3532
- 10진수를 다시 문자열로 변환한다.
3633
- 24= Y, 22= W, 13= N, 37= l
3734

38-
#### 6bit로 안나눠지는 경우는 어떻게 처리할까?
35+
### 6bit로 안나눠지는 경우는 어떻게 처리할까?
3936
- `abcd`로 예를 들어보자.
4037
- a= 97, b= 98, c= 99, d= 100
4138
- 97= 01100001, 98= 01100010, 99= 01100011, 100= 01100100
@@ -49,7 +46,7 @@ aliases:
4946
- “abcd” => “YWJjZA==”
5047

5148

52-
#### 단점은 없을까?
49+
### 단점은 없을까?
5350
- Base64 Encoding을 하게되면 전송해야 될 데이터의 양이 늘어난다.
5451
- Base64 과정에서 Overhead 발생한다.
5552

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,19 @@
11
---
2-
title: DB의 Index 기능에 대해
3-
tags:
4-
- Database
2+
aliases: [../articles/2017-07/DBIndex]
53
date: 2017-07-09
64
description: Database Index 기능에 대해 소개한다.
7-
aliases:
8-
- ../articles/2017-07/DBIndex
5+
tags: [Database]
6+
title: DB의 Index 기능에 대해
97
---
8+
# Database Index
109
## 들어가며
1110
> 많은 면접을 보면서 공통으로 DB Index의 개념에 대해 질문을 받았다. 내가 알고있던 Index는 Read 성능을 향상시키기 위해 사용되는 기능으로만 알고 있었지만 좀 더 자세하고 정확하게 알기 위해 포스팅한다. 앞으로 많은 인원이 사용할 수 있는 서버를 만들기 위해 성능에 관해 공부를 많이 하려고 노력해야 겠다.
1211
1312
## SQL의 간단한 예시
1413
- `SELECT first_name FROM people WHERE last_name = 'Smith';`라는 SQL문을 실행한다고 가정해 보자.
1514
- Index가 설정되어 있지 않는다면 Database는 Full table scan이라고 불리는 scan을 진행한다.
1615

17-
## Full table scan
16+
## Full Table Scan
1817
- row의 값을 순차적으로 scan하며 값을 비교한다.
1918
- Full table scan은 가장 느린 scanning방법이며 많은 자료가 담긴 Disk를 읽기 위한 I/O를 사용하며 자원을 잡아먹는다.
2019
- 결국엔 속도도 느리고 자원도 많이 사용하는 좋지 않은 방법이다.

content/blog/Database Replication.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
aliases: [../articles/2018-02/Database-Replication]
33
date: 2018-02-16
44
tags: [Database]
5-
title: Database의 리플리케이션(Replication)
5+
title: Database Replication
66
---
77
# Database Replication
88
## 배경
Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,22 @@
11
---
2-
title: Docker란?
3-
tags:
4-
- docker
2+
aliases: [../articles/2020-05/Docker]
53
date: 2020-05-25
6-
aliases:
7-
- ../articles/2020-05/Docker
4+
tags: [docker]
5+
title: Docker
86
---
9-
10-
![[assets/logo/docker.png]]
11-
7+
# Docker
128
## 들어가며
139
- 도커를 조금 더 자세하고 정확하게 이해하기 위해 자료를 정리합니다.
1410
- 아래의 모든 내용의 출발점은 `도커는 어떻게 OS위에서 동작할까?`에서 시작합니다.
1511

1612
## 도커는 OS위에서 동작하는거 같은데.. 가상 머신일까? 프로세스(컨테이너)일까?
17-
#### [가상 머신이란 무엇일까?](https://www.redhat.com/ko/topics/virtualization/what-is-a-virtual-machine)
13+
### [가상 머신이란 무엇일까?](https://www.redhat.com/ko/topics/virtualization/what-is-a-virtual-machine)
1814
- 가상 머신은 하드웨어(CPU, RAM, Network) 스펙들을 소프트웨어로 구현합니다.
1915
- 쉽게 말하자면 소프트웨어 위에 컴퓨터를 다시 만드는 것?
2016
- 하이퍼바이저에 의해 구동되는 VM은 각 VM마다 독립된 가상 하드웨어 자원(CPU, RAM, Network등)을 할당받습니다.
2117
- 논리적으로 분리되어 있어서 한 VM에 오류가 발생해도 다른 VM으로 퍼지지 않는다는 장점이 있습니다.
2218

23-
#### [리눅스 컨테이너란?](https://www.redhat.com/ko/topics/containers/whats-a-linux-container)
19+
### [리눅스 컨테이너란?](https://www.redhat.com/ko/topics/containers/whats-a-linux-container)
2420
- `운영체제 수준`의 가상화 기술로 `리눅스 커널을 공유`하면서 `프로세스를 격리된 환경`에서 실행하는 기술입니다.
2521
- 리눅스 컨테이너는 호스트 머신에게는 프로세스로 인식합니다.
2622
- 컨테이너 관점에서는 마치 독립적인 환경을 가진 가상 머신처럼 보입니다.
@@ -42,24 +38,24 @@ aliases:
4238
![[assets/posts/img/2020-05-26-14-07-01.png]]
4339

4440

45-
#### [컨테이너와 가상 머신은 무슨 차이가 있을까?](https://docs.microsoft.com/en-us/virtualization/windowscontainers/about/containers-vs-vm)
46-
#### VM
41+
### [컨테이너와 가상 머신은 무슨 차이가 있을까?](https://docs.microsoft.com/en-us/virtualization/windowscontainers/about/containers-vs-vm)
42+
### VM
4743

4844
![[assets/posts/img/2020-05-26-14-10-08.png]]
4945

5046
- 커널이 각각 소유하기 때문에 보안에 더 강하다.
5147
- 더 많은 자원을 사용하게 된다.
5248
- 문제가 생기는 경우 운영체제부터 리부팅을 진행해야 하기 때문에 복구 시간이 오래 걸린다.
5349

54-
#### Linux Container
50+
### Linux Container
5551

5652
![[assets/posts/img/2020-05-26-14-09-51.png]]
5753

5854
- 커널을 공유하기 때문에 보안에 취약할수도 있다.
5955
- 커널을 공유하기에 더 적은 자원을 사용하게 된다.
6056
- 문제가 생기는 경우 해당 컨테이너만 빠르게 리부팅을 하여 복구 할 수 있다.
6157

62-
#### 추가적으로 컨테이너는 커널을 공유한다는데.. 커널옵션은 어떻게 적용되는것인가?
58+
### 추가적으로 컨테이너는 커널을 공유한다는데.. 커널옵션은 어떻게 적용되는것인가?
6359
- 예전에는 우회하는 방법을 사용했지만 현재 문서를 확인해보니 공식적으로 지원하는 것처럼 보인다.
6460
- [docker ulimit](https://docs.docker.com/engine/reference/commandline/run/#set-ulimits-in-container---ulimit)
6561
- 커널 옵션이 공유가 되는 건 아닌 것처럼 보이는데 정확하게는 더 찾아봐야겠다..
Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,11 @@
11
---
2-
title: 덕 타이핑(Duck Typing)이란?
3-
tags:
4-
- Programming
2+
aliases: [../articles/2018-02/Duck-Typing]
53
date: 2018-02-06
6-
aliases:
7-
- ../articles/2018-02/Duck-Typing
4+
tags: [Programming]
5+
title: 덕 타이핑(Duck Typing)
86
---
9-
7+
# Duck Typing
108
> 만약 어떤 새가 오리처럼 걷고, 헤엄치고, 꽥꽥거리는 소리를 낸다면 나는 그 새를 오리라고 부를 것이다.
11-
12-
# 덕 타이핑(Duck Typing)이란?
139
- 사람이 오리처럼 행동하면 오리로 봐도 무방하다라는게 덕 타이핑(Duck Typing)이다.
1410
- 타입을 미리 정하는게 아니라 실행이 되었을 때 해당 Method들을 확인하여 타입을 정한다.
1511
- 장점
Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,15 @@
11
---
2-
title: Git Pull 충돌 오류시 해결방법
3-
tags:
4-
- Git
2+
aliases: [../articles/2017-03/Git-Stash]
53
date: 2017-03-01
6-
aliases:
7-
- ../articles/2017-03/Git-Stash
4+
tags: [Git]
5+
title: Git Pull 충돌 오류시 해결방법
86
---
9-
10-
![[assets/logo/git.png]]
11-
7+
# Git Stash
128
## 들어가며
139

1410
> 다른 사람들과 협업을 하던 도중에 git pull을 통해 Project를 동기화하려고 했는데 Error Message가 발생하여 해결하기 위해 Git stash에 대해 알아보았다. 많은 사람들이 이 기능을 보면 쉽게 충돌 에러를 피할 수 있을 것 같아 포스트를 한다.
1511
16-
## Git pull 충돌 오류시 해결방법
12+
## Git Pull 충돌 오류시 해결방법
1713

1814
## 1. Error Message
1915

@@ -33,17 +29,17 @@ Aborting
3329

3430
## 3. Stash 따라하기
3531

36-
#### 3.1 파일 변경하기
32+
### 3.1 파일 변경하기
3733
- 출력으로 Test
3834

3935
![[assets/posts/20170301/1.PNG]]
4036

41-
#### 3.2 Git Status 확인하기
37+
### 3.2 Git Status 확인하기
4238
- unstaged에 파일이 올라가 있는 모습확인
4339

4440
![[assets/posts/20170301/2.PNG]]
4541

46-
#### 3.3 stash 사용하기
42+
### 3.3 Stash 사용하기
4743
- 명령어
4844

4945
```shell
@@ -52,11 +48,11 @@ $ git stash
5248

5349
![[assets/posts/20170301/3.PNG]]
5450

55-
#### 3.4 변경할 파일 다시 확인해보기
51+
### 3.4 변경할 파일 다시 확인해보기
5652

5753
![[assets/posts/20170301/4.PNG]]
5854

59-
#### 3.5 현재 등록된 stash 확인하기
55+
### 3.5 현재 등록된 Stash 확인하기
6056
- 명령어
6157

6258
```shell
@@ -65,7 +61,7 @@ $ git stash list
6561

6662
![[assets/posts/20170301/5.PNG]]
6763

68-
#### 3.6 저장된 stash 다시 적용하기
64+
### 3.6 저장된 Stash 다시 적용하기
6965
- 명령어
7066

7167
```shell
@@ -74,7 +70,7 @@ $ git stash pop
7470

7571
![[assets/posts/20170301/6.PNG]]
7672

77-
#### 3.7 파일 다시 확인해보기
73+
### 3.7 파일 다시 확인해보기
7874

7975
![[assets/posts/20170301/7.PNG]]
8076

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,24 @@
11
---
2-
title: Git 커밋(Commit)을 쉽게 다루어 보자
3-
tags:
4-
- Git
2+
aliases: [../articles/2017-03/git-commit]
53
date: 2017-03-27
6-
aliases:
7-
- ../articles/2017-03/git-commit
4+
tags: [Git]
5+
title: Git 커밋(Commit)을 쉽게 다루어 보자
86
---
7+
# Git Commit
98

109
![[assets/logo/git.png]]
1110

1211
## 들어가며
1312
> 개발하는 과정에 있어 commit을 잘못하거나, 팀원들의 코드 리뷰를 통해 문제를 수정하고 다시 commit하는 과정에서 불필요한 commit들을 합치는 과정이 필요하다. git의 commit에 대한 명령어에 대해 기억하기 위해 포스팅을 한다.
1413
1514
## Commit 명령어
16-
#### 1. git commit --amend
15+
### 1. Git Commit --amend
1716
- 가장 최근의 **commit 내용을 수정을 원할 때** 사용하기 편하다.
1817

1918
```shell
2019
$ git commit --amend
2120
```
22-
#### 2. git revert
21+
### 2. Git Revert
2322
- commit 내용을 복구하여 이전상태로 돌리고, **복구내용을 commit 남긴다.**
2423

2524
```shell
@@ -36,15 +35,15 @@ Date: Wed Jul 18 15:46:28 2012 +0900
3635
This reverts commit 0d4a808c26908cd5fe4b6294a00150342d1a58be.
3736
```
3837

39-
#### 3. git reset
38+
### 3. Git Reset
4039
- commit 내용을 복구하여 이전상태로 돌리고, **복구내용은 남기지 않는다.**
4140
- 조심해서 사용하자. 복구하면 되돌릴 수 없다.
4241

4342
```shell
4443
$ git reset --hard HEAD
4544
```
4645

47-
#### 4. git rebase
46+
### 4. Git Rebase
4847
- 여러가지의 commit들을 **합치거나 수정할때** 유용하게 사용할 수 있다.
4948

5049
```shell
@@ -61,7 +60,7 @@ $ git rebase -i HEAD~commit개수
6160
# x, exec = run command (the rest of the line) using shell
6261
```
6362

64-
#### 5. Excercise - commit 합치기
63+
### 5. Excercise - Commit 합치기
6564

6665
```shell
6766
$ git rebase -i HEAD~commit개수
Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,9 @@
11
---
2-
title: Git .gitignore 적용하기
3-
tags:
4-
- Git
2+
aliases: [../articles/2017-01/Git-Ignore]
53
date: 2017-01-26
6-
aliases:
7-
- ../articles/2017-01/Git-Ignore
4+
tags: [Git]
5+
title: Git .gitignore 적용하기
86
---
9-
10-
![[assets/logo/git.png]]
11-
127
# **Git .gitignore File 적용하기**
138

149
## .gitignore이란?

0 commit comments

Comments
 (0)