본문 바로가기

분류 전체보기545

[Python] 해쉬(Hash Table) 간단용어 해쉬 : 임의 값을 고정길이로 변환하는 것 해쉬함수 : 특정연산을 이용하여 키 값을 받아서 value를 가진 공간의 주소로 바꾸어주는 함수 해쉬테이블 : 해쉬구조를 사용하는 데이터구조 해쉬값 : key값을 해쉬함수에 넣어서 얻은 주소값. 슬롯 : 한개의 데이터를 저장할 수 있는 공간(아래에선 buckets) 해쉬구조 Key와 Value 쌍으로 이루어진 데이터구조 Key를 이용해서 데이터를 찾아서 속도를 빠르게 만드는 구조 파이썬에서는? '딕셔너리 타입'이 해쉬테이블과 같은 구조 언제 사용하는가? 검색이 많이 필요한경우, 저장/삭제/읽기가 많은 경우, 캐쉬를 구현할 경우 장점은? 데이터저장/검색 속도가 빠르다 키에 대한 데이터 중복확인이 쉽다. 단점은? 저장공간이 좀더 많이 필요하다 여러 키에 대.. 2021. 5. 15.
aws whats'new 뉴스레터 업그레이드4 | 향후 SQS 변경예정 이메일 전송테스트 앞서 구독하려는 이메일을 mongodb에 저장하는 작업까지 마쳤다. 그리고 코드를 조금 보기좋게 수정한 뒤, 잠깐 테스트를 해봤다. 한번에 여러메일에 전송하도록 테스트까지 완료했다. 테스트 상황 아래의 웹에 입력창을 통해 2개의 메일이 구독한다고 신청했다! 구독하기로 한 메일이 db에 저장된다. : ~@kakao.com, ~@naver.com 메일전송 : 11:30분에 메일을 보내는 서버를 구동시켰다. 동시에 메일이 전송된다. 그런데 왠지 구독자가 많아지게 되면(벌써부터 상상), 뭔가 비효율적일것 같은 생각이 들었다. 예를 들어, 스팸메일로 걸러지게 된다면 어쩌지, 메일이 여러개 보내지다가 터지면 어쩌지 그래서 새로운 서비스도 써볼겸 언젠가 SQS로 바꿔볼까 한다. 2021. 5. 14.
aws whats'new 뉴스레터 업그레이드3 | Flask웹 aws배포(DB)+Cron 아아ㅏㅏㅏㅏ거의 다 썼는데 날라갔다. 아놔. 2021.05.12 - aws whats'new 뉴스레터 업그레이드3 | Flask웹 aws배포(Route53) 2021.05.12 - aws whats'new 뉴스레터 업그레이드3 | Flask웹 aws배포(ELB) 생각보다 오래걸렸다. 별것도 아닌데...그리고 기록하던 중에 다 날라가버리는 바람에..하.. AWS데이터베이스 써보기? 사실 조금 막막했다. 지금까지 테스트환경 즉 개발환경의 내 로컬PC에서는 Mongodb를 사용했다. 그런데 이걸 어떻게 운영환경이랑 연결하지? 지금 개발한 앱들은 ec2에 있는데 어떻게 db에 접속을 해야하지? 2021.04.16 - AWS 뉴스메일 자동화 | python에서 mongoDB 사용하기 AWS 뉴스메일 자동화 | p.. 2021. 5. 13.
[VPC] 서브넷 추가시, IP주소가 부족하다면? | VPC에 보조CIDR 연결 상황 AWS에 배포하던 중 문제가 생겼다. ELB를 사용하지 않을것 같다고 처음에 계획을 했었지만, 계획과 달리 ELB가 필요했고, 가용영역을 늘려야했다. 그래서 서브넷을 추가해야 했다. 여기에서 알게 된것, elb를 사용하려면 무조건 가용영역 2개가 필요하다는 것, 적어도 서브넷2개는 만들어져 있어야한다! 문제 서브넷 추가야 금방이라고 생각했따. 그런데 앵간한 범위를 다 쳐봐도 중첩되는 주소였다...ㅠㅠ 아래의 사이트를 통해 cidr 주소범위까지 확인해보면서 찾아봤지만.. ko.rakko.tools/tools/27/ IPv4 / IPv6 CIDR 계산기 | RAKKOTOOLS🔧 IPv4 / IPv6 CIDR 주소를 기반으로 IP 주소 범위를 계산하십시오.서브넷 마스크 범위의 첫 번째 및 마지막 IP 주.. 2021. 5. 13.
aws whats'new 뉴스레터 업그레이드3 | Flask웹 aws배포(ELB) 2021.05.12 - aws whats'new 뉴스레터 업그레이드3 | Flask웹 aws배포 aws whats'new 뉴스레터 업그레이드3 | Flask웹 aws배포 잠깐, 생각해보니 2개의 프로그램이 시간차를 두고 진행이 되어야 하는 거잖아? 언제든지 구독이메일을 받을수 있도록 웹프로그램은 계속 켜져있고, 그렇게 내 서버에 메일을 저장해두고 있다 pearlluck.tistory.com 다 끝났다고 생각했는데,...다시 돌아가네.. 다시 이전에 문제점부터 생각해보면 2가지가 있었다. 1. ip주소가 바뀐다. 2. 도메인이 필요하다. 그리고 지금까지 한 일은 1. 고정ip를 만들기 위해서 eip를 할당하고, ec2에 연결했다. 2. 가비에서 도메인을 샀다. 3. route53의 호스트존에 가비아에서 발.. 2021. 5. 12.
[AWS 비용] AWS FreeTier 과금은? | 과금대상 특이사항 앞서 한번 비용에 대해서 정리를 해봤다. 그때는 무료인 서비스들에 대해서 중점적으로 봤는데 자꾸 까먹어서 다시봤다. 어떤 상황에서 추가로 요금이 붙는지 특별한 상황(?) 주의사항에 대해서 더 자세히 알아보려고 한다. 추가로 알게 되는 특이사항이 생기면 언제든지 추가할 예정이다. 1. EIP (Elastic IP) IP주소를 고정으로 쓸떄 사용하는 서비스이다. 왜 필요한 서비스인가?? EC2에는 Public ip를 부여받게 되는데 ec2가 stop/start하면서 그 ip가 바뀐다. 그래서 고정할 ip가 필요할때 쓴다. 고정ip가 있으면 항상 같은 주소로 접근할 수 있기 때문이다. 프리티어에서는 무료로 EIP 1개를 사용할 수 있다. 하지만, EIP를 만들어두고 사용하지 않으면 과금이 든다. 보통 다른 서.. 2021. 5. 12.
aws whats'new 뉴스레터 업그레이드3 | Flask웹 aws배포(Route53) 잠깐, 생각해보니 2개의 프로그램이 시간차를 두고 진행이 되어야 하는 거잖아? 언제든지 구독이메일을 받을수 있도록 웹프로그램은 계속 켜져있고, 그렇게 내 서버에 메일을 저장해두고 있다가 매주 화요일 오전10시가 되면, 이제 메일전송 서버가 동작되는거니까! 동시에 진행되는 구조, 하나의 flow는 아니다! Flask웹 aws배포 그래서 일단 웹개발은 어느정도 완성이 되었다고 생각이 들어서 지금까지 만든 웹을 aws에 배포하려고 한다. 구글링해보니 배포를 하는 방법은 몇가지가 있었다. 1. ec2에서 git으로 clone하기 2. beanstalk사용하기 +CI/CD 공부해보기 일단 AWS인프라를 PUBLIC하게 구성해보았다. 1. VPC 생성 : test-vpc 2. IGW 생성 3. igw를 vpc에 a.. 2021. 5. 12.
aws whats'new 뉴스레터 업그레이드2 | 구독이메일 mongoDB 저장 이번엔 flask웹으로 입력받은 이메일들을 mongodb에 저장해둘 것이다. 사실 이메일만 저장하기 떄문에 굳이 큰 db는 필요가 없긴하다. 하지만, mongoDB CRUD도 배워볼겸 선택했다. 그리고 이미 AWS document들을 mongodb에 저장해놨다. 그래서 추가로 email을 저장할 새로운 collection만 생성했다. html에서 입력받은 데이터를 백엔드의 python으로 넘겨주기 위해서 몇가지 수정사항이 필요했다. 1.html에서 넘겨주기 name추가 웹페이지에 input창이 있는데 그 input한 내용을 넘겨줄거라고 form action을 추가한다. 그리고 input 하는 태그의 이름을 email로 지정하도록 수정했다. 여기에서 조금 헤멜 뻔 했다.....button이랑 input s.. 2021. 5. 11.
aws whats'new 뉴스레터 업그레이드1| Flask웹 개발 웹은 Flask로 도전해보기로 했다. 디자인은 부트스트랩을 참고했다. 컬러랑 글 몇개 좀 수정하고, Flask템플릿 얹기 개발 프론트단을 이렇게 하는게 맞나 싶어서 조금 헷갈릴뻔도 했지만 성공! app.py는 flask웹 시작하는 코드. 외부접근허용까지 걸어두었다. from flask import Flask,render_template app = Flask(__name__) @app.route('/') def index(): return render_template("index.html") if __name__ == '__main__': app.run(host='0.0.0.0') 아, 그리고 중간에 뻘짓좀 했다..jinja2.exceptions.TemplateNotFound.html 오류 더보기 rend.. 2021. 5. 11.
[Python] Intellij에서 Flask시작하기 | Flask Template Config추가 추가로 웹단 구현이 필요해서 flask를 사용하기로 했다. 그런데 지금은 웹이 아닌 back단을 실행하기 위해서 python run을 하고 있었다. 그럼 어떻게 같은 프로젝트 파일에서 Flask도 실행할 수 있을까? RUN/Debug Configuration을 추가한다. 이때, 인텔리제이에서는 '템플릿'을 제공한다. 아래의 여러가지 프레임워크를 기반으로 코드를 실행할 수 있는 것이다. 그중에서 flask를 선택하고, 새로운 config를 만들었다. 이때 app.py는 Flask앱을 시작해주는 코드라고 보면 된다. 일단 hello world부터 시작해보자. 이렇게 하나의 짧은 코드만으로도 웹프로그램이 하나가 완성된다. 코드를 설명하면, 처음에 Flask라는 클래스를 가져온다. 그리고, Flask 클래스의 .. 2021. 5. 11.