해외생활이야기2017. 8. 18. 16:37

-[JOBINTERVIEW]웹개발자 인터뷰 질문들(번역)





이번엔 영어로된 웹개발자에 관련된 인터뷰 질문들의 예제입니다.


Web Developer interview questions


-Computer Science questions

컴퓨터 과학 관련 질문

What is a ‘MIME type’ and what is it used for? Provide an example.

'MIME 형식'이란 무엇이며 어떤 용도로 사용됩니까? 예제를 제공하십시오.


Explain the pros and cons for CSS animations vs. JavaScript animations.

CSS 애니메이션과 JavaScript 애니메이션의 장단점을 설명하십시오.


What’s the difference between HTML and XHTML?

HTML과 XHTML의 차이점은 무엇입니까?


Why is it generally a good idea to position CSS s between and JS s just before ? Do you know any exceptions?

CSS를 배치하기 전에 일반적으로 JS를 배치하는 것이 일반적으로 좋은 이유는 무엇입니까? 예외를 아십니까?


-Role-specific questions

역할 관련 질문


Can you describe your workflow when you create a web page from scratch?

당신은 처음부터 웹 페이지를 만들 때 워크 플로를 설명 할 수 있습니까?


What’s your favorite programming language and why? What features (if any) would you like to add to this language?

가장 좋아하는 프로그래밍 언어는 무엇이며 그 이유는 무엇입니까? 이 언어에 어떤 기능을 추가 하시겠습니까?


How would you decrease page load times?

페이지로드 시간을 어떻게 줄일 수 있습니까?


Describe the process from the time you type in a website’s URL to it finishing loading on your screen.

웹 사이트 URL을 입력 할 때부터 화면에로드가 완료 될 때까지의 과정을 설명하십시오.


What user interface and security principles do you consider when building a website or online application?

웹 사이트 또는 온라인 응용 프로그램을 만들 때 어떤 사용자 인터페이스(user interface) 및 보안 원칙(security principles)을 고려합니까?


Have you used or implemented mobile specific layouts/CSS?

당신은 모바일 특정 레이아웃/CSS를 사용해왔거나, 구현해왔습니까? 


What tools and techniques do you use to debug JavaScript code?

자바 스크립트 코드를 디버깅 할 때 어떤 도구와 기술을 사용합니까?


Are you familiar with designing a single page app?

단일 페이지 응용 프로그램(single page app)을 디자인하는 데 익숙하십니까?


What methods do you use to make SEO-friendly web pages?

당신은 SEO 친화적 인 웹 페이지를 만들기 위해 어떤 방법을 사용합니까?

ps.SEO는 검색 엔진을 사용하는 사람들을 위한 최적화를 말합니다.


-Behavioral questions

행동 관련 질문

Describe a time when a program you developed didn’t run. How did you troubleshoot your code?

개발한 프로그램이 실행되지 않은 시간을 설명하십시오. 코드 문제를 어떻게 해결 했습니까?


What’s a fun project that you’ve worked on recently?

최근에 일해 온 재미있는 프로젝트는 무엇입니까?


What area of expertise would you like to master?

어떤 분야의 전문 지식을 마스터하고 싶습니까?


How do you stay up-to-date with the latest technology developments?

최신 기술 개발에 대해 어떻게 생각하십니까?


출처 : https://resources.workable.com/web-developer-interview-questions


Posted by Joseph514
해외생활이야기2017. 8. 18. 16:03

-[JOBINTERVIEW]몇가지의 코딩인터뷰 질문 번역해봤습니다.

제가 영어가 짧아고 Ruby나 파이썬은 익숙하지 않아서 좀 번역이 시원찮네요.

일단 Cover-letter와 Resume가 중요해야겠지만, 대략적으로 어떤 질문을 하는지 좀 알아봐야 될거 같네요.

필요하시다면 참고 해보시기 바랍니다.


Coding interview questions


-Java

How are Runtime exceptions different from Checked exceptions?

Runtime exceptions는 Checked exceptions와 어떻게 다릅니까?


Why use an object Factory and how would you implement the Singleton pattern?

왜 object Factory를 사용해야하고 어떻게 Singleton pattern을 구현하겠습니까?


Is this possible in Java? “A extends B, C”

자바로 가능합니까? "A 확장 B, C"


What is difference between String, StringBuilder and StringBuffer in Java?

자바에서 String, StringBuilder 및 StringBuffer의 차이점은 무엇입니까?


-Ruby

What is the use of load and require in Ruby?

Ruby에서 사용되는 load and require 무엇입니까?


Explain each of the following operators and how and when they should be used: ==, ===, eql?, equal?

다음 연산자 각각과 언제 어떻게 사용해야하는지 설명하십시오 : ==, ===, eql?, equal?


What is a module? Can you tell me the difference between classes and modules?

모듈이란 무엇입니까? 클래스와 모듈의 차이점을 알려주시겠습니까?


What are some of your favorite gems?

좋아하는 gems에는 어떤 것들이 있습니까?


-Python

Why are functions considered first class objects in Python?

파이썬에서 functions가 first class objects로 간주되는 이유는 무엇입니까?


Can you explain circular dependencies in Python and potential ways to avoid them?

파이썬에서의 순환 의존성과 그것들을 피할 수있는 잠재적 인 방법을 설명 할 수 있습니까?


Give an example of filter and reduce over an iterable object.

필터의 예제를 제공하고 반복 가능한 객체를 줄입니다.


Can you explain the uses/advantage of a generator?

generator 의 용도 / 장점을 설명 할 수 있습니까?


-.NET

What is the WebSecurity class in .NET? What is its use?

.NET의 WebSecurity 클래스는 무엇입니까? 그 용도는 무엇입니까?


In .NET, attributes are a method of associating declarative information with C# code. Please describe the way they are used and a proper use case.

.NET에서 속성은 C # 코드와 선언 정보를 연결하는 방법입니다. 사용 방법과 적절한 사용 사례를 설명하십시오. 


Which is the best way to pass configuration variables to ASP.NET applications?

ASP.NET 응용 프로그램에 구성 변수를 전달하는 가장 좋은 방법은 무엇입니까?


Is it possible in .NET to extend a class (any class) with some extra methods? If yes, how can it be accomplished?

.NET에서 몇 가지 추가 메서드로 클래스 (any 클래스)를 확장 할 수 있습니까? 그렇다면 어떻게 성취 될 수 있습니까?


-PHP

If you need to generate random numbers in PHP, what method would you follow?

PHP에서 임의의 숫자(random numbers)를 생성해야한다면 어떤 방법을 따르겠습니까?


What’s the difference between the include() and require() functions?

include ()와 require () 함수의 차이점은 무엇입니까?


Explain how you develop and integrate plugins for PHP frameworks, like Laravel and Yii.

Laravel 및 Yii와 같은 PHP 프레임 워크 용 플러그인을 개발하고 통합하는 방법을 설명하십시오.


How can you get web browser’s details using PHP?

PHP를 사용하여 웹 브라우저의 세부 사항을 어떻게 얻을 수 있습니까?


-HTML/CSS

Can you describe the difference between inline elements and block elements?

inline elements와 block elements의 차이점을 설명해 주시겠습니까?


Why is it generally a good idea to position CSS s between and JS s just before ? Do you know any exceptions?

CSS를 배치하기 전에 일반적으로 JS를 배치하는 것이 일반적으로 좋은 이유는 무엇입니까? 예외를 아십니까?


Can you describe how padding and margin differ?

padding과 margin이 어떻게 다른지 설명 할 수 있습니까?


How is responsive design different from adaptive design?

반응형 디자인(responsive design)과 적응형 디자인(adaptive design)의 차이점은 무엇입니까?


출처 : https://resources.workable.com/coding-interview-questions



Posted by Joseph514
잡학상식2017. 8. 9. 17:04


-상호확증파괴이란 무엇일까요?


뉴스나 글을 읽다 보면 한 번씩 보는 단어인데요.

핵 억제력과 이야기할 때 들을수 있습니다.

북한은 상호확층파괴 때문에 우리나라를 선제공격할 확률이 낮다느니 이런 이야기를 듣기도 했습니다.

그러면 여기서 말하는 '상호확증파괴'라는 단어의 뜻이 무엇인지 한번 알아보겠습니다.


상호확증파괴는 영어로는 Mutually Assured Destruction라고 합니다. 줄여서 MAD라고 쓴다고 하네요.

냉전 당시에 존 폰 노이만이 제안하여 만들어진 용어로, 전쟁이나 전투의 결과에 상관없이 양측 모두 파괴될 것이 확실한, "너 죽고 나 죽자"를 말합니다.

미·소 핵군비경쟁 초기에 등장했으며 이후 모든 핵전략의 기초가 되었습니다. 


-이 끔찍한 너죽고 나죽자의 결과로, 핵전쟁 후의 세계를 다룬 포스트 아포칼립스 명작 영화 매드맥스입니다.

물론 영화에서는 짧게 핵전쟁 이후의 세계란 설명만 나오지 어떻게 전개되었는지는 안 나타납니다.


노이만 특유의 센스로 '미쳤다'는 뜻의 MAD와 같은 스펠링을 가지도록 약어를 지었습니다. 

정작 폰 노이만이 창안한 게임 이론에 따르면 상대에 대한 억지력은 확실하지만 상대가 허세라고 받아들일 가능성도 가장 높은 전략입니다.

상대가 핵 미사일 한 발 맞았다고 정말 끝장을 보려 들겠냐는 뜻입니다. 

가령 소련이 극한 상황에 몰려 네바다 주의 핵실험장에 미사일 한 발을 쐈다고 합시다. 

핵실험장에 쐈으므로 인명피해는 최소화될 것인데 미국이 모스크바를 비롯한 소련 전역에 핵을 퍼부으려 들까요? 

차라리 시베리아 어딘가에 보복성으로 한두 발 쏘지 않겠냐는 의미입니다. 


인류의 역사를 보면 사람들이 그렇게 합리적이기만하지는 않으며, 그럴 가능성이 높다는 의미고 정말 상호 확증 파괴까지 가지 말란 법은 없습니다. 

무엇보다 핵을 그렇게 우습게 봐서도 안되고. 어디까지나 폰 노이만이 지류를 연 게임 이론에서 이론적으로 그렇다는 의미입니다. 사실 MAD가 게임 이론에서 파생된 전략이기도 합니다.


이게 단순히 양쪽 모두 핵을 가졌다고 해서 상호확증파괴의 조건이 완성되는 것은 아닙니다.

상호 확증 파괴의 핵심적인 조건은 양쪽 모두 2차타격능력(second strike capability), 즉 적에게 선제 핵공격을 당하고 살아남은 핵무기로 보복공격을 가하여 적 역시 초토화시킬 수 있는 능력을 갖고 있는가 하는 것입니다.

국토가 엄청나게 커서 몇 대 맞고 시작해도 반격이 가능한 미국이나 러시아, 중국, 인도 같은 국가나 아래에 설명 드릴 SLBM를 보유한 영국, 프랑스를 들 수 있겠죠.

미국에 비해 소련의 2차 타격 능력이 완성되지 않았던 냉전 초반이나, 미래에 일정 수준 이상의 정밀도를 보장하는 미사일 방어 시스템이 완성되어 적의 2차 타격을 봉쇄할 수 있을 경우 상호 확증 파괴는 성립하지 않게 됩니다. 

아직 MD 체계는 완벽하지는 못한 거 같네요.


이렇게 반대로 한 쪽의 일방적 패배가 확실하여 상호확증파괴와 대조되는 상황을 일방확증파괴(UAD, Unilaterally Assured Destruction)라고 합니다.


양극체제 아래서 상호확증파괴가 가해져 균형이 이루어질 때를 전통적인 국제정치학의 세력균형(balance of power)과 비교하여 공포의 균형(balance of terror)이라 칭하기도 합니다.


상호 확증 파괴 전략은 상대편도 나도 똑같이 서로를 무서워할 때 가능하고 그 정도로 보복 능력이 없는 나라에서는 대신 내가 죽으면 너도 죽지는 않지만 심하게 다친다! 라고 위협 전략에 몰두합니다. 

그 대표적인 나라가 냉전 중의 프랑스였습니다. 

프랑스의 핵 전력은 소련에 비해 매우 약하므로 만약 소련과 전쟁이 나면 멸망하는 것은 확실하니, 대신 소련의 대도시 한두 군데 정도는 확실하게 저승길 동무로 데리고 간다는 것입니다. 

또한 그 계획을 대외적으로 공개했습니다. 이를 비례 억지 전략이라고 말합니다. 

제가 군사 전문가는 아니지만 북한이 대기권탄도탄(IBCM) 쏘고 핵미사일 개발에 열을 올리는것도 이런 이유에서 협상카드를 만들려고 하는게 아닌가 하는 생각도 듭니다.


영국 같은 경우는 아예 '그 어떤 상황에서도 모스크바 하나는 확실하게 지도에서 지워버릴 수 있는 핵전력은 꼭 유지한다'라는 소위 모스크바 기준(moscow criteria)이라는 말을 만들어 내기도 했습니다. 

이런 제한적 위협은 MAD의 열화판처럼 보이지만, 그 안에 깔려 있는 실제 논리는 MAD와는 전혀 다릅니다. 

이런 소규모 핵전력의 가치는 모스크바 같은 대도시 한둘을 날려버리는 것 그 자체에 있는 것이 아니라, 미국과 첨예하게 대립중인 소련이 그런 피해를 일방적으로만 받고 전쟁을 끝낼 수는 도저히 없다는 사실에서 발견할 수 있습니다. 

즉 미국은 온전하게 남아있는데 소련만 모스크바나 레닌그라드 같은 곳이 날아간 채로 있는다면, 보복 공격으로 프랑스와 영국을 날려버렸다 한들 전쟁이 끝난 세계에서 소련은 미국에게 훨씬 불리하게 됩니다. 

그러므로 이런 경우 소련은 어쩔 수 없이 미국에게 죽빵을 날리게 되는 것입니다. 

그렇게 되면 대서양 건너편에 있는 미국이 유럽에서 일어난 전쟁에서 동맹국들을 방기하면서 동맹국을 위한 대 소련 핵보복에 소극적으로 나서는 것을 방지할 수 있습니다. 어차피 "전쟁 = 미국에 핵 떨어짐"이니까 말이죠. 

즉 이런 전략은 MAD와는 달리, 겨누는 것은 적국이지만 영향을 주고자 하는 것은 우리편인 셈입니다. 물론 이런 경우라도 MAD를 구성하는 기본적인 조건은 똑같이 작동하고 있습니다.


과거 냉전 시절. 미국과 소련은 둘 다 핵의 어마어마한 위력을 잘 알고 있었기 때문에, 앞으로 전쟁이 나면 핵전쟁이 분명히 난다고 생각하고 여러 종류의 핵무기를 개발하게 됩니다.




세계2차대전에서 일본에 폭격한 펫보이를 싣는 B-29 폭격기입니다. 위키피디아에 있는 내용은 나가사키 공격 전 수 주일 동안 폭탄 테러 용 B-29 폭탄 만에 구멍에서 자란 호박 폭탄 (Fat Man 테스트 유닛)이더군요....


원래는 핵의 투발수단이 폭격기 밖에 없었고, 때문에 미국과 러시아 모두 핵 폭격기 개발에 열중했습니다.


그러던 중 탄도 미사일 기술의 발달로 초대형 미사일에 핵탄두를 장착해 발사하면 폭격기와 달리 도중에 요격이 불가능한 완벽한 공격이 가능하게 되었습니다. 

때문에 소련의 스푸트니크가 미국에 준 충격이 엄청났고, ICBM과 같은 장거리 전략 미사일에 초점이 맞춰집니다.



그러나 미사일 기지는 필연적으로 대형이며 고정식이 될 수밖에 없어서, 인공위성과 항공기 정찰이 가능해지자 이번에는 잠수함에 핵미사일을 가득 싣고 저 멀리 북극 바다 속이나 태평양 깊숙히 숨겨놓는 방법이 급물살을 타기 시작했습니다. 



이것이 잠수함 발사 탄도 미사일인 SLBM이며, SLBM은 상호확증파괴로 인한 균형이 붕괴되지 않고 실제로 유지될 수 있게 한 중요한 요인 중 하나로 꼽힙니다. 

지상의 핵기지는 다 때려잡는다고 해도, 바닷속에 숨어 있는 잠수함에서 발사하는 핵 미사일을 잡아내는 것은 대단히 난감하며, 적국 영토 근처에 최대한 접근하여 핵을 날릴 수도 있는 가장 효율성이 높은 핵투발 수단이기도 합니다.

냉전 붕괴 후의 영국이나 프랑스와 같이 지상배치 ICBM은 모조리 치워버리고 SLBM 중심으로 핵 전력을 재편한 국가도 존재합니다.


이렇게 상호확증파괴에 동원되는 핵무기가 날로 다양해지고 위력이 강화되는 이유는 단순히 핵 자체가 무서운 것이 아니라, 특히 전략 핵무기급의 위력이 문제가 되었기 때문입니다. 전략 핵무기는 상대편 국가의 전쟁수행능력을 무너뜨리기 위해 만든 것으로, 쉽게 말해서 상대편 군대를 목표로 하는 것이 아닌, 민간인과 산업시설과 도시 등을 공격하기 위해 만든 것입니다. 

원래는 이런 목적으로 사용될 경우 전략핵투발수단은 주요 도시 수십~수백 여 개를 제압할 정도의 전력만 갖추면 MAD에 의해 상대에 대한 확실한 핵 억지력을 갖출 수 있을 것으로 생각 되었습니다. 논자에 따라서는 이 정도의 핵 전력만 갖추는 것이 방대한 재래식 전력을 유지하는 것보다 값싸다고 주장하기도 했습니다. 실제 미국의 존 F. 케네디 대통령 시대에 로버트 맥나마라 국방장관이 이런 전략을 주장했습니다. 


그러나 핵미사일의 정확도가 향상되면서 문제가 발생하기 시작했습니다. 

즉, 본래 강화콘크리트 구조물 지하에 설치된 핵 사일로는 핵미사일의 직격 및 지근거리 착탄에 의하지 않으면 파괴하기 어려우므로, 전략 핵미사일의 정확도가 낮을 경우 핵미사일로 상대 핵미사일을 파괴하기는 어려웠습니다. 

그러나 미사일 정확도가 향상되면서, 기습공격으로 초기에 상대의 핵전력을 대부분 파괴할 경우 상대편은 잔여 핵전력으로 제한적인 피해밖에 끼칠 수 없는 반면 아군은 여전히 남아있는 핵전력으로 상대의 도시 등 인구·산업 밀집지대를 타격할 위협을 가할 수 있으므로 결과적으로 MAD의 결론과는 달리 핵전쟁에 승리하는 것이 가능해졌습니다. 


따라서 미·소 양국은 단순히 상대 국가를 확증 파괴할 정도의 핵전력만 보유하는 것을 넘어서, 상대의 핵전력을 초기에 기습제압할 수 있을 정도의 핵전력, 혹은 상대의 기습공격을 허용하고도 상대를 확증파괴하기에 충분한 핵전력이 잔존할 정도의 핵전력을 추구하기 시작합니다.

그 중 하나가 소련이 미국에 충분히 보복을 가하기 위한 목적으로 만들어진 아쿨라급입니다. 이러한 전략목표는 당연히 상대의 핵전력에 의해 결정되는 가변적이고 (궁극적으로는) 재귀적인 목표이므로, 이때부터 미·소 양국은 극단적인 핵전력 경쟁으로 치닫기 시작했습니다. 

SALT(전략무기제한협정)가 이루어질 무렵에는, 양국은 수백 킬로톤~수 메가톤에 이르는 핵탄두를 서로에게 각각 1~2만발 가량씩 투발할 능력을 갖추게 되었습니다. 이건 전략핵투발수단만 센 것입니다.


한편 MAD의 또다른 문제점은 대응의 유연성이 결여되어있다는 점이었습니다. 즉, MAD에 따른 전략 핵 전력은 자국을 도발하는 적국을 멸망 시키려는 위협을 하기 위해 존재하므로, 실제 군사적 위협이 가해질 경우 상대국에 사용될 수 있어야 합니다. 그러나 만약 적의 군사적 위협이 국운을 건 전면전이 아니라 국지적 이익을 확보하기 위한 제한전일 경우, 확증파괴전략에 의해 대응하기는 매우 까다로운데, 특히 상대국이 마찬가지의 핵전력을 갖추고 있어 MAD를 성립시킬 수 있을 때 더욱 그러합니다. 

그러므로 만약 서로 MAD에 의해 핵균형을 이룬 상태에서 재래식 전쟁이 발생하면, 정작 핵무기들은 상대편의 핵무기와 대치한 채로 전쟁 억지력에는 실질적인 도움을 주지 못할 가능성이 높습니다. 전쟁은 멸망하려고 하는 것이 아니며 전쟁 이후도 대비해야 하기 때문입니다. 


따라서 상기 두 가지 이유로 전략 핵전력의 MAD 위협에 의한 힘의 균형은 실제로는 극도로 불안한 상태였으며, 양국은 MAD라는 가정을 떠나 차츰 유연반응전략(상대의 공격 수위에 따라 아군의 보복공격 수위를 결정함) 등을 고려하기 시작하였습니다. 그러나 심지어 유연반응전략 하에서도 여전히 보복의 에스컬레이션(상대에게 받은 것에 조금씩 더 얹어서 보복하기)을 통해 언제든지 MAD로 결말이 날 가능성은 충분했습니다. 


그래서 케네디 대통령 시절의 국방장관를 지낸 맥나마라는 처음 아이젠하워의 "모든 핵무기를 모든 공산주의 국가에 동시에 퍼붓는다."는 생각에 반대했으나, 쿠바 미사일 위기 이후 "유연한 대응 그딴 거 없고 그냥 같이 죽을 수밖에 없다."는 결론을 얻어 아이젠하워 독트린으로 회귀했습니다.

그러나, 일단 상호 확증 파괴가 실제로 동작하면 승자 없이 모두 망하는 사태가 발생하기 때문에 어떻게 해서 든 우발적 핵전쟁이 일어나지 않도록 강대국간에 핫라인을 개설하고, 핵전쟁이 벌어지더라도 인류 문명의 피해를 최소화하기 위해 핵무기 자체도 여러 번 감축하는 노력을 기울였습니다.


이러한 상호 확증 파괴 전략은 로널드 레이건 때 적국의 핵무기를 다 방어하면 나만 핵으로 때릴 수 있다는 SDI로 상호확증 파괴를 벗어나려 했지만 프로젝트 자체가 현대 기술로도 이루기 어려운 슈퍼 병기들의 향연 인지라 결국 냉전이 종식될 때까지 이렇다 할 성과는 내지 못했고 일부만이 살아남아 MD로 이어지게 됩니다.


현재 MD는 ABL과 국내 도입 논란이 되서 뉴스에 자주 나오는 THAAD, GBI와 GBI의 탄두 EKV, KEI(탄두는 같은 EKV) 그리고 PAC-3(패트리어트 미사일)로 이루어져 있으며. 해상무기로는 SM-3, 공중발사무기로는 NCADE가 있습니다.


상호확증파괴와 냉전 상황은 국제정치학에서 안보개념에 대한 문제의식을 이끌어냈고, 구성주의 패러다임에서 논하는 상호안보의 틀에 의해서 직접적으로 비판받게 됩니다. 

상호안보 개념에 의하면 홉스적인 각자도생으로 안보문제에 접근하면 필연적으로 군비경쟁의 안보딜레마를 가져오며, 진정한 안보는 관계를 통해서만 보장될 수 있습니다. 이러한 관점은 상기한 핵 감축 노력 등과 맥이 닿아 있다고 볼수 있죠.


전략 핵 미사일을 요격할 수 있는 ABM(Anti-Ballistic Missile)은 모든 핵 전략의 기초이자 궁극인 MAD를 회피할 수단을 제공하므로 미국과 소련 양국은 ABM조약을 체결하여 이러한 수단의 배치를 제한하도록 했습니다. 

MD는 이 조약에 정면으로 반하는 무기 체계이기 때문에 러시아의 큰 반대에 부딪히고 있으며 중국 역시 러시아에 동조하는 상황입니다. 


러시아는 소련 시절에 비해 국가적 역량과 외교적 영향력이 안습하게 쭈그러들었고, 미국에 대응하는 정치·외교적 레버리지의 상당 부분을 소련에게 물려받은 핵 전력에 의존하고 있어 핵 전력의 무력화를 절대 용납할 수 없기 때문에 MD에 대해 매우 민감하게 반응하여 핵무기 감축 협상을 거부하고 MD를 뚫을 수 있는 ICBM을 배치하여 상호 확증 파괴가 가능한 핵 전력은 필사적으로 유지하고 있습니다.

이 말은 창(ICBM)을 막는 방패(MD)를 막는 창(IBCM)을 개발했다는 내용인가 보네요.

이상으로 상호확증파괴라는 단어에 대해서 알아보았습니다. 


출처 : 나무위키, 본인생각



Posted by Joseph514
IT이야기/입코딩2017. 8. 9. 12:48

-컴퓨터 공학과에 대한 오해


컴퓨터공학과라는 이야기를 하면 사람들이 흔히들 하는 오해가 있더군요. 비전공자 뿐 아니라, 좀 비슷하다고 생각한 타 공대생들도 마찬가지더군요. 저 또한 전자과나 기계과, 토목과가 어떤 일을 하는지는 친구들 이야기를 들어서 알 뿐 자세히는 알지 못합니다.

일반인들(비전공자들)이 생각하는 오해들을 한번 정리해 봤습니다.



다른 학과나 직종들도 그렇지만, 한 분야에 종사하면 관련된 일들은 모두 다 잘 할수 있을 것이라는 막연한 기대감을 품는 사람들이 많습니다. 

기타리스트가 노래도 잘 할것이라는 그럴싸한 편견에서부터 음악 교재 파는 사람이 음악 연주도 잘할 것이라는 아닐 것 같은데 실제로 그런 오해가 있는 경우까지 하여간 종사 직종 관련 오해는 다양합니다. 

컴공과도 마찬가지로 '컴퓨터를 배운다'는 점 하나 떄문에 온갖 오해에 시달리곤 합니다. 




1. 컴퓨터 수리를 잘한다. X

이상하게도 유독 컴공과 출신은 특히 컴퓨터 수리 콜이 자주 오는 편이입니다. 

하지만 수리도 나름대로 전문 분야입니다. 'PC정비사'라는 자격증도 따로 있구요. 

컴퓨터의 고장 원인에도 여러가지가 있기 때문에 컴공과라고 딱히 대단할 것은 없습니다. 

물론, 컴퓨터에 관심이 있어서 입학한 능력자들이 있기도 하고 기본적으로 컴퓨터 공학과가 지향하는 직업은 컴퓨터를 다룰 일이 많기에 컴퓨터 실력은 일반인들 보다는 나을 수 있습니다. 

하지만 의외로 컴퓨터 포맷조차 못하는 사람도 간혹 있습니다. 

애초에, 거의 대부분의 컴퓨터공학과에서는 하드웨어를 눈꼽만큼도 가르쳐주지 않습니다.

전 개인적으로 중고등학교때 사고쳐서 컴퓨터가 고장나면, AS 부르는 비가 아까워서 독학으로 컴퓨터 포멧 및 수리를 배웠습니다. 그리고 대학교에서도 전산실에서 아르바이트하며, 개방 피씨실 컴퓨터들 고치고 조립하고 카트 끌고 랜선깔면서 경험을 쌓았고, 

피씨방 알바로 하드 고스트로 하드 밀고, 부품 꽂는 일을 했기에 조립을 할 뿐이지 제 전공과는 무관했습니다. 



2. 컴퓨터에 대해 모르는 것이 없다. X

컴퓨터의 응용 분야가 굉장히 넓어졌기 때문에 컴공과라고 해도 한계가 있습니다. 

컴퓨터 하드웨어는 전자공학에서 다루고 소프트웨어는 컴퓨터공학에서 다루기 때문에 한 사람이 하드웨어와 소프트웨어를 동시에 깊게 이해하긴 힘듭니다. 

예를 들어 컴퓨터 네트워크를 깊게 전공한 사람이 컴퓨터 하드웨어의 반도체 구조를 깊게 이해하고 있을 확률은 매우 낮습니다. 

더군더나 하드웨어나 소프트웨어 둘다 매우 방대하고 깊이가 깊은 학문이라서, 컴퓨터 공학이나 전자공학 석박사를 하더라도 한 사람이 커버 가능한 세부분야는 컴퓨터의 극히 일부분이 될 수 밖에 없습니다. 

소프트웨어만 하더라도, 웹 개발쪽에도 분야가 무궁무진하게 많습니다.


3. 수학을 잘한다. O

이건 어느 정도 사실이며, 그냥 간단한 코딩을 할 경우는 수학이랑 연관이 없어 보이나, 깊이 있게 들어가면 많이 필요로 합니다.

까놓고 말해서 대학원 이상으로 갈 경우 거의 예외 없이 사실이며, 학부 수준에서도 어느 정도 수학 실력, 특히 미적분을 위시한 단순 연산 말고 증명에 쓰이는 논리적 사고능력이 받쳐주지 않으면 전공을 아예 못합니다.

대학원, 교수/학자/연구원 등의 레벨로 가면 하다못해 시스템 계열 분야라도 더더욱 예외없이 수학을 많이 공부해본 사람들이 많습니다. 

특히 이름 있는 전산학자들은 거의 예외없이 수학과나 수학을 많이 쓰는 전공 출신입니다. 

컴퓨터 그래픽이나 온갖 기계학습류 분야(컴퓨터 비전, 자연언어처리, 데이터 마이닝 등)로 가면 모든 분야의 전산학자들이 기본적으로 우려먹는 이산수학 알고리즘들은 물론이고 공대생들이나 물리학도들이 흔히 써먹는 선형대수학이나 다중미적분, 미분기하학 등도 아주 많이 씁니다. 

기계학습의 경우, 보다 이론적인 쪽으로 가면 측도론을 쓰기 시작합니다. 하다못해 프로그래밍 언어를 공부하는 데에도 쓰입니다. 

프로그래밍 언어에 정의되어있는 온갖 데이터 타입들에 대한 연산 규칙 및 증명 등을 해야할 때 필요합니다. 

알고리즘의 복잡도에 대한 전개를 할 때에도 물론 수학을 씁니다. 

예를들어 합병정렬이 왜 O(n log n) 의 복잡도를 가지는 지 알려면 등비급수를 활용할 줄 알아야 합니다.

전문분야를 막론하고 수학적인 기호들을 읽는데 능숙하지 못하거나, 수학적인 논리에 미숙하다거나 하면 전산학을 제대로 공부하기 매우 힘듭니다. 

하다못해 시스템 계열 과목들에서도 수학적 증명이 등장하는 마당에(운영체계의 피터슨 해법이나 램포트 빵집 알고리즘, 분산체계의 팍소스 알고리즘 등에 등장합니), 웬만해서는 대학에서 강제필수인 기초 이산수학, 알고리즘 디자인/분석 및 복잡도이론 등으로 가면 더더욱 그렇습니다.

일반인이 생각하는 고교수학은 물론이고, 대학에 와야 본격적으로 접할 수 있는 보다 생소한 수학 분야들도 가지가지 골고루 우려먹습니다. 

수학의 본질이 논리적인 사고를 요구하는 것이라 전제하는만큼 수학을 잘하지 못하면 결코 어느 단계 이상을 넘어가지 못합니다. 

괜히 대부분의 컴퓨터 관련 대학원 입시 문제들이 수학 문제로 이루어져있는 게 아닙니다.



4. 게임을 만들 수 있다. △

이런 오해는 컴공 학생이 프로그래밍을 잘 한다는 착각과 비슷합니다. 

'가위바위보 게임'이나, '야구 게임' 같이 고작 타자 몇 자 치는 걸 게임으로 봐줄 수 있다면 게임을 만들 수 있다고 인정합니다. 

c언어로 리눅스 콘솔에서 만들어서 플레이 하는정도는 간단히 배웁니다.

물론 학교 정규 커리큘럼 이외의 공부를 조금만 하면 똥피하기 같은 슈팅게임 등은 쉽게 구현할 수 있고 네트워크 대전이 가능한 장기 같은 걸 콘솔 화면에서 구현하는 용자도 가끔 나타납니다. 

다만 우직하게 대학교 커리큘럼만 판다면 무리입니다.

대학에서 배우는 것들은 사실 학문적인 부분이 대부분이고, 실제 쓸만한 프로그램을 만드는 실용적인 부분은 거의 독학으로 습득해야 하는 경우가 많습니다. 

그리고 게임의 경우는 프로그래밍 보다도, 기획이나 디자인이나 사운드 같은 부분들이 제법 비율이 높아 보입니다.

저는 개인적으로 게임을 좋아해서 프로그래머가 되었고, 음악이나, 미디어 툴 들을 취미로 다룰 수 있어서 쯔꾸르(...) 나 GameMaker 같은 게임 엔진으로 인디 게임 같은 걸 만들어 본 적 있습니다.

관심이 있는 분들이 아니면 게임을 만들어 보지 않는 것 같습니다. 특히나 MOD나 동인 게임, 인디 게임 같은 경우, 프로그래머로서 커리어를 잘 인정 안 해기 때문에 굳이 프로그래밍만 파기에도 아까운 시간을 소비하려고 하지 않는 거 같네요.



5. 해킹을 할 수 있다. 

물론 해킹 할 수 있는 사람들이 타과에 비해 많은 수는 있지만 모두 할 줄 아는 건 절대 아니고 극소수에 불과합니다. 

일반인이 생각하는 해킹이라면 툴만 구하고 호스트 컴퓨터에 감염만 시키면 초딩도 할 수 있습니다. 툴 키드라고 하지요.

중학교 시절에 본인 컴퓨터에 호기심으로(집에 컴퓨터가 2대 있었습니다.) 키로깅, 백오리피스나, 넷버스 같은 해킹툴들을 윈도우 98 같은 취약한 os에 테스트 해본적은 있습니다. 하지만 제대로 백신이 깔리거나 xp이상에선 다 막히더군요. 해킹이라기 보단, 원격제어인데 상대가 모른다는것일뿐이죠.

반대로 제대로된 해킹을 하는 것은 컴공과생에게도 매우 어렵습니다.

그래도 분산 서비스 거부 공격(DDoS)쯤은 할 수 있는 사람들이 있더군요.

하지만 넓은 의미로의 해킹이면 한 번쯤은 해야 할 수도 있습니다. 

소스가 공개되지 않은 프로그램에 기능을 추가할 때 해야 하는 리버싱 같은 것으로 말이죠.




6. 전자장비를 잘 다룬다 X

물론 다루는 전자 장비라고 해봐야 MP3나 핸드폰 정도인 일반인 보다는 낫겠지만, 주 전공이 아닌 이상은 그렇게 잘 다루지 못합니다. 

보통의 컴퓨터 공학과 커리큘럼에서 H/W는 거의 없습니다. 

설령 전자회로를 배울지라도 실질적인 회로가 아닌 로직 회로일 경우가 매우 높습니다. 전공선택 과목에 있는 경우도 있습니다. 

제너다이오드, MOSFET 같은 전자소자의 이름도 모르고 졸업하는경우도 생깁니다. 게다가 그건 전자공학쪽 일입니다.

논리회로 시간에 빵판(BreadBoard) 꽂아 보는거나, 임베이드 장비 건드리는 정도이고, 최신 폰이 어떤지, 최신 노트북이 어떤지도 모르겠네요. 좀 쪽팔린 일이지만 저는 불과 몇년전까지도 윈도우 xp를 쓰고 있었습니다. 핑계를 좀 대자면 컴퓨터가 무거워지는게 귀찮아서


6. 게임을 잘 한다 X

아무래도 일반인들이 컴퓨터를 사용하는 용도가 문서작업이나 웹서핑 아니면 게임이기 때문에 생긴 이미지인 듯 합니다. 

물론 컴퓨터 공학과와 게임실력과는 관계가 없습니다. 또한 컴퓨터 공학과와 게임 플레이와도 관계가 없습니다. 

게다가 게임하거나 만들려고 온 사람보다는, 수능점수에 맞춰서 온 사람이 배는 많을 것입니다.

다만 연구실이나 학과실에서 노트북 놓고 밤세는게 일인지라 게임을 잘하는 친구들도 많아서, 학교에서 게임 대회를 하면 타 과에 비해 우승하는 친구들도 많더군요.



7. 워드 프로세서 등에 능통하다 X

당신이 만약에 초ㆍ중ㆍ고등학교 때 자신의 희망 진로가 컴퓨터공학이라고 선언하였거나 교양 과목 조원에게 컴퓨터 관련 학과라는 것을 밝히면 당신은 이제부터 조별과제 PPT담당일 것입니다.

만약 회사에 전공과 별개로 입사했는데 그것이 밝혀지면 모든 컴퓨터 관련 AS는 당신에게 갈거구요.

컴퓨터공학 전공자도 고등학교 때까지는 프로그래밍을 배우지 않은 학생들도 많고, 컴퓨터공학과가 파워포인트 잘 다루는법 배우는 학과는 아닙니다. 

애초에 그다지 쉽지 않은 프로그램이기 때문에 크게 지식의 괴리에 따라 실력의 차이가 느껴지지도 않습니다. 

조금만 생각해봐도 프레젠테이션을 잘 만드는 것과 컴퓨터 잘 하는 건 전혀 상관이 없다는 걸 알 수 있는데, 프레젠테이션 잘 하는 사람은 컴퓨터 잘 하는 사람이 아니라 디자인 잘 하는 사람 내지 말빨 좋은 사람입니다.

컴퓨터공학 전공, 더 나아가서 프로그래머는 파워포인트나 엑셀을 '만드는 사람'이지, '잘 쓰는 사람'이 절대로 아닙니다. 블리자드 개발진과 임요환 중 누가 게임을 잘할지를 생각해보면 쉬울 것입니다. 

보통 일반인은 컴퓨터=한글,파워포인트,엑셀 이므로 이 점을 잘 피력하지 못하면 학교든 회사든 뭔가 모르는게 생기면 무조건 당신을 부를 것입니다. 아무것도 모른다는 것을 강력하게 주장해 놓는게 좋습니다. 

물론 저는 초등학교 때 컴퓨터학원에서 처음으로 딴 컴퓨터 관련 자격증이 '워드프로세서' 였습니다. 그리고 'ITQ' 자격증도 땃구요. 컴퓨터학원에서는 컴활 자격증을 공부하는 친구들도 많았습니다.

컴퓨터학원이 프로그래밍을 가르치는건 아니었고, 간단한 윈도우 사용법이나 한글, 워드, 엑셀 정도 수준으로 그냥 일반사람들 쓰는 정도로는 배웠던거 같습니다.

제가 다니던 학교는 학부생 1학년때 컴퓨터 수업을 들으면, 전자과 기계과 등에서는 엑셀을 배우는데, 컴퓨터 공학과는 C언어...를 가르쳐 줍니다. 타 과 교수님들이 컴퓨터과 학생들은 수업을 못 듣게 하더군요.

물론 프로그래머라면 영타가 빠를테고, 영타 실력이 빠르면 빠를수록 프로그래밍에 유리하긴 합니다.



8. 컴퓨터 견적을 잘 짠다 X

인터넷에서 떠돌던 20만원짜리 컴퓨터 견적 사건의 '기적의공대오빠' 글과 같이 컴퓨터공학을 공부한다고 해서 컴퓨터 견적을 잘 짜는 것은 결코 아닙니다. 주로 배우는 것이 소프트웨어이기도 하거니와, 하드웨어를 배운다고 하더라도 디지털 논리나 컴퓨터 개론 등의 일반적인 사항들을 학습할 뿐입니다. 

이게 무슨 말인지 이해가 안 간다면, 기계공학과를 생각해봅시다. 

기계공학과에서 "요즘 세단은 이것이 대세다. SUV는 이것이 대세다. 연비는 이 회사 제품이 전반적으로 좋다" 같은 것을 가르쳐주지는 않습니다. 

견적에 대해 물어보고 싶다면 컴공과 학생보다는, 차라리 겜덕들이 훨씬 적합합니다.

저의 경우 요즘 어떤 cpu가 어떻고, 그래픽 카드가 어떻고 시세가 어떤지는, 본인이 노트북 고를 때나 업그레이드 할때 잠깐 찾아보는 정도 일거 같네요.

컴퓨터 부품들은 수시로 가격이 변합니다. 그에 비하면 자동차나 오토바이는 감가 삼각이 엄청 좋은 편이죠.

그리고 괜히 남의 컴퓨터의 견적을 이야기하거나, 조립해주면 좋은 이야기를 잘되면 본전에 안 좋은 이야기를 많이 들으므로 모른다고 할 수도 있습니다.


출처 : 나무위키, 본인생각

Posted by Joseph514
IT이야기/입코딩2017. 8. 8. 13:28

-프로그래머(Programer)의 종류

프로그래머에는 어떤 종류가 있는지 한번 알아보겠습니다.

좀 해깔리기는 한데, 사용하는 언어로 JAVA 개발자, PHP 개발자, 닷넷 개발자를 나누기도 하지만 개발자 종류로서는 웹 개발자이고 SI업무나 SM 업무를 할수 있습니다.

물론 JAVA를 사용한다고 꼭 웹을 만드는 게 아니라 모바일이나 응용프로그램을 만들기도 합니다.

어떤 어떤 분야에 프로그래머가 있는지 한번 알아 보겠습니다.



'프로그래머'라는 단어 하나로 간편하게 통칭하여 부르고 있긴 하지만, 프로그래머에도 여러 분야가 있습니다. 

고급 언어와 툴을 다룰 줄 아는게 전부인 프로그래머 부터, 저급 언어까지 다룰 줄 아는 프로그래머까지 그 스펙트럼은 어마어마하게 넓습니다. 

또 소수의 코어파트 프로그래머들이 있는가 하면, 다수의 양산형 프로그래머인 코더가 있습니다.

컴퓨터 프로그래밍 기술에 능숙한 사람들은 유명세를 타기도 하지만, 이러한 관심을 받는 대상은 보통 소프트웨어 공학자 집단으로 국한됩니다. 

그리고 종종 저명한 프로그래머들 중에는 "해커"라는 이름으로 불리는 사람들도 있습니다.

프로그래머라는 직종이 이런 넓은 스펙트럼을 가지고 있기 때문에 단순히 뭉뚱그려 부르기에는 상당히 무리가 있습니다. 

비유를 하자면 트럭, 택시, 버스, 중장비기사를 전부 뭉뚱그려 '운전자'라고 표현하는 것과 같습니다.


-알고리즘 개발자

응용수학자 및 물리학자들이 많이 분포해있는 분야입니다. 

특정 상황에서 더욱 효율적인 알고리즘을 만들어내고 이를 수학적, 논리적으로 증명하는 게 주 목적입니다. 

사람들은 이들은 프로그래머/엔지니어라고 부르기보단 박사/연구자라 보는 경향이 있습니다. 실제 프로그래밍은 최소한도로만 수행하거나 아예 수행하지 않습니다.

프로그래밍 언어는 대부분 한 종류 이상 능숙하게 다룰 수 있기는 하지만 결과물을 프로그램으로 발표하는 게 아니라 논문으로 주로 발표하는 것도 큰 차이입니다. 

프로그래밍 언어를 다룰 줄 아는 것도 정말 순수하게 도구로써 다루는 것이지 그것이 생계 수단이 아닙니다. 

이상을 보면 알겠지만 국내외적으로 보통 프로그래머로 부르지 않고 과학자 또는 교수로 더 흔히 부릅니다.


저희 학과 교수님들도 프로그래밍과는 거리가 먼, 수학 전공자이신 분들도 있었습니다.

한글 문서로 손코딩하시던게 생각나네요. 알고리즘 쪽은 완전 전문가이시겠죠.



-보안 개발자

해킹 및 정보보안 관련 기술들을 다루는 프로그래머를 의미하며, 이를 위해서는 많은 기반 지식이 필요합니다. 

필요하면 서버 등의 플랫폼의 보안성 향상을 위해 툴을 준비하거나 서버 프로그래밍 자체를 튜닝하고 감시할 체제를 준비해야 하기 때문에 보통 고급 개발자입니다. 

업무에 비해 책임이 막대하며 특히 보안사고가 터지면 모든 책임을 뒤집어쓰는 직종이기 때문에 IT업계에서도 대우가(급여가 아닌) 상당히 좋지 못합니다.

OS, 네트워크(TCP/IP)에 대해 매우 심도깊은 이해가 필요하고 C언어를 매우 잘 다룰 줄 알아야 합니다. 최소한 한 종류 이상의 어셈블리어를 다룰 수 있어야 합니다. 

현대 암호학에 대해서는 개념 정도는 알고 있어야 하며(암호 알고리즘을 만들 줄 알아야 하는 건 아닙니다.) 높은 수준의 리버스 엔지니어링실력도 요구됩니다.

이상이 정상적인 보안 개발자의 얘기고, 좀 비정상적인 보안 개발자는 운영 중인 시스템을 지속적으로 모니터링하다가 보안침해 의심사고 발생시 신속하게 조치해서 차단하고 이미 입은 피해를 파악해 복구하는 일을 합니다. 

왜 비정상적이라고 하냐면 이런 직업은 원래 개발자가 아니라 '오퍼레이터'라고 부르기 때문입니다. 

국내에 이런 오퍼레이터 전문 육성 코스가 없어서 다들 프로그래밍을 하다가 이쪽으로 넘어오는데 전공 지식을 거의 활용할 수 없어서 기초부터 새로 배워야 하는 경우가 부지기수입니다. 

오퍼레이터는 프로그래머의 하위 분류가 아니라 이웃 분류입니다. 

동등한 전문성을 갖추고 있는 반면 그 전문 영역이 별로 겹치지 않습니다. 오퍼레이터가 전사라면 프로그래머는 대장장이. 칼을 들고 싸우는 직업이냐 칼을 만드는 직업이냐의 차이라고 하네요.


프로젝트에 들어 가보면 한 명씩 있으십니다. 일반 웹개발자들보단 단가가 쎄보이는데, 웹개발자들도 마찬가지지만 야근이나 주말 출근도 자주 하시는거 같습니다.



-빅데이터 분석가

빅데이터를 분석하고 해석합니다. 통계학과 컴퓨터공학을 둘 다 전공한 융합형 프로그래머에 속합니다. 

상당히 높은 수준의 수학 능력이 요구되는 반면 프로그래밍 실력은 그리 크게 요구하지 않습니다. 

사용하는 도구도 통계와 수치연산에 특화된 R이나 Python(NumPy)을 더 선호하고 데이터베이스에 대한 지식도 어느 정도 필요합니다.

전공 석사급 이상의 학력이 있으신 분들이 하시는걸로 알고 있습니다. 국내에서는 다룰 줄 아시는분도 별로 없고 다른 전문 프로그래머들도 그렇지만, 제법 단가를 많이 받는다고 들었습니다.



-소프트웨어 아키텍트(SA)

마이크로소프트의 정의에 따르면, 전략, 조직 역학, 프로세스, 커뮤니케이션, 리더십 등 관리능력과 엔지니어링에 대한 깊은 이해를 갖춘 개발 지휘자를 아키텍트라 부릅니다.

엄밀히 말하면 프로그래머가 아니라 기획자입니다. 조직 관리 능력, 리스크 관리 능력 같이 프로그래밍 능력과는 전혀 관계없는 분야의 지식을 요구합니다. 

건축 쪽의 아키텍트와 마찬가지로 현장(프로그래밍)을 모르는 채로 될 수 있는 직업은 아니지만 현장 지식만 잔뜩 쌓는다고 될 수 있는 직업도 아닙니다. 게다가 전문 교육을 이수하는 것만으로는 될 수 없고 경험이 아주 중요한 직종으로써 프로그래머판 도선사와 비슷하다고 합니다.



-게임 개발자

게임 개발자에는 게임 프로그래머만 있는게 아닙니다.

기획, 디자인, 사운드 등의 다양한 파트가 있으며 그중에, 게임 프로그래머가 있습니다.

게임 프로그래머는 프로그래밍을 통해 맵 디자인, 캐릭터 디자인, 사운드, 각종 시스템 등을 뒤섞어, 게임이라는 하나의 결과물을 만드는 직군입니다. 

게임을 만들때 필요한 핵심 인력중 하나입니. 사실상 게임을 만드는 데 있어 가장 귀중한 인력이라고 봐도 과언이 아닙니다. 엔딩크레디트에서는 보통 프로듀서-디렉터-프로그래머-아트-사운드-그 외 순서로 나옵니다.

게임을 만드는건, 게임을 하는것과 차이가 큽니다. 밥을 먹는거랑 밥을 만드는 것만큼의 차이랄까요.


게임 프로그래머를 세부적으로 나누면

게임플레이 프로그래머 (Gameplay Programmer)

물리 엔진 프로그래머 (Physics Programmer)

그래픽 / 렌더링 프로그래머 (Graphics / Rendering Programmer)

개발 도구 프로그래머 (Tools Programmer)

네트워크 프로그래머 (Network Programmer)

정도 되겠군요.


데이터베이스 관리자의 경우 프로그래머가 같이 도맡아 할 수도 있긴 하지만 대부분 데이터베이스 관리자를 따로 둡니다. 게임 개발자 직종으로써의 인식은 별로 없지만 굉장히 중요한 직종입니다. 특히 온라인 게임의 경우 그 중요도가 다릅니다. 새벽에도 전화오면 불려와서 처리 한다더군요.



-웹 개발자

웹 개발은 웹 상에서 사용되는 소프트웨어 개발과 웹페이지를 제작하는 분야입니다. 

웹 프로그래머는 이를 제작하는 개발자를 의미합니다.

현재 웹의 범위가 엄청나게 넓어져서, 수요도 많고, 공급도 많은 직종입니다.

'웹땔감' 등으로 비하하거나, 2000년대 제로보드랑 나모웹에디터로 홈페이지 만들듯이 아무나 할수 있다고 생각될수 도 있을거 같은데, 이 분야도 들어가면 끝을 모를 정도로 깊네요. 그 유명한 페이스북이나 아마존도 다 웹입니다.


웹 프로그래머는 크게 두 종류로 나누는데, 백 엔드(Back-end) 개발자와 프론트 엔드(Front-end) 개발자로 구분합니다. 백 엔드와 프론트 엔드 구분은 기업, 조직마다 나누는 경우도 있고 아닌 경우도 있으나 대체적으로 안정적으로 프로젝트를 운영하는 집단은 두 가지를 구분합니다.


1)프론트 엔드(Front-end) 개발자

사용자에게 보여지는 화면을 개발, 주로 HTML, CSS를 활용하여 웹 디자인을 웹 페이지로 구현하는 개발자입니다. 

디자인 시안을 그대로 구현하는 작업이라는 특징 때문에 조직에 따라 프론트 엔드 작업을 웹 디자이너에게 업무를 맡기는 경우도 있습니다. 

최근 핵심 사항으로는 HTML4에서 HTML5로의 변화에 따라 반응형 웹이 유행하고 있으며 여러 버전의 브라우저에서 모두 호환될 수 있는 웹 표준을 중시하는 문화가 퍼진 상태입니다.

해외에서는 퍼블리셔라는 표현 보다는 프론트 엔드라고 쓰는거 같더군요. 두 부분이 어느정도 겹치는 업무가 있긴한데 한국에서 쓰는 퍼블리셔 개념은 아닌거 같습니다.


2)백 엔드(Back-end) 개발자

웹 상에서 사용되는 소프트웨어나 웹 페이지가 기능적으로 동작하도록 구현하는 개발자입니다. 여기서 기능이란 해당 소프트웨어가 가진 목적 구현을 위한 모든 환경을 의미합니다. 

즉, 클라이언트의 기능 뿐만 아니라 서버 개발도 해당됩니다. 

예를 들어 웹 페이지로 계산기를 만든다고 했을 때, 계산기 인터페이스는 프론트 엔드의 영역이지만, UI 뒤에 숨겨져 있는 계산기 알고리즘과 원리는 백 엔드의 영역이라고 생각하면 됩니다. 

주로 HTML, CSS, Javascript, jQuery 등 UI 영역뿐만 아니라 Java, JSP, PHP, Spring framework, 디자인 패턴 지식 등 다양한 기술이 요구됩니다.


3)풀 스택(Full-stack) 개발자

위의 프론트엔드와 백엔드를 모두 다룰 수 있는 개발자입니다. 의외로 그리 드물지 않습니다. 

프론트엔드나 백엔드나 사용하는 기술이 거의 비슷하고 서로 겹치는 게 많기 때문입니다. 

하지만 실상을 놓고 보면 자신을 풀 스택 개발자라고 소개하는 사람은 아직 본인의 전문 분야가 확립되지 않은 쉽게 말해 '신참' 개발자일 확률이 높습니다. 

그렇지 않다면 홈페이지 제작 프리랜서로 활동한 경력이 긴 일인기업 대표일수도 있습니다. 만약 후자라면 최소 3인분 이상을 해내는 슈퍼맨이라고 합니다.


-모바일 개발자

스마트폰 애플리케이션을 개발하는 사람입니다. 

2017년 7월 기준 가장 많이 사용되는 안드로이드, iOS 두 가지 모바일 운영체제의 소프트웨어를 개발하는 사람이라고 보면 됩니다. 

두 가지 OS를 모두 개발하는 사람도 있으나 조직의 규모나 개인의 역량에 따라 안드로이드 개발자, iOS 개발자로 구분하는 경우도 있습니다.


1)안드로이드 APP 개발

안드로이드는 Java를 기반으로 두고있는 언어이기 때문에 Java에 대한 지식이 필요하며 안드로이드 스튜디오 3.0부터 표준 언어로 채택하고 있는 Kotlin 또한 학습해야 합니다. 

안드로이드는 Eclipse로 개발이 가능했다가, 구글의 정책으로 안드로이드 스튜디오에서만 개발이 가능하도록 변경됐습니다. 저는 학부생 때 안드로이드 어플 제작 프로젝트로 이클립스에서 SDK 설치해서 만들었는데, 안드로이드 스튜디오를 쓰니 더 편해진거 같네요.


2)iOS APP 개발

iOS는 MacOS의 언어와 동일하게 Objective-C와 Swift에 대한 지식이 필요합니다. 

두 가지 언어의 컴파일러로는 대부분 MacOS의 Xcode를 사용하며 이는 MacOS에서 앱스토어를 들어가면 설치할 수 있습니다.


3)하이브리드 APP 개발

하이브리드라는 이름에서 생각할 수 있듯, 안드로이드와 iOS를 모두 호환 가능한 애플리케이션을 개발하는 것입니다. HTML5로의 발전, CSS3의 발전 등을 통해 제약이 많던 이전 웹 언어들과 달리 현재는 다양한 애니메이션과 기능이 추가되었고, 이를 활용해 OS의 제약 없이 개발하는 것입니다. 

그러나 안드로이드, iOS 언어에 비해 출력이 매끄럽지 않아서 대다수 스마트폰 앱으로 먹고사는 벤처기업은 하이브리드 앱을 개발하지 않고 네이티브 언어를 채택합니다. 

스마트폰 앱이 주력사업이 아닌 여러 대기업들의 경우엔 개발 비용을 줄이고자 하이브리드 APP을 많이 채택합니다. 오픈 소스로 Sencha등을 활용하는 편입니다.

뭔가 대단한게 아니라, app은 그냥 책갈피 정도나 받아오는 값을 보여주는 정도의 역활만 하고 나머지는 웹에서 다 처리하는 방식입니다. 모바일 웹이랑 네이티브 앱의 중간 정도 되는 역활이네요. 계속해서 주기적으로 업데이트 받아오는 쇼핑몰 같은게 아니면 그냥 네이티브로 작업하는게 좋을거 같습니다.


사실 임베디드 시스템 프로그래밍과 큰 상관은 없어 보입니다만,, 둠의 경우 호환성이 좋아서. 위와 같은 카메라나, 전화기 플레이 할 수 있다고 하더군요.


-임베디드 시스템

넓은 범주에서 정의하자면, 일반적인 목적으로 만들어진 컴퓨터가 아닌, 특수한 목적을 가지고 만들어진 프로그래밍 가능한 모든 컴퓨터를 의미합니다. 

PC는 임베디드 시스템을 구축하는 데 사용되긴 하지만, 그 외에도 수많은 용도로 사용될 수 있으므로 그 자체로 임베디드 시스템은 아닙니다. 하지만 컴퓨터와는 달리 어떤 특수한 목적만을 수행하기 위해 만들어진상 컴퓨터들

(전화기, 냉장고, 텔레비전, FAX 등)은 각자의 기능을 수행하기 위한 MCU를 가지고 있으며, 이것들은 특수한 목적을 수행하기 위한 컴퓨터이므로 임베디드 시스템이라고 할 수 있습니다. 

아두이노나 라즈베리파이 같은 임베디드 보드들 이름은 들어봤는데, 이것과 관련되어 있는지는 한번 찾아봐야겠네요.


학부생때는 임데디드 강의 시간에 요상한 키트에 리눅스 우분투에서 연결한 다음 프로그래밍한 것을 돌려보곤 했었는데 웹개발자를 하다 보니 쓸 일이 없네요.


-전산 정보 시스템

SI(시스템 구축)

SM(시스템 유지보수)

ERP

해당 항목들만 따로 포스팅해도 될만큼 이야기가 많기에 따로 포스팅하겠습니다.

국비지원 JAVA 학원에서 웹개발을 3개월 공부한뒤, 주로 가게 되는 분야입니다. 한 몇년 SI에서 굴렀던 적이 있는데, 왜그렇게 사람들이 꺼려하는지 알겠더군요.


-융합형

다른 전문분야의 인물이 자신의 지식을 활용하여 프로그래밍을 하는 경우도 존재합니다. 

의사가 직접 의료 프로그램을 통계화, 수치화한다든가, 국과수 직원이 치아 감별을 통한 개인 식별을 위한 프로그래밍을 한다든가, 이과 대학 교수가 모델링-시뮬레이션 툴을 만든다던가 하는 경우가 이에 속합니다.

이들에게 요구되는 능력은 프로그래밍 능력이 아니라 자기 분야의 전문성입니다. 

전문성과 달리 프로그래밍은 극도로 완벽하고, 정교하고, 간결한 수준으로 잘 할 필요는 없습니다. 

혹시 다소 불필요한 부분이 코드에 덕지덕지 붙어있다거나, 코딩하는 시간이 다소 오래 걸리거나 해도 크게 문제되지는 않습니다. 

이들에게 최우선으로 요구되는 사항은 전문성이고, 프로그래밍 능력은 그 다음이기 때문입니다. 

어차피 프로그램을 잘 짜서 성공하게 된다면, 그 다음부터는 프로그램 설계가 아닌 단순 코딩 정도는 양산형 프로그래머에게 맡겨도 됩니다.


-코더

좀 논란이 되는 구분인데, 보통 알고리즘을 사용할줄 알면 프로그래머, 복붇만 할수 있음 코더라고 한다고 합니다.

자기가 하면 프로그래머이고 남이 하면 코더로 보일수도 있죠.

나중에 따로 정리를 해보겠습니다.



출처 : 나무위키, 본인생각

Posted by Joseph514
음악이야기2017. 8. 8. 09:19

-뮤직쉐이크(musicshake) 프로그램으로 만들어본 노래들


어제께 포스팅한


뮤직쉐이크(musicshake) 프로그램을 이용해서 노래를 만들어보자.


뮤직쉐이크로 힙합 장르의 노래를 만들어봤는데요.


그외에도 몇가지 장르의 노래들을 만들어봤습니다.



익스플로러로 뮤직쉐이크 사이트에 접속할 필요없이, 

뮤직쉐이크를 설치하셨다면, 바탕화면에 뮤직쉐이크라는 단축아이콘이 생성되었을겁니다. 실행해 봅니다.



뮤직쉐이크 프로그램이 작동됩니다.


라틴 음악 장르를 한번 만들어봤습니다. 템포는 140 bpm.


사실 라틴 음악 같은 건 정확히 뭘 의미하는지 모르겠더군요. 

제가 좋아하는 살사나, 삼바 같은 노래는 아닌거 같은데 라틴이 라틴 아메리카 남미 음악인지, 스페인 음악인지 뭉뚱그리고 장르가 만들어져 있네요.




재즈(보사) 장르를 한번 만들어봤습니다.



락 장르를 한번 만들어봤습니다. 그냥 반주만 있을때는 굉장히 없어 보였는데, 뮤직쉐이크에서 제공되는 보컬을 넣으니 제법 있어보이게 바뀌었네요.


알엔비 장르입니다.

이번 노래도 보컬을 집어넣으니, 노래가 제법 그럴듯해 보이네요.


거의 10년만에 써보는 뮤직쉐이크인데, 어쩜 이리 한결같은지 익숙하게 느껴지네요.

음색을 클릭해서 이펙트를 주고 조금씩 음색을 바꿀수도 있습니다.

Posted by Joseph514
IT이야기/입코딩2017. 8. 7. 14:51

-프로그래머는 학력이 필요할까요?


프로그래머와 학력의 관계에 대해서 한번 포스팅 해보겠습니다.

참고로 저는 지방 듣보잡 4년제 컴퓨터 공학과를 나왔습니다. 

학력이 어떻니 할 정도로 좋은 위치에 있고 뛰어난 실력을 가지지도 않습니다.

인터넷에서 흔히 볼 수 있는 전공자 부심은 아니고, 대학교에 학사나 석사, 박사를 공부하면 어떤 점이 더 유리한곳인지 이야기하고 싶네요.


참고로 이야기를 적자면, 비전공자들은 컴퓨터 공학과를 프로그래머를 양성하는 교육기관으로 생각하는 경향이 있는데, 사실 프로그래밍은 컴퓨터 공학과에서 배우는 것들 중 일부분에 지나지 않습니다.

흔히 일반인들은 컴퓨터 공학과를 프로그래밍을 배우는 학과라고 생각하지만, 그것은 마치 경제학과가 펀드매니저를 양성하는 학과라거나, 법학과는 사법시험 합격 요령을 배우는 곳이라고 생각하는 것과 같습니다. 

컴퓨터 공학과는 컴퓨터 공학이라는 독립적인 학문을 배우는 학과입니다. 


흔히 프로그래머에게는 학력이 중요하지 않다고, 심지어 대학 교육이 반드시 요구되는 분야가 아니라고들 말을 합니다. 반대로 가능한 한 명문 대학과 명문 대학원을 가야 많은 것을 배울 수 있고 취업도 잘 된다는 말을 하는 사람도 있습니다. 이렇게 상반된 이야기를 듣게 되는데, 이는 상황에 따라 둘 다 맞 다고 볼수 있습니다.


-저학력이라도 상관없는 상황

웹, 모바일 개발자처럼 직업학교에서도 배우는 정도의 커리큘럼으로 정리가 되어 있고 복잡한 처리를 필요로 하지 않는 분야

자기가 직접 앱을 만들어서 팔고 회사 차릴 수 있는 사람. (다만 통계상 학력이 높은 사람이 회사를 차릴수록 수익률이 높고 오래가고 도산률이 낮습니다.)

중소기업이나 인기없는 스타트업 등 쉽게 들어갈 수 있는 직장에 들어가더라도 만족하는 사람. (낮은 대우 받고 계속 다니는 평범한 경우, 그 직장 규모 전체를 키워버리는 특이한 경우, 거기서 쌓은 경력으로 대기업에 이직하려는 경우 셋 다 포함.)

아래 상황에 필요한 것들을 전부 독학할수 있고, 학위 없이도 대졸들을 전부 떨쳐내고 뽑힐 만한 능력자. (빌게이츠, 스티브 워즈니악, 리누스 토르발즈 같은 말이 능력자지, 이정도는 거의 정점 수준의 프로그래머입니다. 게다가 예시로 든 프로그래머들은 전부 세계에서 손 꼽히는 명문대를 졸업했거나 창업하려고 자퇴한 사람들입니다.)

공무원 시험이나 공공기관 시험 치려는 사람


-고학력이 반드시 필요한 상황

수학, 물리학, 컴퓨터공학 등 대학교 3학년 이상의 고급 지식이 필요한 프로그래밍(소프트웨어,빅데이터,데이터베이스 등)

국내 대기업, 다국적 기업에 경력 없이 입사하고 싶은 사람

해외취업 목표.

교수, 정부출연연구소 목표


확실히 제가 해외 취업을 준비하면서 전공자인게 유리하더군요. 한국에서 SI, SM 개발자를 하더라도 전공자에 기사 자격증 있으면 이득은 없어도 최소한 손해는 안 보는것 같습니다.


프로그래밍 분야에 있어서 학력 = 실력이 아닙니다. 고가의 실험 실습 도구가 필요한 다른 분야와는 다르게 프로그래머에게는 오직 컴퓨터 한 대만 있으면 충분하고, 필요한 관련 지식에 대한 정보는 인터넷의 정보 바다에 흘러 넘칩니다. 



게을러서, 즉 자기가 안 찾아봐서 관련 지식 및 정보를 모르는 경우는 있어도, 찾을 수가 없어서 관련 지식 및 정보를 모르는 경우는 극히 드물다고 할 수 있습니다. 

그리고 일반적인 기업의 일반적인 코딩 및 실무에 필요한 능력만 따진다면, 대학에서 배우는 추상적인 지식들은 사실 쓸모 없습니다.

그러나 아이러니하게도 "한국에서" 고급 지식을 익혀서 고급 엔지니어로 성장하려면 상위권 대학에 진학해야 합니다. 한국에서 고급 지식을 효율적으로 얻을 수 있는 곳은 좋은 대학 뿐입니다. 

널리 알려진 사실이지만 한국의 컴퓨터공학/소프트웨어과는 구조적인 문제로 커리큘럼이 낙후되어 있습니다. 

세계 랭킹 50위권인 서울대학교나 KAIST에서나 미국의 제대로 된 탄탄한 커리큘럼에 그렇게 많이 꿇리지 않는 교육을 받을 수 있습니다. 



프로그래밍에 필요한 지식(선형대수학, 확률/통계론, 이산수학, 데이타구조, 알고리즘, 아키텍쳐, 프로그래밍 언어, OS, 오토마타, 시스템 프로그래밍, 네트워크, 소프트웨어 공학, 데이터베이스, 컴퓨터그래픽, 전산논리학, 컴파일러, 계산이론, 정보보호, 인공지능, 인간-컴퓨터 상호작용 등)은 실무 경험이나 독학으로 익히기 어렵습니다. 

벽돌공 일을 30년 하면 건축 설계에 대해 모르지는 않게 되겠지만, 그렇다고 고급 건축 설계자가 될 수는 없다는 뜻과 같습니다. 현업에 종사한지 2년 내로, 내가 나온 대학이 좋은 대학이었는지 아니었는지 뼈저리게 느끼게 됩니다. 


한국의 대학원 또한 마찬가지. 애초에 중요한 건 대학원을 나왔느냐가 아니라 어떤 대학원에서 어떤 수준의 교육을 받고 어떤 퀄리티의 논문을 냈느냐라는 것을 상기해야 합니다. 

현실적으로 낙후된 대학원 환경에서 제대로된 교육을 제공하는 대학원은 한국에 두세 곳 뿐이고, 이런 대학원은 들어가기가 상당히 어렵습니다.

그나마 자대생(학부를 해당 대학에서 마친 학생)의 경우도 절반 넘게 학점에서 컷트 당합니다. 

자대가 아닌 경우 들어가기는 완전히 바늘구멍인데, 인서울 정도에서 이런 대학원을 가려면 과 1위를 해도 떨어지는 경우가 대다수인 상황이라고 합니다.

참고로 이건 한국뿐 아니라 미국도 마찬가지입니다. 

최상위권 대학은 한국의 탑3 대학보다도 환경이 좋지만, 조금만 순위가 내려가더라도 수업의 질이 크게 떨어지고, 이는 결국 졸업자의 엄청난 경쟁력 저하로 이어집니다. 


좋은 대학을 가려면 수능 공부만 해야 한다고 생각하기 쉬운데, 그렇지도 않습니다. 

수시 전형이 7~80%가 된 상황에서 정보올림피아드나 프로그래밍을 잘 하는 것이 오히려 확률적으로 더 유리합니다. 

하지만 수시로 지원한다 해도 프로그래밍만 파지 말고 내신 반영 비율을 확인해야 합니다. 프로그래밍만 할 줄 아는 인재를 뽑고자 하는 대학은 거의 없다고 보여 집니다.

대기업에 입사하고자 할때는 대학 졸업장이 당연히 필요하고, 괜찮은 중견기업에 지원할 때도 필요합니다.

채용자 입장에서는 그 많은 지원자들의 능력을 일일이 직접적으로 다 테스트해서 체크해 볼 수는 없는 노릇이고, 결국 간접적으로 추정해야 하는데, 거기에 사용되는 자료가 학교 성적을 비롯하여, 학력/학벌 등인 것입니다.

설사 SI이나 SM 업무를 하더라도 "갑"에서는 개발자의 학력이나 학벌을 중요시 여기기도 합니다. 

그리고 대학교 졸업장 없이는 실력이 뛰어나더라도 상대적으로 설계 경험을 접해보기 힘든 경향이 있습니다. 

사실 학력과 실력은 반드시 일치하는 것도 아니고, 이 분야 특성상 학력과 실력이 무관한 경우도 매우 많지만, 이 분야 특성을 잘 모르는 일반인들로서는 사회 통념상 학력이 없으면, '저 사람은 대학도 나오지 않았는데, 당연히 실력도 없을 거야~' 라는 식으로 선입견 내지 편견을 가지기 쉽습니다. 

그래서 그러한 편견을 가진 일반인이 발주를 하는 갑의 위치에 있다면, 실력을 보지도 않고 쉽게 무시하기 일쑤입니다. 


하여간 한국에서 사회생활 하려면 대학은 나와야 합니다. 미국도 프로그래머로 취업하려면 보통 대학을 졸업해야 하고, 구글 오라클 등의 대기업에 취업하려면 좋은 학교 출신이 아무래도 유리합니다.

물론 자기가 직접 벤처기업을 창업하는 경우에는 대학졸업장이 필요 없습니다. 그러나 만약 자신이 카네기멜론 컴공 석사이상 졸업자라면, 국내에서 소프트웨어 벤쳐 한다고 하면 수 억원 이상은 그냥 투자 받을 수 있습니다.


획기적인 알고리즘을 만들어낸다는 교수들이 바로 박사들입니다. 또, 알게 모르게 석사 학위도 꽤 쳐줍니다. 

구글 검색엔진에 사용된 알고리즘을 고안해낸 래리 페이지가 바로 석사입니다. 더붙여, 좋은 지도교수님 밑에서 잘 트레이닝 된 석사가 건성으로 졸업한 박사보다 나을 때도 많습니다. 

끝으로, 교수가 코딩 안하는 이유는 어느정도 급만 되면 코딩할 필요가 없는 것도 있는 한편, 박사과정 학생들이 가져다 주는 획기적인 알고리즘이 타당한지 검증하고 논문 검토하는 데도 바쁘기 때문이기도 합니다. 

그 와중에 애들도 가르치고, 연구도 따와야 하고, 학내 정치도 해야 되기 때문이죠.


본인 영어 실력이 좀 된다면 독학으로 전문 지식을 익힐 방법이 있긴 합니다. 

Coursera, edx, MITOCW, Udemy 등에서 제공하는 강좌들에서 이런 고급 수학, 물리학 지식을 제공합니다. 

그리고 git-hub에 가서 MOOC 관련 다운로더 코드를 파이선으로 작성해 놓은 것들이 있는데 다운 받아서 실행하면 강의당 용량이 4G가 정도 하는 패키지로 자막까지 받을 수 있습니다. 미친듯이 사전 찾아가면서 공부하면 다 이해될 수 있습니다. 


출처 : 나무위키, 본인생각

Posted by Joseph514
음악이야기2017. 8. 7. 11:28

-뮤직쉐이크(musicshake) 프로그램을 이용해서 노래를 만들어보자.


이번에 소개해 드릴 프로그램은 뮤직쉐이크라는 프로그램입니다. 

나온지 제법오래 돼었는데, 아직 운영하고 있더군요.

(주)싸일런트뮤직밴드에서 제작한 음악 게임이라고 합니다. 

음악게임이 리듬게임과 비슷하게 보이기도 하지만 좀 다른 장르입니다.

닌텐도 DS로 발표된 KORG DS-10나 뮤직쉐이크, 이전에 포스팅한 eJay 등의 프로그램들처럼 말이죠.

음악을 직접 만들 수 있다는 점에서는 게임의 범위를 넘어서지만, 전문적 음악 제작 프로그램에 비해서는 기능에 제한이 있기 때문에 게임에 분류되기도 합니다. 

이런 게임들은 사실상 게임과 음악 소프트웨어의 경계를 허무는것 같습니다.

제일 중요한 장점으로는 음악에 대해 모르는 사람들도 쉽게 음악을 만들 수 있습니다. 그리고 만든 음악을 제작사 홈페이지를 통해 직접 음악을 만들어 올리거나 다운도 받을 수 있습니다. 

기본적으로 제공되는 샘플 음원을 조합하는 것이 기본이고 코드도 제공되는 코드 중에서만 선택할 수 있는 등 본격적인 음악 제작 프로그램이라고 보기에는 어려운 부분이 많긴 합니다. 

하지만 자신이 녹음한 음원을 사용할 수 있는 등 초보적인 작곡 기능은 제공합니다.


백문이 불여일견이라고, 몇초만에 뚝딱 한곡 만들어보겠습니다.


뮤직쉐이크 사이트 가기



참고로 웹표준이 지켜지지 않는 사이트다 보니, 익스플로러에서만 작동됩니다.

크롬이나 그외 웹브라우저에서는 실행 불가능합니다.

로그인 하고, 프로그램을 다운받습니다.



프로그램이 실행하면 위와 같은 화면이 뜹니다.

바로시작하기

장르/템포 선택 후 시작하기

샘플곡 들어보기


3개 항목이 있습니다.

어느 정도 익숙해지시면 바로 시작하기 누르셔도 됩니다.

일단 장르/템프 선택 후 시작하기를 클릭합니다.


그럼 다음으로 

장르 선택 후 시작하기

템포 선택 후 시작하기

두 메뉴가 뜹니다.


저는 장르 선택 후 시작하기를 눌렀습니다.

스크린샷은 없는데 제가 좋아하는 힙합 장르를 클릭했습니다.

힙합 외에도 락, 발라드, 알엔비, 뉴에이지 음악들이 있습니다. 



음악 빠르기는 힙합스럽게 BPM90으로 선택했습니다.

의외로 제 실력이 모자란 것도 있겠지만, 90bpm은 랩을 그루브 있게 느릿느릿 하거나 타이트하게 쏘아대며 뱉어 되는게 아니면 좀 하기 어렵더군요. 저에겐 bpm 100 전후가 적당했던거같습니다.

아쉽게도 뮤직쉐이크에서는 제공되지 않네요.



그럼 위 화면과 같은 악기들이 세팅됩니다.

매번 누를때마다 랜덤하게 악기 세팅이 바뀌었던걸로 기억합니다.

저는 드럼, 베이스, 서스테인, 스트링이랑 DJ 등이 생겼네요.



드럼 같은 경우는 여러가지 패턴을 쓸 수 있습니다.

일반적이거나, 중간에 뚝뚝 끈기거나, 앞에 쉬거나 등등으로요.

드럼이 계속 같은 루프 돌면 좀 지루하기도 하니 중간중간에 바꿔주는것도 좋습니다.



베이스나 다른 악기들은 그냥 클릭으로 나오고 안나오고 정도 설정할수 있고 상단에 코드 진행으로 자동연주됩니다.

그런데 DJ나 랩 같은 경우는 드럼처럼 클릭한 다음, 원하는 소리를 선택해서 넣으면 됩니다.

올드한 힙합 보면 중간에 break 부분에 디제잉 들어가는걸 들을수 있는데, 그렇게 연출하려는가 보네요.



처음 세팅되는 길이도 2분이 넘어가는 곡인데, 혹시나 더 길게, 혹은 더 짧게 노래를 만들고 싶다면

제일 끝에 있는 셀(?)을 클릭해서 파트 추가, 혹은 파트 삭제를 해줍니다.

전 파트 추가로 노래를 길게 했네요.


그럼, 음악의 코드 진행이 어떻게 되게 할것인지 선택할수 있습니다.

음악 전공자들은 뭐가 이렇게 제약이 많냐 싶으시겠지만, 그냥 힙합 비트 찍는다 생각하시고 진행하면 추천하는 패턴으로 아무거나 클릭해봅니다.



발가락으로 대충 노래 찍어서 만든것을 저장해봅니다.

왼쪽 하단에 menu 버튼을 클릭하면 다양한 메뉴가 뜨는데요.


일단 mp3 다운로드는 저장후에 할수 있기에 저장하기를 클릭해봅니다.




슬롯이 무료로 제공되는건 2곡뿐입니다.

더 가지고 싶다면 캐쉬로 결제해서 구매하시면 됩니다.

그게 아니면 아쉽지만 이전에 곡을 덮어써서 저장합니다.



10년 가까이 방치해온 음악을 덮어써서 없애버렸네요.

다른 장르 음악들도 위와 같은 식으로 제작할 수 있습니다.


올바른 방법은 아닌데, 이렇게 우연에 의해서 곡을 만들다가 결국 좋은 부분이 발견되면, 따로 비트 찍기도 할수 있을거같은 느낌이 듭니다.


아래에는 나무위키에서 발췌한 뮤직쉐이크 용어입니다.

음악 만드는데 반드시 필요한건 아닌데, 프로그램 사용해 보시는데 도움이 되실까 해서 퍼왔네요.


용어


응답신

뮤직쉐이크 뿐만 아니라 모든 컴퓨터 이용자라면 한 번쯤 치를 떨어봤을 "응답 없음"이 나타나면서 뮤직쉐이크가 멈춰버리는 현상입니다. 

뮤직쉐이크를 하지 않는 사람이라도 컴퓨터를 하는 사람이라면 레포트 쓰는데 갑자기 이게 뜬다던가 하는 식으로 한 번쯤은 접해봤을 상황입니다. 

위에 말했던 것과 같이 뮤직쉐이크 유저들에게 최악의 경악을 지르는 최종보스입니다.

그 때문에 유저들이 만든곡들이 많이 날아가는 경우도 있습니다.  거의 평균 14곡이나 날린다고 합니다. 

그래서 유저들이 혹시 응답신 또 올지도 모르니까 미리 저장은 해둡니다.


운영자 추천곡

간단히 말하자면 운영자가 뽑은 최고의 곡입니다.

줄여서 운추곡 이라고 합니다. 뽑히는 유저가 네임드위주로 국한되는 느낌이 강하여 반발이 있었으나 개선이 되기는 커녕 시간이지날수록 악화되어 오래된 유저들은 달관의 경지에 도달하고 있습니다.

운영자 뽑기곡 그런데 요즘은 네임드도 사라지니 그냥 보이는 곡들을 무작위로 뽑는 느낌도 없지 않아 있다고 합니다.


명예의 전당

막장의 증거 운영자가 뮤쉐 내에 최고의 명곡을 선정합니다. 

줄여서 명전이라 합니다. 명예의 전당을 선정하면 캐시 5000원을 줍니다. 

가장 큰 문제점은 원칙적으로는 매달 뽑기로 되어있지만 몇 개월 심하게는 1년을 넘겨도 뽑지 않을 때가 있다는 것입니다. 

풍문에는 "명예의 전당에 뽑힐만한 퀄리티가 없었다"라고 하지만 이전 당선곡과 최근 나오는 신곡의 퀄리티, 뽑는기간의 인터벌을 생각하면 설득력이 없습니다. 현재는 몇년째 뽑지 않는 중이라고 합니다.


인기 쉐이커

가장 활동을 잘하는 쉐이커가 선정됩니다. 줄여서 인쉐

인기 쉐이커로 뽑히면 추천쉐이커로 뽑히지 않는다는 징크스가 있어서 과거에는 뽑힌걸 오히려 괴로워하는 경우가 종종 있었으나 현재는 그 징크스가 깨졌습니다. 

존재감이 희박해서 선정된 기간중에 자신이 걸린줄도 모르고 넘어간적이 있을 정도로 안습한 포지션이 되기도 합니다. 

오히려 인쉐를 뽑혀야 추쉐도 뽑힌다는 공식도 생겨났지만 그거 역시 깨진지 오래이며 지금은 없어졌습니다.


추천 쉐이커

1달에 한번 운영자들이 선정합니다. 

줄여서 추쉐, 추천 쉐이커로 선정되면 캐시로 1000원을 줍니다. 

명예의 전당과 달리 비교적 성실하게 매달 갱신되지만 뽑힌 결과를 보면 추천 쉐이커의 기준을 의심하게 될 때가 많습니다. 그에 대한 결과로 과거에는 추천 쉐이커는 사이트의 분위기를 어느 정도 좌우할 수 있을 정도로 영향력이 컸지만 그냥 소량의 리플이 증가할 뿐입니다. 지금은 사라진 제도이다.


미션 템플릿

1달에 한번씩 제시된 주제와 함께 악기를 미리 정해주고 그걸 만들면 됩니다.


녹음쉐이커

단순히 녹음 한게 아니라 직접 작사/레코딩/믹싱/마스터링/미디 사용 등을 통해 개성적인 곡을 만드는 쉐이커를 뜻합니다. 줄여서 녹쉐라도 불립니다. 녹음쉐이커도 분류별로 나누어지는 경우도 있습니다.


쉐이커

Musicshake+er. 뮤직쉐이크를 하는 사람을 뜻합니다. 이 명칭을 처음으로 사용한 건 다름 아닌 운영자. 

뮤직쉐이크 운영자가 뮤직쉐이크를 즐기는 사람들을 쉐이커라고 부르기 시작하면서 이 명칭으로 굳어졌습니다. 여담으로 뮤직쉐이크에는 자신이 올린 음악을 모두 들을 수 있는 뮤직 플레이어 겸 블로그가 있는데, 이건 쉐이클로그(Shake+blog)라고 부릅니다.


그럼 이렇게 만든 음악의 저작권은 어떻게 될까요?


음악의 저작권

뮤쉐로 만드는 모든 음악은 전부 뮤쉐에 저작권이 돌아간다고 합니다.

음악은 유저가 만들었지만 악기 소리나 보컬 등은 전부 뮤쉐의 소유 하에 있다는 것입니다. 

하지만 싸일런트 뮤직밴드는 저작자의 지적재산권을 인정하여 1회 곡이 판매 될때마다 10%를 캐쉬의 형태로 제작자에게 지급합니다. 일부유저는 종종 자신이 만들었는데 왜 수익분배율이 9:1이냐고하거나 자신이 만들었는데 자신이 만든곡 살때도 캐쉬를 요구하는데 항의하지만 거의 대부분의 기능을 무료에 가깝게 이용하면서 이를 지적하는건 오히려 염치없다는 주장도 상당합니다. 국내뮤쉐의 수입원이 사이트 광고배너와 저 소수유저들의 캐쉬수입이 전부라는걸 생각하면 오히려 동정이 갈 정도로 회사에서는 받아가는게 없네요.


위에 프로그램 소개할때 잠깐 만든 노래입니다. 

진행이나 악기소리 같은게 좀 많이 부족하긴 한데, 그래도 몇초 만에 만들수 있어서 신기하네요.




장점

1. 아주 쉽다.

2. 가격이 저렴하다.(만드는건 공짜고 슬롯이나 mp3 다운로드 가격정도)

3. 그럼에도 그럴듯하게 음악이 만들어진다.


단점

1. 선택할 수 있는 패턴, 악기들이 많긴 하지만 전문가들이 쓰기엔 좀 부족함이 없지 않나 싶습니다.

뮤직쉐이크를 좀 오래 하신분들은 노래가 거기서 거기라는 느낌을 받기도 한다고 하더군요.

2. 8마디? 정도 단위로 연주를 하다보니, 중간에 드럼 연주 같은 걸 커스텀 할수가 없더군요.


노래 만드는데 비싼 돈이 드는 것도 아니고, 재미있게 노래 한곡 만들어보려고 시도해 보는 분들에게 추천드립니다.



출처 : 나무위키, 본인생각

Posted by Joseph514
세상이야기2017. 8. 3. 13:06

-문재인 정권의 8.2 부동산대책




[8.2 부동산대책 여파] “당길 수 없나요” 대출 문의 쇄도

원문보기


재건축 많은 강남, 선수요 몰려. 은행도 잘 몰라...“유권해석을.금융당국 “늘리면 안돼” 경고

부동산 투기를 막기위한 고강도 부동산 방안이 발표되자 시중은행에 대출 수요자들의 문의가 쇄도하고 있다. 개정안이 시행되기 전 대출을 받으려는 선수요 때문이다.

2일 정부가 투기ㆍ투기과열지구에 주택담보인정비율(LTV)과 총부채상환비율(DTI)을 40%로 대폭 강화한다는 방침을 내놓자 대출 수요자들의 마음이 급해졌다. 시중은행 관계자는 정부 발표안이 나온 이날 오후 LTV·DTI 등 규제 강화로 대출을 못받게 되냐는 고객 문의가 빗발쳤다고 전했다.

연말까지 이주가 진행되는 서울 강남구 개포 주공아파트 4단지 인근 지점에는 잔금 대출과 관련한 문의가 쇄도했다. 서울 강남 지역 은행 점포에는 2주택 이상 보유한 ‘투자형’ 고객들 문의가 이어졌다. 또 강남ㆍ송파 등 재건축 이슈가 많은 지역에서는 이번 정부 부동산 규제 세부 내용에 관한 상담이 많았다.

이미 매매 계약을 체결한 이들은 잔금 지급일 전에 강화된 대출 규제가 적용될까봐 “대출을 미리 받을 수 있냐”는 문의가 많은 것으로 전해졌다. 잔금 지급일에 맞춰서 대출 승인이 되면 새로운 LTVㆍDTI가 적용돼 대출 가능한금액이 감소하기 때문이다.

개포동이나 대치동 등 재건축 아파트가 많은 지역에서는 조합원 지위 양도 금지가 주요 이슈였다.부동산 중개업자들은 은행 프라이빗뱅킹(PB) 센터에 연락해 부동산 매매 감소에 대처하는 방안을 묻기도 했다.

은행 관계자들조차 명확히 답하기 힘든 세부 내용을 묻는 경우도 있었다. 각종 예외 조항의 경우 본점에서도 국토교통부나 금융위원회 유권해석이 필요하다며 답변하지 못하는 사례도 있었다.

또 주택담보대출이 있는 주택 보유자가 이사갈 목적으로 다른 집을 사면서 대출을 받는 것이 가능한지도 불확실하다. 실제 대출이 일어날 때를 기준으로 하면 새로운 대출을 받으며 기존 대출을 상환하므로 대출은 1건 뿐이다. 그러나 대출 승인 시점으로 보면 일시적으로 주택담보대출이 2건이 되기 때문에 규제 대상이 된다.

이런 가운데 최종구 금융위원장은 8ㆍ2 부동산대책과 관련해 LTVㆍDTI 등 규정 개정이 완료돼 대책이 시행될 때까지 대출 쏠림현상이 발생하지 않도록 금융권 리스크 관리를 강화해달라고 지시했다. 

LTV·DTI 규제는 감독규정 개정안이 시행된 이후 대출승인분부터 적용된다. 규정 개정완료까지는 최소 2주 이상의 시간이 소요된다. 개정안이 시행되기 이전 대출승인분은 종전 기준이 그대로 적용된다. 집단대출에 대한 LTV·DTI 규제는 대책발표(8월 3일) 이후 입주자 모집 공고되는 사업장 관련 중도금 잔금대출에 적용될 예정이다. 



김태년 "8.2부동산 대책으로 집값상승? 10년 전과 지금은 다르다"

원문보기



중략...

이어 “서울 곳곳에서 뉴타운 개발한다는 명분으로 부동산 투기 심리만 자극한 선례가 있다”면서 “하다못해 2005년 8.31 대책이라고 재산세 중과세 방안을 참여정부가 내놨으나, 당시 한나라당 단체장들이 이걸 다 거부해버렸다”고 지적했다.

나아가 “고가 주택 소유자들에 대한 종부세를 도입했는데 세금폭탄 운운하면서 또 반대를 해버렸다”며 “참여정부 때 각종 투기억제 수단을 도입했으나 지난 10년간 그런 노력을 전혀 하지 않고 오히려 투기 세력들이 부동산 시장을 더 왜곡할 수 있는 기반만 만들었다”고 비판했다.

그는 이혜훈 바른정당 대표가 부동산 가격 상승 원인을 ‘투기보다 물량의 문제’라고 지적한 것과 관련해선 “우리나라 주택보급률은 이미 2010년에 100%를 넘었섰다”며 “그러나 전국 평균 자가주택 소유 비율은 2010년 61.3%에서 2016년 59.9%로 떨어졌고, 서울도 2010년 51.3%였는데 지난해에는 45.7%까지 떨어졌다”고 반박했다.

또한 “MB정부와 박근혜 정부에서 보금자리주택, 행복주택 등 매번 이름이 바뀌진 했지만 매년 25만 호 이상씩은 공급해왔다”면서 “자가주택 보유율은 떨어지고 가계부채율은 늘어난 것은 결국 담보인정비율(LTV), 총부채상환비율(DTI) 완화하고 금리까지 낮춰 다주택자들이 부동산 투기로 들어오는 여건만 만들어줬기 때문”이라고 주장했다.

아울러 “주택 공급이 제한된 상황에서 아파트를 여러 채 보유하고 있는 분들이 버틴다면 득이 될 수 있겠지만, 매년 공적 임대주택을 17만 호씩 꾸준히 공급할 거고, 무주택 서민을 중심으로 정책을 운영할 것”이라면서 “다주택자들이 합리적으로 잘 판단할 것으로 생각한다”고 덧붙였다



여러가지 이야기가 많은데, 8월 2일 이야기가 나온 부동산대책은 투기ㆍ투기과열지구에 주택담보인정비율(LTV)과 총부채상환비율(DTI)을 40%로 대폭 강화한다는 방침인데요. 인터넷에서 이야기가 있던 집 2개, 3개 이상 가진 사람들의 양도세 강화도 이 대책에 포함되는 건지, 별개의 것인지는 모르겠습니다.

서울의 부동산 값이 너무 올랐고, 그것을 잡을 필요는 있었을 텐데요.

일부 뉴스를 보면 이 정책으로는 집값을 못잡는다 거나, 부동산 시장의 빙하기가 올거라는 우려도 있습니다.


사람이 사는데 필요한 의, 식, 주 중에 하나인 주 문제는 꼭 잡았으면 합니다.




Posted by Joseph514
해외생활이야기2017. 8. 3. 12:40

-cover letter와 resume 자동 생성 사이트


해외(영어권)에서 취직하려면 어떻게 해야할까요?

인디드나, 몬스터 같은 구직 사이트를 이용할것입니다.

그러면 해드헌터나 당담자들에게 구직을 신청하려면 어떻게 해야 할까요?

한국의 경우, 이력서나 경력증명서 아니면 코사의 경력 증명서를 냈었습니다.

외국에서는 어떻게 할까요?

이메일로 전송할때 cover letter와 resume(cv)를 보내야 할 것입니다.

아직 본인은 직접 외국 기업에 지원해 본적은 없습니다.

이 cover letter가 무엇인고 하니, 우리 나라로 치면 자기소개서 같은 개념이더군요.

이력서를 받는 사람이 자신을 간략히 알아 볼 수 있도록, 자신의 장점, 경력, 능력들을 포함하여 소개합니다.

그리고 자신이 지원하게 된 동기도 간략히 적습니다.


구글에서 찾아본 바로는 대게 cover letter는 1장, resume는 2~3장 정도로 자신이 지원하는 회사는 분야에 적합한 내용들을 적으면 된다고 합니다.


근데 첨부터 막막하더군요. 어떻게 적어야 할까요?

구글해보면 어마어마한 양의 샘플과 탬플릿들이 나옵니다.

마이크로 워드로 (.doc)작성되었거나 pdf로 된 파일들 가지 각색이었습니다.

근데 커버래터나 레쥬메를 빌더를 통해서 간단하게 만들수 있는 사이트가 있더군요.


아래의 사이트에 들어가봅니다.

livecareer


먼저 진행하면 나중에 아이디를 묻기는 한데, 기본적으로 구글이나 페이스북 아이디로 사용 가능합니다.

페이스북이나 구글 또는 가입해서 진행하시면 됩니다.


cover letter


상단 메뉴에 COVER LETTERS에서 들어가도 되고, 위의 링크대로 빌더에 접근해도 됩니다.

주의하셔야 될게, 만약 한번 실행하신 적이 있으시면 커버레터나 레쥬메를 작성한 정보를 가지고 있습니다.

그래서 처음 커버레터를  만들때는 이름, 경력 여부 등등 입력하는 창이있었는데, 그후로는 안묻더군요.



스크린샷은 못찍었는데, 해당 정보를 입력하면

위와 같은 coverletter를 생성합니다.

오른쪽에 마음에 드는 스타일들을 선택할수 있습니다.



그리고 커버레트 내용중 edit를 누르면, 자세한 정보들을 입력, 수정할 수 있습니다.



cover letter를 입력하고 나면 그다음부터는 자동으로 resume로 넘어가고 로그인해도 이화면으로 넘어가더군요.

상단 메뉴에 RESUME 에서 빌더를 실행하셔도 되고,

resume


링크를 타고 들어가도 됩니다.

커버레터와 다르게 레쥬메는 왼쪽에 디자인이 있네요.

틀이 생성됩니다.

Education and Trainng을 클릭해서 edit 눌러봤습니다.

학력을 입력하는 부분같네요.

그외에도 어떤 회사에 어떻게 지냈는지 입력할 수 있습니다.


물론, 진짜 제대로 COVER LETTER와 RESUME를 작성하기 위해서, 돈 주고 고용하시는 분들도 있습니다.

참고용으로 어떻게 쓸지 막막할때 쓰면 도움이 될거같네요.



커버레터,레쥬메 빌드 사이트: https://www.livecareer.com/







Posted by Joseph514