문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 프로그래머 (문단 편집) ==== [[Java]] ==== 간혹 파이썬을 처음 배우는 경우도 있지만 아직까지는 컴공 비전공자들이 일반적으로 처음 배우게 되는 언어다. 대한민국의 대부분, 특히 공공기관 쪽의 프로젝트는 백이면 백 Java를 사용하기 때문에 실무 투입에 유용해 전문학교 단골 언어다. 교육생 입장에서는 현장에서 안 쓰는 언어를 교육용으로 배우는 것은 쓸데없어 보이니 수강을 거부한다. 교육기관은 교육생의 요구에도 맞춰줘야 하고, 교육용 언어와 실무용 언어 두 종류를 가르치기보다는 실무용 언어 하나만 가르치는 것이 최단 기간에 진도를 빨리 뺄 수 있으니 실무용 언어부터 가르치려고 한다. 그러나 Java를 배웠으니 무조건 취직을 할 수 있을 것이라고 생각하는 것은 금물이다. 잡코리아나 사람인에서 Java라고 검색만 해보면 알 수 있는 사실이 있는데 구인광고에서 Java 하나만을 요구하는 회사는 거의 없다. [[Node.js]], AngularJS, [[jQuery]], JSTL, [[Microsoft .NET|.NET]] 등등 다른 언어를 추가로 요구하는 회사는 심심하면 나타나는 수준이고, 심하면 Java는 자격요건에 나와있지도 않는 경우가 있다. Java는 기본이고 Node.js, JQuery 등을 알고 있는지 모르는지로 취직이 되냐 안 되냐가 결정되는 것이다. 개발하는 데 있어 당연히 Java 하나만을 사용하지는 않고 비슷한 여러 언어를 같이 쓰기 때문이다. 자격요건으로 적힌 언어는 그 회사에서 주로 사용하는 언어를 적어놓기 때문에 해당 언어의 기본 문법 정도는 알면 취업에 도움이 될 것이다. 권장 요건에 불과하기 때문에 적힌 내용 중 조금만 안다고 해도 뽑힐 수 있다. Java는 [[객체지향]] 언어이기 때문에 소스를 보면 [[직관]]적으로 눈에 들어온다. 메서드[* Java에서는 모든 함수가 클래스에 속해 있으므로 메서드라 칭한다.]를 보면 이 메서드가 무슨 역할을 하는지 이 변수가 어디에서 사용되는지 등이 한눈에 들어오기 때문에 이해하기가 쉽다. 그리고 Java는 너무나도 유명하기 때문에 가능한 한 쉽게 설명해주는 강의들도 많으니 인터넷에서 검색하면 쉽게 배울 수 있다. 또한 객체가 무엇인지만 알면 Java로 코딩하는 데에 어려움은 적다. 한편 Java는 다른 언어에 비해 코드량이 더 많다. 이에 대해 아래쪽 문단에서 주장하는 것처럼 Java에 대해서 이상할 정도로 부정적으로 생각하기도 하고, Java가 다른 언어에 비해 코드량이 더 많은 것을 단점으로 치부하기도 한다. 확실히 Java는 다른 언어에 비하면 쳐야 하는 코드가 더 많지만 그것을 개발자가 일일이 치지는 않는다. [[통합 개발 환경|IDE]]의 자동 완성을 쓰면 쉽게 해결될 문제라서 실무에서는 아무 문제가 안 된다. 개발 속도 외에도 정확성 문제 때문에 자동완성이 우월하다. 사람이 치면 정말 타자 실력이 뛰어나지 않고서야 오타가 발생하게 되어 있다. 하지만 자동완성을 사용하면 이름을 지어줘야 할 때 빼고는 오타가 생길 일이 거의 없다. 논리적 에러보다는 오타로 인해서 에러가 생기는 경우가 일상다반사이다. 출력 메서드 이름이 제일 길다고 하는데 [[IntelliJ IDEA]]의 경우 sout이라고만 치면 System.out.println();이 자동으로 완성된다. [[이클립스(통합 개발 환경)|이클립스]]의 경우 syso를 치고 ctrl+space를 누르면 된다. 그리고 이러한 자동완성 기능은 메소드의 호출이나 객체 생성 등 내가 지금 작성하는 코드가 올바른지 실시간으로 확인해주는 역할이라고도 할 수 있다. 올바르지 못한 코드를 작성하면 자동완성 기능이 동작하지 않을 것이기 때문이다. 아래 문단을 보면 초보자에게 IDE를 주는 걸 부정적으로 말하고 있는데 대부분의 유명 IDE는 직관적인 GUI를 지원하므로 단축키나 복잡한 기능 하나하나를 외울 필요 없이 보이는대로 클릭해서 실행시킬 수 있다. 순수하게 텍스트 편집 기능만 제공하는 [[vim]]과, 잘못된 코드 구조를 분석하여 컴파일하기 전에 경고를 띄우고 올바른 예시 코드로 리팩토링해주는 IntelliJ IDEA 중 어느 쪽이 초보자 입장에서 쉽고 생산적일지는 굳이 따질 필요가 없을 것이다. 때때로 IDE의 기능에서 벗어나 프로그래머가 직접 튜닝을 해야 하는 복잡한 상황이 생길 수는 있으나, 이것 역시 초보자에게 해당되는 이야기는 아니다. 프로그래밍에 있어 중요한 것 중 하나는 얼마나 코드를 논리적으로 최소화시킬 수 있냐는 것인데 이것을 단순히 코드량이 적을수록 좋다고 생각하는 것은 어리석은 생각이다. 코드량보다는 얼마나 쓸데없는 코드를 제거할 수 있는지가 중요한 것이다. 그리고 쓸데없는 코드를 제거하고도 코드량이 많은 경우는 얼마든지 있다. 왜냐면 실무에서 사용되는 코드는 적게 잡아도 몇백 줄이고 보통은 몇천 줄 이상이다. 그것도 파일 하나 당. 그것을 코드량이 많다고 해서 안 좋은 코드라고 볼 순 없다. 우리가 말을 할 때 명사와 동사의 기본형만 가지고 말을 해도 말은 통한다. 하지만 그 말을 우리가 효율적이라고 생각하는지, 실제로 그렇게만 말하는지 생각해보면 단순히 코드량으로 효율을 따지는 것이 옳기만 한 것인지 답이 나온다. 프로그래밍 '언어'라는 것을 다시 한번 생각해볼 필요가 있다. '좋은 말'이란 너무 짧아서 알아듣기 힘든 말이 아니라 군더더기가 없는 말이며 이것이 뜻을 전달하는 데 있어 가장 좋은 말이라는 것에 동의할 것이다. 물론 Java가 쉽다고는 할 수 없다. Java는 [[객체 지향 프로그래밍]] 언어이기 때문이다. 객체 지향적으로 프로그래밍 하는 방법을 물어보면 대부분의 개발자들이 모른다고 할 것이다. 정말 어려운 개념이기 때문에 전문적 연구자가 아닌 한 객체 지향이라는 개념에 대해 실질적, 구체적으로 정의할 수 없다. 사전적 정의는 누구나 말할 수 있지만 어디까지나 사전적 정의일 뿐이다. 이렇게 어려운 개념이라고 해서 너무 걱정하지는 않아도 괜찮다. 객체 지향이라는 것을 조금이나마 이해하고 있다면 당신은 전혀 신입 개발자가 아니라는 뜻이니까. 그리고 아래쪽 문단에서 추천하는 Python도 결국 현업에서는 OOP 언어로 활용한다.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기