- 개발/관리도구 부문
- Effectively Using Matplotlib
- Performance Testing in Java
- Rock and Roll Days of StarCraft: a Development Retrospective
- py-backwards - Python to python compiler that allows you to use Python 3.6 features in older versions.
- Write Fast Apps Using Async Python 3.6 and Redis
- Serverless Stack is a free comprehensive guide to creating full-stack serverless applications.
- Markdown Presentations For Everyone on GitHub, GitLab and Bitbucket.
- Should I buy ECC memory?
- poet - Poet helps you declare, manage and install dependencies of Python projects, ensuring you have the right stack everywhere.
- DigitalOcean Adds Monitoring and Alerting Features
- Feynman Algorithm: 1. 문제를 적어라. 2. 열심히 생각하라. 3. 해법을 적어라.
- Oj (Optimized JSON) is fast. Faster than the built in Ruby json gem.
- The impact of Garbage Collection on Application Performance
- (Twitter) Working with Timelines
- From Microliths to Microsystems
- Minimal examples of data structures and algorithms in Python
- Webpack의 혼란스런 사항들
- How New Relic Does DevOps
- FEWER MALLOCS IN CURL
- Teach Yourself Programming in Ten Years
- A roadmap to becoming a web developer in 2017
- ARM Releases Machine Readable Architecture Specification
- C++ TCP Proxy Server
- APFS filesystem format
- Cognitive Complexity, Because Testability != Understandability
- Hype Driven Development
- 68 Resources To Help You To Create Programming Languages
- The Evolution of Container Usage at Netflix
- Creating a Simple App in Vue.js
- Want to Know What’s in a GC Pause? Go Look at the GC Log!
- Microservices for Java Developers
- TurboFan: A new code generation architecture for V8
- The origins of XXX as FIXME
- Learn 90% of Python in 90 Minutes
- Preload, Prefetch And Priorities in Chrome
- Apple’s New File System: Who Cares?
- Why don't you just rewrite it in X?
- Building a r/place in a weekend
- Jupyter Notebook Keyboard Shortcuts
- (Python) Three Ways for a Nicer Output
- 8 best practices for building containerized applications
- Competitive Programmer's Handbook: IOI나 ICPC 대비용
- (Python) Let’s Build A Simple Interpreter. Part 1.
- Light at the End of the Long Tunnel for Java EE 8
- A Vue.js introduction for people who know just enough jQuery to get by
- 고성능 서버/데이터베이스 부문
- 아마존 1분기 실적, 아마존 웹 서비스가 다 했다
- 1분기 구글, 클라우드 성장률이 광고 수익 앞서
- AWS Summit Seoul 2017 강연 동영상과 발표 자료
- AWS Summit Seoul 2017 발표자료(슬라이드셰어)
- (Twitter) Freeing the Whale: How to Fail at Scale
- Understand Go pointers in less than 800 words or your money back
- Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
- 클라우드 스토리지 옵션 전격 분석 : AWS vs. 애저 vs. 구글
- Twitter의 좌충우돌 모니터링 만들기!
- Examples of MySQL Document store usage
- INNODB VARIABLES AND STATUS EXPLAINED
- Better Than Linear Scaling
- SolarWinds to Showcase Performance Optimization Technology for MySQL at Percona Live 2017
- Percona Live Featured Session with Alibaba Cloud – Flashback: Rolling Back a MySQL/MariaDB Instance, Database or Table to a Previous Snapshot
- HTTP/2 IS NOT FUTURE. IT’S PRESENT.
- Garbage collection in V8, an illustrated guide
- One More Reason Why AWS is Tough for Microsoft and Google to Beat in Cloud Computing
- How can one learn to be a programmer in their free time?
- The mysqlpump Utility
- Intel® Optane™ SSDs and Aerospike Database: a New Level of Fast in Operational Stores for Hybrid Transactional/Analytical Processing
- Percona Live Featured Session with Wei Hu – AliSQL: Breakthrough for the Future
토요일, 4월 29, 2017
[B급 프로그래머] 4월 4주 소식(개발/관리도구, 고성능 서버/데이터베이스 부문)
토요일, 4월 22, 2017
[B급 프로그래머] 4월 3주 소식(빅데이터/인공지능, 읽을거리 부문)
- 빅데이터/인공지능
- There's No AI (Artificial Intelligence) without IA (Information Architecture)
- Machine learning methods (infographic)
- THE NEURAL NETWORK ZOO
- 김진철의 How-to-Big Data | 빅데이터 수집에 관한 생각 (2)
- Multilingual word vectors in 78 languages
- A Network Way of Working: A Compilation of Considerations about Effectiveness in Networks
- Neural Networks Tutorial – A Pathway to Deep Learning
- Neuralink and the Brain’s Magical Future
- "팀 개발부터 머신러닝까지"··· 한눈에 보는 'AWS 서밋 2017'
- Deep Learning lecture collection(Standford)
- 컴퓨터 도입으로 도리어 일자리 늘었다
- Velodyne Announces a Solid-State Lidar
- Official repository of the AWS EC2 FPGA Hardware and Software Development Kit
- Benchmarking State-of-the-Art Deep Learning Software Tools
- 폭력게임 표본이었던 GTA, 자율주행차 덕에 가치 재발굴
- Next steps for Deep Learning self driving car - Python Plays GTA V
- Machine Learning at Scale
- Thirty-three Miniatures: Mathematical and Algorithmic Applications of Linear Algebra
- What are the top 10 data mining or machine learning algorithms?
- [자율주행차 기획]한국의 도로 누비는 자율차 개발, 어디까지
- 日서 편의점 알바생 사라진다…2025년까지 전 점포 무인화
- "AI 로봇 눈에 인간은 기생충 아닌 엄청난 존재"
- Deep Patient: An Unsupervised Representation to Predict the Future of Patients from the Electronic Health Records
- "2017년 세계 빅데이터 및 분석 시장 1500억 달러 넘어설 것"
- AI 혁명, 마침내 미래가 온 것일까?
- What in the World Is Causing the Retail Meltdown of 2017?
- A neural network trained to help writing neural network code using autocomplete
- No one is prepared to stop the robot onslaught. So what will we do when it arrives?
- The Dark Secret at the Heart of AI
- 포레스터가 전망하는 '챗봇, 메시징, 그리고 모바일 커머스'
- 딥러닝용 P2 인스턴스 타입, 서울 리전 출시
- GM Announces More Than 1,100 Jobs to Expand Cruise Automation Self-Driving Operations in California
- MXNet을 활용한 이미지 분류 앱 개발하기
- Data Wrangling 101: Using Python to Fetch, Manipulate & Visualize NBA Data
- Big Data Infrastructure @ LinkedIn
- 갤S8 음성인식 기능 탑재 5월로 미룬다
- How The Cars Of Logan Grappled With The Very Real Future
- Kafka 운영자가 말하는 TIP
- Tesla is valued as high as Ford and GM — but that has nothing to do with what it's done so far
- Raspberry Pi를 이용한 얼굴 표정과 감정인식 시스템 개발
- The Air Force just demonstrated an autonomous F-16 that can fly and take out a target all by itself
- 자율차 실용화 눈앞…전용차로 만들고 신호체계 개선키로
- AI wins $290,000 in Chinese poker competition
- FedEx Freight calls for US self-driving truck regulations
- The Math Trick Behind MP3s, JPEGs, and Homer Simpson’s Face
- 빠르게 달리는 AI, 더 빠른 China
- What happens when our computers get smarter than we are?
- Which GPU(s) to Get for Deep Learning: My Experience and Advice for Using GPUs in Deep Learning
- 읽을거리
- "크롬 사용자라면 꼭 알아야 할" 기본 중의 기본 팁 7가지
- 고해상도 무료 이미지를 제공하는 웹사이트 8곳: '짤' 구하러 가세~
- Thousands of tiny satellites are about to go into space and possibly ruin it forever
- The Intel Optane SSD DC P4800X(375GB) Preview
- Kaila Colbin on the Nature of Technological Innovation and the Implications for Society
- 수조원씩 투자해도 일자리 안늘어… 반도체·油化의 역설
- 2016 CMU First Destination Outcomes
- Study confirms we all use our phones while driving
- A Neuroscientist Tackles 'Why Diets Make Us Fat'
- The Real Reason Twitter Is Failing To Grow
- Inside the mind of a master procrastinator
- Intel Discontinues the Intel Developer Forum; IDF17 Cancelled
- Brains Sweep Themselves Clean Of Toxins During Sleep
- Is American Retail at a Historic Tipping Point?
- 아마존에서 MS로 옮긴 백기선씨 이야기
- WHY THE COMMAND-AND-CONTROL MINDSET IS KILLING YOUR COMPANY
- Evolution of the Transistor: Shockley, Bardeen and Brattain discover foundation of modern electronics in 1947
- The Surprising Habits of Original Thinkers
- Learning to Love Intelligent Machines
- 선박의 크기는 어떻게 표현할까?
- 컨테이너
- Why thinking you're ugly is bad for you
- 브라우저에서 ‘할 일 목록’을 추적하는 3가지 크롬 확장 프로그램
- 오늘을 '첫날'처럼 살았다… 아마존에 '둘째날'은 없다
- 구글플레이, 작년 한국 매출 4조5천억원
- Can Dogs Watch TV?
- LET YOUR WORKERS REBEL
- 전국 수제맥주 맛집을 한 눈에...맥주 덕후들은 신났네!
- Will London Fail?
- 내년 SW특기자 355명 서류전형으로 대학 간다
- The Utter Uselessness of Job Interviews
- NASA at Saturn: Cassini's Grand Finale
- How Loneliness Begets Loneliness
- Living a Lie: We Deceive Ourselves to Better Deceive Others
- Not a Dot-Com Bubble, Not 2007, but a Nasty Mix of Both
금요일, 4월 21, 2017
[독서광] 오리지널스
오늘은 간만에 서평을 올려드린다. 오늘의 주인공은 이미 읽어보신 분들도 많으신 바로 '오리지널스'이다. 애덤 그랜트의 TED 강연부터 보면 이 책이 어떤 방향으로 전개될지 감이 올 것이다.
독창성을 다루는 이야기라고? 정확하다. 천재들에 대한 이야기라고? 꼭 그렇지만은 않다. 이 책은 천재적인 독불장군에 대한 영웅담을 다루기보다는 평범한 사람들이 스스로의 독창성을 발굴해서 자신의 삶과 세상을 바꾸는 방법에 집중한다. 물론 이 책을 읽었다고 해서 갑자기 창의력이 폭발하지는 않는다(그렇게 쉽게 창의력을 얻는다면 모순이겠지?). 하지만 뭔가 새로운 일을 하는 과정에서 문제에 직면한 경험이 있다면 상황을 복기하고 다음에는 어떤 전략전술을 써야할지 깨닫게 만드는 재미가 있다(물론 딱 맞는 전략전술을 쓰더라도 성공은 복불복이지만...).
이 책은 기존의 통념을 뒤엎는 주장이 여기저기서 계속 나오면서도 익숙한 내용도 많이 나오기 때문에 익숙한 새로움을 느끼게 만든다(익숙한 새로움은 이 책 주제 중 하나다). 따라서 책을 읽다가 조금 지루한 느낌을 받거나 자기 계발서의 전형이다라고 생각이 들더라도 조금 참을 필요가 있다는 사실을 미리 알려둔다. 성격이 급한 독자분이라면 책의 가장 마지막 부분에 나오는 효과적인 행동 지침을 먼저 읽어보면 이 책의 전반적인 흐름을 파악하는 과정에 도움이 될 것이다. 하지만 행동 강령이 본문에 나오는 사례를 대신하지는 못하므로 시간을 투입해서 책을 정주행하는 편이 좋겠다.
이 책을 읽는 과정에서 과거에 저지른 몇 가지 실수와 몇 가지 성공이 떠올랐다. 개인적으로 이 책에서 가장 흥미로왔던 부분은 3장, 5장, 8장이었다. 3장은 바로 앞에서도 설명한 익숙한 새로움에 대한 내용을 소개하며, 5장은 연대를 결성하고 유지하는 방법을 소개한다. 조직 생활에 있어 시행착오를 줄일 수 있는 좋은 교훈을 제시하기 때문에 주의 깊게 읽어보면 삶에 도움이 될 것이다. 마지막으로 8장은 [독서광] 설리 허드슨강의 기적에도 소개된 장기적 낙관주의자, 단기적 현실주의자에 대한 이야기를 전개한다. 부정적인 사고가 발휘하는 긍정적인 힘을 이해하고 나면 내면의 불안함이 더 이상 적이 아닌 친구로 느껴질 것이다.
결론: 분량이 조금 많고 경우에 따라서는 살짝 지루하다는 느낌을 받을 위험성이 있지만 그대로 읽어볼 가치가 있다는 생각이다. 특히 조직에서 뭔가 의미 있는 일을 하고 싶다면 이 책에서 여러 가지 힌트를 얻지 않을까 싶다. 추천!
EOB토요일, 4월 15, 2017
[B급 프로그래머] 4월 2주 소식(개발/관리도구, 고성능 서버/데이터베이스 부문)
- 개발/관리도구 부문
- Prettier is an opinionated JavaScript formatter.
- Twitter Lite and High Performance React Progressive Web Apps at Scale
- Headless mode allows running Chromium in a headless/server environment.
- Low level programming university - How to be low-level programmer
- Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python object.
- The Future of Programming: 강력 추천!
- Memory bandwidth
- Windows 10 Creators Update: What’s new in Bash/WSL & Windows Console
- 리디북스 서버 스택 소개
- 웹서버 로그 수집과 모니터링 설정
- DevOps 팀을 위한 모니터링 팁
- mattermost - Open source, private cloud Slack-alternative
- Cello is a library that brings higher level programming to C.
- 한국의 파이썬 소식(2017년 4월 둘째 주)
- [번역] 네 Python은 느립니다, 하지만 저는 신경쓰지 않습니다
- 잘 짜여진 실제 앱 해부해보기: 안드로이드 리버스 엔지니어링
- Pragmatic Web Development in Go
- A Comprehensive Guide To HTTP/2 Server Push
- Vue.js 2 and Firebase
- Software Complexity: The Art of Naming
- 개발자가 컨테이너를 좋아하는 5가지 이유
- WHY YOU SHOULD RELEASE EARLY
- saltpack - a modern crypto messaging format
- Qt binding for Go (Golang) with support for Windows / macOS / Linux / Android / iOS / Sailfish OS / Raspberry Pi / AsteroidOS
- Why you should follow the robustness principle in your APIs
- Build Your Own Text Editor
- An awesome collection of Solitaire games for Python.
- Zeal is an offline documentation browser for software developers.
- Webpack and Rollup: the same but different: 한국어 번역
- How we built Twitter Lite
- Visualizing Garbage Collection Algorithms
- Beyond Bash: Microsoft Refines the Windows Subsystem for Linux
- Why Docker?
- Announcing a unified .NET reference experience on docs.microsoft.com
- Avoiding Alerts Overload from Microservices
- Do not let your CDN betray you: Use Subresource Integrity
- Difference Between Black box and White box Testing
- Google and Apple Issue Security Updates for Critical Broadcom WiFi Vulnerabilities
- Where will UX design be in 5 years? 5 Predictions
- Huge update! Interactive Python coding interview challenges (algorithms and data structures). Includes Anki flashcards.
- The Debugging Mindset
- 28 Jupyter Notebook tips, tricks and shortcuts
- [번역] 좋은 코딩을 위한 13 가지 간단한 규칙
- The ultimate SO_LINGER page, or: why is my tcp not reliable
- 고성능 서버/데이터베이스 부문
- A template for PostgreSQL High Availability with ZooKeeper, etcd, or Consul
- Kafka 운영자가 말하는 TIP
- 데이터센터 감소세 시작··· 면적·수 모두 '내리막길'
- The Internals of PostgreSQL
- Sharding Pinterest: How we scaled our MySQL fleet
- InnoDB Page Merging and Page Splitting
- Cloud SQL for PostgreSQL: Managed PostgreSQL for your mobile and geospatial applications in Google Cloud
- New Features Coming in PostgreSQL 10
- Common misconceptions about locking in PostgreSQL
- Oracle Docker Hub
- (Digital Ocean) Update on the April 5th, 2017 Outage
- “지난해 국내 서버 시장 3.6% 성장한 1조 307억 원 규모”…한국IDC
- Things I Learned Managing Site Reliability for Some of the World’s Busiest Gambling Sites
- Ubuntu on AWS gets serious performance boost with AWS-tuned kernel
- Turtles on the Wire: Understanding how the OS uses the Modern NIC
- Manually Throttle the Bandwidth of a Linux Network Interface
- The State of Modern Applications in AWS Report
- An Insider’s View of MySQL Group Replication—Now Available in Oracle MySQL Cloud Service!
- MySQL Foreign Key
토요일, 4월 08, 2017
[B급 프로그래머] 4월 1주 소식(빅데이터/인공지능, 읽을거리 부문)
- 빅데이터/인공지능
- Open sourcing Sonnet - a new library for constructing neural networks
- Tableau switches to subscription pricing for its BI products
- TensorFlow Basic Tutorial Labs - Framework zoo!
- Neural Networks and Deep Learning을 정리한 파일: Neural Networks and Deep Learning 사이트는 이미 소개한 적이 있음.
- 구글 AI 칩 성능 보고서 발표…소비전력당 성능 최대 80배
- Quantifying the performance of the TPU, our first machine learning chip
- In-Datacenter Performance Analysis of a Tensor Processing Unit
- First In-Depth Look at Google’s TPU Architecture
- Practicing Machine Learning with Optimism
- Open Data for Deep Learning
- AI가 정신줄을 놓으면?··· 오싹하면서도 흥미로운 10가지 이야기
- Using Deep Learning Technologies IBM Reaches a New Milestone in Speech Recognition
- Building Pipelines for Heterogeneous Execution Environments for Big Data Processing
- How P&G and American Express Are Approaching AI
- Daimler and Bosch: fully autonomous cars within 5 years
- Why Momentum Works
- The customer is always wrong: Tesla lets out self-driving car data – when it suits
- Linear algebra(한국어)
- 4차 산업혁명과 지능정보사회의 정책과제 100선
- There's No AI (Artificial Intelligence) without IA (Information Architecture)
- Inside chatbots’ year of growing pains: ‘We’re at an inflection point’
- At BlackRock, Machines Are Rising Over Managers to Pick Stocks
- Data Preprocessing vs. Data Wrangling in Machine Learning Projects
- OSIA S&TR Journal - 자율 주행 차량
- THE ARRIVAL OF ARTIFICIAL INTELLIGENCE
- 텐서보드(TensorBoard) 시작하기
- 히타치, 인공지능 실시간 영상 인물 탐지 및 추적 시스템 개발
- An Overview of Python Deep Learning Frameworks
- Uber Suspends Tests of Self-Driving Vehicles After Arizona Crash
- Uber self-driving car crashes during US tests
- JavaScript(Node.js) 로 MNIST 데이터를 읽어서 로칼 이미지로 저장해 주는 예제
- Faster R-CNN 정리
- 읽을거리
- 컨텐츠 세대 차이 연표
- “지난해 국내 서버 시장 3.6% 성장한 1조 307억 원 규모”
- 대식가를 위한 1차, 2차 술집
- 폰카 미워요, 디카의 눈물
- Coal Is on the Way Out at Electric Utilities, No Matter What Trump Says
- Where will UX design be in 5 years? 5 Predictions
- Apple Plans to Develop a Fully Custom GPU Architecture
- Formula 1: A technical deep dive into building the world’s fastest cars
- 기술이 세상을 바꾸는 순간
- How Uber Uses Psychological Tricks to Push Its Drivers’ Buttons
- Noise Is a Drug and New York Is Full of Addicts
- “이런 걸 연구해봐야 밥이 나오냐 쌀이 나오냐” 하던 어떤 연구의 말로 (전편)
- Cancer Isn’t a Logic Problem
- PANTONE Digital Wallpaper
- Job satisfaction survey says tech, while bad, is better than other industries for women
- 단순함과 복잡함의 겉과 속을 함께 사랑한 수학자, 논리퍼즐의 대부
- Spacecraft Power
- The Genius of Pinheads: When Little Brains Rule
- TED CHIANG’S SOULFUL SCIENCE FICTION
- 'Trash-80' escapes the dustbin of history with new TRS-80 emulator
- GOLDMAN SACHS: 5 practical uses for blockchain — from Airbnb to stock markets
- 미래부, SW중심대학에 경희대 등 6개大 신규 선정
- 인텔 차세대 옵테인 SSD 4월 24일 출시 확정…M.2 폼팩터로 고속 캐시 역할
- Insanity Is Doing the Same Thing Over and Over Again and Expecting Different Results
- Staying Rich Without Manufacturing Will Be Hard
- Not Leadership Material? Good. The World Needs Followers.
- How Aristotle Created the Computer
- Apollo 1, Challenger, and Columbia: Remembering NASA’s lost astronauts
- [WEEKLY BIZ] 세계 시장 80% 점유한 후지산의 노란 戰士
토요일, 4월 01, 2017
[B급 프로그래머] 3월 5주 소식(개발/관리도구, 고성능 서버/데이터베이스 부문)
- 개발/관리도구 부문
- Java Platform and Java Community Process Overview
- HTTP Status Code Badges
- 프로그래머들이 스스로에게 하는 9가지 거짓말
- In Defence of the Monolith, Part 2
- The Divisive Effect of Separate Issue Tracking Tools
- Improve Your Node.js App Throughput One Micro-optimization at a Time
- 4 reasons a Python logging library is much better than putting print statements everywhere
- rebase-editor - Simple terminal based sequence editor for git interactive rebase.
- ECMAScript 6 — New Features: Overview & Comparison
- (curl) YES C IS UNSAFE, BUT…
- JavaScript in 2017: 옛날 사람 탈출하기
- Pretty diff - Understanding how to compare
- ICYMI 웹 탐험일지 – 2017년 3월 29일
- Object Deserialisation Filters Backported from Java 9
- Open Arrow is an open-source font that contains 112 arrow symbols from U+2190 to U+21ff
- Apple Quietly Upgrades the File System of Millions of iOS Devices
- Alcatel-Lucent releases source for 8th, 9th and 10th editions of Unix
- .Net으로 맥 환경에서 게임 개발하기
- localstack - A fully functional local AWS cloud stack. Develop and test your cloud apps offline!
- Designing Charts — Principles Every Designer Should Know
- libucl - Universal configuration library parser
- Bash scripting quirks & safety tips
- Docker and OOM(Out Of Memory) Killer
- Immutable Infrastructure: No SSH
- JavaScript vs. Python in 2017
- What I learned from Stack Overflow’s massive survey of 64,000 developers
- 27 Ruby Gems I use in almost every SaaS project
- AsciiMath is an easy-to-write markup language for mathematics.
- Why doesn’t the clock in the taskbar display seconds?
- DO YOU KNOW HOW MUCH YOUR COMPUTER CAN DO IN A SECOND?
- Conda: Myths and Misconceptions
- Writing a Linux Debugger Part 2: Breakpoints
- Tunnel TCP through WebSockets.
- motd for devops
- 웹어셈블리의 컨셉
- stackoverflow Developer Survey Results 2017
- 안드로이드의 메모리 누수 패턴
- CORS — a guided tour Cross-origin resource sharing
- Modern JavaScript for Ancient Web Developers
- CPU usage even when idle (due to cursor rendering)
- Text Editor Performance Comparison
- Troubleshooting Memory Issues in Java Applications
- Web Assembly Paper(PDF)
- Our guide to a Golang logs world
- How to Go
- (번역) 나는 'puts' 디버거다
- The Cracking Monolith: The Forces That Call for Microservices
- 삼성 SW 역량 테스트 기출 문제
- Gravitational Teleport - Modern SSH server for teams managing distributed infrastructure
- Netty from the trenches
- Netty 5.0 introduction
- Why Python is Slow: Looking Under the Hood
- Roadmap to becoming a web developer in 2017
- 흔한 2017년의 Front-end 기술 스택
- What are some things you wish you knew when you started programming?
- From Python to Numpy
- 고성능 서버/데이터베이스 부문
토요일, 3월 25, 2017
[B급 프로그래머] 3월 4주 소식(빅데이터/인공지능, 읽을거리 부문)
- 빅데이터/인공지능
- Floyd - Eliminate engineering bottlenecks in Deep Learning
- '구글 텐서플로우부터 MS CNTK까지' 딥러닝/머신러닝 프레임워크 6종 비교 분석
- Deep Learning without Backpropagation Tutorial: DeepMind's Synthetic Gradients
- Netflix Demonstrates Big Data Analytics Infrastructure
- Hands-On Machine Learning with Scikit-Learn and TensorFlow
- Google Cloud TF-GPU Setup for Ubuntu 16.04
- Machine Learning Research Should Be Clear, Dynamic and Vivid. Distill Is Here to Help.
- 카프카 운영자가 말하는 카프카 서버 실전 로그 분석
- Why AlphaGo Is Not AI
- immersive linear algebra (Interactive)
- "빅데이터로 달라지는 세상"…은행, `빅데이터`에 홀리다
- Stanford CS224N tensorflow lecture
- 인텔이 모빌아이를 153억 달러에 인수하는 이유
- The most detailed maps of the world will be for cars, not humans
- Machine Learning in Python
- Unless You’re Oprah, ‘Be Yourself’ Is Terrible Advice.
- 네이버, 실리콘밸리에 AI연구소 만든다
- Intel Buys Mobileye in $15.3 Billion Bid to Lead Self-Driving Car Market
- Tutorial on Convolutional Neural Networks(CNNs) for image recognition
- Google’s reCAPTCHA turns “invisible,” will separate bots from people without challenges
- 읽을거리
- The Most Expensive Weapon Ever Built
- Netflix: The Monster That’s Eating Hollywood
- Chasing the First Arcade Easter Egg
- Debate reignites over the contributions of ‘bad luck’ mutations to cancer
- A 130-Year-Old Fact About Dinosaurs Might Be Wrong
- Hierarchy is either strictly constrained or it is indefensible
- In defence of hierarchy
- What It's Like to Watch Your Life's Work Blow Up on a Rocket
- Want to avoid bad days? Manage someone else’s business, don’t start your own
- Research Debt
- "같이 풀어볼까?" 독특한 한예종 입학시험 실제 기출 문제 30개!
- 인텔 옵테인SSD, 데이터센터 시장서 통할까
- Has lithium-battery genius John Goodenough done it again? Colleagues are skeptical
- Tears
- At midnight on March 20, 2017, Dolby's last relevant patent on Dolby Digital expired.
- The productivity paradox
- You can’t be socially progressive and economically conservative
- It took the inventor of the Rubik’s Cube a month to solve his own puzzle
- Books Can Take You Places Donald Trump Doesn’t Want You to Go
- How We Are Improving Performance
- Railroad Tycoon
- Physicist declassifies rescued nuclear test films
- 골프 인문학 | 제대로 된 교육과 골프
- https://hbr.org/2014/01/how-netflix-reinvented-hr
- You Are Less Beautiful Than You Think
- 엔비디아 지포스 GTX 1080 Ti 리뷰 : 4K 게이머들이 기다려왔던 그래픽 카드
- 내게 도움이 되는 조언도 듣기 싫은 잔소리로 들리는 이유
- DIY Smart Home Security? Meh..
- Why We Can’t Look Away From Our Screens
- 5 weird things you didn’t know about time zones
- This troubled, covert agency is responsible for trucking nuclear bombs across America each day
- Why hurting the poor will hurt the economy
- NHK원전 멜트다운 위기의 88시간
- If You Think You’re a Genius, You’re Crazy
토요일, 3월 18, 2017
[B급 프로그래머] 3월 3주 소식(개발/관리도구, 고성능 서버/데이터베이스 부문)
- 개발/관리도구 부문
- IPython and Jupyter Notebook
- Jupyter Notebook Tutorial: The Definitive Guide
- 대학생 입장에서 옛날 언어를 배우는게 메리트가 있나요
- A gallery of interesting Jupyter Notebooks
- Free resources for learning Full Stack Web Development
- Announcing Guetzli: A New Open Source JPEG Encoder
- Learn From What We Try And Test (GoodUI)
- Writing Shell Scripts
- U2L(Unix To Linux) FAQ 책자 발간
- Curated list of falsehoods programmers believe in.
- How to recover lost Python source code if it's still resident in-memory
- A formal spec for GitHub Flavored Markdown
- STAT 시리즈의 완결판, DSTAT?
- Buck - A high-performance build tool
- Glances - An Eye on your system
- 10 Screen Command Examples to Manage Linux Terminals
- 구글의 소프트웨어 엔지니어링
- Problem Solving with Algorithms and Data Structures using Python
- 10 Awesome Examples for Viewing Huge Log Files in Unix
- PyCharm Edu - Free, Easy & Professional Tool to Learn Programming with Python
- GoAccess was designed to be a fast, terminal-based log analyzer.
- 컴퓨터 프로그래밍에 대한 명언 101가지
- What are some time-saving tips that every Linux user should know?
- [ python ] Selenium을 활용한 크롤러 제작 후기
- Over 280 Analog Clocks Give Digital Time
- Build a digital clock in Conway's Game of Life
- Awesome Software Craftsmanship
- Newman is a command-line collection runner for Postman
- 고성능 서버/데이터베이스 부문
- 클라우드는 오라클의 미래"··· 분기 매출 10억 달러 돌파
- Azure storage browns out for eight hours, nobody notices
- Monitoring Databases: A Product Comparison
- Performance Analysis Methodology
- (PostgreSQL) Parallel Query v2
- Learn how to design large scale systems. Prep for the system design interview. (강력 추천)
- ElasticSearch 와 Heap 메모리
[독서광] 도미노 : 변화를 불러일으키는 가장 간단한 방법
변화는 늘 어렵다. 매몰비용으로 인한 저항감은 차치하고서라도 편한 안식처를 버리고 새로운 뭔가를 찾아나선다는 느낌이 편한 사람은 많지 않을 것이다. 하지만 변화가 없다면 생존도 어렵다. 우리 주위를 둘러싼 세상은 늘 바뀌는 중이고, 생각보다 훨씬 더 빨리 바뀌기 때문이다. 그렇다면 변화를 유도하는 효과적인 방법은 없을까? 오늘 소개하는 '도미노'는 바로 리더 입장에서 변화를 불러일으키는 전략을 다룬다.
책 목차를 보면 1부와 2부가 바로 눈에 띌 것이다. 1부는 관성과 저항을 넘어서 변화를 유도하는 법(즉, 도미노 쓰러뜨리기), 2부는 변화에 친숙한 조직을 만드는 법(즉, 도미노 유지하기)를 소개한다. 실제 변화를 일으켜보며 이 과정에서 발생하는 여러 상황에 맞서 탄력 회복성을 갖춰 경쟁력있는 조직과 개인으로 거듭나자는 일반적인(응?) 주제를 어떻게 요리하는지가 이 책의 주요 관전 포인트라 볼 수 있겠다.
1부에서는 사고의 전환을 요구한다. 안 그래도 처리해야 할 사안이 많은 상황에서 변화를 위한 필수 사안을 곁다리로 추가하는 대신에 생존을 위한 결정을 주문한다. 스스로 변화를 유도할 능력이 있다고 믿는지 아니면 일어나는 변화를 수동적으로 받아들일지에 대한 태도를 운전자와 승객의 차이를 비유로 들면서 설명한다. 여러분들도 다음 질문에 답해보시라.
- 인생에서 원하는 성공을 얻을 자신이 있다.
- 가끔 우울하다.
- 시도하면 보통 성공한다.
- 가끔 실패하면 내가 가치 없게 느껴진다.
- 맡은 일은 완벽하게 끝낸다.
- 가끔 일이 뜻대로 되지 않는 것을 느낀다.
- 전반적으로 나 자신에 만족한다.
- 내가 능력이 있는지 의심스럽다.
- 내 인생은 내가 결정한다.
- 직업에서의 성공은 내 의지가 아니라고 느낀다.
- 내 문제의 대부분을 해결할 능력이 있다.
- 매사가 엉망이고 희망이 없어 보일 때가 있다.
위 질문지의 항목을 계산해서 점수를 냈다면 실제로 항목별로 어떤 일을 했는지를 생각하는 단계가 남아 있다. 운전자처럼 생각하면서 승객처럼 행동하면 오히려 독이 된다. 다음 질문을 생각해보자.
- 불평하기보다는 결정을 했는가?
- 남을 탓하느라 바빴는가? 아니면 대담하게 행동에 나섰는가?
- 피드백을 구했는가, 아니면 비판을 피해 숨어 다녔는가?
결국 핵심은 올바르고 이성적인 결정과 행동이다!
2부에서는 변화에 대응하는 5단계 솔루션(ADPAT라고 불리는)을 중심으로 전개된다.
- 일어날 변화를 예측한다(Anticipate)
- 어느 방향으로 갈지 결정한다(Decide)
- 당신과 함께 팀이 이를 변화에 방향성을 부여한다(Align)
- 팀원에게 그 방향을 추진하도록 허가한다(Permit)
- 결정이 현실에 부합하는지 주기적으로 테스트한다(Test)
Anticipate: 변화 예측을 위해서는 정말 가장 중요한 것이 무엇인지 파악해서 단 한 가지 목표 설정으로 좁혀 나가는 기술이 중요하다. 우선순위(priority)는 1940년대까지 복수로 사용되는 경우가 드물었다는 사실을 기억하기 바란다.
Decide: 결정을 위해서는 맥을 짚고(정말 무엇이 중요한가!), 정반대 사람을 찾아 조언을 구하고, 정말 힘들지만 행동으로 보여주는 3단계가 핵심이다. 나쁜 일이 일어나도 포기하지 않고 제대로 대응할 수 있다는 자신감으로 한 번에 결정을 하나씩 할 수 있다는 믿음이 핵심이다.
Align: 90일 동안 우선 순위 세 가지를 정해 이를 집중적으로 수행하는 방법으로 팀원들의 주의를 분산시키지 않고 한 방향으로 움직이게 만든다. 야근과 특근과 매일같은 전력질주는 생산성을 높일지는 모르겠지만 정말 중요한 일을 수행하는 과정에서 오히려 장애물로 작용한다. 생산성은 일의 완료에 관한 지표다. 하지만 필요한 일은 하고 그렇지 않은 일은 미루는 전략이 아주 중요하다.
Permit: 자신에 대한 허가가 가장 어렵다. 급한 전화를 처리하고 하던 프로젝트를 마무리 짓고, 새로운 아이디어를 실천하고 싶더라도 최우선순위에만 집중하도록 스스로에게 허가하는 것은 가장 까다롭기 마련이다. 이럴 때 우선순위가 큰 도움을 준다. 아침에 우선순위 목록을 점검하면서 스스로에게 뭐가 중요한지를 깨닫게 만드는 방법은 이 책에서 얻을 수 있는 가장 중요한 교훈 중 하나다.
Test: 뭔가 결정을 내리고 나서 상황이 바뀐다는 사실을 인지했더라도 결정을 변경하기란 쉽지 않다. 팀원들은 "내 이럴 줄 알았지"라고 반발할 것이며, 특히 큰 조직의 경우에는 방향을 전환하기 위해 엄청난 시간을 다시 투입해야 하기 때문이다 이럴 때 우선 순위 다음으로 정리된 대기 목록을 제대로 유지하고 있다면 큰 도움이 된다. 그냥 최우선 순위 항목과 대기 항목을 바꾸고 하던 대로 계속 진행하면 된다. 상위 리더에게 기민성으로 느껴지는 것이 보통 다른 사람들에게는 변덕으로 느껴지는 문제나 사람들의 '동의'에 집중하느라 변화의 가능성을 닫아버리는 문제를 해결하기 위해서는 늘 변화의 가능성에 대해 열어두고 사람들에게 목표가 바뀔 가능성이 있다는 사실을 인지시켜야 한다.
결론: 변화를 추구하다 큰 실패에 눈물을 흘린 분들께 강력 추천한다.
EOB수요일, 3월 15, 2017
[B급 프로그래머] 3월 2주 소식(빅데이터/인공지능, 읽을거리 부문)
금주는 분량 조절 관계로 인해 오늘 나머지 부문에 대한 글을 올려드린다. 내주부터는 격주로 번갈아 가면서 소식을 전할 예정이므로 참고하시면 좋겠다. 독서광은 격주 토요일 오전에 올려드릴 예정이다.
- 빅데이터/인공지능
- '최고 AI 책임자' 채용을 심사숙고해야 하는 이유
- 테슬라 새 CIO는 클라우드 전문가··· 신 업무 시스템 개발 주도할 듯
- Apophenia - the human tendency to perceive meaningful patterns within random data.
- Google is acquiring data science community Kaggle
- 미래부, 인공지능 R&D 1천630억 투입
- RWA - Machine Learning on Sequential Data Using a Recurrent Weighted Average
- LG CNS, 스마트 팩토리 솔루션에 MS 클라우드 도입
- 딥러닝 (Tensorflow) 을 이용한 추천시스템 개발
- The First Woman In Space Turns 80, And You Probably Never Heard Of Her
- Attacking machine learning with adversarial examples
- Some Reflections on Being Turned Down for a Lot of Data Science Jobs
- 배달의민족, 인공지능(AI)에 100억원 투자
- Mathematics for Computer Science(PDF)
- Uncertainty in Deep Learning (PhD Thesis)
- Data Science Job Report 2017: R Passes SAS, But Python Leaves Them Both Behind
- Data Preprocessing vs. Data Wrangling in Machine Learning Projects
- Electronic energy meters’ false readings almost six times higher than actual energy consumption
- Don't Use Tesla's Autopilot Like This
- 삼성전자, 빅스비에 개발자 최소 3000명 투입…데이터 최적화 '올인'
- 페이스북, 무료 예측 툴 프로핏, 파이썬과 R용으로 오픈소스화
- [EDGE: 더 널리 알려져야 하는 과학 개념은?] 3. 자나 레빈: 최소 작용의 원리(The Principle of Least Action)
- Will Democracy Survive Big Data and Artificial Intelligence?
- When Robots Take Bad Jobs
- On the Origin of Deep Learning
- 딥러닝 CIFAR-10 CNN 예제에 내 사진을 넣어서 학습시켜 보자
- 자율주행, 자동차산업의 빗장을 열다
- AI로 인한 일자리 상실 걱정, 출판업 종사자가 가장 크다
- Anomaly Detection for Time Series Data with Deep Learning
- LinkedIn endorsements are dumb. Here’s the data.
- AN INTRODUCTION TO GRAPH COMPRESSION TECHNIQUES FOR IN-MEMORY GRAPH COMPUTATION
- Bare bones Python implementations of some of the fundamental Machine Learning models and algorithms.
- Natural Language Understanding with Distributed Representation
- [번역]봇은 어떻게 웹과 모바일앱을 무너뜨릴 수 있을까?
- 읽을거리
- Yes, Your Sleep Schedule is Making You Sick
- Science journalism can be evidence-based, compelling — and wrong
- The Lonely Towns of Fukushima
- Arrival Screenplay
- La La Land Screenplay
- The end-to-end refresh of our server hardware fleet
- Reverse-Engineering The Industry(Video Games)
- 6 Spirit Animals of Bad Managers [Infographic]
- Sleeping Beauty - a rogue-like game
- 전문_대통령 박근혜 탄핵심판(2016헌나1) 결정문 2017-03-10 오후 3:13:10
- South Koreans feel like chicken tonight after president's removal
- How to Drink Wine
- People who speak multiple languages make the best employees for one big reason
- Google may have found its next big business, and it won’t be a moonshot
- 예일대 수학과 312년 금녀의 벽 뚫은 오희 교수
- If you want to get smarter, speed-reading is worse than not reading at all
- 'Logan' Raises The Bar For Superhero Movies
- 20 Business Leaders & Their Books
- AMD Prepares 32-Core Naples CPUs for 1P and 2P Servers: Coming in Q2
- 신산업 새 장 열리는데… 한국 창업은 혁신형보다 생계형 치중
- 스타벅스, 한국서 '모바일앱 주문' 성공하기까지
- 한국은 왜 ‘4차 산업혁명’이 안 보일까
- (The Guardian) Empowering our editorial teams to impact page performance
- The Hidden Link Between Autism and Addiction
- “AMD가 돌아 왔다” 라이젠 CPU 집중 해부 벤치마크
- We Need More ‘Useless’ Knowledge
- If We Are Not Just Animals, What Are We?
- How I discovered my left AirPod was bad
- 트럼프가 물려받은 유산: 북한 미사일에 대응하는 비밀 사이버전(戰)
- (Cessna) The plane so good it's still in production after 60 years
- How to make your kid good at anything, according to a world expert on peak performance
- In praise of cash
- Passport and binary tree code, please: CompSci quizzes at US border just business as usual
- AMD Ryzen 7 1800X CPU Review
- Beginner's Guide to Customer Segmentation
- The real causes of the worst drug crisis in US history
- A new opioid could provide pain relief—without causing addiction
- SNAP’S APPLE STRATEGY
- The AMD Zen and Ryzen 7 Review: A Deep Dive on 1800X, 1700X and 1700
- McDonald's Sees $100 Billion Delivery Market as Way to Grow
- Richard Feynman and The Connection Machine
- WHY FACTS DON’T CHANGE OUR MINDS
- A new Seoul: Han Youngsoo's reborn Korea – in pictures
- This is why the boss will crush all your good ideas
- After 130 Years, Harvard Law Review Elects a Black Woman President
- 리더십 판단의 기본··· '직원이 지표다'
- 우리가 이야기를 즐기는 ‘과학적’ 이유는?
- Who Needs GPS? The Forgotten Story of Etak’s Amazing 1985 Car Navigation System
- The World’s Most Radical Experiment in Monetary Policy Isn’t Working
- 1인 기업의 시간과 수입관리
- 운동 패러독스 (1/2)
- Above and beyond: the world's best drone photography – in pictures
- Why Do Ballet Dancers Turn Clockwise?
- Warren Buffett’s letter to Berkshire Hathaway investors explains how to use fear to your benefit
- Good News About Worrying
- 신입 프론트엔드 개발자를 위한 면접 조언
- How to Become Rich, and 24 Other Insights from Warren Buffett
- 리더는 본디 외롭다, 동정 구하지 말라
- The Hunt for the Perfect Sugar
- How to Mentor a Perfectionist
- WHY LAWN MOWING IS BETTER THAN SEX
- Oxford Dictionaries add 'clicktivism' and 'haterade' as new words for angry times
토요일, 3월 11, 2017
[B급 프로그래머] 3월 2주 소식(개발/관리도구, 고성능 서버/데이터베이스 부문)
금주부터 독자 여러분들을 위해 정리해오던 소식 글의 형태를 변경하기로 했다. 정리하는 데도 시간이 많이 걸리고 읽는 분들도 멘붕(!) 수준에 이를 정도로 양이 늘어나고 있기 때문이다. 격주로 절반씩 부문별 소식을 나눠 전해드기로 하겠다. 이렇게 해도 길다는 느낌이 든다면 4개로 나눌 생각도 있으므로 독자 여러분들께서 의견을 댓글로 달아주시기 바란다.
- 개발/관리도구 부문
- Most software at Google gets rewritten every few years
- [독서광] 마이크로서비스 아키텍처 구축: 본인이 쓴 글
- Google Makes Public Their API Design Guide
- Illustrated Redirection Tutorial
- 20 Funny Commands of Linux or Linux is Fun in Terminal
- CPython internals: A ten-hour codewalk through the Python interpreter source code
- Troubleshooting Memory Issues in Java Applications
- New Features in C# 7.0
- Django REST framework 3.6
- ctop - concise commandline monitoring for containers
- VisualStudioUninstaller - Visual Stdio clean uninstallation
- Building Microservice Architectures by Neal Ford(PDF)
- Understand the Basics of HTTP
- GIT tip : Keep your branch clean with fixup and autosquash
- Go 2016 Survey Results
- Gravity Programming Language
- The Last Frontier in Java Performance: Remove the Garbage Collector
- List of resources about programming practices for writing safety-critical software.
- MVVM 아키텍처 패턴
- 자바 9 발표 일자, "7월 27일"…오라클 관계자
- Elastalert로 로그 알람 구축하기
- vi를 진정으로 이해해라
- mosh - mobile shell: SSH 대신 사용!
- The Seven Circles of Developer Hell [Infographic]
- A Programmer’s Introduction to Unicode
- Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python object.
- V8: Behind the Scenes (February Edition feat. A tale of TurboFan)
- Postmodern Error Handling in Python 3.6
- The Collapse of the UNIX Philosophy
- Developing Quality Software: Differentiating Factors
- CS department updates introductory courses
- (Firefox) Containers Come to Test Pilot
- 4 JavaScript Design Patterns You Should Know
- Spring Tips: Apache MyBatis
- Why Most Organizations Should Stop Hiring Software Testers as Employees
- (Google security) Operation Rosehub
- Spring Boot 1.5 and Pivotal Cloud Foundry
- 에자일 적용 이야기
- store.js - Cross-browser storage for all use cases • Used across the web
- Java Memory and CPU Monitoring Tools and Techniques
- RESTful APIs, the big lie
- What makes WebAssembly fast?
- The mythical 10x programmer
- _head_ tag Cheat Sheet
- Command line tracing tool(a.k.a strace) for Windows, based on ETW.
- Docker Swarm을 이용한 쉽고 빠른 분산 서버 관리
- Cerebro: Open Source Productivity Booster for MacOS, Windows and Linux
- JavaScript Garden(한국어 번역)
- Use your OS X terminal shell (command line) to do awesome things.
- Upspin: A framework for naming everyone's everything(for sharing files and other data).
- 고성능 서버/데이터베이스 부문
- The end-to-end refresh of our server hardware fleet
- How to Scale PostgreSQL on AWS–Learnings from Citus Cloud
- Scaling Ruby Apps to 1000 Requests per Minute - A Beginner's Guide
- Google Cloud SQL Documentation(for PostgreSQL)
- 엘라스틱서치(ES) 클러스터 재시작 혹은 업그레이드 Tip
- How Bad Was CloudBleed? 1.2 Million Leaks Bad
- Tenets of SRE(Site Reliability Engineering)
- usql is a universal command-line interface for SQL databases
- (Gitlab) Why we are not leaving the cloud
- (Joyent) Postmortem for outage of us-east-1 at 2014 May
- Summary of the Amazon S3 Service Disruption in the Northern Virginia (US-EAST-1) Region
- Open Source Databases on Big Machines: Disk Speed and innodb_io_capacity
- Dodging S3 Downtime With Nginx and HAProxy
- Amazon AWS S3 outage is breaking things for a lot of websites and apps
- 퍼블릭 클라우드 3대 업체 비교 'AWS·애저·구글의 장단점은?'
- “2017년 전세계 퍼블릭 클라우드 시장 18% 성장” 가트너
- Incident management at Google — adventures in SRE-land
- The Unofficial MySQL 8.0 Optimizer Guide
[독서광] 마이크로서비스 아키텍처 구축
어쩌다 보니 최근 기술 서적에 대한 독후감을 거의 적지 못했는데, 오늘은 감수 요청을 받고 미리 읽은 독자로서 '마이크로서비스 아키텍처 구축'에 대해 간단한 서평을 남기려 한다. 책에 실린 '추천의 글'을 옮겨온다.
최근 클라우드 환경이 일반화되면서 많은 서비스가 클라우드로 이전하거나 클라우드에서 시작되고 있다. 하지만 클라우드의 확장성과 안정성은 공짜로 얻어지는 산물이 아니다. 기존의 일반적인 애플리케이션 개발 방법을 그대로 적용할 경우 비용절감, 탄력성, 회복성, 배포 편의성과 같은 좋은 특성을 누리기 어렵고 어떤 경우에 있어서는 오히려 서비스의 품질이 떨어지게 된다. 빠르게 변하는 클라우드 시대에 걸맞게 아키텍처 설계, 서비스 모델링, 실제 구현, 통합, 배포, 테스트, 모니터링, 확장에 전력을 다해야 비로소 고객 만족을 극대화하는 서비스를 제공할 수 있다. 이 책은 거대한 모놀리틱 시스템과 반대되는 마이크로서비스를 중심으로 클라우드 시대의 생존 방법을 제시하며 실제 사례를 중심으로 실무에 바로 도움이 되는 내용을 담았ㄷ. 따라서 아키텍처 설계, 실제 구현, 운영 업무를 진행하는 과정에서 많은 도움을 줄 것이다. 미시적인 컴퓨터 프로그래밍 부문에서 리펙토링이 기술 부채를 줄이는 수단이라면 거시적인 서비스 개발과 운영 부문에서는 마이크로서비스가 기술 부채를 줄이는 강력한 수단이다. 이 책은 현대적인 컴퓨팅 환경에 적응하기 위한 좋은 길라잡이가 될 것이다.
마이크로서비스의 정의는 마틴 파울러의 글에 나오듯이 독립적으로 배포 가능한 서비스들의 슈트로서 소프트웨어 애플리케이션을 설계하는 아키텍처 스타일을 일컫는다. 여기서 핵심은 바로 '독립적으로 배포 가능한'이라는 문구다. 모든 서비스를 한 통에 담은 기존의 방식과는 달리 응집력을 높이고 결합도를 떨어뜨리기 위해 서비스를 분할하고 이를 사용(use)하는 방식으로 단일 애플리케이션을 만든다. 이렇게 되면 변경의 범위가 적어지므로 자주 빠르게 서비스를 변경하고 확장할 수 있게 된다.
기본에 서비스를 만들 때는 3계층 구조(브라우저 UI-웹 서버-데이터베이스 관리 시스템)에 맞춰 거대한 실행 가능 단위로 구현하고 배포하는 방법을 사용했다. 아무리 사소한 변경이 있더라도 전체를 새로 배포해야 한다. 물론 어카이빙 형태로 배포하지 않고 단위 클래스 파일이나 공유 라이브러리 파일 단위로 배포하는 방법도 생각할 수 있지만 버전 관리 등을 고려하면 나중에 꼬이는 상황이 발생하기 마련이다. 게다가 클라우드 환경이 일반화되면서 작은 가상 기계나 컨테이너 단위로 애플리케이션을 배포할 수 있는 수평 확장 아키텍처가 인기를 끌고 있기 때문에 거대한 모놀리틱 개발 방식이 점점 시대에 뒤쳐지고 있다. 그렇다면 이런 상황에서 우리는 어떻게 대응해야 하나? 마이크로서비스는 _마이크로_라는 이름과는 달리 생각처럼 단순하지 않으므로 알아야 할 내용도 많고 피해야 할 함정도 많기 때문에 시행착오를 줄이려면 기초를 튼튼히 쌓고 접근할 필요가 있다.
'마이크로서비스 아키텍처 구축'은 거대한 시스템을 리펙터링해서 작은 단위로 쪼개고 이를 효과적으로 연결하는 아키텍처 설계 방법을 다룬다. 마이크로서비스 개념부터 시작해서 진화적 아키텍트를 소개하며 서비스 모델링 기법, 이상적인 통합 방법, 모놀리스 분해 방법, 배포 방법, 테스팅 방법, 모니터링 방법, 보안 강화, 콘에이의 법칙과 시스템 설계 방법을 설명한 다음에 대규모 마이크로서비스 고려 사항으로 마무리한다. 개념과 방법을 소개하며, 여러 가지 실제 사례를 제시하므로 마이크로서비스에 도전하기 전에 읽어두면 여러 면에서 이득을 얻을 것이다.
본문 구성이 어떤지는 미리 보기를 참조하기 바라며, 슬라이드셰어에 올라온 다음 발표 자료도 함께 읽어보기 바란다.
결론: 아키텍처 관점에서 마이크로서비스가 궁금한 개발자분들께 추천!
EOB















