hexo 블로그 시작하기

hexo와 github page를 사용하여 블로그를 시작한다.

Hexo-cli 설치하기

1
npm install -g hexo-cli

Hexo 시작하기

처음 블로그를 만드는 경우는 다음과 같이 생성하며, 만약 pull 받은 경우에는 반드시!! npm install을 해주어야 한다.

1
2
3
hexo init blog
cd blog
npm install

설정하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
_config.yaml 파일 수정

# Site
title: Writer, IT Blog # 타이틀
subtitle: Eirc Han's IT Blog using Hexo # 서브 타이틀
description: Eirc Han's IT Blog using Hexo # 블로그 설명
author: Eric Han # 저자 이름
language: en # 기본 언어. 다국어 지원
timezone: Asia/Seoul # 해당 타임존 설정 (https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)

# URL
url: http://futurecreator.github.io/ # 앞에서 만든 github page 주소
root: / # 기본은 / 이고 만약 서브디렉토리 구조를 가진다면 루트를 지정하는 부분.
permalink: :year/:month/:day/:title/ # 기본 permalink (고정 url). 새글 생성 시 자동으로 지정된 형식의 URL이 할당된다.
permalink_defaults:

# Deployment
deploy:
type: git
repo: https://github.com/futureCreator/futurecreator.github.io.git

git에 배포하기 위한 환경 설정하기

1
npm install hexo-deployer-git --save

배포하기

hexo generate

generate 된 파일 clear
hexo clean
hexo deploy

한줄로 끝내기
hexo g -d

포스트 작성하기

hexo new "my post"

로컬 서버로 돌려보기

hexo server

태그 여러개 붙이기

1
2
3
4
tags :
- tag_1
- tag_2
- tag_n

컴파일 에러

hexo 에서 {{}} 처럼 이중 브래킷을 사용하는 경우 컴파일 에러가 발생한다. 이 경우에는 다음 코드를 사용 하여 블록을 씌워주면 해결된다.
1
2
3
4
5
{% raw %}

//content

{% endraw %}

광고달기

참조글


Mysql 시작하기

개요

ubuntu 서버에 mysql 서버를 설치하고 환경을 설정하고 실제 운용까지 필요한 모든 내용을 담았다.

설치

window

아래와 같이 mysql-server를 설치해 준다.
주의 할 점은 mysql 서버에 접근하기 위해서는 3306포트가 열려있어야 하는데 만약 서버 컴퓨터를 cafe24나 aws를 통해 만드는 경우 반드시 인바운드 규칙에서 3306포트를 추가시켜 주어야 한다.

1
2
3
4
5
6
sudo apt-get update
sudo apt-get install mysql-server // 이 과정에서 아이디랑 비밀번호를 물어본다.
mysql_secure_installation //mysql 보안 설정을 세팅한다.
systemctl status mysql.service //mysql이 실행되었는지 확인한다.
sudo systemctl start mysql //mysql이 실행되고 있지 않다면 실행한다.
mysqladmin -p -u root version // mysql을 관리할 수 있다 이경우 버전을 확인하는 명령어이다.

macOS

1
2
3
4
brew install mysql // 서버 설치하기
mysql.server start // 실행하기
mysql -u root // 로그인하기
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password' // 비밀번호 재설정하기

환경설정

window

먼저 다음 명령어를 통해 mysql 에 접속한다.

1
mysql -u 사용자_이름 -p 비밀번호

mysql에 접속한 뒤 해야 할 첫번째는 바로 외부 접속이 가능한 계정을 만드는 것이다.
본 계정을 통해 다른 컴퓨터에서 workbench 등의 프로그램을 통해 연결하여 db를 세팅하기 용이하다.
다음 명령어를 통해 새로운 mysql 계정을 비밀번호와 함께 만들어 준다.

1
create user [user명]@'%' identified by '패스워드';

위 계정으로 다른 컴퓨터에서 접근을 하면 권한이 없다는 말이 나타날 것이다.
이는 바로 mysql server의 초기 세팅이 내부 ip 에서만 접근 가능하도록 세팅되어 있기 때문인데
아래와 같은 방법으로 외부에서도 접근이 가능하게 바꾸어 준다.

먼저 mysql의 mysqld.cnf라는 설정파일을 vi 에디터로 열어준다.

1
2
Cd /etc/mysql/mysql.conf.d
sudo vi mysqld.cnf

bind-address =127.0.0.1 부분을 주석처리 후 아래의 명령어를 통해 mysql 서버를 재시작 시켜준다.

1
sudo /etc/init.d/mysql restart

위 설정을 완료하였다면 생성한 계정이 데이터베이스에 대한 모든 권한을 가지도록 권한을 설정해 준다.
아래는 권한을 설정하는 예제이다.

1
grant all privileges on exampledb.* to admin@'%' identified by 'password' with grant option;

MYSQLADMIN 을 사용한 MYSQL 조작

MYSQL 콘솔이 아닌 그냥 컴퓨터 커맨드 라인에서 MSYQL 콘솔에 접근하기 위한 훌륭한 명령어인 mysqladmin이 있으며 다음과 같이 사용합니다.

1
mysqladmin -u _user_name_ -p _password_ CREATE DB_NAME

명령어 사용하기

1
mysqladmin -u _user_name_ -p _password_ -e "_statement_"


스트림과 데이터의 이동

컴퓨터 프로그래밍에서 입력이란 프로그램을 기준으로 프로그램 안으로 데이터가 흘러들어가는 것이고 출력이란 프로그램을 기준으로 데이터가 나오는 것이다.

우리는 흔히 컴퓨터 프로그램에 입력을 입력하고 문자열이 출력되는 것을 보면서 어떻게 컴퓨터가 모니터에 저런 문자열을 출력할 수 있는지 궁금해 한다.

우리가 입력하는 문자열이 어떻게 모니터에 출력되는 것일까?

우리가 작성하는 프로그램과 모니터는 기본적으로 연결되어 있는 것이 아닌 떨어져 있는 개체이며 둘 사이에 무언가 정보를 주고 받기 위해서는 이들을 연결시켜주는 다리가 필요하다. 이러한 매개물이 바로 스트림 이다.

c 언어 내의 printf 혹은 scarf 와 같은 함수는 운영체제에게 스트림의 형성을 요구하는 것이며 이는 표준 입출력 라이브러리인 stdin, stdout 을 통해 이루어 진다.

단일 문자의 입출력

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
int main(void)
{
int ch1, ch2;

ch1 = getchar(); // 표준 입력 스트림으로부터 하나의 문자를 입력 받아서 반환
ch2 = fgetc(stdin); // 문자를 입력받을 스트림을 지정

putchar(ch1); // 인자로 전달된 문자정보를 stdout으로 표현되는 표준 출력 스트림으로 전송하는 함수
fputc(ch2, stdout); // 문자를 전송할 스트림을 지정할 수 있다. 가령 파일을 대상으로 데이터를 전송한다.

return 0;
}

문자열의 입출력

문자열의 출력

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>

int main(void)
{
char *str = "Simple String";

printf("1, puts test -------- \n ");
puts(str);
puts("So Simple String");

printf("2. fputs test ------ \n");
fputs(str, stdout); // 두번째 인자에서 출력의 대상 선택
printf("\n");
fputs("So Simple String", stdout);
printf("\n");

printf("3. end of main --- \n");
return 0;
}

문자열의 입력

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>

int main(void)
{
char str[7];
int i;

for (i = 0; i < 3; i++)
{
fgets(str, sizeof(str), stdin); // str의 사이즈 만큼 문자열을 입력받는다.
printf("Read %d: %s \n", i + 1, str);
}

return 0;
}

표준 입출력과 버퍼

위처럼 표준 입출력 함수를 통해 데이터를 입출력 하는 경우 해당 데이터들은 운영체제가 제공하는 메모리 버퍼 를 중간에 통과하게 된다. 이 메모리 버퍼는 데이터를 임시로 모아두는 메모리 공간이다.

컴퓨터는 왜 이러한 입출력 스트림을 바로 저장하지 않고 입 출력 버퍼에 보관후에 저장하는 것일까?

이는 바로 데이터의 효율성 때문이다.

모니터와 키보드라는 외부 자원을 활용하는 것은 컴퓨터에게는 상당히 무거운 태스크 이며 이를 최소한으로 수행하기 위해 주고 받는 데이터를 모은 다음 한번에 처리하는 것이다.

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×