2020년 10월 24일 개발자 이야기

Jay Park
Jay ParkCTO at EX-EM
CTO 둘이 풀어드리는 주간 뉴스 2020.10.24방송
AWS는 IPv4를 몇 개 확보했을까?
참고자료
• <컴퓨터vs책> 블로그
http://jhrogue.blogspot.com/
• 오늘자방송
https://www.youtube.com/watch?v=DmlO0_aywEw&list=PLdntWJk2tJPKvRB0mSqC5t
yKUv7HFtcqg&index=1
• 유튜브채널OKdevTV >재미있는개발이야기리스트
https://www.youtube.com/playlist?list=PLdntWJk2tJPKvRB0mSqC5tyKUv7HFtcqg
• 슬라이드셰어
https://www.slideshare.net/jrogue/presentations
• 채널박재호(초급개발자를위한...)https://www.youtube.com/c/박재호dev OKdevTV
How to deprecate an interface
via @johnnyrichardb
오늘의 짤방
OKdevTV
① 사고로 서비스용 데이터베이스를 날렸어요… 뉴뉴
② Security Headers - HTTP 응답 헤더의 보안 수준 점검
③ bunkerized-nginx – 안전한 nginx 컨테이너 만들기
④ 아틀라시안 JIRA/Confluence/Bitbucket 서버 판매 중단!
⑤ 파이썬 3.9 개선 사항
⑥ devhints.io – 개발자를 위한 커닝 페이퍼
⑦ AWS는 IPv4를 몇 개 확보했을까?
⑧ mmap이 시스템 호출보다 빠른 이유
오늘의 소개할 내용
OKdevTV
• https://keepthescore.co/blog/posts/deleting_the_production_database/
• 온라인 점수판을 제공하는 서비스인 keepthescore.co의 개발자가 레드 와인 한 잔 마시고 나서 상용 서비스를 위한 데
이터베이스를 날려버림
• 다행히도 디지털오션의 관리형 서비스를 사용했기에 백업으로 복구가 가능, 하지만 7시간 분량의 데이터가 소실
• 어떤 일이 벌어졌을까?
OKdevTV
(오늘의 논쟁) 사고로 서비스용 데이터베이스를 날렸어요… 뉴뉴1
def database_model_create():
"""Only works on localhost to prevent catastrophe"""
database = config.DevelopmentConfig.DB_DATABASE
user = config.DevelopmentConfig.DB_USERNAME
password = config.DevelopmentConfig.DB_PASSWORD
port = config.DevelopmentConfig.DB_PORT
local_db = PostgresqlDatabase(database=database, user=user, password=password, host='localhost', port=port)
local_db.drop_tables([Game, Player, Round, Score, Order])
local_db.create_tables([Game, Player, Round, Score, Order])
print('Initialized the local database.')
• https://securityheaders.com/
OKdevTV
(개발) Security Headers - HTTP 응답 헤더의 보안 수준 점검2
• https://github.com/bunkerity/bunkerized-nginx
• 도커 이미지 중에서 보안이 취약한 경우가 많음 → 도커 자체는 보안 중립적인 기술
• Nginx와 관련해 보안을 강화한 도커 버전!
• HTTPS support with transparent Let's Encrypt automation
• State-of-the-art web security : HTTP security headers, php.ini hardening, prevent leaks, ...
• Integrated ModSecurity WAF with the OWASP Core Rule Set
• Automatic ban of strange behaviors with fail2ban
• Antibot challenge through cookie, javascript, captcha or recaptcha v3
• Block TOR, proxies, bad user-agents, countries, ...
• Perform automatic DNSBL checks to block known bad IP
• Prevent bruteforce attacks with rate limiting
• Detect bad files with ClamAV
• Easy to configure with environment variables
OKdevTV
(개발) bunkerized-nginx – 안전한 nginx 컨테이너 만들기3
OKdevTV
(개발) 아틀라시안 JIRA/Confluence/Bitbucket 서버 판매 중단!4
• https://www.atlassian.com/migration/journey-to-cloud
• 아틀라시안 제품군(JIRA/Confluence/Bitbucket)의 서버향 제품을 판매 중지하고 완전히 클라우드향만 판매
• 데이터센터 제품군은 그대로 유지, 단 가격이… 라이선스+유지보수비 형태로 상승할 예정…
https://www.atlassian.com/licensing/future-pricing/server-pricing/pricing-tables#jira-core
• 현재 아틀라시안 제품을 사용 중인 분들은 마음의 준비를 하세요
OKdevTV
(개발) 파이썬 3.9 개선 사항5
• http://www.itworld.co.kr/news/168295
• 개선 사항
• 파이썬 릴리스 주기, 연간으로 전환(PEP 602 반영): 3.9는 2020년 10월, 3.10은 2020년 5월
• 빨라진 기본 속도: vectorcall 를 사용해 내장 함수(range, tuple, list, dict) 속도 개선, C파이썬 파서 개선, 향후 속도 개선 계획은
https://github.com/markshannon/faster-cpython/blob/master/plan.md 참고
• 더 많은 파이썬 문자열과 사전 함수: 문자열에서 prefix와 suffix 제거 함수 추가, dict에서 union 연산자 추가
• 데코레이터, 일부 제약 제거: 이전까지 데코레이터는 @ 기호, 이름(예: func) 또는 점으로 연결한 이름(func.method), 그리고 선택적 요소인 단일 호출
(func.method(arg1, arg2))로만 구성이 가능 → 이제 유효한 표현식으로 구성 가능
• 새로운 파이썬 타입 연산: 컬렉션 콘텐츠(예: 목록과 사전)용 타입 힌트, 유연한 함수와 변수 주석
• 파이썬 내부 구조 개선: import 개선(확장 모듈 사용, 고급 후킹 지원), C파이썬의 안정적 내부 ABI
• 기타: IANA 타임 존 데이터베이스 지원
• https://devhints.io/
OKdevTV
(개발) devhints.io – 개발자를 위한 커닝 페이퍼6
• https://toonk.io/aws-and-their-billions-in-ipv4-addresses/index.html
• 여러 해 동안 AWS는 IPv4를 구입
• 2017년 MIT로부터 800만 개, 2018년 GE로부터 /8 (16백만 개), 2019년 AMPRnet으로부터 /10 (4백만 개)
• 전체 1억 개로 추정 ➔ IP 주소 가격이 하나당 25불로 보면 시가로 25억 달러!
• 현재 5천 3백만 개를 사용 중
• 아직 4천 7백만 객 남아 있습니다!
OKdevTV
(개발) AWS는 IPv4를 몇 개 확보했을까?7
OKdevTV
(우리가 몰랐던 사실) mmap이 시스템 호출보다 빠른 이유8
• https://medium.com/@sasha_f/why-mmap-is-faster-than-system-calls-24718e75ab37
• 시스템 호출: 사용자 영역에서 커널 영역의 서비스를 받기 위한 규약
• 예) 매뉴얼 페이지 2번 영역: System Calls
• mmap(memory-mapped file): 시스템 호출을 부르지 않고 파일을 읽고 쓰기 위한 수단
• 운영체제는 파일 청크에 직접 매핑하기 위해 프로그램의 가상 주소 청크를 확보해 놓음
Using wide vector instructions for data copying effectively
utilizes the memory bandwidth, and combined with CPU pre-
fetching makes mmap really really fast.
1 of 12

More Related Content

Similar to 2020년 10월 24일 개발자 이야기(20)

Introduction to Apache TajoIntroduction to Apache Tajo
Introduction to Apache Tajo
Gruter3.5K views
SOSCON 2017 - Backend.AISOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AI
Joongi Kim327 views
OpenStack Swift DebuggingOpenStack Swift Debugging
OpenStack Swift Debugging
OpenStack Korea Community269 views
JMI Techtalk : Backend.AIJMI Techtalk : Backend.AI
JMI Techtalk : Backend.AI
Lablup Inc.204 views
Spark streaming tutorialSpark streaming tutorial
Spark streaming tutorial
Minho Kim1.3K views

2020년 10월 24일 개발자 이야기

  • 1. CTO 둘이 풀어드리는 주간 뉴스 2020.10.24방송 AWS는 IPv4를 몇 개 확보했을까?
  • 2. 참고자료 • <컴퓨터vs책> 블로그 http://jhrogue.blogspot.com/ • 오늘자방송 https://www.youtube.com/watch?v=DmlO0_aywEw&list=PLdntWJk2tJPKvRB0mSqC5t yKUv7HFtcqg&index=1 • 유튜브채널OKdevTV >재미있는개발이야기리스트 https://www.youtube.com/playlist?list=PLdntWJk2tJPKvRB0mSqC5tyKUv7HFtcqg • 슬라이드셰어 https://www.slideshare.net/jrogue/presentations • 채널박재호(초급개발자를위한...)https://www.youtube.com/c/박재호dev OKdevTV
  • 3. How to deprecate an interface via @johnnyrichardb 오늘의 짤방 OKdevTV
  • 4. ① 사고로 서비스용 데이터베이스를 날렸어요… 뉴뉴 ② Security Headers - HTTP 응답 헤더의 보안 수준 점검 ③ bunkerized-nginx – 안전한 nginx 컨테이너 만들기 ④ 아틀라시안 JIRA/Confluence/Bitbucket 서버 판매 중단! ⑤ 파이썬 3.9 개선 사항 ⑥ devhints.io – 개발자를 위한 커닝 페이퍼 ⑦ AWS는 IPv4를 몇 개 확보했을까? ⑧ mmap이 시스템 호출보다 빠른 이유 오늘의 소개할 내용 OKdevTV
  • 5. • https://keepthescore.co/blog/posts/deleting_the_production_database/ • 온라인 점수판을 제공하는 서비스인 keepthescore.co의 개발자가 레드 와인 한 잔 마시고 나서 상용 서비스를 위한 데 이터베이스를 날려버림 • 다행히도 디지털오션의 관리형 서비스를 사용했기에 백업으로 복구가 가능, 하지만 7시간 분량의 데이터가 소실 • 어떤 일이 벌어졌을까? OKdevTV (오늘의 논쟁) 사고로 서비스용 데이터베이스를 날렸어요… 뉴뉴1 def database_model_create(): """Only works on localhost to prevent catastrophe""" database = config.DevelopmentConfig.DB_DATABASE user = config.DevelopmentConfig.DB_USERNAME password = config.DevelopmentConfig.DB_PASSWORD port = config.DevelopmentConfig.DB_PORT local_db = PostgresqlDatabase(database=database, user=user, password=password, host='localhost', port=port) local_db.drop_tables([Game, Player, Round, Score, Order]) local_db.create_tables([Game, Player, Round, Score, Order]) print('Initialized the local database.')
  • 6. • https://securityheaders.com/ OKdevTV (개발) Security Headers - HTTP 응답 헤더의 보안 수준 점검2
  • 7. • https://github.com/bunkerity/bunkerized-nginx • 도커 이미지 중에서 보안이 취약한 경우가 많음 → 도커 자체는 보안 중립적인 기술 • Nginx와 관련해 보안을 강화한 도커 버전! • HTTPS support with transparent Let's Encrypt automation • State-of-the-art web security : HTTP security headers, php.ini hardening, prevent leaks, ... • Integrated ModSecurity WAF with the OWASP Core Rule Set • Automatic ban of strange behaviors with fail2ban • Antibot challenge through cookie, javascript, captcha or recaptcha v3 • Block TOR, proxies, bad user-agents, countries, ... • Perform automatic DNSBL checks to block known bad IP • Prevent bruteforce attacks with rate limiting • Detect bad files with ClamAV • Easy to configure with environment variables OKdevTV (개발) bunkerized-nginx – 안전한 nginx 컨테이너 만들기3
  • 8. OKdevTV (개발) 아틀라시안 JIRA/Confluence/Bitbucket 서버 판매 중단!4 • https://www.atlassian.com/migration/journey-to-cloud • 아틀라시안 제품군(JIRA/Confluence/Bitbucket)의 서버향 제품을 판매 중지하고 완전히 클라우드향만 판매 • 데이터센터 제품군은 그대로 유지, 단 가격이… 라이선스+유지보수비 형태로 상승할 예정… https://www.atlassian.com/licensing/future-pricing/server-pricing/pricing-tables#jira-core • 현재 아틀라시안 제품을 사용 중인 분들은 마음의 준비를 하세요
  • 9. OKdevTV (개발) 파이썬 3.9 개선 사항5 • http://www.itworld.co.kr/news/168295 • 개선 사항 • 파이썬 릴리스 주기, 연간으로 전환(PEP 602 반영): 3.9는 2020년 10월, 3.10은 2020년 5월 • 빨라진 기본 속도: vectorcall 를 사용해 내장 함수(range, tuple, list, dict) 속도 개선, C파이썬 파서 개선, 향후 속도 개선 계획은 https://github.com/markshannon/faster-cpython/blob/master/plan.md 참고 • 더 많은 파이썬 문자열과 사전 함수: 문자열에서 prefix와 suffix 제거 함수 추가, dict에서 union 연산자 추가 • 데코레이터, 일부 제약 제거: 이전까지 데코레이터는 @ 기호, 이름(예: func) 또는 점으로 연결한 이름(func.method), 그리고 선택적 요소인 단일 호출 (func.method(arg1, arg2))로만 구성이 가능 → 이제 유효한 표현식으로 구성 가능 • 새로운 파이썬 타입 연산: 컬렉션 콘텐츠(예: 목록과 사전)용 타입 힌트, 유연한 함수와 변수 주석 • 파이썬 내부 구조 개선: import 개선(확장 모듈 사용, 고급 후킹 지원), C파이썬의 안정적 내부 ABI • 기타: IANA 타임 존 데이터베이스 지원
  • 10. • https://devhints.io/ OKdevTV (개발) devhints.io – 개발자를 위한 커닝 페이퍼6
  • 11. • https://toonk.io/aws-and-their-billions-in-ipv4-addresses/index.html • 여러 해 동안 AWS는 IPv4를 구입 • 2017년 MIT로부터 800만 개, 2018년 GE로부터 /8 (16백만 개), 2019년 AMPRnet으로부터 /10 (4백만 개) • 전체 1억 개로 추정 ➔ IP 주소 가격이 하나당 25불로 보면 시가로 25억 달러! • 현재 5천 3백만 개를 사용 중 • 아직 4천 7백만 객 남아 있습니다! OKdevTV (개발) AWS는 IPv4를 몇 개 확보했을까?7
  • 12. OKdevTV (우리가 몰랐던 사실) mmap이 시스템 호출보다 빠른 이유8 • https://medium.com/@sasha_f/why-mmap-is-faster-than-system-calls-24718e75ab37 • 시스템 호출: 사용자 영역에서 커널 영역의 서비스를 받기 위한 규약 • 예) 매뉴얼 페이지 2번 영역: System Calls • mmap(memory-mapped file): 시스템 호출을 부르지 않고 파일을 읽고 쓰기 위한 수단 • 운영체제는 파일 청크에 직접 매핑하기 위해 프로그램의 가상 주소 청크를 확보해 놓음 Using wide vector instructions for data copying effectively utilizes the memory bandwidth, and combined with CPU pre- fetching makes mmap really really fast.