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.')
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 타임 존 데이터베이스 지원
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.