바지년
30
2017-02-17 20:25:43.0
10
521

학부생 수준에서 자바의 장단점이 무엇일까요?


안녕하세요. 작년부터 개발에 관심을 갖고 공부 중인 학부생입니다!

다른 글들을 읽어보다가, 자바가 저물어 간다는 글을 많이 읽고, 다른 언어들을 준비해야 한다는 글을 많이 본 것 같습니다.

그래서 자바의 장단점이 무엇이었지? 라는 원초적인 생각까지 하게 되어서 장단점을 찾아 보았는데

윈도우 응용프로그램 개발에 비적합하다, 바이트 코드의 보안이 취약하다와 같은 단점은 아직 학부생 수준인 저에게는 와닿지가 않네요....

제가 느끼는 장점으로는 개발을 할 때 관련 API와 라이브러리들이 웹상에 많다는 것인데 실제적으로 느낄 수 있는 장단점으로는 무엇이 있을까요?... 문득 궁금해서 질문을 드려봅니다 ! 

0
0
  • 답변 10

  • zepinos
    11k
    2017-02-17 20:41:00.0

    http://www.tiobe.com/tiobe-index/


    제가 가장 신뢰하는 프로그래밍 순위 지표입니다. 저물어간다고 쓰는 사람들은 무슨 의미로 그런 말을 하는지 모르겠네요. 정확히 말하면 다양한 언어가 나와서 각자의 영역을 조금씩 마련했다...라고 해야 맞을 겁니다.


    가장 큰 장점은 윈도우즈 프로그래밍을 제외한 다른 전 분야에서 유용하게 쓰이며, class 파일의 decomplie 이 쉬워서 개발한 코드를 직접 운영하지 않으면 기술 유출이 되기 쉽다는 단점 정도가 있겠네요. 다시 말해 이런 문제가 있는 분야는 다른 언어를 쓰면 되는 거고, 그게 아니라면 자료 많고 사용자 많은 언어가 가장 배울 때 좋습니다.

    1
  • nusicaa
    2k
    2017-02-17 21:01:00.0

    상용 솔루션으로 자바 바이트 코드를 암호화 할 수 있습니다.


    1
  • zepinos
    11k
    2017-02-17 21:07:08.0

    nusicaa 님 // 추천할만한 암호화 솔루션 있을까요? 난독화 말고 암호화로요.


    0
  • 머슴
    2k
    2017-02-17 22:24:55.0 작성 2017-02-17 22:25:49.0 수정됨

    단점.  

    변수에 태그가 달라 붙는다.

    노테이션이  복잡하다.

    전,  기업 업무용 시스템에서는 자바를 넘어서야 한다고 생각합니다.

    1
  • 바지년
    30
    2017-02-17 22:42:35.0

    변수에 태그가 달라 붙는다고 하시는게 무슨 뜻일까요?ㅠㅠㅠ 

    웹에서의 경우를 말씀하시는 것인가요?

    0
  • javaing
    765
    2017-02-17 22:58:07.0

    자바의 코어 목표중 하나인

    write once run anywhere가 있지요

    1
  • 울혤
    55
    2017-02-17 23:31:38.0

    장점

    실행환경 구축이 매우 쉽습니다.

    교재가 상대적으로 싸고 수도 많습니다.

    구글에 예제가 널려있습니다.

    쓸만한 IDE도 많습니다.

    응용/앱/웹 프로그램을 전부 만들 수 있습니다.


    단점

    코드가 깁니다.

    처음에 쉽다고 해서 배우는데 깊게 배우려면 C언어보다 어려운듯 합니다.

    1
  • Zeratul
    193
    2017-02-18 00:06:55.0 작성 2017-02-18 00:17:30.0 수정됨

    장점은 오픈소스(무료)라는 것, 그리고 운영체제를 가리지 않는 범용성입니다.


    제 경험에서 실제적으로 느낄수 있던 장점을 생각해보면 

    제가 다녔던 회사들엔 윈도우 플랫폼 개발자들(VC++, C#.net, ASP.net) 개발자들도 

    업무가 없어서 결국은 자바도 같이 했습니다.

    제가 인터뷰를 했던 기업들 중에는 C# 개발자를 구하기가 힘들어서 자바 개발자를 채용해

    C# 업무를 주는 곳도 있었습니다.

    반면에 자바만 하는 사람은 다른 플랫폼을 배우지 않아도 될만큼 일이 많습니다.


    그 배경을 간략히 설명드리면  


    윈도우 프로그램은 1990년대를 지나 쓸만한 것은 모두 만들어졌고, 

    새로운 애플리케이션은 웹이나 모바일로 만들어지고 있습니다.

    (이젠 모바일도 지나 AI-First 인 상황이죠)


    마이크로소프트가 웹과 모바일의 패러다임 전환을 겪는 과정에서

    과거의 영광을 잊지 못하고 문을 닫고(플랫폼을 개방하지 않고) 웹과 모바일 플랫폼을 만드는 동안

    자바가  반대편에서 오픈소스라는 장점으로 빠르게 개발자들의 생태계를 구축했고,

    그 수많은 개발자들이 만든 소프트웨어들은 윈도우가 차지하던 영역들에서 대신 사용되었습니다. 

    마이크로소프트는 결국 모바일(안드로이드, IOS) 도 놓치고,  

    웹도 놓치고(ASP.net 을 쓰려면 윈도우 서버를 사야 합니다,

    반면에 자바는 무료인 리눅스 서버에 오픈소스 WAS로도 구축이 가능하죠)

    결국 최상의 개발 플랫폼이던 지위를 잃어버리고 플랫폼을 개방하게 된 것이죠.


    반면 자바도 오랜 기간을 거치는 동안 규모가 커졌고,

    하위호환성이나 언어의 설계자체에 신경써야 될 부분이 점점 더 많아지고 있어 

    각자 눈에 띄는 장점(생산성, 성능, 빅데이터, 분산 컴퓨팅, AI 등)을 가진 여러가지 언어들(C++, Go, Node.js, Lua(torch), Python, Scala) 에 비해 점점 발전하고 있는 속도가 느려지고 있는 상황입니다.


    그럼에도 불구하고 2017년 현재로서는 보편적으로 사용할수 있는 프로그래밍 언어로서

    자바의 범용성은 아직 크게 위협할 만한 언어가 없습니다.


    자바가 저물어간다는 화두를 국내에 널리 퍼지게 한 것은

    2014년 3월 나온 임백준님의 저서 폴리글랏 프로그래밍으로 알고 있습니다.

    3년이나 지난 책이지만 개발자라면 읽어볼만한 책입니다. 추천드립니다.

    3
  • 바지년
    30
    2017-02-18 01:54:45.0
    정말 감사드립니다 !!! 책에 나와있는 것과 검색을 통한 일반적인 정보가 아닌 다양한 정보를 얻을 수 있게 되어서 좋습니다 ㅎㅎㅎㅎ
    0
  • Taetrees
    324
    2017-02-18 10:09:15.0

    개인적으로 생각하는 장점 중에 중요한 것은

    접하기 쉽다객체지향을 제대로 익히기 좋다 입니다.

    제가 그렇게 많은 언어를 다루지 않기 때문에 더 나은 것이 있는지 모르겠지만

    자바만큼 자료가 많고 객체지향적 프로그래밍을 나름 강요하는 언어는 거의 없는 것 같아요.

    OOP를 제대로 알게 되고 난 후에 더 나은 프로그래머가 되었다고 생각하는 입장에서

    OOP는 꼭 알아야하는 것 중의 하나라고 생각합니다.

    옛날 제가 학부에서 배웠던 OOP들을 생각하면 그 당시에는 어떤 끝판왕처럼 취급했던 것 같아요.

    C에서 포인터가 비슷한 취급을 받는 것 같은 느낌인데 결국 둘 다 하나의 과정일 뿐인데 말이죠.

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.