IT 잡학사전

IT 2022. 11. 10. 16:06

- 시스템 유지·보수, 안드로이드 앱 개발을 하고 싶다면? 자바 
자바는 우리나라에서도 유명하고 실제로 많이 쓰는 언어야. 주로 정부나 은 행, 기업에서 많이 사용하지. 그래서 자바를 다룰 줄 알면 취업 시장에서 굉장 히 유리해. 아무래도 관련된 채용 공고가 다른 언어에 비해서 많은 편이거든. 그렇다면 자바는 취업 시장에서 완전 짱일까? 아니야. 스타트업에서는 자바 개발자를 많이 구하지 않아. 왜냐하면 자바는 역사가 아주 긴 언어여서 오래 된 프로그램을 보수하는 데 더 많이 쓰이거든. 스타트업에서는 최신 기술을 주로 사용하니까 자바 개발자를 많이 채용하지 않는 거야. 정리하자면 자바는 우리나라 대다수 회사에 취업할 때 유리한 언어야. 자바에 기반한 전자 정부 프레임워크를 사용하는 회사가 많거든.
물론 안드로이드 애플리케이션 개발에도 쓰이므로 안드로이드 개발자가 되고 싶다면 자바를 공부해야겠지. 안드로이드 개발 얘기가 나왔으니까 말인데, 요즘 이쪽 진영에서는 자바와 코틀린을 모두 사용해. 코틀린이 뭐냐고? 코틀린은 젯브레인즈(JetBrains)에서 개발했고, 그 이후에는 구글에서 안드로이 드 공식 언어로 채택했어. 그런데 코틀린은 프로그램을 실행하기 전에 자바로 완전히 변환되는 특징이 있어서 자바를 알면 코틀린도 빠르게 배울 수 있어. 코틀린은 자바에 비해 나중에 나온 언어라 개발자에게 비교적 편리한 문법이 많은 것도 특징이야.
- 웹 개발, 인공지능 개발 등 범용성이 매우 넓고 초보자에게 강추! 파이썬
이번에 설명할 언어는 그 유명한 파이썬이야. 파이썬은 프로그래밍 초보자가 입문하기에 가장 좋은 언어야. 왜냐고? 파이썬은 아주 다양한 용도로 사용할 수 있거든. 그리고 현재 가장 많이 사용하는 언어라서 일단 배워 두면 쓸모가 많을 거야. 물론 언어는 시대에 따라 인기가 달라지기는 해. 하지만 당분간은 파이썬이 가장 인기 있는 언어일거야. 파이썬은 머신러닝도 할 수 있고 데이 터 과학 분야에서 사용할 수도 있어. 그뿐일까? 웹 스크래핑, 웹 사이트 만들 기, 서버 만들기, 유용한 애플리케이션 만들기 등등 엄청나게 많아. 언어 하나 만 배워도 여러 가지를 만들어 볼 수 있으니 호기심에 언어를 배우려고 하는 사람에게는 파이썬이 딱이야. 간단한 프로그램을 만들기에도 적합해.
- 웹 개발을 하고 싶다면? 자바스크립트 
자바스크립트는 HTML과 CSS까지 합쳐서 생각하는 것이 좋아. 요 세 녀석은 세트 느낌이 있거든. 아무튼 이 녀석들을 줄여서 HCJ라고 할게. 웹 사이트나 웹 앱을 만들려면, 다시 말해 웹 프로그래밍을 하고 싶다면 HCJ를 배우도록 해. 물론 다른 언어로도 웹 프로그래밍 일부는 할 수 있지만 만약 웹 프로그래 머를 목표로 한다면 무조건 HCJ를 배워야 해. 특히 자바스크립트는 잘 다룰 수 있어야 해. 왜냐고? 자바스크립트는 버튼을 누르면 데이터를 전송하거나 메뉴를 접었다 폈다 할 수 있는 등 동적인 웹 사 이트를 만들 수 있게 해주거든. 심지어 서버 쪽의 코드, 백엔드 영역도 개발할 수 있어, 자바스크립트도 파이썬처럼 다양한 목적으로 코딩할 수 있는 언어이 기 때문이야. 만약 웹 프로그래밍 분야의 개발자가 될 생각이라면 HCJ를 공 부하되 자바스크립트는 특히 더 열심히 공부하기를 추천할게
- 가전 제품에 이식되는 프로그램을 만들고 싶다면? C 언어
우선 C 언어! C 언어는 제한된 상황에서 최대 성능을 내기 위해 만들어졌어. 그래서 개발자들은 C 언어를 '기계가 소통하는 방식에 매우 가까운 언어' 라고 이야기하기도 해. 주변에서 흔히 볼 수 있는 가전제품 있지? 에어컨이나 TV, 스마트 냉장고 같은 기기에 들어 있는 프로그램이 바로 C 언어로 프로그래밍 한 거야. 
- 컴퓨터의 자원을 효율적으로 쓰는 C 언어
C 언어는 1972년에 탄생했어. 무려 50년 이나 되었지! C는 자바, 자바스크립트, 파 이썬, PHP, 고와 같은 수많은 언어에 영향 을 준 중요한 언어야. 50년 전에 개발하다. 보니 C 언어만의 특징이 있어. C 언어가 처음 등장했을 때 컴퓨터는 어땠을까? 지금처럼 빠르지 않았지.
그래서 C 언어를 개발할 때에는 자원을 효율적으로 쓰면서도 최대 성능을 내 는 프로그램을 만들 수 있어야 한다는 것을 최우선으로 했어. 그리고 이 목적 을 달성하기 위해 C 언어는 메모리 자원을 정밀하게 조절할 수 있어야 했지. 쉽게 말해 C 언어는 자원이 열악한 상황에서 사용하기 좋은 언어야.
- 마이크로소프트에서 만든 C# 언어 
C#은 C, C++과 이름은 비슷하지만 완전히 다른 언어야. 심지어 C#은 C도 C++도 아닌 자바와 비슷한 언어야. 또, C# 언어는 개발자가 개발한 게 아니 라 기업에서 필요해 만들었다는 거야. 그래서 만약 누군가 나에게 “C#은 어 떤 언어인가요?”라고 묻는다면 한 줄로 이렇게 답할 거야.
"C# 언어는 마이크로소프트가 만든 자바 언어라고 생각해도 좋아!"
- C, C++, C# 언어 정리하기
* C 언어는 세 언어 가운데 가장 오래되었고, 메모리 자원을 효율적으로 사용하면서도 실행 속도가 빠르다. 
* C++은 C를 포함하는 언어로, 절차 지향이면서도 객체 지향이다. 실행 속도는 C 언 어와 비슷하다.
* C#은 마이크로소프트에서 만든 언어로, 다양한 분야에서 사용할 수 있다. 실행 속 도는 세 언어 가운데 가장 느리다.
- 파이썬으로 할 수 있는 개발 분야
* 인공지능 & 데이터 분야: 케라스, 텐서플로, 판다스 등
* 웹 개발 분야: 장고, 플라스크 등
* 업무 자동화 분야: 엑셀, 메일 보내기 등
* 이미지 처리 분야 · 게임 분야
* GUI 분야 등
- 그래서 대체 자바와 어떻게 완벽하게 호환될 수 있냐고? 100% 호환이란 게 뭔지 이야기를 안 했네. 호환이란 자바 코드에서 코틀린 코드를 부를 수도 있고, 반대로 코틀린 코드에서 자바 코드를 부를 수도 있어 야 한다는 뜻이야. 그리고 이 모든 것이 가능한 이유는 자바 가상 머신 때문이야. 여기서 조금 어려운 이야기를 할 텐데 그래도 최대한 쉽게 설명해 줄 테니까 들어 봐.
- 컴필레이션과 인터프리테이션의 차이 간단히 짚고 넘어가자
먼저 컴필레이션(compilation)과 인터프리테이션(interpretation)이라는 개 념을 알아야 해. 이건 [에피소드 08]에서도 설명했는데 한 번 더 설명해 줄게.
컴필레이션은 코드 전체를 받아서 한번에 기계어로 해석하는 것이고, 인터프리테이션은 코드를 실시간으로 기계어로 해석하는 것을 말해. 그래서 컴필레 이션 방식으로 동작하는 코드가 인터프리테이션 방식으로 동작하는 코드보다 빨라. 그런데! 컴필레이션은 플랫폼에 의존해. 무슨 말이냐면 코드가 실행될 환경(플랫폼)이 달라지면 컴필레이션은 그때마다 개발자가 컴파일 과정을 한 번씩 실행해 줘야 해. 왜냐고? 운영체제마다 각각 서로 다른 기계어를 쓰니까 말이지. 반대로 인터프리테이션은 인터프리터라는 녀석이 알아서 실시간 번역을 해주니 우리는 새로 컴파일을 실행해 줄 필요가 없어. 
- 컴필레이션과 인터프리테이션을 다 활용하는 자바
 그리고 자바는 앞에서 소개한 두 녀석을 다 사용해. 무슨 말이냐면 여러분이 자바로 코드를 작성하잖아? 그러면 컴파일을 해. 근데 컴파일해서 얻는 결과 물은 기계어가 아니야. 자바 바이트 코드라는 것이지. 그리고 이 자바 바이트 코드는 다시 윈도우, 리눅스, 맥OS에서 실행될 때 자바 가상 머신이라는 녀석 이 해석해서 각각의 기계어로 번역해 줘.
이런 자바의 특징 덕분에 코틀린이 자바와 100% 호환될 수 있어. 어떻게? 코 틀린을 자바 바이트 코드로 컴파일하기만 하면 되거든. 그러면 결국 실행에 쓰이는 것은 자바 바이트 코드니까 둘 사이에는 아무 문제가 없겠지!
- 브라우저는 이렇게 엔진이라는 것을 장착해서 HTML, CSS, 자바스크립트를 이해할 수 있는 거야. 좀 멀리 돌아왔지만 중요한 것은, 이 엔진의 성능이 바로 웹 브라우저의 성능을 결정한다는 거지. 그러니까 이 엔진이 최 신 표준안, 최신 기술을 지원한다면 최신 웹 브라우저가 되는 거야. 우리가 가 전제품을 살 때와 완전히 같아. 이제 '웹 브라우저가 ○○○을(를) 지원한다. 라는 말이 무슨 뜻인지 알겠지??
- 풀스택 간단 정리 
이렇게 프런트엔드, 백엔드 개발을 다 마치면 개발이 끝날까? 아니야! 그걸 서버에 올려야 해. 서버를 고르고, 설정하고, 서버에 소프트웨어도 설치하고, 데이터베이스 설정도 하고, 보안도 신경 써야 하고... 할 것이 엄청나게 많아. 이 모든 것을 데브옵스라 하고, 이런 일을 하는 사람을 데브옵스 개발자라고 하지. 프런트엔드, 백엔드, 데브옵스를 모두 다 할 수 있는 사람이라면? 풀스 택 개발자라고 하는 거야. 그래서 풀스택 개발자가 되기는 정말 어려워. 웹 페 이지의 화면도 만들어야 하고, 데이터베이스에 데이터를 저장하기도 해야 하 고, 완성된 프로그램을 서버에 올려야 하는 등 모든 과정을 전부 다! 그것도 자세히 알아야 해. 사실 조금 과장해서 풀스택 개발자는 1인 스타트업을 만들 수도 있어. 물론 기획도 할 줄 알아야겠지만,
- SQL과 데이터베이스 개념 제대로 짚기
SOL은 structured query language의 줄임말이야. 의미를 해석해 볼까?
structured는 구조화된이라는 뜻이고, query는 질문 또는 문의, language는 언어를 말하지. 즉, SQL은 데이터베이스에 어떤 질문 또는 문의를 하기 위해 어떤 구조를 가진 언어라는 것을 알 수 있어. 즉, SQL은 한마디로 말해 데이터베이스를 다루는 언어야.





'IT' 카테고리의 다른 글

최소한의 IT언어  (2) 2023.02.24
비전공자도 이해할 수 있는 AI지식  (3) 2022.12.29
인터넷 때문에  (0) 2022.08.20
처음 읽는 양자컴퓨터 이야기  (0) 2022.07.07
웹 3.0 레볼루션  (0) 2022.07.03
Posted by dalai
,