모든 것이 그렇겠지만 데이터베이스만큼은 기초가 중요하다. 저자는 현업 프로그래머이자 강사 출신으로 매일 SQL문을 사용한 데이터베이스를 가장 가까운 곳에서 경험하는 프로그래머이다. 데이터베이스는 역시 오라클이라는 회사와 뗄레야 뗄수 없다. 그만큼 오라클의 DBMS(DataBase Management System)가 중요하기 때문이다. 



이 책은 데이터베이스를 이해하는 데 필요한 기본적인 개념과 문법 그리고 간단한 실습까지 다루고 있다. 쉬운 설명과 중간중간의 실습 예제 덕분에 개념을 쉽게 이해할 수 있어 초보자에게 적합하다. 전공자가 아닌 사람은 물론, 실무자의 경우 배운 내용을 바로 업무에 적용하기도 쉽다고 한다.



데이터베이스 실무를 중요시하는 이 책만큼 아예 제목을 실무에서 가장 많이 사용하는 SQL문에 대해 배운다. SQL이란 Structured Query Language로 데이터베이스를 사용할 때 데이터베이스에 접근하기 위한 질의 언어라고 한다. 데이터를 정의하고 조작하고 제어하는 프로그래밍 언어이다.



1장부터 데이터베이스에 대한 개념이 아주 쉽고 가볍게 시작하고 있다.



오라클이라는 회사에 대해 일반인들은 잘 모를 수 있지만 전 세계 소프트웨어 아주 중요한 역할을 하는 회사이다. 데이터베이스 관리 시스템은 물론 다양한 프로그래밍 언어 및 솔루션을 제공하는 SW회사이다.




차근차근 따라하며 예제를 실행하기 위한 환경을 설치하고 테스트해보자.





중간중간 '한발 더 나가기!' 코너에서는 해당 절에서 배운 내용을 위주로 팁, 중요한 사항등 한번 더 개념을 일깨워주고 있다. 데이터베이스 조인의 경우 여러 형태에 따라 헷갈리는 경우가 많은 데 위와 같이 벤 다이어그램으로 쉽게 이해할 수 있다.

While the nal goal of a statistical machine translation system is to create a model of the target sentence E given the source sentence F, P(E j F), in this chapter we will take a step back, and attempt to create a language model of only the target sentence P(E). Basically, this model allows us to do two things that are of practical use.


Assess naturalness: Given a sentence E, this can tell us, does this look like an actual, natural sentence in the target language? If we can learn a model to tell us this, we can use it to assess the  uency of sentences generated by an automated system to improve its results. It could also be used to evaluate sentences generated by a human for purposes of grammar checking or error correction.


Generate text: Language models can also be used to randomly generate text by sampling a sentence E0 from the target distribution: E0 P(E).2 Randomly generating samples from a language model can be interesting in itself { we can see what the model \thinks" is a natural-looking sentences { but it will be more practically useful in the context of the neural translation models described in the following chapters.


In the following sections, we'll cover a few methods used to calculate this probability P(E).



3.1 Word-by-word Computation of Probabilities


As mentioned above, we are interested in calculating the probability of a sentence E = eT1 . Formally, this can be expressed as


P(E) = P(jEj = T; eT1 ); (3)


the joint probability that the length of the sentence is (jEj = T), that the identity of the rst word in the sentence is e1, the identity of the second word in the sentence is e2, up until the last word in the sentence being eT . Unfortunately, directly creating a model of this probability distribution is not straightforward,3 as the length of the sequence T is not determined in advance, and there are a large number of possible combinations of words.


As a way to make things easier, it is common to re-write the probability of the full sentence as the product of single-word probabilities. This takes advantage of the fact that a joint probability { for example P(e1; e2; e3) { can be calculated by multiplying together conditional probabilities for each of its elements. In the example, this means that P(e1; e2; e3) =P(e1)P(e2 j e1)P(e3 j e1; e2).

Figure 2 shows an example of this incremental calculation of probabilities for the sentence \she went home". Here, in addition to the actual words in the sentence, we have introduced an implicit sentence end (\h/si") symbol, which we will indicate when we have terminated the sentence. Stepping through the equation in order, this means we rst calculate the probability of \she" coming at the beginning of the sentence, then the probability of \went" coming next in a sentence starting with \she", the probability of \home" coming after the sentence pre x \she went", and then nally the sentence end symbol \h/si" after \she went home". More generally, we can express this as the following equation:


P(E) = TY+1t=1P(et j et􀀀1 1 ) (4) 


where eT+1 = h/si. So coming back to the sentence end symbol h/si, the reason why we introduce this symbol is because it allows us to know when the sentence ends. In other words, by examining the position of the h/si symbol, we can determine the jEj = T term in our original LM joint probability in Equation 3. In this example, when we have h/si as the 4th word in the sentence, we know we're done and our nal sentence length is 3.

Once we have the formulation in Equation 4, the problem of language modeling now becomes a problem of calculating the next word given the previous words P(et j et􀀀1 1 ). This is much more manageable than calculating the probability for the whole sentence, as we now have a xed set of items that we are looking to calculate probabilities for. The next couple of sections will show a few ways to do so.


3.2 Count-based n-gram Language Models


The rst way to calculate probabilities is simple: prepare a set of training data from which we can count word strings, count up the number of times we have seen a particular string of words, and divide it by the number of times we have seen the context. This simple method, can be expressed by the equation below, with an example shown in Figure 3.

2 Statistical MT Preliminaries

First, before talking about any speci c models, this chapter describes the overall framework of statistical machine translation (SMT) [16] more formally.

First, we de ne our task of machine translation as translating a source sentence F =

f1; : : : ; fJ = fjFj1 into a target sentence E = e1; : : : ; eI = ejEj1 .Thus, any type of translation system can be de ned as a function

^E = mt(F); (1)


which returns a translation hypothesis ^E given a source sentence F as input.

Statistical machine translation systems are systems that perform translation by creating a probabilistic model for the probability of E given F, P(E j F; ), and nding the target sentence that maximizes this probability:


^E= argmaxEP(E j F; ); (2)


where are the parameters of the model specifying the probability distribution. The parameters are learned from data consisting of aligned sentences in the source and target languages, which are called parallel corpora in technical terminology.Within this framework, there are three major problems that we need to handle appropriately in order to create a good translation system:


Modeling: First, we need to decide what our model P(E j F; ) will look like. What parameters will it have, and how will the parameters specify a probability distribution?


Learning: Next, we need a method to learn appropriate values for parameters from training data.


Search: Finally, we need to solve the problem of nding the most probable sentence (solving \argmax"). This process of searching for the best hypothesis and is often called decoding.1


The remainder of the material here will focus on solving these problems.

Neural Machine Translation and Sequence-to-sequence Models

번역


Neural Machine Translation and Sequence-to-sequence Models:

A Tutorial


Graham Neubig

Language Technologies Institute, Carnegie Mellon University


1 소개


This tutorial introduces a new and powerful set of techniques variously called “neural machine translation” or “neural sequence-to-sequence models”. These techniques have been used in a number of tasks regarding the handling of human language, and can be a powerful tool in the toolbox of anyone who wants to model sequential data of some sort. The tutorial assumes that the reader knows the basics of math and programming, but does not assume any particular experience with neural networks or natural language processing. It attempts to explain the intuition behind the various methods covered, then delves into them with enough mathematical detail to understand them concretely, and culiminates with a suggestion for an implementation exercise, where readers can test that they understood the content in practice.


소개에서는 인공신경망 기계 번역(neural machine translation)과 인공신경망 시퀀스-투-시퀀스 모델(neural sequence-to-sequence models)이라는 새롭고 훌륭한 기술을 알아본다. 이 기술은 언어를 다루는 부분과 관련된 다양한 작업에 사용되며, 연속으로 정렬된 모델링이 필요한 사람에게 유용한 도구가 될 수 있다. 이 튜토리얼에서 독자는 기본적인 수학과 프로그래밍에 대한 지식이 있는 것을 가정하지만, 신경망 및 자연어처리와 같은 경험은 제외한다. 이 논문에서는 다양한 방법 이면에 담긴 직관을 살펴보고, 이를 구체적으로 이해할 수 있는 수학적인 부분가지 알아본 후, 여러분들이 제대로 이해했는지 연습해본다.


1.1 배경


Before getting into the details, it might be worth describing each of the terms that appear in the title \Neural Machine Translation and Sequence-to-sequence Models". Machine translation is the technology used to translate between human language. Think of the universal translation device showing up in sci- movies to allow you to communicate eortlessly with those that speak a dierent language, or any of the plethora of online translation web sites that you can use to assimilate content that is not in your native language. This ability to remove language barriers, needless to say, has the potential to be very useful, and thus machine translation technology has been researched from shortly after the advent of digital computing. We call the language input to the machine translation system the source language, and call the output language the target language. Thus, machine translation can be described as the task of converting a sequence of words in the source, and converting into a sequence of words in the target. The goal of the machine translation practitioner is to come up with an eective model that allows us to perform this conversion accurately over a broad variety of languages and content.

The second part of the title, sequence-to-sequence models, refers to the broader class of models that include all models that map one sequence to another. This, of course, includes machine translation, but it also covers a broad spectrum of other methods used to handle other tasks as shown in Figure 1. In fact, if we think of a computer program as something that takes in a sequence of input bits, then outputs a sequence of output bits, we could say that every single program is a sequence-to-sequence model expressing some behavior (although of course in many cases this is not the most natural or intuitive way to express things).


자세히 들어가기 전, Neural Machine Translation and Sequence-to-sequence Models: A Tutorial 논문에 등장하는 용어에 대해 정리해보자. 기계 번역이란 언어간 번역을 위해 사용되는 기술이다. 서로 다른 언어를 사용하는 사람들끼리 대화하는 공상 과학 영화에 등장하는 번역기나, 모국어로 작성되지 않은 컨텐츠를 이해할 때 사용되는 온라인 번역 사이트등을 생각해보자. 이렇게 언어 장벽을 무너뜨리는 이 기술은 당연히 많은 잠재력을 가졌으며, 따라서 디지털 컴퓨터이 시작된 후부터 해당 기술이 연구돼 왔다.

기계 번역 시스템에 입력되는 언어를 원시 언어(source language), 출력되는 언어를 대상 언어(target language)라고 한다. 따라서 기계 번역은 원시 언어의 단어 시퀀스를 대상 언어의 단어 시퀀스로 변환하는 과장이다. 기계 번역 시스템의 목표는 이러한 변환이 다양한 컨텐츠와 언어간에 효과정으로 수행하도록 모델을 구성하는 것이다.

두번째 부분인 시퀀스-투-시퀀스 모델은 하나의 시퀀스에서 다른 시퀀스로 맵핑되는 모든 모델을 포괄적으로 가리킨다. 물론, 기계 번역도 포함되나, 그림 1과 같이 다양한 작업을 다루는 광범위한 범위도 포함된다. 사실, 입력 비트 시퀀스를 받아 출력 비트 시퀀스를 내보내는 컴퓨터 프로그램을 생각할 수 있는데, 결국 모든 싱글 프로그램이 이러한 시퀀스-투-시퀀스 모델임을 설명할 수 있다(하지만 많은 경우에 있어 일반적이거나 직관적인 형태는 아니다).


그림 1: 시퀀스-투-시퀀스 모델링 작업의 예


The motivation for using machine translation as a representative of this larger class ofsequence-to-sequence models is many-fold:


1. Machine translation is a widely-recognized and useful instance of sequence-to-sequence models, and allows us to use many intuitive examples demonstrating the diculties encountered when trying to tackle these problems.


2. Machine translation is often one of the main driving tasks behind the development of new models, and thus these models tend to be tailored to MT rst, then applied to other tasks.


3. However, there are also cases where MT has learned from other tasks as well, and introducing these tasks helps explain the techniques used in MT as well.


이렇게 방대한 시퀀스-투-시퀀스 모델을 대표하는 것으로 기계 번역을 사용하는 이유는 여러 가지가 있다.


1. 기계 번역은 널리 알려져있고, 시퀀스-투-시퀀스 모델의 유용한 예이며, 이 같은 문제를 해결할때 마주하는 어려움을 잘 설명한다.

2. 기계 번역 새로운 모델 개발이면에 핵심적인 역할을 종종하며, 먼저 기계 번역에 최적화된 모델을 생성하며, 그 후 다른 영역에 적용된다.

3. 하지만, 다른 영역에서도 배워오는 경우가 있으며, 기계 번역에 사용되는 기술 또한 잘 설명한다.



1.2 목차 구성


This tutorial first starts out with a general mathematical de nition of statistical techniques for machine translation in Section 2. The rest of this tutorial will sequentially describe techniques of increasing complexity, leading up to attentional models, which represent the current state-of-the-art in the eld.

First, Sections 3-6 focus on language models, which calculate the probability of a target sequence of interest. These models are not capable of performing translation or sequence transduction, but will provide useful preliminaries to understand sequence-to-sequence models.

 

  • - Section 3 describes n-gram language models, simple models that calculate the probability of words based on their counts in a set of data. It also describes how we evaluate how well these models are doing using measures such as perplexity.


  • -Section 4 describes log-linear language models, models that instead calculate the probability of the next word based on features of the context. It describes how we can learn the parameters of the models through stochastic gradient descent { calculating derivatives and gradually updating the parameters to increase the likelihood of the observed data.


  • -Section 5 introduces the concept of neural networks, which allow us to combine together multiple pieces of information more easily than log-linear models, resulting in increased modeling accuracy. It gives an example of feed-forward neural language models, which calculate the probability of the next word based on a few previous words using neural networks.


  • -Section 6 introduces recurrent neural networks, a variety of neural networks that have mechanisms to allow them to remember information over multiple time steps. These lead to recurrent neural network language models, which allow for the handling of long-term dependencies that are useful when modeling language or other sequential data.


Finally, Sections 7 and 8 describe actual sequence-to-sequence models capable of performing

machine translation or other tasks.


  • -Section 7 describes encoder-decoder models, which use a recurrent neural network to encode the target sequence into a vector of numbers, and another network to decode this vector of numbers into an output sentence. It also describes search algorithms to generate output sequences based on this model.


  • -Section 8 describes attention, a method that allows the model to focus on dierent partsof the input sentence while generating translations. This allows for a more efficient and intuitive method of representing sentences, and is often more eective than its simpler encoder-decoder counterpart.


섹션 2에서는 기계 번역과 관련된 통계적인 기술에 대한 일반적인 수학적 정의부터 시작한다. 그 후 이 분야의 최신 모델들을 알아보며 점차 복잡한 기술을 하나하나씩 배워본다.

먼저, 섹션3-6에서는 대상 언어의 시퀀스 확률을 계산하는 언어 모델을 알아본다. 이 모델은 번역 및 시퀀스 변환은 불가하지만, 시퀀스 모델을 이해할 수 있는 좋은 예제를 제공한다.


  • - 섹션 3는 데이터셋내 단어의 개수를 기반으로 해당 단어의 확률을 계산하는 n-gram 언어 모델에 대해 다룬다. 해당 모델이 얼마나 측정치를 잘 사용하고 있는 평가하는 방법(Perplexity)도 알아본다.


  • - 섹션 4는 문맥의 특성을 기반으로 다음 단어의 확률을 계산하는 모델인 로그-선형 언어 모델(log-linear language model)에 대해 알아본다. 확률적 경사 하강법(stochastic gradient descent, 관찰된 데이터의 우도(likelihood)를 증가시켜 파라미터를 계속 미분해 계산하는 방법)을 통해 모델의 파라미터가 잘 학습됐는지 알아본다.


  • - 섹션 5는 로그-선형 모델보다 정확도를 높여 좀 더 쉽게 여러 정보를 조합할 수 있는 신경망에 대해 알아본다. 신경망을 이용해 이전 단어를 기반으로 다음 단어의 확률을 계산하는 피드-포워드 신경망 언어 모델의 예제도 살펴본다.


  • - 섹션 6는 여러 번 정보를 계속 기억하는 메커니즘 형태의 신경망인재귀신경망(recurrent neural networks)에 살펴본다. 이는 결국 재귀 신경망 언어 모델인데, 언어나 순차 데이터를 모델링할 때 유용한 장기 의존성(long-term dependencies)를 다룰 수 있다.


마지막으로, 섹션 7, 8은 기계 번역 및 다른 작업을 실제로 수행하는 시퀀스-투-시퀀스 모델에 대해 살펴본다.


  • -섹션 7은 대상 언어를 숫자 벡터로 인코딩하며, 반대로 벡터를 출력 문자으로 디코딩하는 재귀신경망을 사용하는 인코더-디코더(encoder-decode) 모델에 대해 알아본다. 이 모델을 기반으로 출력 문장을 생성하는 검색 알고리즘 또한 알아본다.


  • - 섹션 8은 번역시 입력 문장의 다른 부분을 살펴보는 모델링이 가능한 방법인 어텐션(attention)에 대해 알아본다. 이는 문장으로 좀 더 효율적이고 직관적인 방법으로 나타낼 수 있게하며, 인코더-디코더와 비교해 간단해 효과적이다.




'Paper > Neural Machine Translation' 카테고리의 다른 글

[번역]n-gram Language Models  (0) 2018.11.01
[번역]Statistical MT Preliminaries  (0) 2018.11.01

글쓰기가 필요하지 않은 인생은 없다.






글쓰기는 우리 인생에 꼭 필요한 존재이다. 필자와 같은 사람들이 보통 글을 쓰는 이유는 간단하다. 남들이 모르는 정보를 합리적이고 이해하기 쉽게 전달하는 것, 그리고 자신의 생각을 올바르게 표현하는 것이라고 생각한다. 정보란 자신의 경험하고 알고 있는 부분을 효율적이고 체계적으로 전달해야 한다. 이 책에서는 글쓰기를 해야하는 이유를 성장하고, 치유하고, 실천하고, 버티기 위해 한다고 저자는 말하고 있다. 각 주제별로 자신의 글을 쓰는 방법과 그 의미에 대해 작가의 생각을 전달하고 있다. 이 책에서 말하길 <1984>, <동물농장>으로 유명한 조지 오웰은 <나는 왜 쓰는가>에서 글을 쓰는 이유를 아래 4가지라고 밝혔다.


순전한 이기심, 미학적 열정, 역사적 충동, 정치적 목적


필자또한 역사적 충동이나 정치적 목적으로 글을 쓰기란 아직까지 너무나도 부족하다. 미학적 열정이 60%, 순전한 이기심이 40%를 차지하고 있는 것 같다. 어느 하나만의 목적으로 글을 쓰기란 힘들고, 현대사회에서는 그렇게 해서도 안된다고 본다. 때로는 책을 읽고 글을 쓴다는 것에 대한 열정이, 때로는 이 글은 오직 나의 글이고, 인생이라는 순전한 이기심도 있어야 한다.



우리 현대인들은 얼마나 많은 스트레스를 겪고 살까? 사회생활을 조금이라도 겪는 사람은 누구나 스트레스의 의미를 알고 있을것이다. 많은 의사들이 질병의 가장 큰 원인을 스트레스로 보고 있으니, 크고 작은 질병이든 간에 이를 극복하고 다스릴 줄 알아야 한다. 글쓰기는 이런 스트레스 해소에 도움을 준다고 한다. 대표적으로 '의식 흐름 기법(Stream of consciousness writing)'이라는 글쓰기 있다. 물처럼 흘러가는 생각, 심상, 회상, 기억, 감정 등 마음에 떠오르는 것들을 그냥 있는 그대로 쓰는 것이다.

잠깐만 떠올려 보면 큰 어려움이 아니다. 학창시절 선생님께서 학생들의 싸움을 다스릴 때 반성문을 쓰라고 하는 것도 어쩌면 '의식 흐름 기법'을 생각해서가 아닐까? 싸움의 당사자들이 글을 쓰면서, 자신의 생각, 기억, 감정을 있는 그대로 쓰면서, 자신의 되돌아볼 수 있을 뿐더러, 차분해지기 때문이다. 


"

하루의 재부팅, 글쓰기

"


일기를 쓰는 것과 일맥상통한다. 오늘 있었던 힘들고, 짜증났던 일들을 그냥 쓰는 것이다. 컴퓨터의 생명을 불어넣는 역할을 하는 운영 체제(Operation System, OS)를 잠시 종료하였다가, 다시 부팅하면, 기존의 쓰레기로 차지하던 메모리 공간이 늘어나 컴퓨터가 빨라지는 효과를 볼 수 있다. 우리의 뇌도 잠시 종료하고, 지나간 것을 10분 안에 글로 표현하고, 다시 업무나 일상을 시작하는 것만으로 큰 효과가 있을 것으로 본다.



"

우리는 모두 자신을 사랑하는 방법을 '발명'해야 한다. 내가 평생 데리고 살 것은 결국 '나'다. 일생의 동반자는 어쨋든 '나'다. 우리는 사는 내내 나를 즐겁고 행복하게 만드는 방법을 개발하고 ,발견하며 나아가야 한다.

- <글쓰기가 필요하지 않은 인생은 없다> 중 -

"



우리가 삶을 살아가면서, 다른 사람의 생각을 가장 빠르고, 가장 저렴하고, 가장 효과적으로 읽을 때가 언제라고 생각한는가? 그 사람과의 밥 한끼로 결코, 모든 것을 알 수 없다. 대학생 때, '과학과 기술 글쓰기' 수업에서 교수님이 학생들에게 질문을 했다. '인터넷에 보니 워렌 버핏과 점심 식사를 하는데 몇 천만원이라고 하더군요. 그렇다면 소크라테스와 점심 식사를 하는데 얼마가 들까요?' 그렇다. 단돈 2만원 내외면 소크라테스와 점심 식사를 할 수 있다. 어떻게? 그가 저술한 책을 읽으면 된다. 어쩌면 함께 점심을 먹는 것 보다 더 많은 것을 얻을 수 있을 것이다.



글을 쓰는데 가장 중요한 것은 무엇일까? 독자를 흐느끼게 하는 감성, 오로지 팩트와 그 의의를 객관적으로 다룰 줄 아는 눈, 특별한 지혜, 즉 영감일 수도 있겠지만, 작가는 체력이라고 한다. 글쓰는 사람들의 대부분은 자신의 글쓰는 시간을 정해져 놓는다. 생각보다 길지 않지만, 두뇌활동이 가장 좋은 새벽이 많다. 그리고, 퇴근하거나 잠자기전에 잠시하는 경우이다. 하루에 10분하던, 1시간을 하던 중요하지 않다. 꾸준히 해야 한다는 것이다. 그렇게 위해서는 체력도 중요하고, 인내심도 중요하다. 




과연 나에게 글쓰기란 무엇일까? 나 자신의 성숙하게 하고, 계속 나를 생각하게 하는 존재이다. 자유롭고, 솔직하게 나만의 글쓰기를 꾸준히 하고 싶다.

취짧사길


최근 우리나라의 취업 시장은 그야말로 빙하기라고 말한다. 그만큼 취업문이 좁아졌다는 말이다. 바늘구멍을 지나가는 것만큼 어려운 취업을 하는 대신 창업을 하기로 결정하는 20대 구직자들이 많이 생겨나는데, 그렇다면 과연 창업은 쉬울까?


창업이란 업종을 창출한다는 뜻으로, 흔히 말하길 사업, 즉 비즈니스를 한다는 것이다. 기업을 운영하는 만큼, 결코 창업의 길이 편하지만은 않다. 우리가 구직을 하고 일자리를 가지는 것보다 더욱더 많은 것을 사회에 창출해야 하는 것이 창업이다. 그러므로 이 책의 도입에서는 창업을 하는 20대 창업자가 대한민국의 엄청난 재산이자 가치라고 말하고 있다.



저자가 '오가다'라는 기업을 차리고 운영하는 데에는 엄청난 노력과 시행착오가 있었을 것이다. 이 책은 결코 사업이 쉬운 길은 아니지만, 그렇다고 도전하지 않은 분야는 아니라고 말하고 있다. 나에게 숨은 창업 DNA를 끄집어내어 끄집어 내어 가치를 창출하고 그에 상응한 수익을 창출해야 함을 강조하고 있다. 


저자가 창업을 시작할 때 소비자들의 건강에 대한 관심과 간편함이라는 니즈를 잘 파악했다고 본다. '한국 고유의 단아함과 정갈함, 그리고 훈훈한 정을 담아내되 젊고 세련된 이미지의 브랜드를...'


저자가 사업 초기 자본 확보를 위해 사업 계획서 발표에서 한 내용이다. 본인을 믿어달라는 '신뢰라는 자본'을 위한 저자의 노력이 깃들어 있다.



"

'매출 0원'의 충격에서 벗어나고자 나는 다음날부터 오로지 고객에게만 집중했다. 당장의 매출이 문제가 아니었다. 생존의 문제였다.

- [취짧사길] 중 -

"


사업에서 중요한 것은 자본이 아닌 사람이다. 훌륭한 기업은 사람을 먼저 생각한다. 이익은 나중에 생각하게 된다. 철저한 시장 분석, 아이템 개발, 홍보, 판매 전략 등 모두가 사업을 위한 것이지만, 미션(mission, 사명), 비전(vision), 핵심가치(value)라는 철학을 가지고 임하여 하는 것이 사업이다.


미션(mission, 사명), 비전(vision), 핵심가치(value)


"

기업의 생존과 성공은 결국 지속적인 성장을 통해서만 이룰 수 있다...(중략)...기업의 정체성을 정하는 일이 무척이나 중요하다...(중략)...창업을 구상하는 단계에서부터 자신의 사업에 어떤 가치를 담을 것인지, 무엇을 추구할 것인지에 대해 미리 고민할 필요가 있다.

- [취짧사길] 중-

"



그렇다. 사업은 브랜드와 정체성이다. '내가 왜 이 사업을 해야 하는가?', '이 사업을 해서 어떤 가치를 창출할 수 있는가?', '이 사업의 궁극적 목표는 무엇인가?'라는 물음에 대답할 수 있을 때 비로소 사업을 시작해야 한다.

남들이 이루지 않은 어려운 길을 가면 힘듦을 겪어야 난중에 힘이 생기게 된다. 누구도 흉내 내지 못할 나만의 역량을 갖춰야 한다는 뜻이다. 


"

"모든 것이 다 내 책임이라고 생각하는 사람만이 창업과 맞다"

-최승윤-

"



기업의 대표가 가장 갖추어야 하는 덕목은 '책임감'이다. 모든 것이 내 책임이라고 말할 때 비로소 자기 성장이 이루어진다. 또한 직원들의 입장에서도 부담감을 덜어내어 더 많은 역할을 해낼 수 있다.


이 책에는 창업을 준비하기에 필요한 다양한 팁들도 중간중간에 소개하고 있다. 앞으로 창업을 준비하는 독자들에게 자신의 창업 스토리를 들려주며, 어떻게 창업을 이루어나가야 하는지, 땀과 노력이 절실히 묻어나는 책이다.


창업을 결정한 만큼 대한민국의 미래라는 책임감을 가지고 아무도 가지 않은 길을 따라 열정을 가지며 성장하자.



1인 카페 무작정 따라하기



카페란 음료나 커피를 마시는 곳이다. 현대인과 카페는 서로 밀접한 관계가 있을 만큼 우리 주변에는 쉽게 카페를 찾아볼 수 있다. 카페는 크게 프랜차이즈 카페와 개인 직접 운영하는 카페로 나뉠 수 있다. 이 책에서는 1인카페를 운영하는 과정을 하나부터 열까지 저자가 직접 말해주고 있다. 에반커피의 사장이기도 한 저자의 경험과 노하후, 그리고 충고까지 1인 카페를 준비하고 있는 사람부터 카페에 관심이 많고, 평소 카페를 자주 이용하는 소비자들까지 쉽게 읽을 수 있는 책이다.


"

하루 14~15시간, 적지 않은 근무 시간에 사실 몸도 힘듭니다. 하나부터 열까지 모든 업무를 신경서야 하고 감정노동도 해야 하기 때문에 정신적인 스트레스도 많이 받습니다...(중략)...여전히 서교동에서 일하는 것이 재미있고 고객들과 소통하는 것도 즐겁습니다.

-[1인 카페 무작정 따라하기]-

"


먼저, 개인적으로 이 책을 선택한 이유는 카페 배경음악 때문이다. 필자가 즐겨 공부하고 업무를 하는 장소가 카페이기 때문에, 공부와 업무에 적합한 배경 음악과 테이블이 있는 곳을 선호한다. 이 책에서는 카페에서 틀기 좋은 음악을 많이 소개하고 있다. 잔잔하고, 어쿠스틱하며, 선율이 아름다우며, 그러면서도 지루하지 않은 음악을 선택하는 것이 중요하다고 말하고 있다. 


"

카페를 방문한 고객들이 가장 많이 물어보는 질문 중 하나가 "이 가수 누구예요?" "이 노래 제목이 뭐예요?"입니다.

제이슨 므라즈, 마룬파이브, 킹스 오브 컨비니언스, 디사운드, 어반자카파

-[1인 카페 무작정 따라하기]-

"


다음으로, 커피에 대한 관심이다. 커피보다는 일반적인 음료를 자주 마시는 편이지만, 1인이 운영하는 소규모 카페를 가면 항상 커피를 마신다. 일률적으로 똑같은 방식으로 커피를 내리는 대형 프렌차이즈와 달리 바리스타의 실력과 감각에 따라 커피 맛을 달리하는 카페가 더 이끌리기 때문이다. 최근에는 가정이나, 사무실에서도 쉽게 에소프레소 머신이나 원두머신을 볼 수 있다. 하지만, 로스팅 시간, 그라인딩의 정도, 물의 압력, 머신을 내리는 시간, 원두의 양에 따라 커피 맛을 천차만별인 만큼 일반인들이 각자 원하는 커피 맛을 내기란 쉽지 않다.



카페는 손님을 맞이하는 공간인 만큼, 커피와 음료와 함께 서비스도 함께 판매해야 한다. 최근에는 애견카페, 육아카페, 북카페, 만화카페 등 컨셉적인 서비스와 카페가 접목되기도 한다. 훌륭한 바리스타는 당연 커피의 맛에 온갖 정성을 담겠지만, 1인 카페를 운영하기 위해서는 매장 관리도 중요하다. 이 책에서도 강조하지만, 가장 중요한 것은 청결이다. 매장의 청결과 조리도구의 청결등 세세한 것까지 신경써야 한다. 필자가 생각하는 매장 관리의 가장 중요한 부분은 테이블과 의자가 아닐까 싶다. 테이크아웃 전문 매장도 있다지만, 바쁘게 살아가는 현대인들에게 아무런 간섭없이 혼자 또는 친한 사람들끼리 모여 쉴 수 있는 공간을 제공한다는 철학을 가져야 한다고 본다.



기억력이 좋지 않아도 고객의 이름을 외우는 방법

"

자주 오는 고객의 이름만 외우면 됩니다...(중략)...먼저 자주 오는 고객(1번 고객)의 이름을 외웁니다. 그러면서 자연스럽게 1번 고객과 친해지면 1번 고객을 따라 매장을 방문한 2번 고객의 이름도 덩달아 쉽게 외워집니다...(중략)...다른 방법으로는, 고객의 특징을 잡아내는 것입니다...(중략)...고객의 이름을 외우고 대화를 시작하고 고객과 소통함으로써 고객이 자주 찾는 제3의 공간이 완성되는 것이니까요.

-[1인 카페 무작정 따라하기]-

"


만약 나에게 또 다른 나가 존재한다면, 또 다른 나는 나만의 카페를 운영하고자 했을 것이다. 살아가면서 다들 한 번씩 로망이라는 것을 꿈꾸지 않는가? 필자의 로망은 조용한 공간에서 행복과 웃음을 나누며 작고 독특한 카페를 운영해보는 것이다. 물론 지금의 나를 비추어볼 때 지금가진 지식으로 해볼만한 카페는 공방, DIY카페 같은 것이 될 것이다.





어른들은 항상 우리에게 '대기업에 가서 편하게 월급받으며 사는 것이 편하다.', '고생하지 말고 그냥 직장 잡아서 평생 먹고 살아'라고들 한다. 대기업 간다고 편한 것도 아니고, 그렇다고 평생 먹고 살 수 있는 것도 아니다. 필자가 생각하는 성공한 사람은 열심히 공부해, 좋은 학점을 얻고, 좋은 기업에 들어가는 것이라고만은 생각하지 않는다. 자신이 좋아하고 이루고자 하는 꿈에 다가가기 위해 하나부터 열까지 노력하는 사람이다. 이 책의 저자는 손님에게 사랑 받는 1인 카페가 되고자 하는 꿈을 위해 하나부터 열까지 노력하는 사람이다.

실리콘밸리 견문록 - 이동휘



공대생들의 꿈의 기업인 구글, 페이스북, 인텔 등이 몰려있는 실리콘밸리는 누구나 마음속으로 가고 싶어 할 것이다. 이 책은 실제 구글 본사에서 일하는 소프트웨어 엔지니어가 전하는 창조와 혁신의 공간인 실리콘밸리에 대한 이야기를 담고 있다. 실리콘밸리는 따로 구역이 정해진 것은 아니다. 세계 유수의 기업들이 탄생하고 해당 기업들의 본사가 모여 있는 캘리포니아주 샌프란시스코만을 둘러싼 연구 기업 단지를 말한다. 스탠퍼드와 버클리와 같은 유명한 대학들이 위치하고, 세계 각국의 인재들이 모여 서로 경쟁하고 공존하며 살아가는 공간이다.


"

기업에서 가장 중요한 것은 자본, 기술력이 아닌 바로 '사람'이다.

"


이 책을 읽다 보면 누구나 대한민국의 기업과의 차이점을 느낄 수 있을 것이다. 유명 대기업의 경우 출근할 때 보안카드를 찍고, USB, 이메일을 감시받으며, 사내 네트워크에서의 외부 파일 유출 등으로 많은 제약을 가지며 회사를 다닌다. 하지만, 회사가 이렇게 직원들을 믿지 않아서야 되겠는가? 기업에서 가장 중요한 것은 자본, 기술력이 아닌 바로 '사람'이다. 직원을 믿지 않게 되면, 그만큼 회사가 지불해야 하는 부대비용은 증가하게 되고, 자연스레 일자리는 줄어들게 된다. 그 말은 기업들이 사람을 뽑을 때 신중하고 투자비용을 늘려야 한다. 미국의 기업들은 통계적으로 직원 교육보다는 직원을 채용하는데 더 투자하고 있다. 채용은 좋은 사람을 떨어뜨리는 한이 있어도 의심스럽다면 뽑지 말아야 한다는 뜻이고, 뽑은 후에는 신뢰해야 한다.


"

채용은 좋은 사람을 떨어뜨리는 한이 있어도 의심스럽다면 뽑지 말아야 한다는 뜻이고, 뽑은 후에는 신뢰해야 한다.

"



그들의 기업문화 또한 다르다. 수평적 문화로서 서로 소통하고, 오직 능력으로만 평가받는다. 자유롭게 근무하고, 자유롭게 휴식하며, 취미 생활을 하는 것이 구글, 페이스북과 같은 혁신적인 기업들의 문화이다. 대한민국의 40,50대 직장인들이 만약 이 풍경을 본다면 어떤 생각을 할까? '과연 저렇게 놀면서 일을 할 수 있을까?', '사장님 눈치 안 봐도 되나?'등의 다양한 답변이 나올 것이다. 얼마 전, 필자의 여자친구가 실리콘밸리의 구글, 페이스북 등의 기업을 탐방할 기회를 가졌다. 그녀가 말하길, 실제 구글과 페이스북에 가면, 자유롭게 휴식하고 취미생활을 하며 근무하지만, 어느 기업보다도 실력과 업무량을 중요시하고 있다고 한다. 특히, 팀으로 이루어지는 만큼 현재 팀에서 도태되고, 다른 팀으로 이동하면서 실력에 의한 평가와 질책도 상당하다고 한다. 실제로, 구글 소프트웨어 엔지니어의 경우 중앙 코드 저장소를 통해 어느 직원이 얼마큼 코드를 짜고, 평가 받고 하는지 알 수 있기에 더더욱 그러하다.




구글 면접에 대해서는 한 번쯤 공부해보고 알아볼 필요가 있다고 본다. 우수한 인재를 뽑는 방식인 만큼 다른 유수 기업들에서도 비슷한 방식으로 진행될 것이기 때문이다. 레쥬메(resume)를 통한 접수와 전화면접과 기술 실무면접을 거쳐 선발되는데, 채용 방식과 철학이 존재한다.


같이 일할 동료가 사람을 뽑는다.


실제로 엔지니어는 엔지니어가 뽑는다. 공학 문제가 요구하는 능력은 일반 면접관들보다 당사자인 엔지니어가 더 잘 안다. 그래서 구글에 엔지니어로 입사하면 효과적인 면접관이 되도록 하는 면접 훈련을 받게 된다. 

이름뿐인 스펙보다는 실제로 일을 잘할 사람을 뽑는다.



어려운 문제에 도전하는 사람을 뽑는다.


구글에서는 사람들이 불가능하다고 생각하는 부분도 도전하려고 한다. 구글 X 연구소에서는 자율 주행 자동차, 스마트 렌즈, 구글 글라스와 같은 것들이 개발되었는데, 불가능하다고 생각하는 부분이 가능케 한 경우들이다. 



자리를 채우기 위해 뽑는 것이 아니다.


사람이 모자라더라도 기준을 낮춰서 뽑지 않는다. 반대로, 좋은 인재 라면 자리에 관계없이 모두 뽑는다.


구글에서 개발된 것 중 우리나라 사람이 가장 많이 이용하는 것은 당연 '크롬 브라우저'이다. 속도도 빠르고, IE(인터넷 익스플로러)에 없는 기능들이 많이 있다. 2007년 개발 당시 인터넷 브라우저는 당연 IE의 독점이었다. 실제 브라우저 개발 당시 초고속 인터넷이 가장 잘 깔려진 한국에 시스템을 자랑하려고도 했다고 한다. 지금 당연 크롬을 사용하는 이유는 속도와 플러그인 프로그램, 그리고 시크릿 모드이다. 크롬에서 갑자기 시크릿 모드를 없앤다면, 대한민국 남성들 아마 구글에 엄청난 독촉 메일을 보낼 것이다.)^^


크롬 브라우저의 탄생과 점유율 (출처 : www.statista.com)


앞으로 필자도 어떤 회사에 취직해 일을 할 수도 있고, 경험을 가지고 창업을 하고 기업을 이끌 수도 있고, 평생 같은 직장에 월급쟁이로 살아갈 수도 있다. 인생이란 모른다. 하지만, 어떤 곳에서 어떤 일을 하는 엔지니어나 기업가가 되더라도 절대 실패를 두려워해서는 안된다. 실리콘밸리에서는 실패를 웃음거리로 넘기지 않고, 새로운 성공을 위한 밑거름으로 생각한다. 그리고 회사에서 제공하는 여러 복지를 너무 좋아하지는 않았으면 좋겠다. 기업이 직원들에게 최고의 대우를 해주는 만큼 직원도 기업을 위해 많은 일을 해야 한다. 하지만, 이때 모두가 일을 즐기면서 하였으면 한다.



구글 면접



-자신에게 가장 유리한 시간대로 고른다.

-준비하면 좋은 것들


(1) 요구 사항 분석 -> (2) 구현 -> (3) 검증 및 향상


구글 검색의 성공을 뒷받침했던 구글 파일 시스템(GFS)와 맵리듀스에 관한 논문

-http://research.google.com/archive/gfs.html

-http://research.google.com/archive/mapreduce.html


"

변화에 부딪히고, 끊임없이 생각하고 혁신하고 창조하자.

"


지금도 필자는 대학교 때 여러 프로그래밍 수업과 자료구조 통계학 등의 강의를 들었다. 물론 100% 다 나의 것이 되었다고 할 수 없지만, 지금부터라도 컴퓨터 공학에서 중요한 이론에 대해서는 공부해야 한다. 가장 중요한 것은 아마 확실한 이론과 이를 바탕으로 한 문제 해결 능력일 것이다. 꾸준히 그리고, 알차게 준비하고 또 준비해야 할 것이다. 아직 필자의 나이 때는 다양한 것들을 배우고 스펀지처럼 빨아들여야 한다. 이를 바탕으로 5년, 10년 후 끊임없이 지식과 지혜를 방출하며 본인의 가치를 드높여야 할 것이다. 실리콘밸리에 취업하여 살아가는 것이 인생의 목표가 되는 것보다는, 자신의 능력과 지금 이 시대가 원하는 인재상에 걸맞은 노력과 성실함이 있어야 흔히들 말하는 '성공'이라는 것을 이룰 수 있다고 본다.


우리나라 직장인들의 직장 생활 만족도는 너무나도 낮다. 매일 밤 야근과 회식 술자리, 상사의 과도한 요구, 수직 위계적인 질서 문화 등 우리나라에만 존재하는 좋지 않은 기업 문화가 여전히 있다. 80, 90년대 '한강의 기적'이라 불릴 만큼 엄청난 성장으로 세계 10위 대국에 들어선 대한민국, 하지만 현재는 전 세계가 경기 침체와 저성장의 늪에서 한때 잘 나가던 기업들의 파산이 이어지고 있다. 하지만 이러한 상황에서도 성공하고 세상을 앞서가는 눈으로 기업 운영과 투자를 이끌어가는 혁신적인 기업들이 있다. 앞으로 우리들은 이러한 기업들의 모습을 배우고, 받아들여 변화하는 세상에 발맞추어 나아가야 한다. 더 이상 과거에 머물러 '그땐 그랬지'라는 마음가짐으로는 더 이상 세상을 살아가는 것이 힘들다. 변화에 부딪히고, 끊임없이 생각하고 혁신하고 창조하자.



"

실리콘밸리에 취업하여 살아가는 것이 인생의 목표가 되는 것보다는, 자신의 능력과 지금 이 시대가 원하는 인재상에 걸맞은 노력과 성실함이 있어야 흔히들 말하는 '성공'이라는 것을 이룰 수 있다고 본다.

"

+ Recent posts