· 톺아보기

자유

파워셸을 쓰는 이유

REGENTAG. ·

조회 7,460 · 공감 1 · 댓글 25

저는 파워셸을 주로 업무 보조용으로 씁니다. 자동으로 백업을 돌려야 한다거나, 데이터 파일을 변환해야 한다거나, mdb, xml이나 csv를 다루는 용도로요.

한컴오피스나 엑셀을 자동화 하는데에도 쓸 수 있을것 같은데, 아직 업무에 적용해본 것은 없습니다.


아마 대부분의 분들은 이런 용도로 파이썬을 쓰실거라고 생각되네요.


제가 써보면서 느낀 파워셸의 장단점입니다.


장점

  • 윈도 7 이상이라면 윈도 운영체제에 런타임부터 IDE까지 모두 이미 내장되어 있습니다. 뭔가를 추가로 설치하지 않아도 됩니다.
  • 닷넷 기반입니다. 닷넷의 모든 객체가 사용 가능합니다. C#에 익숙하다면 파워셸의 명령들을 모두 익히지 않아도 그냥 닷넷의 객체들을 사용해 처리가 가능합니다.
  • 배치파일(.bat, .cmd)보다 문법이 훨씬 나아졌습니다.
  • 윈도 운영체제의 기능들과 상호작용하기 매우 편합니다.


단점

  • 윈도 XP나 서버 2003에는 내장되어 있지 않습니다. 설치하면 될지도 모르겠지만 굳이 그렇게까진 하지 않았습니다.
  • 윈도 장비 관리용이다 보니 다른 언어들과는 개념과 지향점이 좀 다릅니다. 덕분에 일반 개발자가 보기엔 좀 이상한 문법을 가지고 있습니다.
  • 예를들어 처음 배울 때에는 함수를 작성한 후 왜 반환값에 이상한게 섞여있는지, 배열을 반환했는데 받아보니 배열이 아닌지 등을 고민해야 합니다.
  • 가장 큰 단점: 주변에 쓰는사람이 없습니다.


저런 단점들이 있음에도 매력적인 언어임에는 분명합니다. 저는 특히 닷넷을 사용할 수 있다는게 가장 마음에 들고요.


파워셸을 사용하시는 다른 분들은 어떻게 생각하시나요?




댓글 25

  1. 고등어 · · 공감 6
    cmd 보단 낫고 bash 가 없어서 어쩔 수 없이 씁니다.
  2. zenoside6 ·
    막강해보이고 꽤 그럴듯하지만..
    그 지향점 때문에 안쓰기로 했습니다.

    한번 쓸라면 그놈의 이해 불가한 오류에, 어찌나 메뉴얼을 봐야 하는지..
    익숙한 분들이야 잘 쓰시겠지만.. Unix니 Linux 처리도 복잡한데 또 익숙해지고 싶지도 않네요
    (저의 생각입니다)
  3. REGENTAG. ·
    @제노님 여러 운영체제를 다뤄야 한다면 문제가 되긴 하겠네요. 파워셸은 윈도에 너무 특화되어 있는지라...
  4. 토끼를잡아라 ·
    Bash를 주로 사용하다 보니 파워쉘의 문법에 익숙해지는 게 참 쉽지가 않네요ㅎㅎ그래서 결국 안 쓰기로 했습니다:(
  5. REGENTAG. ·
    @토끼를잡아라님 Bash를 많이들 쓰시나봐요. 아무래도 리눅스에서 사실상의 표준 셸이어서 그런걸까요 ㅎㅎ
  6. IIIxe ·
    시간낭비죠. 굳이 MS 직원이 아닌 다음에야 쓸 이유가,
    알아서 다른 데 써먹을 수 있는 기술들이 많은데 굳이 하나밖에 못쓰는 기술을 할 이유가 1도 없다고 봅니다.

    엔터프라이즈 환경에서
    액티브 디렉토리나 오피스등의 MS 의존적인 사내 자원을 다루는 용도라면 몰라도요.

    열거하신 용도로 쓰는 것은 좀 비효율적인것 같네요.
  7. REGENTAG. · · 공감 1
    @팜의추억님 네. 저는 시간낭비에 돈 안되는걸 할테니 꼭 돈되는 효율적인것만 공부하시기 바랍니다.
  8. IIIxe ·
    @REGENTAG.님
    님도 같이 하시죠. 좋은 것은 같이 하면 더 좋죠.
  9. 건무화과 · · 공감 1
    @팜의추억님 다른 사람이 공들여 적은 글에 "시간낭비"라는 단어를 댓글의 첫 단어로 선택하는 건 매우 바람직하지 않은 것 같습니다.
  10. IIIxe ·
    @건무화과님 적절한 단어를 추천해주시면 다음부터 사용해보겠습니다.
  11. 건무화과 · · 공감 1
    @팜의추억님 누군가의 글에 댓글을 단다는 행위를 일종의 대화..라고 봤을 때, 내 생각과 다른 이야기를 하는 사람에게 내 뜻을 전달하면서도 기분을 상하게 하지 않을 수 있는 단어는 어렵지 않게 찾을 수 있을 것이라 생각합니다. 꼭 제가 추천해드리지 않더라도요. 어떤 적절한 단어를 쓰느냐가 아니라 적절치 않은 단어를 피하는 것이 더 중요한게 아닌가 하는 생각입니다.
  12. 너부리얌냠 · · 공감 1
    @팜의추억님 저보다 연배가 위쪽이고 많이 선배님이신거로 아는데요, 댓글을 보자마자 누가 쓴글인지 느낌이 왔습니다. 반복되는 반응이 여럿에게 나온다면 한번쯤 돌아보시는건 어떠실지요.
  13. IIIxe ·
    @건무화과님 저는 적절한 단어가 떠오르지 않았습니다.
    물론 더 고민하면 적절한 단어가 나올지도 모르겠으나 그 역시 시간 낭비라고 생각되었습니다.
    그래서 적절하지 않다하시니 혹시 제게 도움이 될까 싶어 질문을 청했으나 역시 서로간에 시간낭비가 되었네요.
  14. SpaceFunk ·
    @팜의추억님 적절한 단어를 떠올리시지 못한다면 심각한 언어 능력 부족 아닌가요? 업무할 때 협업은 적절하게 하시는지 궁금합니다.
  15. 덱스톨 · · 공감 1
    @팜의추억님 굳이 시간 낭비하면서 남의 글에 똥싸놓지 마시고 앞으론 댓글 달지 마세요..
  16. IIIxe · · 공감 1
    @덱스톨님
    부동의합니다
  17. 긴급휴무 ·
    @덱스톨님 어떻게 생각하십니까라는 글에 시간낭비 라고 답한 글과, 그 답이 시간낭비하면서 똥싸놓은것 이라고 하는 글.
    제가 보기엔 후자가 선을 넘은것 같네요.
  18. 덱스톨 ·
    @긴급휴무님 선을 넘었다는 것도 굳이 부인하진 않겠습니다만...
    제가 대댓글을 달았던 원댓글이 수정된 상태라는 것은 말씀드리고 싶네요.
    제가 댓글달던 시점의 수정되기 전의 댓글은 좀더 나간 것이었습니다..
  19. 건무화과 ·
    파워쉘이 배워놓으면 나름 윈도우 환경에서 좋은 선택지일 수 있을 것 같습니다만 요즘 wsl+bash가 가능해서 이쪽이 더 매력적으로 보인긴 합니다;;
  20. REGENTAG. ·
    @건무화과님 윈도에서 의외로 wsl을 많이들 쓰시는것 같더라고요.
    오픈소스쪽은 윈도에서는 빌드조차 하기가 쉽지 않은 경우를 자주 봐서 이해는 됩니다.
  21. Chenny · · 공감 1
    파워쉘 7버전과 기본으로 설치된 파워쉘이 기능적으로 좀 차이가 있어 초반에 많은 분들이 포기하는 이유인 것 같아요.
    분명 인터넷에 나온대로 썻는데 오류나거든요…
    그런데 한번 익혀놓으면 정말 유용하게 쓸 수 있어 저도 좋아합니다. 특히 쉘 상단에 <# … #> 사이의 표준주석을 이용하면 시눕시스 태그를 이용한 이 스크립트의 용도, 파라미터 태그를 이용한 파라미터의 의미, 아웃풋 태그를 통한 기대하는 결과 등을 바로 파악할 수 있으니까요.
  22. REGENTAG. ·
    @Chenny님 버전별로 기능이나 문법이 좀 차이 나는건 그냥 그러려니 하고 있습니다.
    다른 언어들도 아주 오래되어 안정된게 아니면 변경은 종종 있으니까요.
  23. 긴급휴무 ·
    색다른 방법으로, jscript를 써보는건 어떻습니까?
  24. REGENTAG. ·
    @긴급휴무님 제가 JS와 파생 언어들을 별로 좋아하지 않아서요. 그렇지만 COM 객체들을 다루는 데에는 jscript도 괜찮을지도 모르겠습니다. PS는 닷넷은 쓰기 좋아도 COM은 조금 불편한점이 있더라고요.
  25. REGENTAG. ·
    @Aiden.님 AD를 깊게는 안 다뤄봤지만, 간단한 계정 작업 같은거 하기에도 파워셸이 좋더라구요.
    윈도 서버는 파워셸이 관리자 업무를 엄청 줄여줍니다.

개발한당 최근 글

개발한당 목록 더 보기