매우 오랜만에 Java를 공부해보기로 합니다.

2 분 소요

Intro - 나에게 Java는

  • 매우 오랜만에 Java를 공부해볼 일이 생겼습니다. 뭐, 오랜만이기는 한데 필요하면 하는 거죠.
  • Java는 2007년 자료구조라는 수업에서 처음 접했었습니다. 그 때 Eclipse라는 IDE로 개발을 했었는데, 저는 이 툴이 지독히도 싫었죠. 음, 일단 너무 느렸습니다(물론 그 당시 제 컴퓨터도 무척 구렸습니다).
  • 그리고 이전에 배웠던 프로그래밍 언어는 C였고, Java와는 지향이 다릅니다. 따라서, 저는 Java라는 언어의 특성도, Eclipse도 모두 싫었기 때문에 그다지 관심을 기울이지 않았죠. 물론 그 덕분에 학점도 갈았습니다.
  • 수년이 지나, 대학원의 어떤 시기에 Spring이라는 Java Framework을 잠시나마 공부하기도 했었습니다. 왜, 배웠는지는 기억이 정확하게 나지 않지만, 하나 기억나는 것은 “프로그래머의 자질을 굉장히 제한적으로 집어넣어야 하는 고정된 프레임워크”라는 기억이죠. 그 당시에 제가 python을 한참 쓰고 있었고 그덕분에 자유롭게 프로그래밍을 하게 되면서, 더욱 Spring같은건 필요없어! 라고 생각했는지도 모릅니다.
  • 물론, 지금은 생각이 조금 다릅니다. 프로그래머의 역량을 제한적으로 반영하게 한다는 것은 다르게 보면, 프로그래멍의 역량으로 인해 변화할 수 있는 제품의 퀄리티의 변화폭이 줄어든다는 것을 말하니까요. 즉, Spring 프레임워크에 기반해서 소프트웨어를 만들게 되면, 그 아웃풋의 퀄리티가 어느 정도는 보장됩니다.
  • 다르게 말해서, 만약 그냥 python으로 프로그래밍을 해야 한다면, 누가 만드냐에 따라서 그 차이가 극심하게 나게 됩니다. 프로그래머의 역량에 따라서 코드의 질은 물론 유지보수 측면에서도 그 변화는 매우 무쌍하겠죠. 반면, Spring은 그 변화폭을 조금 줄여 준다는 측면에서 조금은 의미가 있지 않나, 생각해봅니다.
  • 아무튼, Java를 공부해보기로 합니다. Spring Framework를 이야기하긴 했지만, 매우 기초적인 개념들과 문법들부터 다시 잡아간다고 생각하고 배워볼 예정입니다.

Java

  • Java라는 언어야 워낙 오래되기도 했고, 인터넷에 찾아보면 자료들도 워낙 많죠. 다만 특징적인 것들만 정리해서 이야기하자면 다음과 같습니다.
    • Java는 언제 조사해도 탑 3위 안에 드는 언어다. 언어의 특징을 떠나서, 결국 해당 언어를 쓰는 사람들이 많다는 것은 그 자체로 매우 큰 장점이 되죠.
    • 다만, Java가 오라클 소유가 되면서 발생하는 저작권 문제와 같은 것들은, 이 사용자들에게 위협을 가하는 종류의 것으로 보이기도 하죠. 언어를 언어답게 유지하게 해주는 것은 결국 ‘사람’들인데, 이를 소유하려 하면서 발생하는 아이러니가 있는 것이죠.
    • 실제로, 최근에는 과거에 비해서 해당 프로젝트의 언어로 Java를 선정하는 경우가 줄어들고 있기도 합니다.
    • 그러함에도, 국내에서는 여전히 전자정부프레임워크라는 Java + Spring Framework 조합이 있어서, Java에 대한 수요가 높은 편이죠. 많은 사람들은 이걸 일종의 흉물이라고 보기도 하는 것 같은데, 글쎄요. 그렇게 단정짓기에는 좀 애매한 부분들이 있다고 생각합니다.
    • 다만, Kotlin, Scala 등 Java와 관계를 맺고 있는 새로운 언어들도 많기 때문에, 가능하면 그 줄기를 정확히 이해하기 위해서라도 Java를 다시 공부해보는 것도 의미가 있죠.

Background: JetBrains, IntelliJ, Russia

  • 일단은 설치부터 하기로 합니다. eclipse를 설치할 수도 있습니다만, 이번에는 IntelliJ를 설치해보기로 합니다.
  • 물론 vs code에서 코딩하고, 뭐 할 수도 있는데, 아무래도 좀 번잡스러워지는 것 같아서, IDE를 구분하는 것이 더 좋을 것 같아요.

IntelliJ

  • IntelliJ는 체코의 기업인 JetBrains에서 만든 IDE입니다. 툴 자체도 Java와 Swing Framework를 사용해서 만들어졌고, plug-in도 Java로 만들어졌죠. 물론 Java만을 위한 IDE는 아니어서, 다른 언어들도 사용할 수 있기는 하나, 굳이 그럴 필요가 있을까 싶네요.
  • 무료 버전인 Community Edition과 유료 버전인 Ultimate Edition으로 구분되는데, 저는 당연하지만 일단 Community Edition을 사용해봅니다. 아마 무척 마음에 들면 그 다음 단계로 넘어가지 않을까요.
  • 또한, 2019년에 전체 JVM 개발자 중에서 Intellij의 점유율은 62%입니다(관련기사). Eclipse는 20%, NetBeans는 10%네요. VScode는 2%입니다. 존재하기는 하는군요.

JetBrains

  • 여담으로, JetBrains은 체코 기업이지만, IntelliJ의 핵심 개발진은 대부분 러시아에 위치함 R&D센터에 있다고 합니다. 이렇게 쓰면 개멀게 느껴지지만, 러시아는 매우 큰 나라고, R&D센터는 핀란드 아래에 위치한 상트페테르부르크에 있습니다. 물론, 그래도 1,770 km죠. 러시아 치고 가깝다는 이야기입니다 호호. 왜 러시아에 있나? 싶지만, 창업자 3명이 모두 러시아사람입니다.
  • 그리고, Kotlin을 만든 회사도 JetBrains입니다. 오, 미친 회사네요. 그냥 IDE회사인줄만 알았는데 개쩌는 회사였군요.

러시아의 IT역량

  • JetBrains의 주요 개발자가 러시아인 것 때문에 궁금해서 러시아의 개발역량을 한번 찾아봤습니다. 우리는 늘 샌프란시스코만 이야기했지, 러시아가 가진 IT역량에 대해서는 이야기해본 적이 없었죠.
  • 찾아보니, 러시아의 IT capability - SW개발, 프로그래밍에 자세하게 정리되어 있습니다. 우리가 아는 것보다 훨씬 더, 러시아의 소프트웨어 역량은 대단하군요.

Wrap-up

  • 원래는 IntelliJ를 설치하고 간단한 코드를 실행해보는 것 까지 해보려고 했지만, 어쩌다보니, 글이 길어져서 여기에서 마무리합니다.
  • 다음 시간에는 IntelliJ를 설치해보고, 간단한 코드를 실행해볼게용.

댓글남기기