저는 파워셸을 주로 업무 보조용으로 씁니다. 자동으로 백업을 돌려야 한다거나, 데이터 파일을 변환해야 한다거나, mdb, xml이나 csv를 다루는 용도로요.
한컴오피스나 엑셀을 자동화 하는데에도 쓸 수 있을것 같은데, 아직 업무에 적용해본 것은 없습니다.
아마 대부분의 분들은 이런 용도로 파이썬을 쓰실거라고 생각되네요.
제가 써보면서 느낀 파워셸의 장단점입니다.
장점
- 윈도 7 이상이라면 윈도 운영체제에 런타임부터 IDE까지 모두 이미 내장되어 있습니다. 뭔가를 추가로 설치하지 않아도 됩니다.
- 닷넷 기반입니다. 닷넷의 모든 객체가 사용 가능합니다. C#에 익숙하다면 파워셸의 명령들을 모두 익히지 않아도 그냥 닷넷의 객체들을 사용해 처리가 가능합니다.
- 배치파일(.bat, .cmd)보다 문법이 훨씬 나아졌습니다.
- 윈도 운영체제의 기능들과 상호작용하기 매우 편합니다.
단점
- 윈도 XP나 서버 2003에는 내장되어 있지 않습니다. 설치하면 될지도 모르겠지만 굳이 그렇게까진 하지 않았습니다.
- 윈도 장비 관리용이다 보니 다른 언어들과는 개념과 지향점이 좀 다릅니다. 덕분에 일반 개발자가 보기엔 좀 이상한 문법을 가지고 있습니다.
- 예를들어 처음 배울 때에는 함수를 작성한 후 왜 반환값에 이상한게 섞여있는지, 배열을 반환했는데 받아보니 배열이 아닌지 등을 고민해야 합니다.
- 가장 큰 단점: 주변에 쓰는사람이 없습니다.
저런 단점들이 있음에도 매력적인 언어임에는 분명합니다. 저는 특히 닷넷을 사용할 수 있다는게 가장 마음에 들고요.
파워셸을 사용하시는 다른 분들은 어떻게 생각하시나요?
그 지향점 때문에 안쓰기로 했습니다.
한번 쓸라면 그놈의 이해 불가한 오류에, 어찌나 메뉴얼을 봐야 하는지..
익숙한 분들이야 잘 쓰시겠지만.. Unix니 Linux 처리도 복잡한데 또 익숙해지고 싶지도 않네요
(저의 생각입니다)
알아서 다른 데 써먹을 수 있는 기술들이 많은데 굳이 하나밖에 못쓰는 기술을 할 이유가 1도 없다고 봅니다.
엔터프라이즈 환경에서
액티브 디렉토리나 오피스등의 MS 의존적인 사내 자원을 다루는 용도라면 몰라도요.
열거하신 용도로 쓰는 것은 좀 비효율적인것 같네요.
님도 같이 하시죠. 좋은 것은 같이 하면 더 좋죠.
물론 더 고민하면 적절한 단어가 나올지도 모르겠으나 그 역시 시간 낭비라고 생각되었습니다.
그래서 적절하지 않다하시니 혹시 제게 도움이 될까 싶어 질문을 청했으나 역시 서로간에 시간낭비가 되었네요.
부동의합니다
제가 보기엔 후자가 선을 넘은것 같네요.
제가 대댓글을 달았던 원댓글이 수정된 상태라는 것은 말씀드리고 싶네요.
제가 댓글달던 시점의 수정되기 전의 댓글은 좀더 나간 것이었습니다..
오픈소스쪽은 윈도에서는 빌드조차 하기가 쉽지 않은 경우를 자주 봐서 이해는 됩니다.
분명 인터넷에 나온대로 썻는데 오류나거든요…
그런데 한번 익혀놓으면 정말 유용하게 쓸 수 있어 저도 좋아합니다. 특히 쉘 상단에 <# … #> 사이의 표준주석을 이용하면 시눕시스 태그를 이용한 이 스크립트의 용도, 파라미터 태그를 이용한 파라미터의 의미, 아웃풋 태그를 통한 기대하는 결과 등을 바로 파악할 수 있으니까요.
다른 언어들도 아주 오래되어 안정된게 아니면 변경은 종종 있으니까요.
윈도 서버는 파워셸이 관리자 업무를 엄청 줄여줍니다.