IT이야기/입코딩2020. 6. 15. 04:21

집에서 놀고 있는 안드로이드 공기계폰을 이용해서 웹캠으로 사용해 보겠습니다.

cctv라든지, 웹캠이라든지, 여러가지 용도로 사용 가능해 보이는데요

사용하는 폰은 거의 10년 다되가는 베가 R3입니다. 운영체제는 4.4 (KitKat)로, 현재 나오는 폰들에 비해서속도는 제법 느리나, 웹서버나, 어플 제작 용으로 쓰고 있습니다. 그리고 왠만한 요즘 나오는 게임도 돌아갑니다.

 

우선 구글 플레이스토어 갑니다.

IP Webcam 을 다운받습니다. 무료 버전으로도 일단 작동이 잘되네요.

어플을 다운받은뒤 실행하면, 다른 세부사항은 건드릴것 없이 '연결 설정'에 '로컬 브로드캐스팅'을 선택합니다.

 

자신만이 접속할수 있는 아이디와 비밀번호를 입력합니다. 딱히 몇글자 이상 제한은 없는거같은데 그래도 포트포워딩으로 외부에서 접속할수 있게 열어둘 경우, 보안 문제도 있으니, 제법 긴 문장을 사용하는게 좋을거가텐요.

설정을 완료한 뒤, '서버 시작', '영상 스트림 서버 시작' 버튼을 클릭해줍니다.

그럼 서버가 시작됩니다.

하단에 아이피랑 포트번호가 나올것입니다. 저 아이피의 경우, 내부망이기 때문에 자신의 공유기 안에서만 사용 가능하구요. 우선 테스트를 위해서 웹에서 접속해 봅니다.

.

아까 입력하셨던 아이디와 비밀번호를 입력하면 됩니다.

영상재생기를 브라우저, 오디오 재생기를 Wav로 클릭하면, 하단에 폰에서 찍힌 화면에 출력됩니다.

8080포트라 tomcat으로 jsp 서버 돌릴때 충돌날수는 있겠군요. 아이피 공유기에서 저 아이피랑 포트로 포트포워딩하면 외부에서 접속 가능합니다.

일단 폰 놀리기전에 쓰면 좋을거같네요

Posted by Joseph514
IT이야기/입코딩2017. 9. 17. 14:02

-소스 필름메이커에 대해서 알아보겠습니다.



소스 필름메이커란 영어로 Source Filmmaker입니다. 밸브 코퍼레이션의 소스 엔진 기반 3D 애니메이션, 모델, 비디오 제작 도구라고 하는군요.


원래 밸브 사내에서 게임 영상을 위해 쓰던 툴로 존재 자체는 예전부터 알려졌고, 게이머들 사이에서 일부 기능이 막힌 유출 버전이 돌아다니기도 했다고 하네요. 

그러다가 2012년 7월 11일, 팀 포트리스 2의 파이로매니아 업데이트에서 Meet the Pyro의 공개와 함께 무료로 공개되었습니다.

머시니마 촬영에 필요한 것들은 모두 이 프로그램에서 거의 다 혼자서 할 수 있습니다.

영상 촬영에만 치중되어있는 프로그램이라 개별적인 캐릭터 제작 및 디테일은 마야 같은 3D 제작 프로그램이 필요합니다. 이건 게리모드에도 공통적인 부분입니다.

하지만 이미 제작진이 다 미리 파일을 준비해 놨기 때문에 소품 고갈 문제는 없다고 합니다. 어차피 워크샵에서 직접 제작해 올려주는 유저들도 많습니다.

꼭 영상 제작에만 사용되는 것이 아니라 여러가지 파일들을 모아서 꾸며내 포스터 등도 만들어 낼 수 있다고 합니다.


소스 필름메이커가 공개되기전 영상 제작에 쓰인 게리 모드와 비교되기도 하는데, 그냥 비교하기에는 애매한게 게리모드는 게임이고 SFM은 영상 제작 프로그램입니다. 

애초에 작품 제작에 사용되는 여부에 비교되는 것 뿐이지 웬만해선 게리 모드하고는 비교할 만한 여건도 그다지 없고, 애초에 성격 자체가 다릅니다.

굳이 비교를 하면 게리모드는 기본적인 물리 게임이기 때문에 기초적인 것, 즉 어떻게 무엇을 해야하는지와 그것에 대한 기본적 구성으로 비교적 쉽게 배우고 굳이 영상 제작이나 사진 촬영등의 일이 아닌 다른 놀이도 하며 놀 수도 있습니다. 

SFM은 기본적으로 '제작 프로그램' 이기에 그 자체만이 있을 뿐입니다. 


그렇기에 영상 제작, 포스터 기능을 이용한 사진 촬영 등을 보다 자유롭고 전문적이며 좀 더 높은 퀄리티로 뽑아낼 수 있지만, 그만큼 진입 장벽이 높고 게리모드보다 배우기 어려운 것은 사실입니다.


-소스필름메이커의 장점

매우 쉽습니다. 극초반에 인터페이스는 어려우나 강좌를 보고 따라하면 단편 영상정도는 서너시간이면 만들 정도라고 하는군요.

기본 모델이 풍성합니다. 소스 엔진으로 만들어진 툴이라 밸브사에서 나온 게임들의 거의 모든 프롭, 모델들을 사용할수 있어 따로 구하거나 만들지 않아도 됩니다.

창작마당. 매우 다양하고 유용한 프롭, 모델들이 활발히 업로드 되고 있습니다.


-소스필름메이커의 단점

무료 프로그램의 한계 부족한 모델 부분은 창작마당으로 극복이 가능하지만 그래도 전문 애니메이션 툴과 비교해보자면 역시 렌더링, 그래프 에디터 등 여러부분에서 꽤나 한계가 많은 것을 느낄 수 있습니다.

특히 소스엔진 특유의 클레이 느낌 렌더링은 호불호가 매우 갈리기 때문에 색시 어워드 당선작 등 높은 퀄리티의 창작물은 에프터 이펙트같은 프로그램으로 추가보정한 것이 많습니다.



인터넷 커뮤니티에 한번씩 올라오면 3d 영상들은 이런식으로 제작되는군요.

어떤 능력자들인지 궁금했는데, 저도 강좌를 보고 한번 제작해 보고싶네요.

인디게임 영상 제작같은걸 쓰기에도 좋다고 하더군요.


출처 : 나무위키


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
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
IT이야기/입코딩2017. 8. 2. 09:15

-[게임 수정, 게임 커스텀]모드(MOD)의 정의


-스타1 브루드워에 MotherShip이...?!


인터넷에서 게임을 찾다보면 해당 게임과 유사하지만 뭔가 다르거나, 심지어는 이게 원래 어떤 게임인가 구분이 안되는 버전들이 있습니다. 스타크래프트에 추가로 설치하는 스타드래프트를 예를 들수 있겠죠. 이런걸 MOD라고 하더군요. MOD는 Game Modification의 약자입니다.


커스텀과 동일하게 기존 게임 요소(엔진, AI, 맵 등..)를 유저 입맛대로 변형시켜 만든 2차 창작 컨텐츠를 일컫습니다. 이를 만드는 사람을 모더라고 합니다.

넓게는 단편적인 맵이나 C나 Lua 파일을 일부 손본 플러그인, 모델 몇 개를 변형했다는 것만으로 MOD라고도 부릅니다. 좁게는 그저 개별적인 부품, 애드온(Add-on)으로 부르기도 하고, MOD 자체를 이런 부품들이 합팩마냥 복합적으로 조립된 변형 게임으로 칭하기도 합니다.


독립적인 구동이 가능한 인디 게임과 얼핏 착각하기 쉽지만, 스탠드 얼론 형식으로 나오지 않는 한 대부분의 MOD들은 해당 본편의 게임이 있어야 구동 된다는 구분점이 있습니다. 

설령 독립 구동이 가능하다고 해도 근본적으로는 원본 게임의 요소를 가져다 썼으니 '독립'이 아니므로 인디 게임으로 쳐주지 않습니다. 그래서 대다수의 MOD들은 겸사겸사 자원절약 차원에서 본편의 모델, 텍스쳐, 맵등을 MOD 안에 끌어와 그 일부로 재활용하기도 합니다.


게임을 변형한다는 입장에서 해당 게임의 구동원리에 대해 직/간접적으로 알게 된다는 장점으로 개발자를 게임회사에서 스카우트하기도 합니다. 물론 MOD 만들었다고 해서 모두 뽑는건 아니고, 대부분 게임성이 뛰어나거나 유저들 사이에서 호응이 높을수록 뽑힐 가능성이 높습니다. 

대개 무료 배포지만 유료로 판매하는 경우도 있고, 아예 독립된 게임으로 발매하는 경우도 있습니다. 

대표적인 케이스가 카운터 스트라이크와 데이 오브 디피트


제작사에서 마음대로 자신의 게임을 고쳐 쓰라고 MOD 제작용 툴을 따로 내놓기도 합니다. 

베데스다 게임 스튜디오에서 내놓는 RPG들(엘더스크롤 시리즈, 폴아웃 시리즈 등)이 대표적인 예. 

밸브도 소스 엔진용 개발 툴인 소스 SDK라는 이름의 툴을 따로 내놓고, 이 엔진으로 제작된 게임을 하나라도 구입하면 이 툴을 사용할 수 있도록 해 놓았습니다. 

또는 동굴 이야기의 Sue's workshop이나 Cave editer같은 것들이 있습니다. 이런 툴이 있을 경우 접근성이 좀 더 쉬워지기 때문에, MOD의 양은 엄청나게 늘어납니다.

이러한 MOD들을 전문적으로 다루는 웹사이트인 Moddb라는 곳도 존재합니다.

기준이 좀 까다로운데 이 사이트에는 Mod 란과 Add-on 란이 따로 구분되어 있고 맵이나 모델 파일 몇 개를 Mod랍시고 올려놓으면 욕을 얻어먹기도 하며 유즈맵도 예외가 아니라고 합니다.


MOD에 의해서 게임의 수명이 훨씬 늘어나기도 합니다. 스타크래프트가 이번에 리마스터를 하긴 했지만, 인터넷에 보면 완전 뜯어고 친 버전들이 존재하며 아직도 나오고 잇습니다. 그리고 국산 게임중에 쥬라기원시전2를 위자드소프트사에서 제공해 주지 않을때, 카페에서 드래프트를 만들어(개발자에게 직접 툴을 받았다는 이야기도 있는데 모르겠습니다..) 명맥을 유지해가기도 했습니다.


MOD 개발은 여느 게임 개발이 그렇듯 도중에 실패/취소하거나 사장될 가능성도 있지만, 새로운 방식의 게임을 미리 유저들에게 시험해볼수 있다는 장점이 있습니다. 

MOD의 장점은 일단 상용화 게임을 기반으로 하되 여기에 개인 개발자의 자유로운 창작력이 더해져서 원작에서는 만나볼 수 없는 신선한 요소를 만나게 해줄 수 있다는 점이 있습니다. 

혹은 원작자가 미처 생각지도 못한 요소를 찾아내거나 주입할 수 있게 함으로서 색다른 경험을 느끼게 해줄 수도 있습니다.  또한 대다수가 개발에 대한 열정과 애정 아래 무상으로 개인 시간을 쪼개 만드는 만큼 상용 게임 개발사에 비해 개발 비용, 개발 일정으로부터 자유롭습니다.


단점은 상술 했던 걸 반대로 뒤집은 것인데, MOD 제작도 나름대로 중노동인데다 개인 시간과 사비를 쪼개 만들곤 유저들에게 공짜로 배포하니 사실상 자선사업이나 다름없습니다. 

특히 개인의 희생으로 이루어지는 작업임에도 그것을 존중하지 않는 일부 유저들의 행동은 모더들에게 많은 고통을 줍니다. 모드 적용에 대한 수많은 질문글, 쏟아지는 요구사항 또한 질색할만한 일입니다. 

때문에 처음엔 다들 의욕충만이었을지 몰라도 시간이 지나면 상당수가 금전 혹은 물질적 보상을 기대하기 힘든 개발 환경에 지쳐가는건 물론 목구멍이 포도청이라고, 생활고를 이기지 못해 그만 둘 수 있습니다. 

다행히도 이 문제는 외국의 경우 기부 문화가 잘 발달되어 있어 제작자가 요청하면 팬들이 자발적으로 기부금을 보내는 방식과 베타 때까진 무료였다가 나중에 유료로 전환하는 방법으로 해결이 가능합니다.

단, 이 경우는 원 개발사나 퍼블리셔와의 적당한 사전 협의를 거쳐야 하므로 생각만큼 쉽진 않습니다. 또한 팀 자체가 열약한 만큼 사후 관리를 지속적으로 잘 하기 힘듭니다.


한국은 MOD 제작 환경이 절망 그 자체로, 상기한 문제에 겹쳐 사회적으로 게임 자체를 죄악시 하는데다 국내 게임학과에서도 국내 개발사들이 경력으로도 쳐주지 않으니 연습 삼아 하는 것도 기피합니다.

한국 유저들 또한 기부 요청을 해도 상당수가 나중에 공짜로 할 수 있는데 굳이 기부를 해야 되느냐, 상용화를 해도 상용화 이전 버전이나 복돌로 즐기는 수준인지라 그들만 바라보며 개발에 전념하긴 힘듭니다. 

때문에 한국의 MOD 개발 팀들은 서서히 혹은 초장부터 유저의 기대에 부흥하려 움직이기보단 그저 여유나 의욕이 있을 때만 쉬엄쉬엄 하는 수준인지라 해외처럼 상용 게임에 맞먹는 대작으로 발전시킬 개발력은 없습니다.

게다가 엘더스크롤 5: 스카이림처럼 체형 및 의상, 그래픽 향상 같은 모드 다수를 애드온 달듯 게임에 중첩 적용할 수 있는 게임들에선 닥치는 대로 설치하다 보면 모드 간에 충돌이 발생, 게임에 오류나 랙이 발생될 수 있습니다. 

심하면 게임 자체를 진행하지도, 실행하지도 못해 아예 재설치해야 하는 경우도 있으니 유의해야 합니다.


여담으로 MOD는 단일 단어(modification)의 약자이기 때문에 굳이 대문자로 쓸 필요는 없다고 합니다. 

실제로 본토 쪽에서도 Mod나 mod로 표기하는 경우가 일반적이지만 우리나라에서는 가독성 등을 이유로 대문자로 표기하는 경우가 많고, 심지어 유명 게임 개발사조차 한글 표기나 발음이 같다는 이유로 게임 진행 방식을 뜻하는 Mode를 이 단어로 기재하는 초보적인 실수를 범하기도 하는데 

Mode 항목 보면 알겠지만 위 수학쪽과 달리 특히 MOD 관련 문화가 발달된 해외 게임 쪽에서 이 둘을 엄연히 별개의 단어로 구분하고 있습니다. 또한 모드를 공식적으로 지원하는 게임에서는 한글 패치는 불법이 아닙니다.



모드로 유명한 게임은 더워치, 둠, 동굴이야기, 토탈 워, 마인크래프트, 문명5, 발더스 게이트, 삼국지조조전, 스타크래프트(드래프트), 에이지오브엠파이어3, 엑스컴, 커맨드앤컨커, 폴아웃, 하프라이프, GTA 5, 앨더스크롤(스카이림) 등이 있습니다.

워크래프트3, 스타크래프트2의 경우 제공하는 맵에디터에서 게임 자체를 수정할 순 없으나 유즈맵 등에 한해 게임 엔진 수준으로 MOD에 가까운 기능을 지원합니다.

스타크래프트1 브르드워의 경우는 MOD가 드래프트라는 이름으로 나오고, EUD맵도 맵에 한해서는 거의 MOD 수준이지만, 드래프트만 MOD라 그러고 EUD는 그냥 유즈맵으로 보는거같습니다.


모드(MOD)가 기존에 있던 게임을 수정하는것이라 별거 아닌거 같아 보여도 회사에서 제공해 주는 MOD 툴이나, 오픈소스가 아닌 경우, 게임을 '리버스 엔지니어링' 수준으로 뜯어봐야 되기에 고치기는 쉽지는 않습니다. 능력자 분들이 수정하기 쉽게 툴을 만드시기도 합니다. 


예전에 MOD라고 하긴 민망한 스타크래프트 캠페인 에디터로 이런 저런 RPG 유즈맵을 만들어보곤 했었는데, RPG 쯔꾸르 만지는 느낌으로 게임이 어떤 식으로 구성 되 있고, 어떻게 바꿀 수 있는지 만져보는 것도, 자체 게임 제작과는 별개의 또 다른 재미이지 않나 싶네요.


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

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

-알고리듬 체크리스트


알고리즘? 알고리듬?

영어로는 algorism보다는 algorithm(알고리듬)으로 훨씬 더 자주 쓰지만 한국에서는 알고리듬보다는 알고리즘의 사용 빈도가 높다고 합니다.

이 포스팅에서는 알고리듬으로 이야기하겠습니다.



인터넷에서 검색해서 알고리듬 얼마나 공부했는지 알고 있는지 체크 리스트가 있네요.

이중에서 몇 개를 할 수 있을까요...

사실 학부생 때 배운 게 전부다 보니..기억이 안 납니다.

출처는 사내 SW검정 Professional 양성과정 라고 적혀있는데, 본 글은 작도닷넷에서 퍼왔습니다.

[알고리듬 기본]

1. 재귀함수 설계, 구현

2. 정수, 실수형 변수의 메모리 크기와 구조를 이해, 활용

3. 비트연산자(&, |, ^, <<, >>, ~) 이해, 활용

4. 10^19 이상의 매우 큰 정수를 더하고, 빼고, 곱하는 프로그램을 API 활용하지 않고 구현


[탐색 및 정렬]

5. 깊이 우선 탐색과 너비 우선 탐색 이해, 활용

6. 자신이 설계한 탐색 알고리듬의 시간복잡도 계산

7. 이분 탐색 이해, 활용

8. Bubble sort 구조와 원리 이해, 활용

9. Quick sort와 Merge sort의 장단점 이해, 활용

10. Counting sort와 Radix sort 이해, 활용

11. 히스토그램에서 최대 면적을 가지는 부분 직사각형을 선형 시간내에 구하기


[자료구조]

12. Stack, Queue, Double-ended-queue 이해, 활용

13. Vector(ArrayList)와 List(LinkedList) 장단점 이해, 활용

14. Heap(Priority Queue) 이해, push, pop 등의 연산 활용

15. DSU(Disjoint Set Union, 서로소집합) 개념 이해, Union Find 경로압축기법 구현

16. Indexed Tree 및 Sparse Table 이해하고, 값이 변하는 배열에서 구간 합, 구간 최소/최대값 구하기


[확률 이론]

17. 순열 이론(중복 순열, 원 순열, 염주 순열, 완전 순열) 이해, 활용

18. 조합 이론(중복 조합, 이항 정리, 파스칼 삼각형, 카탈란 수) 이해, 활용

19. 조건부 확률(베이스 정리) 이해, 활용

20. 이항분포(Binomial Distribution), 정규분포(Gaussian Distribution) 이해, 활용


[이산 수학]

21. 에러토스테네스의 체를 이용하여 오일러 피 함수 값 구하기

22. 페르마의 소정리를 이해하고, 이를 이용하여 모듈러에서 곱셈의 역원 구하기

23. 확장 유클리드 호제법 이해, 활용

24. 중국인의 나머지 정리 이해, 활용

25. 포함 배제의 원리를 이용하여 여러 문제에서 경우의 수를 계산


[그래프]

26. 인접 행렬 및 인접 리스트의 장단점 이해, 활용

27. Dijkstra, Floyd-Warshall, Bellman-Ford algorithm 이해, 활용

28. Prim's algorithm, Kruskal's algorithm 이해하고 이를 이용하여 MST(Minimum Spanning Tree, 최소 비용 신장 트리) 구하기

29. DAG(Directed Acyclic Graph)를 이해하고, 위상 정렬 구현

30. LCA(Lowest Common Ancestor, 최저 공통 조상) 이해하고 이를 시간복잡도 log n 시간에 구현

31. 양방향 그래프에서 절단점과 절선 구하기

32. Network Flow 이론 이해, 활용


[문자열]

33. 문자열 매칭을 KMP 알고리듬, Rabin-Karp fingerprinting, Suffix Array & LCP 이용 구현

34. 여러 문자열을 하나의 Trie로 나타나기

35. Aho-Corasick algorithm 구현


[계산 기하학]

36. CCW(Counter ClockWise)와 벡터 외적의 원리 이해, 구현

37. 단순 다각형 면적 구하는 사선식 원리

38. 두 선분의 교차 여부, 다각형 상의 점의 위치를 CCW 이용 구현

39. Convex hull을 CCW 이용하여 시간복잡도 n log n 이내에 구현

40. Plane Sweeping 이용하여 직사각형 합집합의 면적 구하기


[동적 계획법]

41. 동적 계획법에서 상향식 접근법과 재귀식 접근법의 차이 및 장단점 이해, 활용

42. 동적 계획법의 요소(기억공간, 점화식, 기저 조건) 이해 및 상황에 맞게 적용

43. 널리 알려진 동적 계획법 문제(Knapsack, LIS, Bit Mask DP) 해결


출처: 사내 SW검정 Professional 양성과정




Posted by Joseph514
IT이야기/입코딩2017. 7. 11. 10:25

-[IT용어]스프링부트(Spring Boot)


요 몇년전부터 스프링 프레임워크가 아니라 스프링 부트라는 이름을 어디선가 들어봤었습니다.

그래서 무언가 찾아보니 스프링 프레임워크에 잡다하게 xml 설정하고, 세팅할 필요없이 손쉽게 만들수 있다고 하더군요. 인터넷에 예제를 보거나 Github에 보면 스프링 부트로 만든 게시판이나 블로그 소스들 예제를 볼수 있습니다.

설정을 최소하 하여 pom.xml, web.xml 수정하고 왜 안되는지 구글링해보고 하던 시간을 상당히 단축시킬수 있다는 이야기군요.



Spring Tool Suite에서 발췌하였습니다.

링크


영어 능력이 별로 안되다 보니, 긁어서 구글번역을 돌리고 몇몇 말이 안되는 부분만 수정했습니다.



제작 준비가 된 Spring 애플리케이션을 구축하는 것에 대한 의견이 많습니다. 

Spring Boot는 컨벤션보다 컨벤션을 선호하며, 가능한 한 빨리 당신을 기동시키고 실행할 수 있도록 고안되었습니다.

Spring Boot를 사용하면 "바로 실행"할 수있는 독립 실행 형, 프로덕션 급 Spring 기반 응용 프로그램을 쉽게 만들 수 있습니다. 우리는 Spring 플랫폼 및 써드 파티 라이브러리에 대한 의견이 많으므로 최소한의 소동으로 시작할 수 있습니다. 대부분의 Spring Boot 응용 프로그램은 Spring 구성이 거의 필요하지 않습니다.


Features

독립 실행 형 Spring 애플리케이션 작성

Tomcat, Jetty 또는 Undertow를 직접 임베드 (WAR 파일을 배치 할 필요 없음)

의견이 분명한 '스타터'POM을 제공하여 Maven 구성을 간소화하십시오.

가능한 경우 자동으로 Spring 설정

메트릭, 상태 확인 및 외부 구성과 같은 프로덕션 기능을 제공합니다.

XML 생성을위한 절대 코드 생성 및 요구 사항 없음

참조 가이드에는 모든 기능에 대한 자세한 설명과 일반적인 사용 사례를위한 광범위한 하우투가 포함되어 있습니다.


Quick Start

자바 개발자 인 경우 start.spring.io를 사용하여 기본 프로젝트를 생성하거나 아래 "빠른 시작"예제를 따르거나 참조 설명서 시작 안내서를 읽으십시오.

프로젝트에서 spring-boot를 사용하기 시작하는 데 권장되는 방법은 종속성 관리 시스템을 사용하는 것입니다. 

아래의 스 니펫을 복사하여 빌드에 붙여 넣을 수 있습니다. 

도움이 필요하다? Maven 및 Gradle을 사용하여 빌드하는 방법에 대한 시작 안내서를 참조하십시오.


<parent>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-parent</artifactId>

    <version>1.5.4.RELEASE</version>

</parent>

<dependencies>

    <dependency>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-web</artifactId>

    </dependency>

</dependencies>


스프링 부트 CLI

스프링 부트는 스프링으로 신속하게 프로토 타입을 작성하려는 경우 사용할 수있는 명령 행 도구와 함께 제공됩니다. 

Groovy 스크립트를 실행할 수 있습니다. 

즉, 코드가 너무 많이 작성되지 않아도 익숙한 Java와 유사한 구문을 사용할 수 있습니다. 

Spring Boot CLI를 설치하려면 주요 문서의 지침을 따르십시오.


저 사이트에 들어가보면 레퍼런스들도 제공되고 있네요.



스프링 부트에 관한 설명입니다.


이클립스에 STS를 설치하거나, STS용으로 나온 이클립스를 받아서, Spring Starter Project를 실행해서 만들면 됩니다.

이렇게 편하고 좋은 방법들이 나오는데, 저는 익숙하지 않다고 안쓰고 있었네요.




Posted by Joseph514
IT이야기/입코딩2017. 7. 7. 13:47

-[IT용어]전자정부 표준프레임워크


간혹, 속칭 보도방이라 불리는 인력업체에서는, 어디서 주워 들었는지. 전자정부프레임워크 할줄 아느냐 라고 물어보는 경우가 있습니다.

요즘은 스프링 안쓴다고, 전자정부프레임워크 쓴다고. 마치 제가 시대에 뒤떨어져 있는 사람인양 이야기 하는데 막상 털어보면 스프링과 큰 차이는 없습니다.

스프링 기반에, 플랫폼을 표준화해서 만든 프레임워크입니다.



전자정부 표준프레임워크는 대한민국의 공공부문 정보화 사업 시 플랫폼별 표준화된 개발 프레임워크를 말합니다.

JAVA 언어는 사설 표준으로 우후죽순으로 업체의 자체 프레임워크를 개발하여 적용되다 보니 각 개발프레임워크의 구조 및 수준의 차이에 의하여 여러 가지 문제점이 발생할 수 있습니다.

현재 배포되고 있는 프레임워크는 과거 JAVA 플랫폼 기반의 정보화 구축 사업 시 수행업체의 자체 개발프레임워크를 사용하여 정보시스템이 구축되어 유지보수 등 여러 가지 문제점이 있어, 2008년에 스프링 프레임워크 등의 오픈소스를 기반으로 웹 사이트 개발 시 필요한 여러 가지 기능들을 미리 구현해 놓았으며 최근에는 모바일 개발을 위한 프레임워크도 출시되었습니다.


전자정부 프레임워크 홈페이지


-역사

2009년 대한민국 안전행정부에서 국내 공공부문 국가정보화사업(전자정부) JAVA 플랫폼 기반의 추진 시에 개발 프레임워크의 표준 정립으로 응용 소프트웨어의 표준화, 품질 및 재사용성을 향상을 목표로 하며 특정 업체의 종속성 심화와 사업별 공통 컴포넌트 중복 개발을 막기 위해 개발하여 아파치 라이선스 2.0으로 배포하고 있습니다.

2007년 12월에서 2008년 6월까지 정보화 전략계획(ISP)을 수립하였고 2008년 11월부터 2009년 11월까지 1, 2단계 구축사업을 추진하여 대기업(삼성 SDS, LG CNS, SK C&C) 및 중소기업(티맥스소프트 등 6개)이 공동으로 JAVA 플랫폼 기반의 표준프레임워크 실행/개발/관리환경 및 공통 컴포넌트 172종을 개발하여 1.0 버전을 발표하였습니다.

그 후 2010년 4월부터 11월까지 3단계 구축사업을 통해 공통 컴포넌트 47종을 구축하고 CMMI 인증을 획득하였으며 2011년 4월부터 11월까지 4단계 구축사업을 통해 오픈소스의 버전 업그레이드, 경량화, 모바일 프레임워크 등을 구축하고 2.0 버전을 발표하였으며 배치 프레임워크를 포함한 2012년 5단계 구축사업이 완료되었다. 2015년 6월 표준프레임워크 버전 3.5가 배포되었습니다.


-특징

개방형 표준 준수 : 오픈소스 기반의 범용화되고 공개된 기술의 활용으로 특정 사업자에 대한 종속성 배제

상용 솔루션 연계 : 상용 솔루션과 연계가 가능한 표준을 제시하여 상호운용성 보장

표준화 지향 : 민, 관, 학계로 구성된 자문협의회를 통해 표준화 수행

변화 유연성 : 각 서비스의 모듈화로 교체가 용이하며 인터페이스 기반 연동으로 모듈간 변경 영향 최소화

편리하고 다양한 환경 제공 : 이클립스 기반의 모델링(UML, ERD), 에디팅, 컴파일링, 디버깅 환경 제공


기본적으로 사용되는 게시판 등의 기능이 예제로 다 정의되어 있습니다.


-출처 위키피디아



잠자리 채널이라는 유튜브 방송으로 강좌를 보았는데, 엄청 쉽게 잘 설명해 주시더군요.

확실히 세팅하고, 예제 파일 뜯어보느라 할애할 시간에 좀 더 개발에 집중할 수 있게 도와줍니다.

Posted by Joseph514
IT이야기/입코딩2017. 7. 6. 10:21

-웹개발자를 위한 로드맵


GITHUB 내용을 보시려면 아래를 클릭하시면 링크됩니다.


WEB DEVELOPER ROADMAP - 2017


github 내용을 좀 발췌했습니다.




2017 년 웹 개발자가되기위한 로드맵

아래에는 취할 수있는 경로와 프론트 엔드, 백엔드 또는 디프 로프가되기 위해 채택하고자하는 기술을 보여주는 일련의 차트가 있습니다. 

나는 이 대학의 학생들과 공유 할 것을 원했던 옛날 교수에게 이 차트를 만들었습니다.

어쨌든 개선 할 수 있다고 생각한다면 제안하십시오.


Roadmap to becoming a web developer in 2017

Below you find a set of charts demonstrating the paths that you can take and the technologies that you would want to adopt in order to become a frontend, backend or a devops. 

I made these charts for an old professor of mine who wanted something to share with his college students to give them a perspective.

If you think that these can be improved in anyway, please do suggest.


기부

로드맵은 바르사 미크 (Balsamiq)를 사용하여 제작되었습니다.

프로젝트 파일은 / project-files 디렉토리에서 찾을 수 있습니다. 

로드맵을 수정하려면 Balsamiq을 열고 Project> Import> Mockup JSON을 클릭하면 로드맵이 열리고 업데이트되며 readme에서 이미지를 업로드 및 업데이트하고 PR을 작성합니다.


향상된 풀 요청 열기

문제에 대한 토론

단어를 퍼트립니다.

kamranahmed.se@gmail.com 또는 Twitter URL에서 나에게 직접 연락주세요.


Contribution

The roadmaps are built using Balsamiq. 

Project file can be found at /project-files directory. 

To modify any of the roadmaps, open Balsamiq, click Project > Import > Mockup JSON, it will open the roadmap for you, update it, upload and update the images in readme and create a PR.


Open pull request with improvements

Discuss ideas in issues

Spread the word

Reach out to me directly at kamranahmed.se@gmail.com or Twitter URL


웹개발자들을 위해 Front-end, Back-end, DevOps에 대한 로드맵이 씌어져 있습니다.

project-files 라는 폴더 안에, json 형태로 값이 담겨져 있고. README.md 화면에 차트로 표시되게 되어 있는거 같네요.프로그래밍이라는 거대한 나무에서도 웹개발자는 극히 일부의 나뭇가지일 뿐인데, 그 나뭇가지들이 잔가지를 쳐서 뻗어나간 분야들도 엄청 다양하네요.

어떤식으로 어떤걸 순차적으로 공부해나갈지 참고해볼때 유용할거같아서 한번 공유해봅니다.

Posted by Joseph514