목록분류 전체보기 (114)
모눈종이에 사각사각
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/A5GIT/btrtO8BRYLd/NB7EYveEK6qFtZMMkuSwXK/img.jpg)
🌰 Vi 편집기 사용 방법 처음 vi 편집기를 다루게 되었을 때의 두려움이란.. 내용을 바꾸고 싶은데 입력도 안되고, 커서만 움직이고, 나가고 싶은데 어떻게 나가는지도 모르겠고, 어찌어찌 수정은 됐는데, 저장을 어떻게 하는지 모르겠고. 이랬던 과거의 나였지만 간단한 vi 편집기 사용 방법을 익힌 뒤로는 전혀 두렵지 않다! 1. 새로운 파일 생성 우선 새로운 파일을 생성해봅시다. vi [파일명] 이렇게 입력하면, 해당 파일 명이 없을 경우에는 새로운 파일이 생성되고, 해당 파일 명이 있을 경우에는 수정할 수 있게 됩니다. 저는 test.txt 파일을 생성해보겠습니다. 2. vi 시작하기 파일을 새로 생성하게 되면 다음과 같은 화면을 만나게 됩니다. 왼쪽 하단에 "파일 이름" [New File] 이라고 표시..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ld7Xo/btrtGhglGCQ/kjmd7rQt283WB1LaEJQFX1/img.png)
🍎 Sub Domain에 나만의 페이지 만들기 이번 포스팅에서는 서브 도메인에 나만의 페이지를 만들어보려고 한다. 1. https://html5up.net에 들어가서 마음에 드는 무료 웹 템플릿을 다운받는다. 2. 원하는 정보를 변경한다. - 나의 경우는 간단하게 title 정도만 바꾸었다. 3. 이제 만든 파일을 AWS에서 대여한 내 서버에 넣어야 한다. - WinSCP를 통해 복사 붙여넣기를 하려고 하면 권한 제한이 걸린다. - 권한을 열어 준다. $ cd /var/www/html $ sudo chmod -R 777 . - 파일을 내 PC에서 서버로 옮긴다. 4. 서브 도메인에 들어왔을 때 main.html로 들어오게끔 되어있기 때문에 이를 index.html로 바꾸어준다. - index는 아무런 파..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/rtTfH/btruc6J0Zo3/np184LAM4kiAGKZMEKhRL0/img.jpg)
🍎 [백준 1654] 랜선 자르기 문제링크 https://www.acmicpc.net/problem/1654 이전에 풀었던 2805번 나무 자르기 문제와 굉장히 유사한 문제였다. ⚾ 코드 import sys k, n = map(int, input().split()) array = [int(sys.stdin.readline()) for _ in range(k)] start = 1 end = max(array) while start
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cb3Rdf/btrt7sAlJRJ/6NQcpSOMJLEkeHvtauHbkK/img.jpg)
🍎 [백준 2805] 나무 자르기 문제링크 https://www.acmicpc.net/problem/2805 ⚾ 코드(pypy3) import sys input = sys.stdin.readline n, m = map(int, input().split()) tree = list(map(int, input().split())) end = max(tree) start = 0 while start mid: remain += i-mid if remain < m: end = mid-1 else: start = mid+1 print(end) 🔔 해결 과정 & 깨달은 점 - 해당 문제는 전형적인 이진탐색 문제이다. - 입력 값이 20억이므로 이진 탐색을 시도해보자. - 처음에 cm가 아닌, 인덱스의 중앙값으로 시도를..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bwKJrd/btrtKBRWcnh/lGMSifuiKdvgyYekRjTKx1/img.png)
🍎 Redirection 적용(IP주소 입력 → 도메인주소) 이번 포스팅에서는 IP주소를 입력해도 내 도메인 주소로 접속할 수 있도록 Redirection을 적용해보려고 한다. 1. /etc/nginx/sites-available/default로 이동하여 Domain Redirection 적용 $ sudo vim /etc/nginx/sites-available/default - 새로운 server 블록 생성 - server_name 뒤에는 AWS 인스턴스 public ip 입력 - return 301 뒤에는 나의 도메인$request_uri; 입력 Return 301 이란? - return 301 {Redirection 주소}; 구문을 추가하면 해당 가상 서버로 접속한 사용자를 지정한 주소로 자동 Red..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dc2ZNi/btrtHDcoD7C/L507Kfcw0GTwRNSNwR5O7K/img.png)
🍎 서브 도메인 만들기 (가비아) + HTTPS 적용 이번 포스팅에서는 서브 도메인을 만들어 보려고 한다. 1. 레코드 수정 - My 가비아 → 서비스 관리 → 관리 → DNS 정보에 도메인 연결 → 설정 - 서브 도메인을 적용해 줄 도메인을 설정 - 타입 : CNAME(CNAME 레코드는 도메인에 별칭 이름을 연결하는 DNS 레코드 유형) - 호스트 : 서브 도메인 - 값/위치 : 내 도메인 + . (CNAME 레코드는 마침표(.)로 끝나야 함.) 2. Nginx 디렉토리 생성 - /var/www/html(Nginx의 기본 경로(루트 디렉터리))에 설정한 서브 도메인 이름으로 디렉토리 생성 (나의 경우 project, mail) $ cd /var/www/html $ sudo mkdir project $..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Cx7UI/btrtH2iBhQP/pdxTx3bYRTqNRudbVHGl91/img.png)
🍎 HTTPS 적용하기 이전 포스팅에서 AWS EC2 인스턴스와 도메인을 연결해보았다. 지금 도메인을 검색해 들어가면 다음과 같이 주의 요함이라고 뜰 것이다. 이는 https가 아닌 http로 접속했기 때문이다. 이번 포스팅에서는 https를 적용해보려고 한다. 1. Certbot 설치 Let’s Encrypt 와 Certbot란? - Let’s Encrypt : SSL 인증서를 무료로 발급해주는 CA(Certificate Authorities) - Let’s Encrypt의 SSL인증서는 ACME(Automatic Certificate Management Environment) 프로토콜을 준수하는 프로그램을 이용해 발급을 받을 수 있는데 Let’s Encyrpt는 Certbot 사용을 권장하고 있다. ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cTGpmr/btrtIULaWMU/wru6TOhcLAju29Xp8blgb1/img.png)
🍎 도메인 구입하여 AWS EC2 인스턴스와 연결하기 1. 도메인 구입 - 가비아에서 도메인을 구매한다. - .shop로 끝나는 도메인은 1년에 550원(수수료 포함)이다. 2. DNS 설정 - My 가비아 → 서비스 관리 → 관리 → DNS 정보에 도메인 연결 → 설정 - 값/위치에는 자신의 인스턴스의 public ip 주소를 넣는다. - 호스트 : www → www. 으로 시작할 때 - 호스트에 @를 넣으면 www 없어도 접속 가능 - TTL은 3600으로 해주었다. 타입 A란? - A 레코드 - A 레코드는 숫자 형태로 된 서버 IP 주소를 입력하는 방식 - 도메인을 입력해야 하는 경우, CNAME 레코드로 설정 3. 결과 확인 자신의 도메인을 주소창에 입력해 나오면 성공! 참고사이트 https:/..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b0pDpQ/btrtGifax3G/NHdO3UeR7SNUKZYgXjxIg0/img.png)
🍎 MySQL 외부에서 접속하기 지난 포스팅에 이어 MySQL을 외부에서 접속할 수 있도록 해보려고 한다. 1. MySQL 사용자 생성 $sudo mysql -u root -p mysql> create user 'username'@'%' identified by 'password'; - 'Username'@'%' : 해당 사용자는 외부에서 접근 가능 2. DB 생성 및 권한 부여 mysql> create database DBname; mysql> show databases; mysql> grant all privileges on DBname.*to 'username'@'%'; mysql flush privileges; 3. MySQL 외부 접속 설정 - MySQL의 설정 파일인 /etc/mysql/mys..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/nhyFL/btrtHUEyXDL/fNhhqXpczSq3AssYfooeL0/img.png)
🍎 Linux + Nginx PHP MySQL 지난 포스팅에 이어 이번에는 구축한 리눅스 환경에 Nginx 와 PHP, MySQL을 설치해보고자 한다. [Nginx 설치] 1. Nginx 설치하기 Nginx란? 트래픽이 많은 웹사이트의 확장성을 위해 개발된 경량의 고성능 웹서버 Nginx는 적은 자원의 사용으로 높은 성능과 높은 동시성을 목표로 만들어졌다 $ sudo apt update $ sudo apt install nginx 2. AWS 보안 설정 - 내 인스턴스를 클릭한 후 보안 탭으로 이동한다. - 보안 그룹을 누르면 다음과 같이 인바운드 규칙과 아웃바운드 규칙이라고 나온다. - 그중에서 인바운드 규칙 편집을 선택한다. - HTTP를 80번 포트로 열어준다. - 위치 Anywhere(0.0.0...