2. 강연자 소개
• 옥찬호
• 히어로 코리아 수석 엔지니어
• 게임 제작팀 Xpecial / Mine Scroll 팀장
• KAIST 전산학과 석사과정 재학
• 경북대학교 컴퓨터학부 졸업
• 에이콘출판사 Translator
• 게임샐러드로 코드 한 줄 없이 게임 만들기 (2013)
• 3D 게임 최적화와 시각적 효과를 위한
유니티 Shader와 Effect 제작 (2014)
• 다수의 스터디 운영 및 멘토링 진행
• C++ 공부 10년차 (근데 아직 잘 모르겠어요…)
38. RYAN DAHL – THE CREATOR OF NODE.JS
• InfoWorld: What's the main benefit [of Node]?
• Dahl: Node does things a bit differently than other
programming platforms. The main thing is that it handles I/O
very differently, so it doesn't allow the user to lock up the
program, ever. It keeps the user handling new things, so it's
very useful for network programming.
You often are dealing with many people at the same time on
your server, and you're juggling these different connections.
Node encourages the developer to continue to process
connections without blocking.
And because of this model of handling I/O, users tend to find
it easier than developing with a traditional programming
language for servers.
39. RYAN DAHL – THE CREATOR OF NODE.JS
• InfoWorld: Node.js의 가장 큰 장점은 무엇이라고 생각하시나요?
• Dahl: Node.js는 다른 프로그래밍 플랫폼과는 약간 다른 무엇인가를
가지고 있습니다. 그 중에서 가장 중요한 것중에 하나가 입출력을 매우
다르게 처리하고 있다는 점인데, 즉 Node.js에서는 개발자들이
프로그래밍을 할 때 사용하는 리소스들을 소유하는 것을 허용하지
않습니다. 이런 방법을 사용하게 되면 개발자들은 어떤 리소스를
사용하든지 리소스의 소유권에 대한 걱정없이 비지니스 로직에 집중할
수 있고, 특히 네트워크 프로그래밍에서 매우 유용하게 사용될 수
있습니다. 보통 하나의 서버에서 동시에 수많은 사용자들의 요청을
처리해야 하는데, 이 경우 이렇게 서로 다른 수많은 요청과 연결들을
처리할 때에는 발생할 수 있는 여러 가지 가능성에 대해서 준비를
해야합니다. Node.js는 이런 경우에 개발자들이 네트워크에서 발생하는
요청과 연결 처리에 대한 큰 걱정없이 비지니스 로직에만 초점을 맞출 수
있도록 도와줍니다. Node.js에서 제공하는 이러한 새로운 입출력 모델
때문에, 많은 개발자들이 서버에서 사용되는 기존의 프로그래밍
언어보다 Node.js로 개발하는 것이 더 쉽다고 느끼는 것 같습니다.
40. MARTIN ODERSKY – THE CREATOR OF SCALA
• InfoWorld: What was your intent in developing Scala?
• Odersky: It was curiosity, whether we could combine
functional and object-oriented programming in a
package that was useful to people [and] would make it
a powerful language... It felt like it would be the right
thing to do, to have very complementary strengths.
Functional programming is in a sense very clean, it can
be very powerful. It makes it easy to construct things
out of simple elements. Object-oriented programming
has a good story when it comes to essentially the
evolution of large systems... I always felt it would be
interesting to combine the two, and I think the success
of Scala has shown that there is something.
41. MARTIN ODERSKY – THE CREATOR OF SCALA
• InfoWorld: Scala 프로그래밍 언어를 만든 의도가 무엇이었습니까?
• Odersky: 처음에는 그냥 호기심이었습니다. 과연 함수형 프로그래밍과
객체지향 프로그래밍을 개발자들에게 유용하도록 하나의 패키지로
묶을 수 있고, 또 그렇게 묶여진 것이 개발자들을 도와줄 수 있는
유용한 언어가 될 수 있는지 없는지 궁금했습니다. 결과적으로는 서로
부족한 부분을 보완해 주는 장점을 볼 수 있었기 때문에 꼭 해야할
일을 했다고 생각합니다. 함수형 프로그래밍은 매우 깔끔하고
강력합니다. 이러한 함수형 프로그래밍의 특성은 시스템의 기반이 되는
것들을 쉽게 구축할 수 있도록 도와줍니다. 객체지향 프로그래밍은
시스템이 대용량 시스템으로 나아갈때 적용할 수 있는 좋은 선례들을
많이 가지고 있습니다. 저는 항상 이 두가지 프로그래밍을 결합하면
아주 좋은 결과가 나오지 않을까 고민해 왔습니다. 현재의 Scala의
성공은 제가 지금까지 해왔던 이 고민이 헛되지 않았음을 보여주는
것이라고 생각합니다.
42. BJNARE STROUSTRUP – THE CREATOR OF C++
• InfoWorld: When should a developer opt for native
programming, and when should a developer opt for a
virtual machine-based language?
• Stroustrup: C++ has significant strengths compared to
"virtual machine-based languages" when it comes to
building infrastructure. In other words, where
performance, reliability, resources, and complexity
need to be tightly controlled. For example, you
wouldn't write a JavaScript engine in JavaScript, and
you probably wouldn't write a "first to market" simple
Web app in C++. You would write the foundations of a
Google, an Amazon, a Facebook in C++, but maybe not
the rapidly changing top layers of such systems. C++
comes in strong where power consumption is an issue -
for example, server farms and handheld devices.
43. BJNARE STROUSTRUP – THE CREATOR OF C++
• InfoWorld: 개발자들은 어떤때에 네이티브 프로그래밍(native
programming)을 선택하고, 또 어떤때에 가상 머신(virtual machine)
기반의 언어들을 선택해야 할까요?
• Stroustrup: C++는 가상 머신 기반의 언어들과 비교해서 시스템의
기반구조(infrastructure)를 만들때는 아주 큰 장점을 가지고
있습니다. 다시말해서, 성능, 신뢰성, 복잡성, 리소스 관리등이 아주
중요한 시스템의 기반구조 개발의 경우 C++가 큰 장점을 가집니다.
예를 들어, 자바스크립트 엔진을 자바스크립트로 구현하는 것은 거의
불가능합니다. 또한 시장 선점을 위해서 간단한 웹 애플리케이션을
구현해야 하는 경우에는 C++를 사용할 필요가 없습니다. 구글,
아마존, 페이스북과 같은 플랫폼의 기반은 C++를 사용해서 구현할
수 있지만, 이러한 플랫폼들에서 자주 변경해야하는 상위 레이어를
C++로 개발하지는 않습니다. 또한 전력 소비(power
consumption)가 중요한 서버 팜(server farm)과 핸드헬드
기기(handheld device)에서 C++는 큰 장점을 가지고 있습니다.
44. RICH HICKEY – THE CREATOR OF CLOJURE
• InfoWorld: What was your intention in [developing Clojure]?
• Hickey: My intention was to make a dynamic, functional
programming language for the JVM. I had been building
large systems in C# and Java, and the only way we could
do them sanely was to do them in a functional style, but
the functional style is not idiomatic in those languages.
I wanted a language where functional style was idiomatic,
and that's the case for Clojure...
Fundamentally, Clojure gives developers a lot of leverage.
They can write short, succinct programs that work correctly
the first time and are fast enough for production use...
It's very popular among startups because they have new
ideas they need to pursue quickly.
45. RICH HICKEY – THE CREATOR OF CLOJURE
• InfoWorld: Clojure를 만든 목적이 무엇이었습니까?
• Hickey: 사실 처음 목적은 자바 가상 머신(Java Virtual Machine)을
위한 동적이고 함수형 프로그래밍 언어를 만드는 것이었습니다. 저는
C#과 Java를 사용해서 큰 시스템을 개발해왔는데, 이 두 가지 언어를
동시에 품을 수 있는 유일한 방법은 함수형 스타일을 사용하는 것인데,
하지만 함수형 스타일을 사용하게 되면 이 두 언어가 지원하는
특징들을 제대로 살릴수가 없게됩니다. 그래서 함수형 스타일을
기본으로 가지고 있는 언어가 필요했고, 그래서 만들어진 것이
Clojure입니다. 근본적으로 Clojure는 개발자들에게 많은 장점들을
제공합니다. 개발자들은 처음에는 쉽게 개발이 가능하고 또한 실제
서비스가 가능할 정도로 충분히 빠른 짧고 간결한 프로그램을 작성할
수 있습니다. Clojure는 새로운 아이디어들을 가지고 있고 그
아이디어들을 재빨리 구현하는 것이 필요한 스타트업 회사들에게
매우 인기가 높습니다.
51. THERE WAS A TIME WHEN NAILS WERE HIGH-TECH.
THERE WAS A TIME WHEN PEOPLE
HAD TO BE TOLD HOW TO USE A TELEPHONE.
TECHNOLOGY IS JUST A TOOL.
PEOPLE USE TOOLS TO IMPROVE THEIR LIVES.
- TOM CLANCY