[이펙티브 자바] 이펙티브 자바 소개

이성훈·2022년 3월 11일
0

이펙티브 자바

목록 보기
1/17
post-thumbnail
post-custom-banner

최근에 이펙티브 자바를 공부하는 것이, 좋은 개발자가 되기 위해 필수적으로 알아야 하는것 중 하나로 자리를 잡은것 같다.

처음에 이름을 들었을 때는 "새로 나온 기술 스택인가?" 라는 생각을 했다. (아마 나 말고도 그렇게 생각했던 사람들도 많을거다.)

하지만 놀랍게도.. 이펙티브 자바는 그저 책 이름일 뿐 이다.

단순한 한권의 책이 마치 하나의 기술 스택, 또는 하나의 기술 신드롬과 같이 자리 잡는 것은 꽤나 드문 일이다.

그만큼 그 내용이 중요하고 좋은 내용이기에 이렇게 유명해지지 않았나 싶다.

이번 시리즈에서는 이펙티브 자바를 공부하고 내가 이해한 내용을 바탕으로 재정리하는 시간을 가져보려고 한다.


#    순서


이펙티브 자바는 다음과 같이 총 12개의 큼지막한 글이 있고 각 글은 여러 Item으로 구성되어 있다.

  •   1. 들어가기
  •   2. 객체의 생성과 파괴
  •   3. 모든 객체의 공통 메서드
  •   4. 클래스와 인터페이스
  •   5. 제네릭
  •   6. 열거 타입과 애너테이션
  •   7. 람다와 스트림
  •   8. 메서드
  •   9. 일반적인 프로그래밍 원칙
  •   10. 예외
  •   11. 동시성
  •   12. 직렬화

각 글에 Item이 대략 10개정도 되므로, 꽤 긴 많은 내용을 담고 있다.

# 공부 방향


이펙티브 자바는 내용이 어렵다는 소문이 자자하다.

아무래도 교과서적인 내용보다는, 여러 개발 과정에서 도움이 될 만한 특수한 내용들을 담고 있기 때문이 아닌가 싶다.

내가 생각하는 이 책 내용의 주 목적은, 개발 실력을 보다 유연하게 해줄 수 있는 일종의 개발팁이다.

책의 전체적인 흐름 또한, "이런 방법이 옳다" 가 아닌, "이런 방법도 고려해보는건 어때?" 라며 정보를 제시하는 자세를 취한다.

말하고자 하는 요지는, 이런 방법론적인 책의 내용은 분명 고급 개발자로 한걸음 내딛을 수 있는 팁이 되지만 너무 치중할 필요도 없다는 것이다.

IT 분야에서 어떤 문제를 해결하려고 하는데에 여러 방법이 있다고 한다면, 절대적으로 옳은 한가지는 결코 없다.

각 방법들이 장단점을 가지고 있기 때문에 상황별로 유연하게 사용하는 것이 옳다.


나만의 예시를 들어보자.

Q.   A라는 기업은 그들만의 서비스를 구축해 운영하고자 한다. 이때 로컬 환경 기반의 On-Premiss 환경으로 구성하는 것이 좋을까, 클라우드 기반의 Cloud-Native 환경으로 구성하는 것이 좋을까?

위와 같은 질문을 듣는다면 뭐라고 답해야 할까?

요새 클라우드가 대세이니 당연히 클라우드 기반으로 구축하자고 답할 수는 없다.

클라우드가 장점만이 있는건 아니기 때문이다. SI/SM 분야에서 일하고 있는 나는 클라우드 기반으로 서비스를 구축할 경우 비용이 어마어마 하다는 것을 알고있다.

또 On-Premisss 기반이 단점만이 있는것도 아니다. 구축과정이 클라우드에 비해 단순하고 서비스 배포 또한 용이하다.

결국 아무리 시대가 클라우드 기반 서비스에 열광한다고 하더라도, 모든건 상황에 따라 좋은 방법이 다르다는 말이다.


어쨋든 다시 본론으로 돌아와서.. 이펙티브 자바 또한 마찬가지다.

가령 이렇게 유명해지는 이론에 대해 무조건적인 자세로 수용하는 사람들을 많이 봐왔다.

하지만 필자 또한 결코 본인이 제시하는 방법이 옳다고 말한 적이 없다.

원칙과 교과서를 이기는 방법론들은 그만큼 특수한 상황들이 등장했을 때이다.

그래서 이펙티브 자바를 공부하는 나 또한, 탄탄한 기본과 원칙을 기억하면서도, 특수한 상황에 대한 유연한 대처법으로만 사용하려고 한다.

아무쪼록 이 공부가 나에게 많은 도움이 되기를 바란다.

profile
IT 지식 공간
post-custom-banner

0개의 댓글