해외생활이야기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
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. 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
IT이야기/입코딩2017. 5. 3. 19:59

-프로그래밍의 정의에 대해서알아보겠습니다.

"

진정으로 재능 있는 프로그래머에게 있어, 코드를 짜는 것은 사고의 부산물에 지나지 않는다.

For a truly gifted programmer, writing code is a side effect of thought.

-Paul Ford 원문보기

"



확실히 제 생각도 그렇습니다. 제가 재능있는 프로그래머는 아니지만, 코드를 짜는건 사고의 부산물에 불과하다고 생각합니다.

우선 Programming이라 함은 프로그램을 만드는 것을 뜻합니다. 그리고 여기에서의 프로그램은 대체로 컴퓨터에서 동작하는 프로그램을 말합니다. 

일반적으로 프로그래밍이라고 하면 대개 컴퓨터 프로그래밍을 뜻며 기술을 다루는 기술이라고 하기도 합니다.


프로그래밍을 하는 도구를 개발자 도구 또는 개발환경이라고 부르고 (IDE는 그 중 하나입니다) 프로그래밍 언어는 프로그래밍을 하는 방식 또는 절차를 말하며 프로그래밍을 하는 사람이 프로그래머입니다. 

단순히 개발자라고 해도 되지만 이건 범위가 너무 넓습니다.

프로그래밍의 프로그래밍인 메타프로그래밍(대표적으로 컴파일러 자체의 프로그래밍, C macro 작성, C++11 template 작성)이 코드를 자동 생성하는 경우를 제외하면, 프로그래밍은 결국 사람이 해야 합니다. 심지어 메타프로그래밍도 결국은 사람이 해야 하므로 프로그래밍이란 결국 사람의 일입니다. 


이론적으로도 그 유명하신 괴델의 "On Formally Undecidable Propositions of Principia Mathematica and Related Systems"을 적용하면 결국 프로그래밍의 완전 자동화란 불가능하다는 결론을 내릴 수 있습니다. 간략히 설명하면, 모든 명제에 대해 완전 자동화된 증명 시스템이 불가능함을 괴델이 보였고, 그러한 증명 시스템 또한 하나의 컴퓨터 프로그래밍에 속하므로, 모든 프로그램을 자동으로 만들 수 있는 컴퓨터는 존재하지 않는다고 합니다. 그렇다고 이게 영원할 일자리냐 하면 일단 인간에 의해 메타프로그램이 만들어지기만 하면 완벽히 인간의 개입이 없는 것은 아나지만 더 이상의 추가적인 개입은 필요가 없어진다고 합니다.

인공지능의 발달로 인해 프로그래머가 더이상 필요로 하지 않느니 마느니 라는 떡밥중에 자주 나오는 이야기입니다. 단순히 웹화면 짜는정도는 이제 프로그래머가 필요없을수도 있겠죠.

언제 밥줄 끈어질지도 모르니 계속 새로운 기술을 공부해야겠지요.


예전에는 사람이 수동으로 프로그래밍하던 어셈블리어를 이제는 컴파일러가 자동으로 만들어 줍니다. 그러나 사람이 할 일은 줄어들지 않았고 그저 능률만 늘었는데, 이는 구현보다 디자인에 더 집중할 수 있게 돼서 더 대규모의 소프트웨어 프로젝트가 가능해졌기 때문입니다. 물론 여전히 디자인에만 몰두하고 구현은 무시해도 될 정도로 프로그래밍 언어의 세계는 호락호락하지 않은데, 디자인 패턴이라는 것들이 결국은 디자인을 구현으로 옮기는 표준적인 기교들을 소개하고 있다는 것부터가 이를 반증합니다.


대부분, 아니 자주 사용되는 모든 프로그래밍은 라틴 문자를 그 기반에 둡니다. 쉽게 말해 유럽의 알파벳(주로 영어 알파벳)이 프로그램에 쓰인다. 한글이나 한자 등으로 프로그래밍할 수 있는 도구는 극소수에 불과합니다. 이 말은 한글 데이터를 뜻하는 게 아니고 한글 코드를 뜻합니다. 한글데이터는 지금 보는 이화면에서도 잘만 나오고 있습니다.

근데 이런 걸 지원하는 건 기술적으로 '전혀 대단한 것도 없고 정말 바람직하지 않은 시도' 라고 합니다. 

어느 나라 사람이든지 영어 잘 못 한다고 남이 짠 코드를 못 읽진 않지만, 한글이나 한자로 코드를 짠다면 재앙은 정말 끔찍하군요.


아폴로 계획 당시의 소프트웨어 제작 영상이라고 합니다.



이때도 참 프로그래밍이란게 후덜덜하네요.


프로그래밍 언어로는 절차적 언어, 객체지향적 언어 등등 여러 종류가 많습니다.

사람들이 흔히 사용하는 java, c, c++ 외에 웹언어로 php도 있고, javascript 등등 아주 많지요.

이 언어들 덕분에 제가 아직까지 먹고 살고 있습니다. 웹이 무슨 프로그래밍이냐 라는 커뮤니티의 글들을 한번씩 볼수 있는데, 페이스북도, 아마존도 다 웹언어라고 말씀드리고 싶네요.


출처 : 나무위키, 내 생각


Posted by Joseph514