Comming Soon

인텔리제이 IDEA [기본 사용법부터 고급 기능까지 마스터하기]

  • 원서명IntelliJ IDEAハンズオン――基本操作からプロジェクト管理までマスタ (ISBN 9784774193830)
  • 지은이야마모토 유스케(山本裕介), 이마이 마사노부(今井勝信)
  • 옮긴이이레이
  • ISBN : 9791161752433
  • 28,000원
  • 2018년 12월 20일 펴냄
  • 페이퍼백 | 300쪽 | 188*235mm
  • 시리즈 : 오픈소스 프로그래밍

책 소개

요약

체코의 젯브레인(JetBrains) 사가 개발한 인텔리제이(IntelliJ) IDEA는 편리하고 쉽게 개발할 수 있도록 지원하는 기능과 다양한 언어 지원이 장점인 통합 개발환경(IDE)이다. 본래는 자바 개발자를 위해 개발된 IDE였지만, 최근에는 코틀린이나 스칼라뿐만 아니라 그 외의 언어 사용자 사이에서도 인기가 높다. 안드로이드 개발 용도의 ‘안드로이드 스튜디오(Android Studio)’ 기반 개발환경으로 적용된 IDE로도 많은 주목을 받고 있다. 이 책은 그 인텔리제이 IDEA의 입력서다. 1부에서는 편집, 실행, 디버그, 내비게이션, 버전 관리, 데이터베이스와 연결하기 등에 대해 코드를 작성해 기능을 직접 실행하고 따라 하는 방식으로 설명한다. 2부에서는 자바 EE, 스프링, 스칼라, 코틀린 프로젝트를 생성해 실무에서 개발하는 것을 가정하고 개발에 필요한 다양한 설명을 하고 있다. 무료로 사용할 수 있는 인텔리제이 IDEA 커뮤니티 에디션(Community Edition)의 기능을 중심으로 하고 상용 버전인 얼티밋 에디션(Ultimate Edition)의 고급 기능도 소개하므로 PhpStorm, RubyMine 같은 젯브레인의 다른 IDE를 사용하는 사용자에게도 유용한 책이다.

이 책의 대상 독자

인텔리제이 IDEA, PhpStorm, WebStorm, RubyMine, PyCharm을 포함한 젯브레인 IDE를 앞으로 사용하려는 사람이나 이미 사용 중이라도 좀 더 다양하게 활용하고 싶은 사람을 대상으로 한다. 1부에서는 기본적인 사용 방법을, 2부에서는 본격적으로 개발하는 데 도움이 되는 노하우를 살펴보도록 구성돼 있다. 우선 1부를 처음부터 자세히 읽어 기본 사용법을 배우고, 실제 개발에 대한 조언을 얻기 위해서는 2부의 필요한 내용을 적절히 찾아서 읽으면 된다.

지원 환경

이 책은 자바/코틀린/스칼라용 IDE인 인텔리제이 IDEA를 기준으로 설명하며, 2부의 일부는 인텔리제이 IDEA만의 독자적인 내용으로 구성돼 있다. 또한 이 책의 전체 내용은 인텔리제이 IDEA 2018.3 버전에서 동작하는 것을 확인했다. 인텔리제이 IDEA의 버전에 따라 메뉴, 기능 이름, 아이콘이 이 책과 다를 수 있다. 또한 인텔리제이 IDEA 화면의 스크린샷은 맥OS 시에라(Sierra)에서 캡처했다.

저자/역자 소개

지은이의 말

“명필은 붓을 가리지 않는다”’라는 말이 있지만 개발자는 상급 개발자가 될수록 개발 도구를 중요하게 생각하는 사람이 많은 것 같다. 개발 도구의 선택 기준은 '점유율이 높은 것’, ‘상용이 아닌 오픈 소스인 것’, ‘자유도가 높아 자신의 손에 익숙하게 만들 수 있는 것’ 등 사람마다 제각각 다르다. 나도 마찬가지로 매일 다루는 개발 도구를 매우 중요하게 생각하며, ‘커스터마이징하지 않고도 기본 환경만으로 쉽게 사용할 수 있는 것'이 개발 도구의 선택 기준이다. 내가 즐겨 사용하는 맥(Mac)이나 아이폰(iPhone)은 ‘완벽하게 커스터마이징해 자신의 취향에 맞추는’ 사용 방법에는 그다지 맞지 않을지도 모른다. 하지만 제품을 상자에서 꺼내면 바로 최대한 활용할 수 있도록 고안됐다. 자바 IDE로 일반적으로 폭넓게 보급돼 온 이클립스(Eclipse)는 ‘높은 점유율을 자랑한다’, ‘오픈 소스로 무료로 이용할 수 있다’는 점에서 많은 사람이 선택하고 있는 듯하다. 나도 이클립스를 여러 번 사용하려고 시도했지만 플러그인을 잔뜩 설치해야 제대로 사용할 수 있다는 점과 워크스페이스나 퍼스펙티브 같은 이클립스의 독자적인 개념이 잘 와닿지 않아 사용을 포기했다. 2000년쯤부터 선택했던 자바 IDE는 인텔리제이 IDEA가 아니라 제이빌더(JBuilder)였다. 안타깝게도 제이빌더는 2005년 무렵부터 업그레이드가 중단됐고, 돌연 이클립스 플랫폼에 포팅(porting)된다고 발표했다. 제이빌더에서 유래한 UI와 사용 느낌을 계승한 이클립스 기반의 IDE가 됐다면 좋았을 텐데, ’제이빌더 브랜드를 계승하지만 사용 느낌은 이클립스 그대로라서 무엇이 장점인지 알 수 없는 IDE’가 돼 버렸다. 그래서 2007년, 작정하고 옮겨간 IDE가 이 책에서 다루는 인텔리제이 IDEA다. 인텔리제이 IDEA는 일본 최고의 젯브레인(JetBrains) IDE 전문가인 공동 저자 이마이 마사노부 씨의 블로그를 통해 알게 됐고, 이전부터 사용해볼 생각은 하고 있었다. 인텔리제이 IDEA를 사용해보니 제이빌더와 동일하게 스윙(Swing) 기반의 가벼운 UI와 기본 설치만으로도 필요한 기능이 제공되고, 자세한 사용법을 몰라도 생각대로 코드를 개발할 수 있었다. 바로 내가 중요시하는 ‘커스트마이징하지 않아도 기본 환경만으로도 사용하기 쉬운’ IDE로 사용하자마자 매력에 빠져버렸다. 젯브레인 사는 당시 회사의 캐치프레이즈로 ‘즐겁게 개발하자(Develop with pleasure)’를 내걸었다. 번거로운 설정이나 특별한 사용법을 배울 필요가 없고, 사용자에게 필요한 작업을 예상해 스스로 알아서 제시해주는 감각은 바로 ‘즐겁게 개발하자’ 그 자체라고 할 수 있었다. 그 후에도 한동안 인텔리제이 IDEA는 ‘아는 사람은 아는’ IDE였으나 주목을 끌기 시작한 것은 2014년 자바 8버전 출시 무렵이었다. 자바 8에서는 람다(lambda)라는 새로운 언어 사양이 추가됐는데, 인텔리제이 IDEA는 자바 8이 정식으로 출시되기 2년 정도 전부터 얼리 액세스(Early Access) 버전을 지원했으며 사양 책정 단계에서 자주 바뀌는 변경 사항도 반영해왔다. 정식 출시 시기에는 단순한 코드 보완에 그치지 않고, 기존 코드를 람다를 사용한 코드로 리팩토링하는 기능 등 강력한 람다 지원 기능을 갖춰 '람다를 학습하려면 인텔리제이 IDEA로’라는 평판이 만들어졌다. 또한 스프링 부트(Spring Boot), AngularJS, TypeScript, 도커(Docker) 등 다양한 계층의 최신 기술을 재빠르게 지원하는 것으로도 주목받았다. 2016년에 이클립스의 점유율을 넘었다는 조사 결과도 나왔다. 구글이 안드로이드의 표준 개발 환경으로 이클립스를 포기하고 인텔리제이 IDEA 기반으로 안드로이드 스튜디오(Android Studio)를 발표한 것이나, 안드로이드의 표준 언어로 젯브레인이 개발하는 코틀린(Kotlin)을 도입한 것에 힘입어 현재는 ‘모르면 부끄러운’ 정도의 IDE로 성장했다고 말할 수 있지 않을까? 옛날 이야기가 길어졌다. 인텔리제이 IDEA를 비롯한 젯브레인 IDE는 개발자의 생산성을 높이는 데 무엇이 필요한지 번거로운 작업을 하지 않아도, 상황을 스스로 판단해 상급 개발자와 페어 프로그래밍을 하는 것 같은 느낌을 주는 제품이다. 젯브레인 IDE를 사용하기 시작한 사람들은 ‘즐겁다’, ‘기분 좋다’, ‘잘 알아준다’라고 입을 모아 말한다. 하지만 아무리 생산성이 높은 도구라고 해도 다른 도구에서 전환하는 데는 그만한 비용이 들고 때로는 어려움도 뒤따른다. 이 책에서는 인텔리제이 IDEA를 비롯한 젯브레인 IDE로의 전환 비용을 최소화하고 불편 없이 사용할 수 있도록 프로젝트 생성, 파일 생성, 코드 완성 같은 기본 사용법부터 본격적으로 활용하기 위한 팁까지 스크린샷을 아낌없이 사용해 설명한다. 이제 컴퓨터를 켜고 젯브레인 IDE를 설치하자. 그리고 책을 읽어가며 젯브레인 IDE의 멋진 세상을 체험하길 바란다!

지은이 소개

야마모토 유스케(山本裕介)

사무라이즘 주식회사(Samuraism Inc.) 대표이사로, 인텔리제이 IDEA를 너무 좋아해 젯브레인(JetBrains) 제품을 판매하는 회사(https://samuraism.com)를 설립했다. 양궁, 인라인 스케이팅, 요요, 스플래툰(Splatoon) 게임을 좋아한다.

이마이 마사노부(今井勝信)

일본 유니시스(Unisys Japan) 소속 시스템 엔지니어로 센다이에 살고 있으며, 인텔리제이 IDEA를 사랑한다.

옮긴이의 말

이제는 인터넷으로 다양한 정보를 얻고 자유롭게 개발한 코드를 공유할 수 있는 세상이 됐다. 일반 웹서비스뿐만 아니라 모바일, 사물인터넷(IoT), 데이터 분석 처리 등 다양한 환경과 플랫폼에서 애플리케이션을 개발하고 있으며, 개발 언어도 애플리케이션 용도에 따라 자바, 파이썬, 코틀린, 스칼라, Go 등 다양한 언어를 사용한다. 또한 오픈소스 프레임워크가 대중화 되면서 엔터프라이즈 시스템은 주로 전자정부 표준 프레임워크, DevOnFrame, AnyFrame, TERASOLUNA 등 스프링을 표준 프레임워크로 사용해 개발하고 있다. 이러한 다양한 언어나 프레임워크로 개발하기 위해서는 이제는 통합 개발환경(IDE, Integrated Development Environment) 없이는 개발을 생각할 수 없고, 이클립스(Eclipse)가 가장 대중적인 통합 개발환경으로 사용된다. 하지만 이클립스는 버전이 올라가고 다양한 기능을 제공하면서 사용자의 컴퓨터 자원을 많이 사용하게 되고, 점점 개발을 효율적으로 만들어 주는 목적보다는 사용자의 다양한 요구 사항을 받아들여 새로운 기술을 적용하기 위한 도구로 변해가고 있는 듯하다. 이에 비해 인텔리제이(IntelliJ) IDEA는 편리하고 쉽게 개발할 수 있도록 지원하는 기능과 다양한 언어 지원이 장점인 통합개발 환경이며, 인텔리제이의 모든 요소는 개발자의 생산성을 극대화하도록 설계돼 있어 해외에서는 오픈소스를 개발하거나 오픈소스 기반 개발 환경은 주로 인텔리제이 IDEA를 사용하고, 국내에서도 점점 사용자가 늘어나고 있는 추세다. 인텔리제이는 본래 자바 개발자를 위해 개발된 IDE였지만 최근에는 코틀린이나 스칼라뿐만 아니라 그 외의 언어 사용자 사이에서도 인기가 높다. 이 책은 인텔리제이 IDEA의 입문서로 기본적인 사용 개념의 이해와 사용 방법을 시작으로 실전 프로젝트에 적용하는 방법까지 체계적으로 다루고 있어 다양한 언어를 사용한다거나 스프링을 기반으로 하는 개발자에게도 상당히 유용하다. 또한 튜토리얼만으로는 알기 어려운 기능이나 실무에서 자주 사용하는 유용한 기능도 다루고 있어 저자의 숨은 노력과 배려가 깃든 책이라고 말할 수 있다. 인텔리제이 IDEA는 좀 더 나은 개발을 할 수 있게 해준다. 인텔리제이를 사용해보면 자바나 다른 언어를 사용해 개발하면서 항상 반복해오던 작업, 기존 다른 IDE를 사용하면서 불편했던 기능을 극복하고, 생각하지 못했던 정말 효율적인 방법으로 코드를 개발할 수 있도록 지원하는 등 IDE가 나아가야 할 방향을 고민하고 반영해 개발자에게 제공하고 있다는 사실을 느낄 수 있다. 이 책을 통해서 개발자들이 인텔리제이의 다양하고 강력한 기능을 접하고 익혀 좀 더 효율적으로 사고하고 개발해 한 단계 발전하는 좋은 계기가 됐으면 좋겠다.

옮긴이 소개

이레이

아파치 재단 커미터와 스프링 프레임워크 컨트리뷰터 활동을 하고 있다. 오픈 소스를 사랑한다.

목차

목차
  • 1부. 기본 사용법
  • 1장. 인텔리제이 IDEA 시작하기
    • 1.1 인텔리제이 IDEA란?
      • 인텔리제이 플랫폼 IDE
      • 젯브레인 IDE 라이선스
    • 1.2 인텔리제이 IDEA 설치
      • 인스톨러를 통한 설치
      • 젯브레인 툴박스를 이용한 설치
    • 1.3 인텔리제이 IDEA 초기 설정
      • 초기 설정 위저드를 통한 초기 설정
      • JDK 설정(초기 설정 위저드 완료 이후의 설정)
    • 1.4 인텔리제이 IDEA 커스터마이징하기
      • UI 테마 설정 변경
      • 키맵 설정 변경
      • 플러그인 설치

  • 2장. 인텔리제이 IDEA로 개발 시작하기
    • 2.1 프로젝트 만들기
    • 2.2 젯브레인 IDE 레이아웃

  • 3장. 파일 편집
    • 3.1 HTML 파일 생성과 미리 보기
      • 파일 생성과 편집
      • LiveEdit로 미리 보기
    • 3.2 편집과 자동 완성 기능
      • 완료 태그의 자동 완성 기능
      • 자동 완성 후보
      • Intention Action
      • Emmet
      • Live Template
      • Postfix completion
      • 편집 중엔 조건식 평가하기
      • Expand Selection
      • 변수 추출
      • 인라인
      • 평가 결과를 콘솔에 출력하는 설정
      • 파라미터 표시
      • 코드 포맷
      • 리네임 리팩토링

  • 4장. 실행과 디버깅
    • 4.1 FizzBuzz 코드 작성하기
      • Maven 프로젝트 생성
      • 불러오기(import) 기능
      • 자바 파일 생성
      • Inspection
      • Inspection 설정과 표시
      • main 메소드 작성
    • 4.2 FizzBuzz 실행
      • 실행 범위 지정
      • 컴파일 에러
    • 4.3 FizzBuzz 디버깅
      • 메소드 추출
      • 브레이크 포인트
      • 디버그 실행 제어
      • 브레이크 조건
    • 4.4 실행 결과 되돌리기
      • Chronon 플러그인 설치와 설정
      • Chronon 실행
    • 4.5 테스트 케이스 작성
    • 4.6 테스트 케이스 실행

  • 5장. 프로젝트에서 이동하기(Navigation)
    • 5.1 심볼 간 내비게이션
      • 심볼 선언 부분으로 이동하기
      • 심볼 사용 위치 찾기
      • 심볼 사용 위치를 팝업으로 보여주기
      • 이동 전의 코드로 돌아가기
      • 클래스 간 이동
    • 5.2 파일 내비게이션
      • 최근 작업 파일 열기
      • 최근에 작업한 파일 목록 보기
    • 5.3 디렉터리 내비게이션
      • 내비게이션 바를 사용한 이동
      • 내비게이션 바의 그 외 사용법
    • 5.4 편집 위치로 돌아가기
    • 5.5 파일 이름이나 심볼 이름을 지정해서 열기
      • Search Everywhere
      • 좁은 검색 범위의 내비게이션

  • 6장. 버전 관리 시스템
    • 6.1 실행 바이너리 설정
    • 6.2 저장소 초기화
    • 6.3 Version Control 툴 윈도우
    • 6.4 커밋 기초
      • 커밋 대상 등록
      • Commit Changes 다이얼로그
      • 커밋 전 액션 설정
      • 커밋하기
    • 6.5 브랜치 확인과 생성
    • 6.6 변경된 내용 커밋
      • 변경된 내용 비교
      • 커밋 전 편집
    • 6.7 충돌 해결
      • VCS Operations 팝업
      • 체크아웃
      • 충돌 해결 방법
    • 6.8 저장소 설정과 푸시

  • 7장. 데이터베이스 관리하기
    • 7.1 인텔리제이 IDEA 데이터베이스 기능
    • 7.2 데이터베이스 접속
    • 7.3 Database 툴 윈도우
    • 7.4 테이블 데이터 편집(테이블 에디터)
      • 데이터 정렬과 검색
      • 데이터 편집
      • 데이터 내보내기
      • CSV 파일이나 TSV 파일 내용 가져오기
    • 7.5 Database 콘솔에서 데이터베이스 작업
    • 7.6 소스 코드에서 SQL 편집
      • 참고 문서 보기
    • 7.7 여러 가지 데이터베이스 사용법JDBC 드라이버 관리
      • DDL로 데이터 소스 정의
      • 테이블 정의
      • 스키마 또는 데이터 비교
      • 특수한 데이터 편집
      • 그 외 기능 소개

  • 2부. 본격 개발편
  • 8장. 인텔리제이 IDEA의 프로젝트 관리
    • 8.1 프로젝트 관리 사상
    • 8.2 프로젝트 설정(Project Structure 다이얼로그)
      • Project 카테고리 설정
      • Module 카테고리 설정
      • Libraries 카테고리 설정
      • Facets 카테고리 설정
      • Artifacts 카테고리 설정
    • 8.3 프로젝트 관리
      • 새 프로젝트 생성
      • 다른 프로젝트 열기
    • 8.4 프로젝트 설정 시 자주 만나는 고민
      • 파일 인코딩을 지정하고 싶을 때
      • 가행 문자를 설정하고 싶을 때
      • 컴파일러 할당 메모리나 옵션을 설정하고 싶을 때
      • Project나 Module마다 컴파일러 또는 언어 레벨을 설정하고 싶을 때
      • 애너테이션 프로세서를 사용하고 싶을 때
      • 프로젝트를 템플릿으로 저장하고 싶을 때

  • 9장. 자바 EE 프로젝트 개발
    • 9.1 자바 EE 프로젝트 준비
      • 자바 EE 프로젝트 충족 조건
    • 9.2 자바 EE 프로젝트 실행
      • 아티팩트 준비
      • 애플리케이션 서버 실행 설정
      • 애플리케이션 서버 실행 설정
    • 9.3 자바 EE 프로젝트 개발
      • CDI 지원과 Bean Validation 개발 지원
      • 서블릿/JSP 개발 지원
      • JSF/Facelets 개발 지원
      • JPA 개발 지원
      • EJB 개발 지원
      • 웹 서비스(JAX-WS/JAX-RS) 개발 지원

  • 10장. 다양한 프로젝트 개발하기
    • 10.1 스프링 프로젝트
      • 네이티브 형식 스프링 프로젝트
      • Spring Initializr로 생성하는 프로젝트
      • 스프링 프로젝트 특징
      • 스프링 부트 프로젝트 생성
      • 스프링 부트 프로젝트로 개발하기
    • 10.2 자바 VM 기반 개발 언어 사용하기
      • 그루비 사용하기
      • 코틀린 사용하기
      • 스칼라 사용하기
    • 10.3 다양한 개발 언어 사용하기
      • 젯브레인 이외의 IDE 익히기
      • WebStorm처럼 HTML과 JavaScript를 사용하기
    • 10.4 PhpStorm처럼 PHP 사용하기
    • 10.5 RubyMine처럼 루비 사용하기
      • Pycharm처럼 파이썬 사용하기

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안