- 질문 게시판입니다.
Date | 20/05/15 14:56:52 |
Name | T.Robin |
Subject | JS와 Python 중 뭘 공부할까요? |
안녕하세요. T.Robin입니다. 최근 뭔가 바람이 불어 다른 언어를 좀 공부해보고자 하는 마음이 들었습니다. 배운게 도둑질이라고, 그동안 그나마 각잡고 했던 거라고는 C++과 Object Pascal이 전부인 터라 요즘의 수요를 따라잡기는 쉽지 않겠다는 생각이 들더군요. 비록 제 개발품 코드 중 일부에 Javascript가 좀 들어가긴 했지만 그건 그냥 위아래 지워놓으면 C 코드라고 해도 믿을 정도 수준의 기본적인 수준이고, Python도 예전에 데이터 읽어서 엑셀파일 만들어내는 CLI 프로그램 하나 만든게 전부라 양쪽 모두 기본 문법이나 좀 알까 뭔가 제대로 해봤다고 말하기엔 민망합니다. -_-; 하여간 이래저래 생각하고 고민한 끝에 Javascript나 Python 중 하나를 공부해보고자 합니다. 기본적으로 Python이면 backend 또는 AI 특화 쪽이고 Javascript면 full stack 지향이라는 것 정도는 알고 있습니다만 둘 중 어느쪽을 딱히 특별하게 희망하지는 않고 있습니다. 이런 경우 둘중에 무엇을 먼저 공부하는게 더 좋을까요? 0
이 게시판에 등록된 T.Robin님의 최근 게시물
|
https://www.youtube.com/watch?v=mYgWbOup4UA
여기서 JS와 파이썬을 비교하고 있긴 합니다.
파이썬은 매트릭스 계산이 들어가는 프로젝트(=데이터 계산)에서 유용하게 쓸 일이 있습니다. 자바스크립트는 잘 모르겠지만, 데이터를 다룰 일이 아니라면 C++, 자바스크립트가 좋지 않을까 생각합니다.
여기서 JS와 파이썬을 비교하고 있긴 합니다.
파이썬은 매트릭스 계산이 들어가는 프로젝트(=데이터 계산)에서 유용하게 쓸 일이 있습니다. 자바스크립트는 잘 모르겠지만, 데이터를 다룰 일이 아니라면 C++, 자바스크립트가 좋지 않을까 생각합니다.
파이썬은 쟝고랑 조합해서 많이 쓸거에요. js를 하실거라면 바닐라js도 써보셔야하지만 타입스크립트는 요새 거의 필수에요. 아주 작은 프로젝트가 아니라면 ts는 거의 무조건 쓰셔야할겁니다.
게다가 js를 사용한다고 해서 바닐라js로 모든걸 다 구축하지는 않고, 프론트는 전통의 jquery부터 시작해서 요샌 react vue.js angular 3대장(사실 리액트가 거의 대장주지만)을 기본적으로 사용하게 되고, node.js도 백엔드 구축할때 거진 express 쓰죠. 둘 다 ts는 기본적으로 사용하고.. 그래서 실제로는 서비스/... 더 보기
게다가 js를 사용한다고 해서 바닐라js로 모든걸 다 구축하지는 않고, 프론트는 전통의 jquery부터 시작해서 요샌 react vue.js angular 3대장(사실 리액트가 거의 대장주지만)을 기본적으로 사용하게 되고, node.js도 백엔드 구축할때 거진 express 쓰죠. 둘 다 ts는 기본적으로 사용하고.. 그래서 실제로는 서비스/... 더 보기
파이썬은 쟝고랑 조합해서 많이 쓸거에요. js를 하실거라면 바닐라js도 써보셔야하지만 타입스크립트는 요새 거의 필수에요. 아주 작은 프로젝트가 아니라면 ts는 거의 무조건 쓰셔야할겁니다.
게다가 js를 사용한다고 해서 바닐라js로 모든걸 다 구축하지는 않고, 프론트는 전통의 jquery부터 시작해서 요샌 react vue.js angular 3대장(사실 리액트가 거의 대장주지만)을 기본적으로 사용하게 되고, node.js도 백엔드 구축할때 거진 express 쓰죠. 둘 다 ts는 기본적으로 사용하고.. 그래서 실제로는 서비스/규모에 따라서 바닐라js로만 만드는 경우는 거의 없다고 보신다면 될거같아요. js는 npm module도 그렇고 node.js 특성상 작은 코어 위에 여러가지를 덕지덕지덕지 붙여서 만듭니다. 그만큼 편리하기도 한데 npm module 관리하는거 피곤해서 싫어하는 분들도 많아요 ㅎㅎ
그리고 중요한점이 node.js로 만든 백엔드 서버가 성능이 딱히 딸리는건 아니지만, 퍼포먼스가 무척 중요한 서버로는 추천하지 않습니다. 보통 그래서 대형 서비스의 백엔드를 마이크로서비스에 가까운 형태로 만들때 중요한 엔터프라이즈 서버는 여전히 자바로 구축한 백엔드를 쓰고 몇 가지 변경이 자주일어나고 퍼포먼스가 엄청 중요하진 않은 기능들을 담당하는 api 서버에 node.js를 많이 써요. 물론 규모가 작으면 저희처럼 백엔드 node.js 하나로 다 처리하기도 합니다만 ㅎㅎ 커질수록 스까쓰는거같더라구요
게다가 js를 사용한다고 해서 바닐라js로 모든걸 다 구축하지는 않고, 프론트는 전통의 jquery부터 시작해서 요샌 react vue.js angular 3대장(사실 리액트가 거의 대장주지만)을 기본적으로 사용하게 되고, node.js도 백엔드 구축할때 거진 express 쓰죠. 둘 다 ts는 기본적으로 사용하고.. 그래서 실제로는 서비스/규모에 따라서 바닐라js로만 만드는 경우는 거의 없다고 보신다면 될거같아요. js는 npm module도 그렇고 node.js 특성상 작은 코어 위에 여러가지를 덕지덕지덕지 붙여서 만듭니다. 그만큼 편리하기도 한데 npm module 관리하는거 피곤해서 싫어하는 분들도 많아요 ㅎㅎ
그리고 중요한점이 node.js로 만든 백엔드 서버가 성능이 딱히 딸리는건 아니지만, 퍼포먼스가 무척 중요한 서버로는 추천하지 않습니다. 보통 그래서 대형 서비스의 백엔드를 마이크로서비스에 가까운 형태로 만들때 중요한 엔터프라이즈 서버는 여전히 자바로 구축한 백엔드를 쓰고 몇 가지 변경이 자주일어나고 퍼포먼스가 엄청 중요하진 않은 기능들을 담당하는 api 서버에 node.js를 많이 써요. 물론 규모가 작으면 저희처럼 백엔드 node.js 하나로 다 처리하기도 합니다만 ㅎㅎ 커질수록 스까쓰는거같더라구요
무슨말씀이신지 잘 이해는 못했지만, es6나 ts는 babel과 같은 webpack으로 브라우저 및 각 환경에 맞춰 변환되기 때문에
태생적으로 문법에 맞춰 쓴 코드가 그대로 사용되는 경우는 없습니다 크크... 본능이 거부할 수 밖에 없는 구조입니다.
js계 배울때 본능이 거부하는 가장 큰 요소가 callback지옥과 promise와 같은 비동기처리,
그 외에도 클로저, 이벤트 버블링, 렉시컬 스코프 등에서 발생하는 지독한 가독성때문인데,
이런 독특한 구조가 (반드시 부하와 지연이 발생하는) 네트워크와 연계된 거대한 ... 더 보기
태생적으로 문법에 맞춰 쓴 코드가 그대로 사용되는 경우는 없습니다 크크... 본능이 거부할 수 밖에 없는 구조입니다.
js계 배울때 본능이 거부하는 가장 큰 요소가 callback지옥과 promise와 같은 비동기처리,
그 외에도 클로저, 이벤트 버블링, 렉시컬 스코프 등에서 발생하는 지독한 가독성때문인데,
이런 독특한 구조가 (반드시 부하와 지연이 발생하는) 네트워크와 연계된 거대한 ... 더 보기
무슨말씀이신지 잘 이해는 못했지만, es6나 ts는 babel과 같은 webpack으로 브라우저 및 각 환경에 맞춰 변환되기 때문에
태생적으로 문법에 맞춰 쓴 코드가 그대로 사용되는 경우는 없습니다 크크... 본능이 거부할 수 밖에 없는 구조입니다.
js계 배울때 본능이 거부하는 가장 큰 요소가 callback지옥과 promise와 같은 비동기처리,
그 외에도 클로저, 이벤트 버블링, 렉시컬 스코프 등에서 발생하는 지독한 가독성때문인데,
이런 독특한 구조가 (반드시 부하와 지연이 발생하는) 네트워크와 연계된 거대한 서비스를 부드럽게 만들어주고
node와 같은 JS런타임을 더욱 효과적으로 만들어주긴 합니다.
그래서 웹개발을 하신다면 js는 어차피 한번 훝고가야됩니다. 도전해보세요!
태생적으로 문법에 맞춰 쓴 코드가 그대로 사용되는 경우는 없습니다 크크... 본능이 거부할 수 밖에 없는 구조입니다.
js계 배울때 본능이 거부하는 가장 큰 요소가 callback지옥과 promise와 같은 비동기처리,
그 외에도 클로저, 이벤트 버블링, 렉시컬 스코프 등에서 발생하는 지독한 가독성때문인데,
이런 독특한 구조가 (반드시 부하와 지연이 발생하는) 네트워크와 연계된 거대한 서비스를 부드럽게 만들어주고
node와 같은 JS런타임을 더욱 효과적으로 만들어주긴 합니다.
그래서 웹개발을 하신다면 js는 어차피 한번 훝고가야됩니다. 도전해보세요!
JS쪽은 잠깐 관심가지고 파봤던게 있습니다. 어쩌면 아실지도요.
https://quasar.dev/
저는 구조상으로 vue.js를 선호합니다.
Java를 무시하는건 아닙니다만, 퍼포먼스가 극단적으로 중요한 서버라면 역시 C & C++이죠. 직접 측정해보시면 아시겠지만, JVM이 차지하는 RAM과 CPU가 생각보다 꽤 되는 수준입니다(뭐 node.js쪽도 만만찮긴 합니다만......). C계열에 보면 간단하게 합체(?)시키는 것만으로 임베디드 웹서버를 만들어주는 라이브러리들이 몇몇 있습니다. 제가 쓰는건 이거군요: https://github.com/civetweb/civetweb
https://quasar.dev/
저는 구조상으로 vue.js를 선호합니다.
Java를 무시하는건 아닙니다만, 퍼포먼스가 극단적으로 중요한 서버라면 역시 C & C++이죠. 직접 측정해보시면 아시겠지만, JVM이 차지하는 RAM과 CPU가 생각보다 꽤 되는 수준입니다(뭐 node.js쪽도 만만찮긴 합니다만......). C계열에 보면 간단하게 합체(?)시키는 것만으로 임베디드 웹서버를 만들어주는 라이브러리들이 몇몇 있습니다. 제가 쓰는건 이거군요: https://github.com/civetweb/civetweb
지금까지 나열된 언어들중(C/C++ 제외)에서는 자바/코틀린이 웹서버로 성능은 가장 좋습니다, 그래서 저렇게 답변주신 것 같아요. 여기엔 없는 것으로 저는 Rust / Go중에 하나 추천합니다. C++ 하시니 Rust는 조금 보셨을수도 있겠네요. 물론, python / js보다 힘들거란 단점은 있겠지만... 뭘 하던 C++보단 나을겁니다ㅎㅎ 개인적으론 python / js보다 더 재밌기도 했구요.
대충은 공부가 목적이라고 생각이 되는데요, 그런 측면에서 Rust / Go가 python / js에 비해서 현 트렌드들이 많이 접목된 언어라고도 생각합니다.
추가로 아래의 책들이 언어를 선택하는데 ... 더 보기
대충은 공부가 목적이라고 생각이 되는데요, 그런 측면에서 Rust / Go가 python / js에 비해서 현 트렌드들이 많이 접목된 언어라고도 생각합니다.
추가로 아래의 책들이 언어를 선택하는데 ... 더 보기
지금까지 나열된 언어들중(C/C++ 제외)에서는 자바/코틀린이 웹서버로 성능은 가장 좋습니다, 그래서 저렇게 답변주신 것 같아요. 여기엔 없는 것으로 저는 Rust / Go중에 하나 추천합니다. C++ 하시니 Rust는 조금 보셨을수도 있겠네요. 물론, python / js보다 힘들거란 단점은 있겠지만... 뭘 하던 C++보단 나을겁니다ㅎㅎ 개인적으론 python / js보다 더 재밌기도 했구요.
대충은 공부가 목적이라고 생각이 되는데요, 그런 측면에서 Rust / Go가 python / js에 비해서 현 트렌드들이 많이 접목된 언어라고도 생각합니다.
추가로 아래의 책들이 언어를 선택하는데 도움을 줄 수 있겠다는 생각이 듭니다.
Seven Languages in Seven Weeks: http://www.kyobobook.co.kr/product/detailViewKor.laf?barcode=9788968481857
폴리글랏 프로그래밍: http://www.kyobobook.co.kr/product/detailViewKor.laf?barcode=9788968480867
대충은 공부가 목적이라고 생각이 되는데요, 그런 측면에서 Rust / Go가 python / js에 비해서 현 트렌드들이 많이 접목된 언어라고도 생각합니다.
추가로 아래의 책들이 언어를 선택하는데 도움을 줄 수 있겠다는 생각이 듭니다.
Seven Languages in Seven Weeks: http://www.kyobobook.co.kr/product/detailViewKor.laf?barcode=9788968481857
폴리글랏 프로그래밍: http://www.kyobobook.co.kr/product/detailViewKor.laf?barcode=9788968480867
목록 |
|