1. certbot 설치하기.

sudo su

git clone https://github.com/certbot/certbot

cd certbot

./certbot-auto --os-packages-only

./tools/venv.sh


#certbot 인증서 발행

source ./venv/bin/activate


./venv/bin/certbot -d [*.도메인] --email [Email] --text --agree-tos --server  https://acme-v02.api.letsencrypt.org/directory --manual --preferred-challenges dns --expand --renew-by-default  --manual-public-ip-logging-ok certonly



 - 이메일로 인증한번하고 txt도 인증해야함.


2. 도메인 txt 등록

 - 사용중인 DNS를 이용하여 등록.


 1) cafe 24


 2) route 53



3. nginx 설정하기.

server 

{

    listen       443;

    server_name  [도메인];

    

    ssl                  on;

    ssl_certificate /etc/letsencrypt/live/[도메인]]/fullchain.pem;

    ssl_certificate_key /etc/letsencrypt/live/[도메인]]/privkey.pem;

    ssl_session_timeout  5m;

    ssl_protocols  SSLv2 SSLv3 TLSv1;

    ssl_ciphers  HIGH:!aNULL:!MD5;

    ssl_prefer_server_ciphers   on;


    #location 세팅

}


4. 갱신하기

 - 해당 인증서는 3개월에 한번씩 갱신해줘야한다.

 - 신경쓰기 귀찮으니... 알아서 될 수 있도록 cron을 등록한다.

sudo su

crontab -e


 - 아래 내용을 추가한다.

0 1 * * * certbot renew

0 1 * * * systemctl reload nginx


https://stackoverflow.com/questions/50317773/how-to-include-bootstrap-4-in-an-electron-app


1. package.json 에 추가하기.

npm install --save jquery 

npm install --save bootstrap 

 - 아래와 같은 메시지가 노출된다면.


npm install --save popper.js 


2. html에 import 하기

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Elctron Test</title>
<link rel="stylesheet" href="node_modules/bootstrap/dist/css/bootstrap.css">
</head>
<body>
<a class="btn btn-info">TEST BTN</a>
<script>
window.$ = window.jquery = require("jquery");
window.popper = require("popper.js");
require("bootstrap");

require('./common.js');
</script>
</body>
</html>


3. 사용해보기.

 - 결과


'프로그래밍 > Node.js' 카테고리의 다른 글

[Electron.js] Bootstrap 4 사용하기.  (0) 2018.09.11
npm에서 --save, --save-dev 옵션  (0) 2018.05.02
Mongoose 사용하기.  (0) 2016.08.22

1. 현재 사용량 확인해보기.

SHOW STATUS LIKE 'Max_used_connections';


2. 세팅된 현재 값 확인해보기.

SHOW VARIABLES LIKE 'max_connections';


 - 웹 콘솔에서 확인해보면 아래와 같은 값으로 세팅되어있다.

GREATEST({log(DBInstanceClassMemory/805306368)*45},{log(DBInstanceClassMemory/8187281408)*1000})


3. 위처림 계산하는게 아닌! 하드코딩처럼 특정 값으로 수정하자!

 - 파라미터에서 max_connections를 검색한다.


 - 빨간줄처럼 dynamic이라 DB 재부팅 없이도, 적용된다.

 - 위 Values를 수정하면 된다.



1. 명령어

mysql -h 127.0.0.1 -u USER_ID -p 


 -h : 원격지 IP

 -u : 유저 아이디

 -p : 비밀번호


* mysql이 설치안되어있을 경우

 - mysql client만 설치

sudo yum-y install mysql


'DataBase > Mysql & MariaDB' 카테고리의 다른 글

원격접속하기.  (0) 2018.08.24
현재 접속 계정 보기.  (0) 2018.08.23
[Mysql] Create Table like  (0) 2018.04.13
[Mysql] 기억하면 좋은 쿼리 모음  (0) 2018.04.03
[Mysql] 데이터의 암호화, 복호화  (0) 2016.11.17
[Mysql]ERROR 1045 (28000)  (0) 2016.08.23

1. 명령어

redis-cli -h 127.0.0.1 -p 6379 -a myPassword


 -h : 호스트 아이피

 -p : redis 포트

 -a : 비밀번호

'DataBase > redis' 카테고리의 다른 글

Redis-cli 원격 접속하기.  (0) 2018.08.24

Mysql에서 현재 접속 중인 계정 정보를 보기 위한 쿼리다.


1. 명령어

 1) show 명령어

SHOW PROCESSLIST;


 2) table 조회

  - 아래 쿼리를 사용할 경우 where 조건을 걸 수 있다.

SELECT * FROM `PROCESSLIST`


'DataBase > Mysql & MariaDB' 카테고리의 다른 글

원격접속하기.  (0) 2018.08.24
현재 접속 계정 보기.  (0) 2018.08.23
[Mysql] Create Table like  (0) 2018.04.13
[Mysql] 기억하면 좋은 쿼리 모음  (0) 2018.04.03
[Mysql] 데이터의 암호화, 복호화  (0) 2016.11.17
[Mysql]ERROR 1045 (28000)  (0) 2016.08.23

1. 일년 전 나란놈....

한달전 작성한 코드나 일년전 작성한 코드를 다시 봤을 때, 리팩토링 좀 해야겠어! 내가 이 때 왜 이렇게 만들었지? 라는 생각을 하지 못한다면, 그 소스를 작성했을 때보다 성장하지 못했다는 소리다. 그래도 아직까지는 이전에 작성한 소스를 보며 에휴... 그때의 나란놈 이라는 생각을 하는데 다행인듯하다. 앞으로도 꾸준히 찍어내기식 소스 개발보다는 좀 더 괜찮은 방법을 고민하며 개발하는 개발자가 되어보자! 


2. 업무와 다른 공부

 매일 회사 업무 연장선으로 무언가를 만들어보고 그러는데, 이제는 회사일은 회사일, 개인 취미 개발은 개인 취미!로 남겨놔야겠다. 

 발전 방향성이 너무 한 방향으로만 나가는거 같아 고민이 크다. 아직 여러가지를 경험해봐야 할 경력이니 더 많은걸 해봐야겠다.

 

3.휴식

 일한만큼 쉬어야한다고 했다. 휴가를 제대로 계획해봐야겠다!!!

'개인 > 단상' 카테고리의 다른 글

2018-08-21  (0) 2018.08.22
2018-06-05 : Cloud Native Day in seoul  (0) 2018.06.05
2018-05-01  (0) 2018.05.01
Aws re:invent 2017! 후기  (0) 2017.12.02
2016-10-01  (0) 2016.10.01
2016-09-08  (0) 2016.09.08

1. Bootstrap

 - 웹사이트 제작시에 많이 사용 되는 요소들을 모아놓은 오픈소스

 - 반응형 웹페이지를 손쉽게 만들 수 있다.

 - 수많은 유, 무료 테마


2. 사용해보기

 1) js, css

  - cdn 링크 : http://getbootstrap.com/docs/4.1/getting-started/introduction/ 참고

  - 다운로드 : http://getbootstrap.com 참고


3. 샘플

 1) BUTTON

  - http://getbootstrap.com/docs/4.1/components/buttons/

  - 샘플코드

<button type="button">기본버튼</button>

<button type="button" class="btn">BS 버튼</button>

<button type="button" class="btn btn-primary">Primary</button>
<button type="button" class="btn btn-secondary">Secondary</button>
<button type="button" class="btn btn-success">Success</button>
<button type="button" class="btn btn-danger">Danger</button>
<button type="button" class="btn btn-warning">Warning</button>
<button type="button" class="btn btn-info">Info</button>
<button type="button" class="btn btn-light">Light</button>
<button type="button" class="btn btn-dark">Dark</button>

<button type="button" class="btn btn-link">Link</button>

<button type="button" class="btn btn-primary btn-lg">Primary</button>
<button type="button" class="btn btn-success btn-md">Success</button>
<button type="button" class="btn btn-secondary btn-sm">Secondary</button>

<button type="button" class="btn btn-outline-primary">Primary</button>
<button type="button" class="btn btn-outline-secondary">Secondary</button>
<button type="button" class="btn btn-outline-success">Success</button>
<button type="button" class="btn btn-outline-danger">Danger</button>
<button type="button" class="btn btn-outline-warning">Warning</button>
<button type="button" class="btn btn-outline-info">Info</button>
<button type="button" class="btn btn-outline-light">Light</button>
<button type="button" class="btn btn-outline-dark">Dark</button>

<button type="button" class="btn btn-primary btn-lg btn-block">Block level button</button>
<button type="button" class="btn btn-secondary btn-lg btn-block">Block level button</button>


  - 결과



 2) input

  - http://getbootstrap.com/docs/4.1/components/input-group/

  - 샘플소스

기본 <input type="text">

<input type="text" class="form-control" placeholder="GEUN.kr">


<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text" id="addon1">@</span>
</div>
<input type="text" class="form-control" placeholder="Username" aria-describedby="addon1">
</div>

<div class="input-group mb-3">
<input type="text" class="form-control" placeholder="Username" aria-describedby="addon2">
<div class="input-group-append">
<span class="input-group-text" id="addon2">@geun.kr</span>
</div>
</div>


  - 결과



3) NavBar

  - https://getbootstrap.com/docs/4.1/components/navbar/

  - 샘플코드

<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="#">GEUN.kr</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>

<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">BLOG</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true"
aria-expanded="false">
Language
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<a class="dropdown-item" href="#">JAVA</a>
<a class="dropdown-item" href="#">PHP</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="#">JAVASCRIPT</a>
</div>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Disabled</a>
</li>
</ul>
<form class="form-inline my-2 my-lg-0">
<input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
</form>
</div>
</nav>

  - 결과


 4) Table

  - https://getbootstrap.com/docs/4.1/content/tables/

  - 샘플소스

<table>
<thead>
<th>Firstname</th>
<th>Lastname</th>
<th>Email</th>
</thead>
<tbody>
<tr>
<td>Mary</td>
<td>Moe</td>
<td>mary@example.com</td>
</tr>
<tr>
<td>July</td>
<td>Dooley</td>
<td>july@example.com</td>
</tr>
</tbody>
</table>

<table class="table table-striped table-bordered">
<thead>
<th>Firstname</th>
<th>Lastname</th>
<th>Email</th>
</thead>
<tbody>
<tr>
<td>Mary</td>
<td>Moe</td>
<td>mary@example.com</td>
</tr>
<tr>
<td>July</td>
<td>Dooley</td>
<td>july@example.com</td>
</tr>
<tr>
<td>Mary</td>
<td>Moe</td>
<td>mary@example.com</td>
</tr>
<tr>
<td>July</td>
<td>Dooley</td>
<td>july@example.com</td>
</tr>
</tbody>
</table>


  - 결과



 5) Pagination

  - https://getbootstrap.com/docs/4.1/components/pagination/

  - 샘플소스

<ul class="pagination">
<li class="page-item"><a class="page-link" href="#">Previous</a></li>
<li class="page-item"><a class="page-link" href="#">1</a></li>
<li class="page-item"><a class="page-link" href="#">2</a></li>
<li class="page-item"><a class="page-link" href="#">3</a></li>
<li class="page-item"><a class="page-link" href="#">4</a></li>
<li class="page-item"><a class="page-link" href="#">5</a></li>
<li class="page-item"><a class="page-link" href="#">Next</a></li>
</ul>


  - 결과



 6) Modal

  - https://getbootstrap.com/docs/4.1/components/modal/

  - 샘플소스

<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal">
Launch demo modal
</button>

<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
...
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>


  - 결과


 7) containers

  - https://getbootstrap.com/docs/4.0/layout/overview/#containers

  - 샘플소스

<div class="container">

</div>

  - 결과



  - 샘플소스

<div class="container-fluid">

</div>
  - 결과


 8) Grid 시스템 

  - https://getbootstrap.com/docs/4.1/layout/grid/

  - 참고 : http://shoelace.io/ 

  - 브라우저 크기에 따라 최대 12개의 컬럼을 어떻게 배치할 건지에 대한 정의

  - 샘플코드


<!-- Control the column width, and how they should appear on different devices -->
<div class="row">
<div class="col-sm-6" style="background-color:yellow;">50%</div>
<div class="col-sm-6" style="background-color:orange;">50%</div>
</div>
<br>

<div class="row">
<div class="col-sm-4" style="background-color:yellow;">33.33%</div>
<div class="col-sm-4" style="background-color:orange;">33.33%</div>
<div class="col-sm-4" style="background-color:yellow;">33.33%</div>
</div>
<br>

<!-- Or let Bootstrap automatically handle the layout -->
<div class="row">
<div class="col-sm" style="background-color:yellow;">25%</div>
<div class="col-sm" style="background-color:orange;">25%</div>
<div class="col-sm" style="background-color:yellow;">25%</div>
<div class="col-sm" style="background-color:orange;">25%</div>
</div>
<br>

<div class="row">
<div class="col" style="background-color:yellow;">25%</div>
<div class="col" style="background-color:orange;">25%</div>
<div class="col" style="background-color:yellow;">25%</div>
<div class="col" style="background-color:orange;">25%</div>
</div>


  - PC


  - 태블릿

  - 폰



추가적으로 아래 사이트를 가시면 커스텀한 Bootstrap compenent를 사용할 수 있습니다.

 - https://bootsnipp.com/

'프로그래밍 > html & css' 카테고리의 다른 글

Bootstrap 사용하기  (0) 2018.08.08
textarea 리사이즈 관련  (0) 2018.07.16
radio, checkbox clear 버튼 만들기.  (0) 2018.04.25
<html lang="ko">  (0) 2018.04.09
html tag(select box, checkbox) Readonly(?)처럼 사용하기  (0) 2018.03.08

1. 하고싶은 것?

 - curl을 사용하여 URL의 호출  시간 및 기타 상세 정보를 보고싶음.


2. 명령어 샘플 보기

 - 명령어

curl -w '\nTime_namelookup:\t%{time_namelookup}\nTime_Connect:\t\t%{time_connect}\nTime_Appconnect:\t%{time_appconnect}\nTime_Redirect:\t\t%{time_redirect}\nTime_Pretransfer:\t%{time_pretransfer}\nTime_Starttransfer:\t%{time_starttransfer}\n\nTime_Total:\t\t%{time_total}\n' -o /dev/null -s  http://blog.geun.kr


 - 결과


3. 상세값 설명

 

 


 time_appconnect

 SSL/SSH/기타 연결/핸드 셰이크가 원격 호스트에 완료 될 때까지 걸린 시간 (초)

 

 time_connect

 원격 호스트에 대한 TCP 연결이 완료 될 때까지 소요된 시간(초)

 

 time_namelookup

 namelookup이 완료될때 까지 소요된 시간(초)

 

 time_pretransfer

 

 

 time_redirect 여러 리디렉션의 전체 실행 시간을 보여줍니다. 
 time_starttransfer  
 time_total

 전체 소요 시간

 


4. 더 많은 정보 보기

 - format.json을 만든다.

{
"host": {
"local_ip": "%{local_ip}",
"local_port": "%{local_port}",
"remote_ip": "%{remote_ip}",
"remote_port": "%{remote_port}"
},
"connection": {
"http_version": "%{http_version}",
"http_code": "%{http_code}",
"http_connect": "%{http_connect}",
"num_connects": "%{num_connects}",
"num_redirects": "%{num_redirects}",
"redirect_url": " %{redirect_url}"
},
"file": {
"content_type": "%{content_type}",
"filename_effective": "%{filename_effective}",
"ftp_entry_path": "%{ftp_entry_path}",
"size_download": "%{size_download}",
"size_header": "%{size_header}",
"size_request": "%{size_request}",
"size_upload": "%{size_upload}",
"speed_download": "%{speed_download}",
"speed_upload": "%{speed_upload}",
"ssl_verify_result": "%{ssl_verify_result}",
"url_effective": "%{url_effective}"
},
"time": {
"time_appconnect": "%{time_appconnect}",
"time_connect": "%{time_connect}",
"time_namelookup": "%{time_namelookup}",
"time_pretransfer": "%{time_pretransfer}",
"time_redirect": "%{time_redirect}",
"time_starttransfer": "%{time_starttransfer}",
"time_total": "%{time_total}"
}
}

 - 명령어

curl -w '@/path/format.json' -o /dev/null -s  http://blog.geun.kr


 - 결과

 
   "host": 
      "local_ip":"172.30.112.192",
      "local_port":"61895",
      "remote_ip":"27.0.236.139",
      "remote_port":"80"
   },
   "connection": 
      "http_version":"1.1",
      "http_code":"400",
      "http_connect":"000",
      "num_connects":"1",
      "num_redirects":"0",
      "redirect_url":" "
   },
   "file": 
      "content_type":"text/html; charset=iso-8859-1",
      "filename_effective":"/dev/null",
      "ftp_entry_path":"",
      "size_download":"347",
      "size_header":"166",
      "size_request":"79",
      "size_upload":"0",
      "speed_download":"2330.000",
      "speed_upload":"0.000",
      "ssl_verify_result":"0",
      "url_effective":"http://blog.geun.kr/"
   },
   "time": 
      "time_appconnect":"0.000000",
      "time_connect":"0.142898",
      "time_namelookup":"0.137409",
      "time_pretransfer":"0.142976",
      "time_redirect":"0.000000",
      "time_starttransfer":"0.148800",
      "time_total":"0.148910"
   }

}



참고자료 

 - https://www.shellhacks.com/check-website-response-time-linux-command-line/

 - https://gist.github.com/manifestinteractive/ce8dec10dcb4725b8513

 - https://blog.josephscott.org/2011/10/14/timing-details-with-curl/







1. 사용중인 몽고 정지

sudo service mongod stop


2. 패키지 삭제

sudo yum erase $(rpm -qa | grep mongodb-org)


3. 기타 데이터 삭제

sudo rm -r /var/log/mongodb

sudo rm -r /var/lib/mongo


* 참고페이지

https://stackoverflow.com/questions/8766579/uninstalling-mongo

+ Recent posts