본문 바로가기

반응형

전체 글

(55)
[Python] 웹 페이지 크롤링 기초 : 주소 확인, 셀렉터 복사 (1) 환경 : Python 3.10 사용 라이브러리 : beautifulsoup4 (4.10.0) requests (2.26.0) 매주 로또 당첨번호를 확인하고 사용하고 있는데 이 패턴을 자동화 하고 싶어 작성하였습니다. 먼저 로또 당첨번호를 확인하기 위해 동행복권 사이트로 이동합니다. 메인 화면 좌측에 당첨번호가 보이지만 해당 회차만 확인 할 수 있습니다. 이전 회차 당첨번호를 확인하기 위해 아래로 이동하였습니다. '당첨결과 > 회차별 당첨번호' 이동한 페이지는 아래와 같습니다. 위 페이지에서 회차, 당첨번호, 당첨금액 등을 확인 할 수 있습니다. 구현하고자 하는 것은 이번주 당첨번호를 불러와 당첨번호 파일에 이어서 붙여넣기를 하는 것인데 한번에 여러회차에 대한 정보를 호출할 필요도 있을 것 같습니다. 해당..
[python] zip을 이용한 단어 비교 문자열에 관한 알고리즘을 풀 경우 아래와 같은 문제가 출제되는 경우가 있다. "dog"라는 문자열에서 한 개의 문자만 바꾸어 "cog"가 될 수 있는가? 위 문제를 풀 경우 보통 for문을 2번 사용하여 비교할 것이다. 아래와 같이 zip을 활용하면 간단히 해결할 수 있다. s1 = "dog" s2 = "cog" diff = 0 for a,b in zip(s1,s2): if a != b: diff +=1 print (f'{s1=} {s2=} {diff=}') zip 클래스를 보면 아래와 같이 리스트를 넣었을 때 각 요소를 묶어 돌려준다. 문자열 위치비교시 해당 방법을 사용하면 유용할 것 같다.
AWS General Immersion Day 후기 : AWS Network(1) AWS VPC (Virtual Private Cloud) 사용자가 정의하는 가상의 네트워크 공간입니다. VPC내에서 사용자는 네트워크를 설정할 수 있습니다. IP 범위, 서브넷, 라우팅, ACL 등 VPC 내에는 여러개의 EC2가 생성될 수 있으며 각각에 사설 IP가 부여됩니다. 공인 IP할당도 가능합니다. VPC 생성 순서 리전 선택 및 IP 주소 범위 설정 -> 인터넷 게이트웨이 생성 -> 필요 서브넷 정의 -> 라우팅 구성 -> 트래픽 제어 위의 흐름에 따라 순차적으로 교육을 받았습니다. VPC 생성 상세 내용 1. 리전 선택 어느 리전에 VPC를 생성할지 선택 합니다. 한국에서 선택할 경우 보통 '아시아 태평양(서울) ap-northeast-2'를 선택합니다. 2. 주소 범위 설정 CIDR(Cla..
AWS General Immersion Day 후기 : Overview 지난 7월 AWS 원데이클래스 교육을 받았습니다. 상세한 설명이 조금 부족하지만 전체적인 흐름을 다시 한번 기억하기 위해 작성해봅니다. 교육을 받으며 들었던 생각은 '이래서 다들 AWS를 쓰는구나' 입니다. 학생 때 가볍게 사용할때는 생각도 못했던 기능이나 편의성들이 있습니다. Overview 리전, 가용영역, 데이터 센터 1개의 리전은 2개 이상의 가용영역을 포함하고 있습니다. 1개의 가용영역은 1개 이상의 데이터 센터를 포함하고 있습니다. 리전은 데이터센터를 클러스터링하는 물리적 위치입니다. 가용영역은 국내에 4개가 있습니다. 가용영역은 글로벌간 연결되어 있으며 100GbE로 구축되어 있습니다. AWS는 다양한 서비스를 제공하고 있습니다. 이전에 사용할때는 클라우드 정도만 알고 사용하였는데 교육에서 ..
[최소 힙] 파이썬 코드 및 그림 설명 Python 3.10 파이썬에서 힙 사용 예제입니다. import heapq N = [3,6,1,8,2,4,11,9] heap = [] for i in N: heapq.heappush(heap, i) print (f'{heap=}') # 실행결과 heap=[3] heap=[3, 6] heap=[1, 6, 3] heap=[1, 6, 3, 8] heap=[1, 2, 3, 8, 6] heap=[1, 2, 3, 8, 6, 4] heap=[1, 2, 3, 8, 6, 4, 11] heap=[1, 2, 3, 8, 6, 4, 11, 9] N 배열의 요소를 하나씩 heap에 추가하는 예제입니다. 위의 각 요소를 실행한 결과를 그림으로 보면 아래와 같습니다. 최소 힙이기 때문에 낮은 숫자가 위에 위치하여야 하며, 부모 노..
[dijkstra] 백준 1753 파이썬 import sys import heapq input = sys.stdin.readline INF = int(1e9) N, M = map(int, input().strip().split()) start = int(input()) graph = [[] for _ in range(N+1)] distance = [INF]*(N+1) for i in range(N): a, b, c = map(int, input().strip().split()) graph[a].append((b,c)) def dijkstra(start): q = [] heapq.heappush(q, (0, start)) distance[start]=0 while q: dist, now = heapq.heappop(q) if distance[no..
[django] ModelForm을 사용하여 데이터 등록 환경: django 3.2.8 django 프로젝트 진행 중 ModelForm을 이용하여 데이터를 등록하는 작업을 진행하였습니다. template(html)과 url은 구현이 되어있다고 가정하였을 때, views.py에는 아래와 같이 구현합니다. def registerAcademy(request): form = AcademyForm() if request.method =='POST': form = AcademyForm(request.POST) if form.is_valid(): form.save() return redirect('home') context = {'form':form} return render(request, 'base/academy_form.html',context) 위 코드에서 사용된 ..
hash 값 생성 python에는 hash를 사용하기 위한 라이브러리들이 내장되어 있다. 그 중 md5를 이용하여 아래와 같이 해시 값을 생성할 수 있다. from hashlib import md5 data = 'a' hash_value = md5(data.encode('utf8')).hexdigest() print (hash_value) 아래 파이썬 문서를 확인해보면 해시 알고리즘 생성자는 sha1, sha224, sha256, sha384, sha512, blake2b, blake2s가 있고 md5는 일반적으로 사용할 수 있지만 드물게 빠지는 경우가 있다고 한다. https://docs.python.org/ko/3/library/hashlib.html hashlib — 보안 해시와 메시지 요약 — Python 3.10..

반응형