본문 바로가기

분류 전체보기

(221)
[Python] Docstring에 대하여 Docstring docstring은 소스 코드에 포함된 문서(document)라고 말할 수 있습니다. docstring은 기본적으로 리터럴 문자열이며, 로직의 일부분을 문서화하기 위해 코드 어딘가에 배치됩니다. 문서(documentation)라는 단어에 주목해보면, "이유"가 아니라 "설명"입니다. 따라서 docstring은 주석을 다는 것이 아니라 코드의 특정 컴포넌트(모듈, 클래스, 메서드 또는 함수)에 대한 문서화입니다. 이런 컴포넌트에 사용하는 것은 허용될 뿐 아니라 권장되는 부분입니다. 가능한 많은 docstring을 추가하는 것이 좋습니다. docstring을 코드에 포함시키는 것이 좋은 이유는 파이썬이 동적 타이핑을 하기 때문입니다. 예를 들어 함수는 파라미터의 값으로 무엇이든 사용될 수 ..
[Python] 파이썬 코드 스타일(PEP-8)을 따라야하는 이유 PEP 8이란? https://peps.python.org/pep-0008/ PEP 8 – Style Guide for Python Code | peps.python.org PEP 8 – Style Guide for Python Code PEP 8 Title Style Guide for Python Code Author Guido van Rossum , Barry Warsaw , Nick Coghlan Status Active Type Process Created 05-Jul-2001 Post-History 05-Jul-2001, 01-Aug-2013 Contents This document gives coding con peps.python.org PEP 8은 "Style Guide for Python..
[AWS] AWS Certified Cloud Practitioner (CLF) 자격증 취득 후기 및 공부 방법 이번 포스팅은 AWS Certified Cloud Practitioner 자격증 취득 후기로 자격증 공부 방법 및 시험 응시 과정에 대한 내용만 다루도록 하겠습니다. 자격증에 대한 기본적인 내용(응시 방법, 응시 대상, 시험 신청 등등..)은 다루지 않습니다. 요약 시험 준비 기간 : 3주 3주 동안 준비하였지만, 일주일에 2~3일은 개인 사정으로 공부를 못하였습니다. 그 외에는 하루 약 3~4시간 정도 공부했던 것 같습니다. 클라우드 실무 경험 : 약 1년 백엔드 개발자로 근무하며, 약 1년 동안 AWS, NHN Cloud 등의 클라우드 플랫폼을 이용하여 서비스를 배포한 경험이 있습니다. 다양한 서비스를 이용해 보지는 않았으며, AWS 기준으로 기본적인 서비스(EC2, VPC, ELB, S3 등)만 사..
[AWS] VPC 구성하기(Private/Public Subnet) 이번 포스팅에서는 AWS Console에서 VPC를 생성하고 VPC 내에 Private, Public Subnet을 생성하여 보겠습니다. 생성할 서비스들은 다음과 같은 구성을 가집니다. 생성 순서는 다음과 같습니다. 1. VPC 생성 및 설정 2. Subnet 생성 및 설정 3. Internet Gateway 생성 4. Internet Gateway와 VPC 연결 5. 라우팅 테이블 생성 6. 라우팅 테이블과 서브넷 연결 7. 라우팅 규칙 설정 VPC 생성하기 우선 AWS Management Console에 로그인하여 생성된 VPC를 확인합니다. 처음 생성하시는 분들은 계정마다 존재하는 기본 VPC 하나가 생성되어 있을것입니다. 오른쪽 위의 VPC 생성 버튼을 클릭합니다. 생성할 VPC의 이름과 IPv4..
[AWS] VPC(Virtual Private Cloud) 동작원리 및 구성요소(3/3) https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/what-is-amazon-vpc.html Amazon VPC란 무엇인가? - Amazon Virtual Private Cloud Amazon VPC란 무엇인가? Amazon Virtual Private Cloud(Amazon VPC)를 이용하면 사용자가 정의한 가상 네트워크로 AWS 리소스를 시작할 수 있습니다. 이 가상 네트워크는 AWS의 확장 가능한 인프라를 사용한다는 docs.aws.amazon.com NAT(Network Address Translation) instance/gateway - Private Subnet에 속한 인스턴스의 경우 외부 인터넷에 접근할 수 없지만 Public Subnet으..
[AWS] VPC(Virtual Private Cloud) 동작원리 및 구성요소(2/3) https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/what-is-amazon-vpc.html Amazon VPC란 무엇인가? - Amazon Virtual Private Cloud Amazon VPC란 무엇인가? Amazon Virtual Private Cloud(Amazon VPC)를 이용하면 사용자가 정의한 가상 네트워크로 AWS 리소스를 시작할 수 있습니다. 이 가상 네트워크는 AWS의 확장 가능한 인프라를 사용한다는 docs.aws.amazon.com Internet Gateway - Internet Gateway는 VPC의 리소스와 인터넷 간의 통신을 활성화하기 위해 VPC에 연결하는 게이트웨이. 즉 인터넷으로 나가는 통로 - Private Sub..
[AWS] VPC(Virtual Private Cloud) 동작원리 및 구성요소(1/3) https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/what-is-amazon-vpc.html Amazon VPC란 무엇인가? - Amazon Virtual Private Cloud Amazon VPC란 무엇인가? Amazon Virtual Private Cloud(Amazon VPC)를 이용하면 사용자가 정의한 가상 네트워크로 AWS 리소스를 시작할 수 있습니다. 이 가상 네트워크는 AWS의 확장 가능한 인프라를 사용한다는 docs.aws.amazon.com VPC(Virtual Private Cloud) Amazon Virtual Private Cloud(VPC)를 이용하면 사용자가 정의한 가상 네트워크로 AWS 리소스를 시작할 수 있습니다. 이 가상 네..
[백준 21611번] 마법사 상어와 블리자드(Python 풀이) https://www.acmicpc.net/problem/21611 21611번: 마법사 상어와 블리자드 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그, 비바라기 마법을 할 수 있다. 오늘 새로 배운 마법은 블리자드이고, 크기가 N×N인 격자에서 연습하려고 한다. N은 항상 홀수이고, ( www.acmicpc.net 이 문제는 골드1 난이도의 '구현' 문제입니다. 풀이 복잡한 과정을 좀 더 쉽게 풀이하기 위하여 2차원 격자를 1차원으로 변환하여 풀이하였으며, 절차가 많고 복잡하므로 단계를 함수단위로 나누어 풀이하였습니다. 풀이 순서는 다음과 같습니다. 1. 격자 초기화(2차원 -> 1차원) 2. 방향과 거리를 기준으로 구슬 파괴 3. 파괴된 구슬 정리 4. 연속하는 구슬 파괴 및 정리 5. ..
[백준 21610] 마법사 상어와 비바라기(Python 풀이) https://www.acmicpc.net/problem/21610 21610번: 마법사 상어와 비바라기 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그 마법을 할 수 있다. 오늘 새로 배운 마법은 비바라기이다. 비바라기를 시전하면 하늘에 비구름을 만들 수 있다. 오늘은 비바라기 www.acmicpc.net 이 문제는 골드 5 난이도의 구현 문제입니다. 문제에서 제시한 방향대로 코드를 구현한다면 쉽게 풀릴 내용이지만 다음 내용만 조심하면 될 것 같습니다. 이어진 격자 격자의 가장 왼쪽 윗 칸은 (1, 1)이고, 가장 오른쪽 아랫 칸은 (N, N)이다. 마법사 상어는 연습을 위해 1번 행과 N번 행을 연결했고, 1번 열과 N번 열도 연결했다. 즉, N번 행의 아래에는 1번 행이, 1번 행의 위에..
[Python] fucntools.lru_cache() - 함수의 결과 캐싱 파이썬의 표준 라이브러리에 있는 functools.lru_cache() 는 함수의 결과를 캐시해 주는 함수 데커레이터입니다. 같은 인수를 전달했던 호출 결과가 이미 캐시되어 있으면 함수를 실행하지 않고 캐시 결과를 반환합니다. 함수의 인수와 결과는 딕셔너리를 이용해서 연결하기 때문에 @lru_cache()를 붙인 함수의 인수는 숫자, 문자열, 튜플과 같이 딕셔너리의 key로 사용할 수 있는 객체를 사용해야 합니다. 예시 n번째 피보나치 수를 반환하는 함수 my_fibo() 함수는 재귀함수로 구현되어 있습니다. n이 커질수록 엄청나게 많은 함수가 중복되어 실행되기 때문에 실행 시간이 오래걸리게 됩니다. 1 2 3 4 5 6 7 8 9 10 11 from time import time def my_fibo(..