분류 전체보기 1188

[Python] Mail CC 추가

2021.06.21 - Python 첨부 파일 메일 전송 Python 첨부 파일 메일 전송 2021.06.20 - Python 텍스트 메일 전송 지난 글에 이어 이 글에서는 첨부파일을 포함한 메일을 전송할 수 있는 코드를 다룬다. 마찬가지로 코드 전체를 복사해서 사용한다면, MAIN 아래의 email_sender부터 passwd.tistory.com Mail 송신 시 참조 수신자를 추가해야 하는 필요성이 생겨서, 위 글 이후로 아주 오랜만에 Mail 관련으로 정리한다. 이전 글의 코드에서 수정한 부분만을 정리해둔다. 방법 1. 참조 수신자 목록을 메세지 헤더에 추가한다. 각 메일 주소는 ,(쉼표)로 구분되어야 한다. 이 글에서는 참조 수신자 목록을 List로 초기화할 것이기 때문에 join 함수를 사용해..

Python 2022.02.18

[Redmine on AWS] NAT Gateway 생성

NAT Gateway NAT(Network Address Translation)은 패킷의 IP, Port 등을 변환하는 기술을 뜻하며, 주로 Private Network가 외부의 Public Network와 통신하기 위해 사용된다. 인스턴스의 펌웨어나 업데이트를 위한 outbound 트래픽을 허용하기 위함으로, NAT 게이트웨이는 Private Subnet에서 외부로 요청하는 아웃바운드 트래픽을 받아 인터넷 게이트웨이로 연결한다. AWS에서 NAT를 사용하는 방법에는 두 가지가 존재한다. NAT Gateway : AWS VPC 내 NAT Gateway 사용 NAT Instance : EC2 인스턴스를 NAT용으로 생성하여 사용 NAT Gateway가 NAT Instance보다 고가용성을 보장하기 때문에 ..

[BOJ] 1181 - 단어 정렬

문제 https://www.acmicpc.net/problem/1181 알파벳 소문자로 이루어진 임의의 개수의 단어를 입력받아, 아래와 같은 기준으로 정렬하는 코드를 작성하라. 1. 길이가 짧은 것부터 2. 같은 길이의 단어는 사전 순 같은 단어가 여러 번 입력된 경우, 한 번만 출력한다. 풀이 내 풀이 1. 단어의 수만큼 단어를 입력받아, set으로 저장한다. (중복 제거) 2. set을 list로 형 변환한 후, 사전 순으로 정렬한다. 3. 길이를 조건으로 하여 정렬한다. import sys n = int(sys.stdin.readline()) l = set(sys.stdin.readline()[:-1] for _ in range(n)) l = sorted(list(l)) l = sorted(l, k..

Algorithm/백준 2022.02.16

[PuTTy] 한글 깨짐 (Character Set 설정 변경)

PuTTy를 이용해 Linux 서버를 이용하다보면 한글이 깨져서 출력되는 경우가 제법 있다. 이는 서버의 지역/언어 설정에 따른 입출력 인코딩과 PuTTy가 사용하는 인코딩이 달라서 발생하는 현상이다. 이 글에서는 PuTTy 설정을 변경하는 방법을 정리해둔다. 서버의 지역/언어 설정 확인 locale 인코딩이 UTF-8로 되어 있는 것을 확인할 수 있다. PuTTy Character Set 설정 변경 1. PuTTy를 실행시킨 후, 설정을 변경할 세션을 로드한다. 2. 왼편의 분류 > 창 > 변환 메뉴로 접근한 후, 수신 데이터의 문자셋을 원하는 인코딩으로 변경한다. 이 글에서는 위에서 확인한 UTF-8로 변경할 것이다. 3. 왼편의 분류 > 세션으로 접근하여, 설정을 반영할 세션을 클릭한 뒤 저장 버튼..

Linux 2022.02.15

ImportError: bad magic number in "": b'\x03\xf3\r\n’

python으로 작성한 코드를 실행시키려고 할 때 아래와 같은 메시지가 나오면서 에러가 발생한 적이 있다. Python(CPython)에서 사용하는 바이트 코드(.pyc)에 문제가 있어 발생한 에러이므로, 해당 바이트 코드를 삭제하는 것으로 문제를 해결할 수 있다. 명령어 find . -name "*.pyc" -exec rm -f {} \; # 또는 find . -name \*.pyc -delete 개념적인 내용 위의 에러는 Python 컴파일 과정과 관련이 있는 것 같아 내용을 정리해둔다. CPython Python은 일반적으로 C로 구현되어 있다고 알려져 있는데, 그 구현체를 CPython이라고 한다. 가장 처음으로 만들어진 구현체이며 표준 구현에 해당한다. CPython은 인터프리터이면서 컴파일러로..

Python 2022.02.14

[Redmine on AWS] Internet GW/Routing Table 생성

이 글에서는 VPC에 존재하는 인터넷 게이트웨이를 생성하고 활성화하는 방법을 정리해둔다. Internet Gateway VPC의 인스턴스와 인터넷 간에 통신을 할 수 있게 하는 VPC 구성 요소이다. 생성 및 활성화 1. VPC 서비스 왼쪽 메뉴에서 인터넷 게이트웨이를 클릭한 후, 인터넷 게이트웨이 생성을 클릭한다. 2. 인터넷 게이트웨이를 식별할 이름을 지정한 후, 인터넷 게이트웨이 생성을 클릭한다. 3. 생성한 인터넷 게이트웨이를 활성화하기 위해서는 사용할 VPC에 연결시켜주어야 한다. 오른쪽 상단의 작업 버튼을 클릭해 VPC 연결을 클릭한다. 4. 연결할 VPC를 선택한다. Routing Table 라우팅 테이블은 Subnet에서 외부로 나가는 Outbound Traffic에 대한 경로를 설정하기 ..

[Ubuntu] 패키지 버전 지정 설치

기본적으로 패키지 관리자는 저장소 내에 최신판으로 패키지를 설치한다. 하지만 설치할 패키지 버전을 지정할 수도 있다. apt-cache update 명령을 통해 가져온 패키지 메타 데이터에서 유용한 정보를 검색하고 생성한다. 패키지의 가용성, 버전 번호, 종속석을 검색할 수 있다. 관련하여 살펴보기 전에 일단 저장소부터 업데이트한다. 저장소 업데이트 apt update 패키지 설치 시 설치 버전 확인 지정된 패키지의 설치 여부와 설치 시 어떤 저장소에서의 버전이 사용 가능한지, 그리고 그 우선순위를 보여준다. apt-cache policy # 예시 apt-cache policy apache2 기본적으로 설치된 패키지 버전의 우선순위는 100이며, 설치되지 않은 패키지의 우선순위는 500이다. 사용 가능한..

Linux 2022.02.12

[Linux] tmux - 설치/실행/Pane 추가

tmux (terminal multiplexer) 사용자가 단일 단말기 창 또는 원격 터미널 세션 안에서 여러 별도의 터미널 세션에 액세스 할 수 있도록 가상 콘솔을 다중화하는 데 사용한다. tmux는 많은 가상 터미널을 window와 session 단위로 관리한다. tmux server는 session을 관리하며, tmux client는 tmux server와의 socket 통신을 통해 가상 터미널을 사용자가 원하는 대로 보여준다. 이 글에서는 tmux를 이용한 화면 분할(?) 정도만 간단하게 정리해두려고 한다. 개념 Session : tmux가 관리하는 가장 큰 실행 단위. 세션에 attach, detach할 수 있으며 detach 한 세션은 종료되지 않고 백그라운드에서 계속 실행된다. 세션은 여러 ..

Linux 2022.02.11

[Redmine on AWS] VPC/Subnet 생성

AWS에서 서버(EC2), DB(RDS) 등을 사용하기 위해서는 네트워크 공간인 VPC가 필요하다. 미리 정해놓은 아래 구조에 맞게 서울(ap-northeast-2) 리전에 VPC와 Subnet을 생성하려고 한다. VPC 생성 1. AWS Management Console에서 VPC를 선택한 후, 서울 리전을 선택한다. 메인 화면에 VPC 마법사 시작 버튼이 있지만, 왼쪽 메뉴에서 VPC를 클릭해 들어간다. 2. VPC 생성을 클릭한다. 3. VPC 설정 네트워크 주소를 직접 지정하기 위해 IPv4 CIDR 수동 입력을 체크하고 값을 설정한다. IPv6는 사용하지 않을 것으므로 없음을 체크한다. 이름을 포함한 별도 태그가 필요하다면 추가한 뒤, VPC 생성 버튼을 클릭한다. Subnet 생성 Multi-..

[Redmine on AWS] Architecture

개요 2020년 10월 즈음에 진행한 과제를 정리해두려고 한다. 💡 주의 AWS나 리눅스, 환경 설정 등에 대해 아무것도 모르는 사람이 진행한 것이기 때문에 잘못된 정보나 불필요한 과정이 포함되어 있을 수 있다. 요구사항 과제 요구 사항은 아래와 같다. Muti-tier 구조 => Web Server, WAS, DB 간 Subnet 구분 필요 Multi AZ 또는 Read Replicas 등을 이용한 DB 분산 배치 HA (High Availability; 고가용성) => AWS ELB 및 Auto Scaling 기능 사용 필요 구조 (Architecture) 요구사항을 만족할 인프라 구조를 아래와 같이 결정했다. 글 모음 1. 2022.02.10 - [Redmine on AWS] VPC/Subnet 생..