ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [칵테일픽] 어떤 자바 버전을 써야 할까?
    Project 2020. 10. 9. 17:02

    우아한테크코스에서 진행 중인 팀 프로젝트인 칵테일픽 서비스를 운영하며 생긴 에피소드를 다룬 글입니다.

     

    프로젝트를 만들어 보자

    시간을 돌려 칵테일픽 개발을 처음 시작할 때로 가본다. 당시 우리 팀은 기술 스택을 정해놓고 intellij를 이용하여 실제 프로젝트를 만드는 중이었다.

     

    개발 시작의 설롐이 느껴지는가 (어디서?)

     

    위와 같은 창이 떴고 NEXT 버튼을 눌러 세부 설정을 진행하려더 순간 팀원 중 한명이 손을 들고 말했다. "우리 자바 버전 8쓰는거야?" 잠시의 정적이 흐르고 나의 대답. "뭐.. 그렇지 않을까?" 그는 다시 물었다. "왜?" 당시의 대답은 "우아한테크코스를 진행하며 계속 사용했으니까"였다. 

    빈약한 근거로는 다른 주장을 설득하기 힘들다. 이야기는쉽게 마무리되지 않을 것 같았다. 다른 팀원들도 너도나도 한마디씩 거들기 시작했다.

    "9 버전은 Optional도 Stream도 편하게 쓸 수 있다던데?"

    "지금까지는 8을 썼으니까 최신 버전을 써보는건 어때?"

    "그냥 쓰던거 쓰는게 좋을 거 같아..!"

    여러 의견들이 오가는 사이 우리의 소중한 시간은 지나가고 있었다. 의사결정이 필요했다. 우리 팀의 문화에는 근거를 가지고 말하자는 내용이 있다. 이에 따라 각자 자바 버전이 지원하는 기능들을 찾아보았다. 

    1번이다. 팀문화 1번이다.

     


     

    내용을 정리해보자

    회의록을 찾아보다가 당시에 내용을따로 적어두지 않아서 뒤늦게 주요 버전의 내용들을 간단하게 정리해본다. 

     

    8

    • Stream API 지원
    • Optional 클래스 지원
    • 새로운 날짜 및 시간 API 지원
    • 람다 표현식 지원

     

    9

    • HTTP 2 Client
    • 동기/비동기 지원
    • Collection을 편리하게 사용하기 위한 메서드 추가
    • Stream API에 메서드 추가
    • Optional 클래스에 메서드 추가

     

    11

    • 새로운 GC의 적용
    • 버전 10에서 적용되었던 타입추론 변수인 var을 람다 표현식에도 사용 가능
    • 버전 9에서 추가된 HTTP 2 Client를 정식으로 표준화

     

    당시 회의에서도 이정도의 간단한 내용들을 준비해오고 이야기를 나눴던걸로 기억난다. 여기에 추가적인 정보로는 자바 8 버전은 오라클의 공식적인 지원이 끝났고 유료 구독시 2025년까지 지원받을 수 있다는 점. 그리고 오픈 JDK를 활용하면 무료로 사용할 수 있다는 정보들도 포함되었다. 

     


     

    그래서 우리의 선택은?

    의논 끝에 8 버전으로.

    익숙함생각보다 크게 다가온다. 다른 자바 버전을 굳이 사용했다가 모르는 문제를 맞닥뜨리면 어쩌지?, 지금까지로 우테코에서도 8 버전으로 충분히 잘 해왔는데 굳이 11 버전으로 해야할까? 새로 추가된 기능을 우리가 사용할지 모르겠어. 서비스 개발을 해야하는데 학습비용이 추가로 들거 같아! 나중에 바꿔보는 것도 경험아닐까? 
    이런 여러 이유들.

    당시 최선의 선택을 한 우리 팀이었지만, 지금 와서 생각해보니 기존의 틀을 깨지 못했다. 당장 오라클의 지원여부만 놓고 보더라도 자바 버전을 11로 시작할 이유는 충분하다고 생각된다. 실제로 현업에서도 11로 넘어가는 과도기거나 새로 시작하는 프로젝트는 11로(혹은 아에 코틀린으로) 만든다는 이야기를 들었다.
    이쯤되니 버전 8로 하길 잘한거 같다. 여러 이유들 중 하나인 호환성을 지키며 버전을 바꿔보는 경험을 해볼 수 있을테니!!

     

    댓글

Toneyparky Blog