본문 바로가기

(5)

[서평] 처음배우는 리액트 네이티브 - 한빛 미디어

개발에 처음 입문할 때 원래는 안드로이드 개발(혹은 iOS 개발)자를 꿈꿨었다. 하지만 접근성이 쉬운 웹 백엔드, 프론트엔드 공부를 하다가 백엔드에 흥미를 느끼고 백엔드 개발자로 진로를 본격적으로 틀게되었다. 이전에 GDC에서 주최한 플러터 관련 컨퍼런스에 참가하면서 크로스 플랫폼의 개념을 접하게 되었고, 리뷰어 활동을 하면서 플러터 책을 2번 더 읽을 기회가 있었다. 플러터와 쌍벽을 이루는 크로스 플랫폼 언어로 React Native가 있다는 것 또한 플러터 책들을 읽으면서 알게 된 내용이다. 리액트 기술에도 관심이 있어서 어짜피 크로스 플랫폼을 공부해 볼 생각이라면 React Native를 공부해보고 싶다고 생각했었는데, 이번 기회에 RN에 입문해볼 수 있게 되었다. 먼저 목차부터 살펴보자! 목차 리..

[서평] 플러터 인 액션 - 한빛 미디어

인 액션 시리즈는 개인적으로 매우 좋아하는 책이다. 정확한 이유는 설명하기 어렵지만, 아마도 모던 자바 인 액션을 처음 읽고 느꼈던 모던 자바(자바17이 나온 시점에, 자바8을 모던이라 표현하는게 웃기긴하지만)를 접했을 때의 신선한 충격을 받았던 그 기억이 아직도 생생하게 남아서 그런 것이 아닐까 싶다. 사실 플러터에는 크게 관심은 없지만.... 크로스 플랫폼에는 관심이 있기에(적고보니 모순적이지만...) 이번 서평 도서로 받게 된 플러터 인 액션 또한 기대됐다. 항상 그랬듯이 목차부터 언급하면 좋을 것 같다. 목차 PART I 플러터와 다트 chapter 1 플러터 1.1 플러터에서 다트를 사용하는 이유 1.2 다트 1.3 누가 플러터를 사용할까? 1.4 플러터 사용 권장 대상 1.5 대상 독자 1.6..

나의 첫 파이썬 - 한빛미디어

10월달 리뷰 도서로는 '나의 첫 파이썬'이 선정되었다. (예전에 잠깐 배워볼까하고 공부하다가 접었는데 이번 기회에 한번 제대로 해보라는 한빛미디어의 음모..?) 책의 전반적인 내용을 살펴보면 기초적인 문법과 테스트 코드 작성법에 대해서 절반정도 분량을 차지하고 있고, 그 이후로는 간단하면서도 재밌는 외계인 침공 게임 프로젝트와 데이터를 시각화하는 프로젝트를 만들어본다. 이어서 파이썬의 대표적인 웹 프레임워크인 장고(Django)의 사용법과 웹을 만들어보는 튜토리얼로 이어진다. 목차가 궁금하다면 .... YES24 나의 첫 파이썬 파이썬을 선택해야 하는 이유 파이썬은 믿을 수 없이 효율적인 언어이다. 다른 언어에 비해 훨씬 적은 코드로 원하는 일을 할 수 있다. 파이썬 문법은 깔끔한 코드를..

[서평] 엔터프라이즈 자바 마이크로서비스 - 한빛미디어

6월의 서평 도서는 '엔터프라이즈 자바 마이크로서비스'이다. 이전에 길벗 출판사의 '마이크로서비스 패턴' 책을 서평하면서 마이크로서비스를 처음 접하게 되었다. 사실 내용이 신입개발자인 나에게는 쉽지 않았다고 생각한다. 마이크로서비스 패턴이 아무래도 모놀리식을 여러 마이크로서비스로 쪼개는 것 자체가 신입 개발자 입장에서는 생소하고 접해보지 못한 영역이다 보니 그렇겠지...? 라고 스스로를 위로해본다. 아무튼 이번 책은 저번과는 조금 더 쉽게 이해할 수 있기를 바라면서... 또한 책 제목에도 적혀있듯이, 자바 개발자를 겨냥한 책이다. 자바 개발자로 훌륭하게 성장하고 싶다면, 언젠가는 접해야할 내용일 것이다. (언젠가 DDD를 공부할 나를 위한 선행학습이라고 생각하자!! 참고로 DDD는 '도메인 주도 설계'라..

배워서 바로 쓰는 스프링 부트 2 - 한빛미디어

벌써 한빛미디어 서평단 활동 3번째 개발 서적이다. 이번 서적은 웹 개발자라면 꼭 공부해야하는 봄.... 스프링이다!! 주 언어가 Java이고 웹 개발자를 지망한다면 Spring은 꼭 공부해야 할 것이고 Spring MVC도 어느정도의 숙련도를 요구한다. (필요한 만큼 알면 된다고 하는데, 더 고급진 개발자가 되고싶다면 다다익선이다) 스프링 자체는 워낙 방대한 내용이기 때문에 전부 다 챙기다는건 쉽지 않을 것이다. 스프링은 객체지향 프로그래밍을 도와주는 프레임워크다. 객체지향설계를 공부하면서 스프링을 공부한다면 더 많이 와닿을 것이다. 어느 자바 웹 개발자 박OO 차장 대략적인 박차장의 개발인생 그렇다 웹 개발자라면... (Node 라거나.... Angular 라거나... Python은 잘 모르겠다) 스..

개발서적

[서평] 처음배우는 리액트 네이티브 - 한빛 미디어

728x90

개발에 처음 입문할 때 원래는 안드로이드 개발(혹은 iOS 개발)자를 꿈꿨었다. 하지만 접근성이 쉬운 웹 백엔드, 프론트엔드 공부를 하다가 백엔드에 흥미를 느끼고 백엔드 개발자로 진로를 본격적으로 틀게되었다. 이전에 GDC에서 주최한 플러터 관련 컨퍼런스에 참가하면서 크로스 플랫폼의 개념을 접하게 되었고, 리뷰어 활동을 하면서 플러터 책을 2번 더 읽을 기회가 있었다. 플러터와 쌍벽을 이루는 크로스 플랫폼 언어로 React Native가 있다는 것 또한 플러터 책들을 읽으면서 알게 된 내용이다. 리액트 기술에도 관심이 있어서 어짜피 크로스 플랫폼을 공부해 볼 생각이라면 React Native를 공부해보고 싶다고 생각했었는데, 이번 기회에 RN에 입문해볼 수 있게 되었다.

먼저 목차부터 살펴보자!

목차

  1. 리액트 네이티브란?
  2. 리액트 네이티브 시작하기
  3. 컴포넌트
  4. 스타일링
  5. 할 일 관리 애플리케이션
  6. Hooks
  7. Context API
  8. 내비게이션
  9. 채팅 애플리케이션
  10. 배포하기

리액트를 공부해본 유저인데 모바일 개발을 해보고 싶다면 React Native가 딱이다. 그렇다면 리액트를 한번도 안다뤄봤다면, 플러터라던지 다른 크로스플랫폼 언어를 배우는게 좋을까? 그렇지는 않다. 진입장벽이 아예 없다고는 할 수 없지만(쉬운게 어디있겠는가?) 처음 접한다고해서 문제될 것은 없다(이 말은 내가 한게 아니다 필자가 한 말이니 이로인한 걱정이 있었다면 믿고 입문해보라!) 리액트를 정말 맛만본 나였지만, 의외로 난관일 것 같았던 컴포넌트 쪽 보다는 뼛속까지 백엔드 개발자 아니랄까봐 스타일링 파트가 더 어렵게 느껴졌다.

처음 리액트 네이티브를 접하는 사람들에게는 JSX가 낯설것이다. js랑 HTML이 섞인듯한 느낌일텐데... 그 느낌이 정확하다. JSX는 문법적 편의를 제공하기 위해 만들어진 확장 기능으로 리액트 프로젝트에서 사용되는 기능인데, React Native 또한 React라는 수식어에 걸맞게 JSX를 사용한다. 당연히 처음에는 낯설 수 있지만, 더 다양하고 유용한 기능들이 많기 때문에 책의 예제들을 따라하면서 금방 익숙해질 것이다. (조금 부작용이라고 한다면 HTML 문법이랑 JSX 문법이 종종 혼동되서 HTML로 돌아왔을 때, 헷갈리는건 조금 문제지만..😅)

물론 나는 리액트를 해봤기에 책의 내용이 더 쉽게 느껴진 것일 수도 있지만, 3장의 컴포넌트에서 JSX를 처음 접했었던 인터넷 강의들 보다 더 쉽게 문법적인 요소들을 비교적 쉽게 설명해준다고 생각했다. JSX문법을 시작으로 이해하기 어려웠던 props, state 개념(리액트 공부할 때, 이 부분이 정말 많이 헷갈렸었다)을 쉽게 설명해줬던게 인상적이었고, 컴포넌트와 이벤트에 대한 설명도 아마 대부분의 독자들이 보면 무슨말인지 이해하기 쉬웠다.

아 혹시 나와같이 모바일 개발을 잘 모르는 경우에는 8장의 내비게이션을 내비게이션 앱을 만들어보는 실습 장이라고 착각할 수 있다(나만 그런건가..?). 결론은 아니다. 우리가 아는 그 내비게이션과 기능은 비슷하다. 모바일 애플리케이션은 하나의 화면으로 구성되는 경우가 거의 없기 때문에, 다양한 화면이 상황에 맞게 전환되면서 나타난다. 그럴때 이 내비게이션이 상황에 맞게 화면을 전환시켜주는 중요한 역할을 하게된다. 그러나 안타깝게도 리액트 네이티브에서는 내비게이션 기능을 지원하지 않고 외부 라이브러리인 리액트 내비게이션을 추천한다. 8장은 이 라이브러리를 사용하는 방법에 대해 설명하고있다. 마지막으로 각 OS별로 배포하는 법 까지 소개를하며 이 책을 마친다.

안드로이드 개발이냐 iOS 개발이냐 고민된다면... 리액트 네이티브는 어떨까? (혹시라도 나중에 웹을 하고싶어졌을 때도, 금방 포지션 변경이 가능하지 않을까? 라는 생각을 해본다)

728x90
카테고리 없음

[서평] 플러터 인 액션 - 한빛 미디어

728x90

인 액션 시리즈는 개인적으로 매우 좋아하는 책이다. 정확한 이유는 설명하기 어렵지만, 아마도 모던 자바 인 액션을 처음 읽고 느꼈던 모던 자바(자바17이 나온 시점에, 자바8을 모던이라 표현하는게 웃기긴하지만)를 접했을 때의 신선한 충격을 받았던 그 기억이 아직도 생생하게 남아서 그런 것이 아닐까 싶다. 사실 플러터에는 크게 관심은 없지만.... 크로스 플랫폼에는 관심이 있기에(적고보니 모순적이지만...) 이번 서평 도서로 받게 된 플러터 인 액션 또한 기대됐다. 항상 그랬듯이 목차부터 언급하면 좋을 것 같다.

목차

PART I 플러터와 다트

chapter 1 플러터

1.1 플러터에서 다트를 사용하는 이유
1.2 다트
1.3 누가 플러터를 사용할까?
1.4 플러터 사용 권장 대상
1.5 대상 독자
1.6 다른 모바일 개발 옵션
1.7 플러터의 장점
1.8 플러터가 앞으로 제공하는 혜택: 웹 앱과 데스크톱 앱
1.9 플러터 동작 원리 간단 소개
1.10 플러터 렌더링: 내부 동작 원리
1.11 마치며

chapter 2 다트

2.1 Hello, Dart!
2.2 다트의 프로그래밍 개념
2.3 제어 흐름
2.4 함수
2.5 다트의 객체지향 프로그래밍
2.6 마치며

chapter 3 플러터의 세계로

3.1 카운터 앱 소개
3.2 위젯 트리와 형식, State 객체
3.3 BuildContext
3.4 중요한 위젯을 추가해 카운터 앱 개선하기
3.5 상속보다 조합을 선호하는 플러터
3.6 플러터 레이아웃
3.7 요소 트리
3.8 마치며

PART II 사용자 상호작용과 스타일, 애니메이션

chapter 4 플러터 UI: 주요 위젯, 테마, 레이아웃

4.1 앱 구현과 설정
4.2 구조 위젯과 기타 설정
4.3 스타일링과 테마
4.4 자주 사용하는 레이아웃과 UI 위젯
4.5 ListView와 빌더
4.6 마치며

chapter 5 사용자 입력: 폼과 제스처

5.1 사용자 상호작용과 제스처
5.2 플러터 폼
5.3 FormField 위젯
5.4 Form UI와 포커스 작업
5.5 폼 메서드로 폼 상태 관리하기
5.6 마치며

chapter 6 픽셀 제어: 플러터 애니메이션과 캔버스 사용하기

6.1 플러터 애니메이션
6.2 CustomPainter와 캔버스
6.3 내장 애니메이션, 단계별 애니메이션, TweenSequence
6.4 재사용할 수 있는 커스텀 색 변화 위젯
6.5 마치며

PART III 상태 관리와 비동기 작업

chapter 7 플러터 라우팅

7.1 라우팅
7.2 선언형 라우팅과 기명 라우트
7.3 즉석 라우팅
7.4 라우팅 애니메이션
7.5 마치며

chapter 8 상태 관리

8.1 StatefulWidget 자세히 살펴보기
8.2 순수 플러터 상태 관리: InheritedWidget
8.3 블록
8.4 마치며

chapter 9 비동기 다트와 플러터 그리고 무한 스크롤

9.1 비동기 다트
9.2 싱크와 스트림 그리고 StreamController
9.3 블록에 스트림 사용하기
9.4 비동기 플러터: StreamBuilder
9.5 무한, 커스텀 스크롤 위젯
9.6 마치며

PART IV 기초를 넘어

chapter 10 데이터 처리: HTTP, 파이어스토어, JSON

10.1 HTTP와 Flutter
10.2 JSON 직렬화
10.3 플러터로 파이어베이스 사용하기
10.4 의존성 주입
10.5 마치며

chapter 11 플러터 앱 테스트

11.1 플러터 테스트
11.2 Semantics 위젯의 접근성
11.3 다음 여정
11.4 마치며

PART V 부록

부록 A 다트 2와 플러터 설치
부록 B Pub 패키지 관리자
부록 C 웹 개발자를 위한 플러터
부록 D iOS 개발자를 위한 플러터
부록 E 안드로이드 개발자를 위한 플러터

개발 공부를 하면서 느낀 것이 Why(왜?)하고 고민하는 것이라 생각했는데, 시작부터 마음에 든다. 왜 플러터는 그 많은 언어 중에서 다트라는 언어를 사용할까? 플러터가 구글에서 만든 오픈소스이고, 다트 또한 구글이 만들었고 유지보수하기 때문일까? 물론 영향이 없지는 않겠지만, 그것보다는 다트라는 언어의 특성 때문이다. 책의 내용을 읽으면 쉽게 이해할 수 있을 것이다. 설령 설명이 이해가 안되더라도 이 이후에 다트를 자세히 다루면서 몸소 느낄 수 있게 될 것이다. 모던 자바인 액션책을 본 독자라면, 이 책이 기본 문법을 모르는 상태에서 못 보는 책이라고 오해할 수 있을 것 같다(내가 그랬다). 하지만 다행히도 다트의 기초도 포함하고 있기 때문에, 필자보다도 더 다트가 생소한 개발자들이 봐도 충분히 따라갈 수 있으리라 생각한다. 플러터의 기초적인 내용을 다룬 이후에는, 크게 플러터로 사용자와 상호작용을 하기 위한 방법, 상태관리와 비동기 작업을 하는 방법론을 학습할 수 있다. (다트 또한 객체지향언어로써 객체지향 프로그래밍이 가능하고, 최신 패러다임인 리액티브 프로그래밍에 함수형 프로그래밍도 할 수 있다! 이것만으로도 나의 호기시심을 자극하기에는 충분했다!! )

또한 11장에서 플러터 앱을 테스트하는 방식을 유닛 테스트 부터 시작해서 모기토를 이용한 목 객체를 활용한 테스트라던지 모바일 앱 특성의 테스트 그리고 통합테스트, 성능 프로파일링 등 플러터로 프로그래밍하면서 필요할만한 테스트를 모두 다뤘다고 생각한다. 테스트가 없는 코드에 불안감을 느끼는 나에게 11장의 내용들은 이 책은 좋은책이다! 라고 느끼게 해주었다.
image

728x90
개발서적

나의 첫 파이썬 - 한빛미디어

728x90

10월달 리뷰 도서로는 '나의 첫 파이썬'이 선정되었다. (예전에 잠깐 배워볼까하고 공부하다가 접었는데 이번 기회에 한번 제대로 해보라는 한빛미디어의 음모..?)

책의 전반적인 내용을 살펴보면 기초적인 문법과 테스트 코드 작성법에 대해서 절반정도 분량을 차지하고 있고, 그 이후로는 간단하면서도 재밌는 외계인 침공 게임 프로젝트와 데이터를 시각화하는 프로젝트를 만들어본다. 이어서 파이썬의 대표적인 웹 프레임워크장고(Django)의 사용법과 웹을 만들어보는 튜토리얼로 이어진다.

목차가 궁금하다면 .... YES24 나의 첫 파이썬

파이썬을 선택해야 하는 이유

파이썬은 믿을 수 없이 효율적인 언어이다. 다른 언어에 비해 훨씬 적은 코드로 원하는 일을 할 수 있다. 파이썬 문법은 깔끔한 코드를 유도한다. 파이썬 코드는 다른 언어에 비해 읽기 쉽고, 디버그하기 쉽고, 확장하기 쉽다. 또한 다양한 분야에 파이썬을 활용한다. (게임, 웹 애플리케이션, 사업 문제, 사내에서 사용할 도구 프로그램, 과학 분야의 연구와 응용)

무엇보다도 필자가 파이썬을 쓰는 가장 중요한 이유는 파이썬 커뮤니티 때문이라고 한다. (프로그래머에게 이런 커뮤니티가 아주 중요하다고 생각해서)

이 책에서 가장 마음에 들엇던 부분은 3가지였는데, 우선 첫번째로 테스트 코드에 대한 설명이 있다는 점이다. 제대로 된 프로그래밍 언어 입문책은 Java 밖에 못보긴 했지만, 테스트 코드 설명에 대한 얘기는 언급된 적이 없었던 것 같다. 그래서 Java를 알게된 시점과 테스트 코드를 처음 접했던 시점이 무려 1년 정도의 gap이 있었다(파이썬의 unittest 모듈과는 달리 Java 진영의 JUnit은 '프레임워크'이기 때문에 설명하기 애매했을 수도 있겠다). 어쨋건 이 책을 읽는 독자는 파이썬의 기초적인 문법을 배움과 동시에 테스트 코드 작성에 대한 적어도 기본 지식은 학습할 수 있다는 것이 큰 장점이라 생각한다.

두 번째로, 외계인 침공 게임과 같이 (간단하면서도) 눈에 보이는 실습 프로젝트가 책 내용에 포함되어 있다는 것이다(그것도 중간에). 기초적인 문법부분은 공부를 안 할수는 없는데(알파벳을 모르고 어찌 영어를 하겠는가?) 지겹게 느껴지는 것도 사실이다. 뭔가 만들어보고 싶은 욕구가 넘치겠지만, 학습자가 생각하는 그럴싸한(?) 애플리케이션은 일반적으로 프레임워크 정도는 다룰 수 있어야 한다고 생각한다. 부푼 기대를 가지고 개발 공부를 시작했지만 기초문법에 점점 지쳐가는 예비 개발자들에게 오아시스와도 같은 구간이라 생각한다.

세 번째로는 단순히 파이썬의 기초문법으로 끝나는게 아니라, 웹 프레임워크인 장고까지 이어서 설명한다는 것이다. 언어의 기초만 설명하고 끝나지 않고, 프레임워크에 대학 학습까지 이어져서 한번 공부를 하면 파이썬 웹 개발을 전체적으로 맛볼 수 있다는 점이 좋았다(전체적인 틀을 아냐 모르냐?는 꽤 크다고 생각해서 그렇게 생각한다).

분명 이 외에도 내가 캐치못한 좋은 장점들이 많을 것이다. 파이썬을 입문하고자 그리고 입문에만 그치지 않고 파이썬으로 웹 프로그래밍 하는 것을 목표로 하고있다면, 꼭 추천하고싶은 서적이다.

728x90
카테고리 없음

[서평] 엔터프라이즈 자바 마이크로서비스 - 한빛미디어

728x90

6월의 서평 도서는 '엔터프라이즈 자바 마이크로서비스'이다. 이전에 길벗 출판사의 '마이크로서비스 패턴' 책을 서평하면서 마이크로서비스를 처음 접하게 되었다. 사실 내용이 신입개발자인 나에게는 쉽지 않았다고 생각한다. 마이크로서비스 패턴이 아무래도 모놀리식을 여러 마이크로서비스로 쪼개는 것 자체가 신입 개발자 입장에서는 생소하고 접해보지 못한 영역이다 보니 그렇겠지...? 라고 스스로를 위로해본다. 

아무튼 이번 책은 저번과는 조금 더 쉽게 이해할 수 있기를 바라면서... 또한 책 제목에도 적혀있듯이, 자바 개발자를 겨냥한 책이다. 자바 개발자로 훌륭하게 성장하고 싶다면, 언젠가는 접해야할 내용일 것이다. (언젠가 DDD를 공부할 나를 위한 선행학습이라고 생각하자!! 참고로 DDD는 '도메인 주도 설계'라는 것인데, 궁금하다면 찾아볼 것을 추천한다.) 

자 이제 시작해보자! 

서평의 첫 순서는 역시 목차를 훑어보면서, 이 책이 어떤 내용들을 다루고 있는지, 또 어떤 순서로 설명하는지 알아보자! 


목차

  1. 엔터프라이즈 자바 마이크로서비스

    1.1 엔터프라이즈 자바의 역사

    1.2 마이크로서비스와 분산 아키텍처

    1.3 마이크로서비스로 마이그레이션할 때 사용할 수 있는 패턴들 

    1.4 엔터프라이즈 자바 마이크로서비스란 무엇인가?

  2. 간단한 RESTful 마이크로서비스 개발하기

    2.1 카얌베 모노리스

    2.2 새로운 관리 사이트


  3. 마이크로서비스를 위한 애플리케이션 서버

    3.1 꼭 필요한 만큼의 애플리케이션 서버

    3.2 JeAS 선택하기
  4. 마이크로서비스 테스트

    4.1 어떤 유형의 테스트가 필요한가?

    4.2 단위 테스트

    4.3 불변성이란 무엇인가? 

    4.4 통합 테스트

    4.5 소비자 중심 계약 테스트
  5. 클라우드 네이티브 개발 

    5.1 클라우드란 무엇인가? 

    5.2 서비스 모델

    5.3 클라우드 네이티브 개발 

    5.4 클라우드에 전개하기

    5.5 미니시프트 시작하기

    5.6 마이크로서비스 클라우드 전개 

    5.7 클라우드에서 테스트하기 

  6. 마이크로서비스 소비하기

    6.1 자바 클라이언트 라이브러리를 통해 마이크로서비스 소비하기

    6.2 JAX-RS 클라이언트 라이브러리로 마이크로서비스 소비하기

  7. 소비할 마이크로서비스 발견하기 

    7.1 왜 마이크로서비스를 발견할 수 있어야 하는가?

    7.2 손테일로 마이크로서비스 등록하기

    7.3 손테일을 통해 등록한 마이크로서비스 소비하기

  8. 내고장성과 모니터링 전략

    8.1 분산 아키텍처에서 발생하는 마이크로서비스의 실패

    8.2 네트워크 실패

    8.3 실패 영향 경감시키기

    8.4 히스트릭스를 지불 마이크로서비스에 추가하기

  9. 마이크로서비스 보안

    9.1 마이크로서비스 보안의 중요성

    9.2 키클록 사용하기

    9.3 스트라이프 마이크로서비스에 보안 적용하기

    9.4 사용자 인증 획득하기

  10. 마이크로서비스 하이브리드 아키텍처 구성하기

    10.1 카얌베 모노리스

    10.2 카얌베 모노리스 실행하기

    10.3 카얌베 하이브리드 - 마이크로서비스를 사용하는 모노리스

    10.4 하이브리드 클라우드에 전체 전개하기

  11. 아파치 카프카를 이용한 데이터 스트리밍

    11.1 아파치 카프카가 할 수 있는 일은 무엇인가?

    11.2 모노리스 아키텍처를 스트리밍을 사용해 단순하게 만들기 

    11.3 데이터 스트리밍을 위해 카프카 전개하고 사용하기

  12. 부록 스프링 부트 마이크로서비스 

    A.1 스프링 부트 프로젝트 해부도

    A.2 애플리케이션 프로퍼티 설정하기

    A.3 스프링 부트 스타터 의존관계

    A.4 스프링 부트 애플리케이션 개발하기

    A.5 스프링 부트 테스트

목차에서 살펴볼 수 있듯이, 책제목에서부터 등장하는 엔터프라이즈 자바와 마이크로 서비스(와 분산 아키텍처도)에 대한 설명을 진행하며, 책을 설명한다. 다소 쉽지 않은 내용이 등장하지만, 책의 구성이 개념설명 --> 기존의 문제점 --> 그 문제를 해결하기 위한 새로운 개념 --> 사용 방법의 순으로 진행을 하고 있어, 아마 크게 문제없이(단지 갑자기 많은 개념들이 적립되면서, 기억력의 한계가 와서 문제였지만...) 읽어나갈 수 있을 것이다. 사실 이론적인 부분을 아무리 자세히 설명하더라도, 실제 코드(실습을 할 수 있는 환경이라면 더더욱 좋겠지만)를 보지 않고서는 제대로 이해하기 힘들다. 이 책의 장점 중 하나는 책의 예제 파일들도 다운로드하여 참고할 수 있다는 것이다. 사실 책을 보면서 무슨소리지? 했던 부분도 코드를 보면서(단번에 이해가 됐다는 얘기는 아니다) 조금씩 의미를 이해할 수 있었다. 프로그래머는 코드로 말하는 사람이 아니던가?(자신있게 말은 못하겠다... 아닌가?) 또한 내용자체도 어렵지 않다고(?) 느껴졌는데, 앞에서 말했다시피 이미 마이크로서비스 아키텍처라는 도서를 읽었기에, 그 의미를 짐작하고 있어서 그럴지도 모르겠다. 

 

728x90
개발서적

배워서 바로 쓰는 스프링 부트 2 - 한빛미디어

728x90

벌써 한빛미디어 서평단 활동 3번째 개발 서적이다. 이번 서적은 웹 개발자라면 꼭 공부해야하는 봄.... 스프링이다!!

 

주 언어가 Java이고 웹 개발자를 지망한다면 Spring은 꼭 공부해야 할 것이고 Spring MVC도 어느정도의 숙련도를 요구한다. (필요한 만큼 알면 된다고 하는데, 더 고급진 개발자가 되고싶다면 다다익선이다) 스프링 자체는 워낙 방대한 내용이기 때문에 전부 다 챙기다는건 쉽지 않을 것이다. 스프링은 객체지향 프로그래밍을 도와주는 프레임워크다. 객체지향설계를 공부하면서 스프링을 공부한다면 더 많이 와닿을 것이다. 

 

어느 자바 웹 개발자 박OO 차장

 

대략적인 박차장의 개발인생 

 

그렇다 웹 개발자라면... (Node 라거나.... Angular 라거나... Python은 잘 모르겠다) 스프링의 숙명을 받아들이자! 스프링과 스프링 부트의 구별을 먼저 하는게 좋을 것 같다. 스프링을 사용하기 위해서 처음부터 설정을 할려면.... 처음하는 입장에서 정말 힘들다(심지어 몇번 해봤음에도, 버전의 문제라던지 gradle, maven의 차이? 라거나 그런 차이 때문에 계속 빌드를 실패하는 경우가 허다하다..).  환경설정만 트라이 하다가 실패한적이 많을 것이다. 스프링 부트는 이런 환경설정을 자동으로 해줌으로써 개발자가 개발에만 집중할 수 있는 환경을 제공한다. IDE에서 바롱 스프링 부트 환경으로 프로젝트를 만들 수 있기도 하고(IDE마다 방식이 다름, 인텔리제이는 Ultimate 버전만 가능한걸로 알고, 이클립스도 가능했던걸로 아는데, 안해봐서 잘 모르겠다. 구글 선생님께 물어보자!),  IDE로 스프링 부트 프로젝트를 생성하는 방법도 있지만, Spring Initializr 로 생성하는 방식이 있다.  (Maven/Gradle 프로젝트 중에 어떤걸 만들지, Java/Kotlin/Groovy 중 어떤 언어를 사용할지, 스프링 부트는 몇 버전을 사용할지 고를 수 있다)

 

위와 같이 생겼고 아래와 같이 필요한 의존성을 추가해주면 된다.  예로들어 JPA와 Spring MVC, Spring JDBC를 추가해보자! 의존성 추가는 우측에 ADD DEPENDENCIES... (맥 기준 단축키로 ⌘ + B) 를 클릭하면 아래와 같은 창이 뜨고 여기서 검색해서 원하는 의존성을 추가하면 된다. 

 위와 같이 검색 결과가 나오면 클릭해준다. 그러면 아래와 같이 우측 Dependencies에 의존성이 추가할 의존성 목록이 생긴다.

 

이렇게 의존성 추가를 다 했으면, GENERATE 버튼을 눌려서 github 혹은 zip 파일로 다운받아 압출을 푼 뒤 프로젝트를 진행하면 된다.


그렇다 어쨋거나 스프링 부트는 프로덕션 환경에서 실행할 수 있는 애플리케이션 개발을 쉽고 빠르게 할 수 있다. 서드파티 라이브러리나 스프링 플랫폼 설정이 처음부터 들어 있어 최소한의 작업으로 개발을 시작할 수 있다. 

설정을 변경하지 않는다면 내장된 컨테이너로 톰캣을 사용해 미리 준비된 환경에 따라 동작한다. 스프링 부트를 사용하여 애플리케이션을 개발하면 명령줄로 실행 가능한 하나의 JAR파일을 만들 수 있다. 명령줄에서 java -jar 명령의 인수로 작성한 JAR 파일을 지정해 실행하면 내장된 톰캣이 실행된 후 개발한 애플리케이션이 실행된다.

개발자는 톰캣 등의 애플리케이션 서버를 준비할 필요 없이 단순히 실행만으로 애플리케이션을 동작할 수 있다. 또한 WAR 파일을 만들 수 있어 기존 환경에 애플리케이션 서버가 있다면 스프링 부트를 기존 방법처럼 사용해 애플리케이션을 배포할 수 있다. 

스프링MVC의 기능은 어느정도 알아야 웹 개발이 가능하겠지만, 스프링의 기초(환경설정 등..)부터 학습하며 스프링으로 프로젝트를 진행하는데에는 적지 않은 시간이 소모된다. 당장 프로젝트를 만들고 싶다면 스프링 부트를 사용해보는 것이 좋다는 생각이 든다. 

배워서 바로 쓰는 스프링 부트 2의 목차를 알아보자 총 12챕터로 구성이 되어있다.


목차

Chap1. 스프링 부트의 구성

Chap2. 웹 애플리케이션의 공통 처리

Chap3. 데이터 액세스

Chap4. 보안

Chap5. 화면 개발

Chap6. API 개발

Chap7. 팀 개발

Chap8. 운용

Chap9. 시스템 아키텍처 구성

Chap10. 스프링 5와 스프링 부트 2의 신기능

Chap11. 로컬 개발 환경 구축

Chap12. 예제 애플리케이션 


스프링 책은 3 ~ 4권 정도 읽어봤지만 스프링 부트가 주제인 서적은 처음 읽어봤다. 그래서인지 목차의 구성이 스프링 코어에 집중된 책과는 다소 다르다르다고 느껴졌고, 각 챕터에 어떤 내용이 나올지? 궁금함이 많이 생겼다.  책을 가볍게 읽어나가면서, 내가 쓰고있는 스프링 부트의 기능들은 정말 새발의 피였다는 것을 느끼게 돼었다. 

아무래도 백엔드 개발에 대해서 아무리 해박하더라도 결국 서버에 배포할 줄 모르면 나의 프로젝트를 만들 수 없다. 스프링 부트 책이라 사실 스프링 부트를 활용하는 방법만 어느정도 있겠지? 라는 생각을 했었다. 목차를 봐도 언뜻 알 수 있지만, 단순히 스프링 부트의 활용(물론 부트의 많은 기능들을 서술하고 있다.. 사실 다 기억도 안날정도라서 모르는 것들은 메모를 해두고 다시 볼려고 한다)만 있는 것이 아니라, 인프라(DB, 무정지 배포), 유지보수성을 높이는데 도움이 되는 내용들도 언급하고 있다.

매주 진행하고 있는 스터디에서 다음주부터 본격적으로 프로젝트를 하나 진행해보려고 한다. 때마침 오늘은 AWS 서버와 CI / CD 환경을 구축했다. 원래 계획했던 개발 환경이 있었는데, 이 책을 통해서 나 또한 견문이 많이 넓어졌다. 가능한 빨리, Version 1을 만들고 책의 내용들은 하나씩 추가하며 Version 2, 3 ... 등 계속해서 기능을 추가해볼 예정이다. 

배워서 바로 쓰는 스프링 부트2를 읽으면서, 배워서 바로 쓰는 스프링 프레임워크는 어떨까? 라는 생각이 많이 들었다. 기회가 된다면 읽어보고 싶다.

빠르게 자신의 웹 프로젝트를 개발하고 싶은 개발자들에게 '스프링 부트'는 매력적인 tool일 것이다. 하지만 스프링 부트도 기본적인 지침서가 있어야 한다. 사실 스프링 부트 지침서를 하나 구해서 읽어봤었는데, 만족스럽지 못했었다. 하지만 이번 책은 나의 기대치에도 부합하고, 오히려 생각지도 못한 간지러운 부분도 긁어준 느낌이다. 

"배워서 바로 쓰는" 시리즈 는 이제부터 눈여겨 볼 것이다. 다음 책 나오기만 해봐라 

728x90