자바스크립트 + 리액트 디자인 패턴 - 자바스크립트와 리액트의 최신 패턴과 렌더링, 성능 패턴까지
애디 오스마니 지음, 윤창식 옮김 / 한빛미디어 / 2024년 8월
평점 :
장바구니담기


지금 시점에 JavaScript의 중요성은 매우 크게 작용합니다.

대표 SPA 프레임워크로 리액트도 가장 많이 사용하는 기술입니다.

 

이 책에서는 디자인 패턴이라는 부분이 js에 대한 부분인지, react에 대한 부분인지도 궁금합니다.

일반적인 디자인패턴 말고 js에서 사용하는 조금은 다른 형태의 디자인 패턴인지도 확인해보려고 합니다.

 

 

■ 책 살펴보기

· 책의 저자분은 크롬 리더이자 구글러 입니다. 가장 많이 사용하는 js에 대해서 최고의 전문가 입니다.

· 이책의 제목으로는 1판이지만, 기존에 Learing Javascript Design Patterns이 1판이고 SPA프레임워크의 등장으로 이러한 부분도

    업데이트가 되면서 이책이 출간되었습니다.

· 기본적인 디자인 패턴 및 리액트에서도 사용하면 좋은 좋은 사례들로 구성되어 있습니다.

 

 


■ 패턴에 대해서 다시 한번 생각하게 remind합니다.

· 무조건 패턴을 적용하지 않으면, 좋은 코드가 아닐까요? 과연 좋은 패턴은 무엇일까요?

우리는 프레임워크를 사용하며서, 우리가 의도 하지 않았지만 자연스럽게 디지인 패턴을 사용하고 있습니다.

Spring, React등 의 프레임워크를 통해서 공급자 패턴, 팩토리, 프록시 패턴등을 자연스럽게 사용하고 있습니다.

우리가 유지보수성등을 고려해서 코드를 작성하였는데, 그러한 부분이 흔히 알려진 Gof의 디자인패턴중에 한가지를 구현한 것일수 있습니다.

· 책의 도입부에서 저자분이 생각하는 패턴에 대해서 설명하고 javascript에서의 디자인 패턴을 동일하게 적용 가능하지만,

최근의 js의 다양한 문법 및 SPA의 특성을 고려하여서 적용하기 좋은 디자인 패턴에 대해서 정의가 필요하다고 생각합니다.

· 프로토 패턴이라는 용어를 처음 접하였는데, 완전한 패턴이 아닐수 있지고, 몇가지 핵심 요소가 빠져있을수 있는 코드 이지만 향후 프로젝트에 도움이 될 유용한 패턴이라고 정의합니다.

· 안티패턴에 대한 정의도 다시 한번 remind합니다.

· 디자인 패턴의 유형

· 자주 사용하는 패턴에 대해서 다시 한번 정의하고 가는 내용 구성이 좋았습니다.

 

 


■ 자바스크립트를 활용한 패턴 적용하기

· ES2015 버전 이후부터는 JS을 이용해서도 생성자를 가진 클래스를 만들 수 있게 되었습니다.

예전에는 java처럼 생성자를 가진 방식으로 생성할수 없었습니다.

확실히 이러한 부분을 캐치업하는 것이 다른 언어와의 차이점이고, 이 책을 통해서 새로운 지원 문법을 확인하고

디자인 패턴을 잘 적용할수 있는 방법을 확인 해볼 수 있습니다.

 

 

 

· 지금은 잘 사용하지 않지만, 초기 자바스크립트에서 사용하는 다양한 방법도 함께 소개되어지고 

디자인 패턴으로 활용하는 방법도 기존코드와 현재 문법이 혼용되어 있는 환경에서 도움이 됩니다.

 - 객체 리터럴 표기법, 모듈 패턴, AMD 모둘, CommonJS모듈

· 싱글톤 패턴

Java에서는 쉽게 구현 개발이 가능한데, JS를 통해서는 어떠한 방식으로 구현을 해야 하는지 어려움이 있으실수 있습니다.

ES2015+에서는 전역 인스턴스를 생성하는 것을 구성할수 있고, 샘플 코드 및 구현 방법도 설명되어집니다.

이러한 부분이 이 책에서 다른 디자인 패턴책들과 다른 좋은 점이라고 생각합니다.

다른 책에서는 java, c 언어를 통해서 샘플이 있지만, 이책은 JS에 관점을 가지고 접근한 책이라서 활용도가 높은것 같습니다.

 

 

 

· P.162) AJAX기반의 Jquery 애플리케이션 결합도 낮추기

지금도 예전에 구축되어 있는 서비스에는 Jquery를 많이 사용하고 있습니다. IE를 지원하면서 모바일화면의 처리를 위해서

Jquery를 많이 사용하고 있는데 이러한 결합도를 줄이는 부분에 대해서도 관련 내용을 다르고 있습니다.

 

무조건 디자인패턴을 사용하자는 것이 아니고 적용시에 장/단점을 소개하고, 

선택지가 여러개 있는 경우 예를 들어 중재자 패턴 vs 퍼사드 패턴에 대해서 유사점을 궁금해 하고 추상화 하였지만, 미묘한 차이점등

우리가 고민해볼 만한 사항을 소개합니다.

 

· 자바스크립트의 MC* 패턴

웹개발시 많이 사용하는 MVC패턴을 많이 사용합니다.

MVC (모델 - 뷰 - 컨트롤러)

MVP (모델 - 뷰 - 프리젠터)

MVVM (모델 - 뷰 - 뷰모델)

등이 패턴이 있는데, 어떠한 차이점이 있으며, 전통적인 MVC패턴과 어떻게 다른지 비교해봅니다.

이러한 내용은 꼭 디자인 패턴에 한정 짓지 말고, 전체적인 개발의 흐름을 파악하기에도 좋은 내용입니다.

 

·비동기 프로그래밍 패턴

js에서는 블로킹, 논블로킹에 대해서 잘 알고 있어야 합니다.

비동기(async, await), 프로미스(promise)와 같은 자바스크립트 언어의 기능은 비동기 코드를 더 쉽게 작성하게 해줍니다.

 

다양한 방식으로 개발을 유연하게 할수 있는 방법을 안내합니다.

 

 


■ 리액트 디자인 패턴

· 12장에서는 리액트에 대해서 다룹니다.

리액트의 기본 개념을 다시 한번 설명을 간단히합니다.

 - 고차 컴포넌트

 - 랜더링 Props 패턴

 - 리액트 Hooks 패턴

 - 상태 Hook

 - 정적 가져오기

 - 동적 가져오기

 - 코드 스플리팅

 - PRPL(push render pre-cache Lazy-load) 패턴

 - 로딩 우선 순위

 - 리스트 가상화

이러한 다양한 관점으로 리액트에서 모듈화 및 패턴을 고민해야 하는 사항들이 설명되어 집니다.

 

· 랜더링 패턴

개발 방식이 많이 변경되다 보니, 이제 랜더링을 어디서 하는지 방향성에 대해서 다양한 개념이 도입되었습니다.

보통 요약된 단어로 CSR, SSR등의 이름으로 이야기를 하는데 아래와 같이 정의를 하고, js코드를 통해서 

예시를 통해서 이해하고 도입을 할수있는 내용으로 구성되어 있습니다.

 

 

다양한 관점으로 디자인 패턴을 설명하는데 자바스크립트 및 자바스트립트를 이용한 프레임워크등을 활용하기 위한

여러가지 기술 및 코드제공을 통해서 적적하게 조금 더 나은 방향으로 코드 및 아키텍처 방향을 설계할 수 있게

도움을 주는 책이며 추천합니다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
혼자 공부하는 얄팍한 코딩 지식 - 비전공자도 1:1 과외하듯 배우는 IT 지식 입문서, 개정판 혼자 공부하는 시리즈
고현민 지음 / 한빛미디어 / 2024년 6월
평점 :
장바구니담기


혼자 공부하는 시리즈가 많이 있습니다.

처음 해당 분야에 정보를 습득하고 내용을 파악히기 매우 잘 구성된 시리즈 입니다.

알팍한 코딩지식이라는 이름이지만 IT서비스에 전반적인 내용을 이번 개정판을 통해서

더 최신 기술 흐름을 잘 적용하고 있고, 내용 파악도 쉽고

필요한 부분도 부분적으로 읽어 내려가도 문제 없이 구성되어 있어서 추천합니다.

출판사에서 혼공이라는 학습 독려하는 프로그램이 있는데 

이러한 부분도 해당 책을 통해서 조금 더 쉽게 책을 접하는데 도움이 됩니다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
보고 혁명 : 현직 팀장들이 검증하는 실무 보고서 작성법
이성윤 지음 / 한빛미디어 / 2024년 6월
평점 :
장바구니담기



  • 회사생활을 하면서, 보고는 필수입니다.

    • 우리는 어떠한 기준으로 보고서를 작성해야 할까요?

    • 우리는 정확히 우리가 표현하고 싶은 메세지를 전달할수 있을까요?

    • 매번 중구난방 일치하지 않은 포맷으로 제공하고 있는 있을까요?

  • 이러한 고민들이 있으면, 이 책에서는 답을 제공할 수 있다고 생각합니다.

    • 공감이 많이 되고, 기준을 잡을수 있다는 점에서 매우 좋은 가이드가 되는 책입니다.

  • 책의 구성

    • 보고서를 잘 쓰기 위한 각각의 보고서 특징

    • 일잘러 팀장님들 20명의 보고 능력 인터뷰

    • 3SMART, B2WHEN 기준을 설명하고, 보고서 작성의 기준을 알려주기

    • 보고 유형별 보고 공식 활용법

    • 잘 쓴 보고서 특징 (따라만 해도 도움되는 내용)

    • 완성도를 높여주는 구성 기술

      • 다른보고서와 차이점을 가지기

  • 뻔한 내용으로만 구성된것이 아니라여서, 실질적인 도움이 되는 구성이라서 좋았습니다.

    • 보고서의 첫 시작은 제목입니다.

    • 우리는 기준을 가지고 제목을 작성하고 있을까요?

    • 이러한 실제 바로 적용할수 있는 내용이 좋았습니다.

모두 이책을 통해서 모두 보고에 대한 두려움 및 작성시 기준을 마련해줄수 있을것 같습니다.

다양한 샘플 및 여러 생각할 수 있는 요소들이 있어서 하나하나 적용해보면, 책을 기준하면서 자신만의 포맷을 만들어서 내가 의도한 메세지를 잘 전달할수 있는 능력을 만들어 볼수 있습니다.

모두 이책을 통해서 모두 보고에 대한 두려움 및 작성시 기준을 마련해줄수 있을것 같습니다.

다양한 샘플 및 여러 생각할 수 있는 요소들이 있어서 하나하나 적용해보면, 책을 기준하면서 자신만의 포맷을 만들어서 내가 의도한 메세지를 잘 전달할수 있는 능력을 만들어 볼수 있습니다.





댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
혼자 공부하는 얄팍한 코딩 지식 - 비전공자도 1:1 과외하듯 배우는 IT 지식 입문서, 개정판 혼자 공부하는 시리즈
고현민 지음 / 한빛미디어 / 2024년 6월
평점 :
장바구니담기




개정판이 출간되면서, 다시 한번 책의 품질이 올라간거 같습니다.

개발에 대한 부분은 매우 넓고 다양한 기술이 있습니다. 모든 부분을 다 알수는 없지만

큰 방향성을 살펴보고, 기본적인 개념에 대해서 너무 난이도가 낮은 책보다는

다양한 개념에 대해서 필요한 부분이 잘 설명된 책이 "얄팍한 코딩 지식" 책입니다.


1. 기본적으로 개발업무에 대해서 사용되는, 다양한 지식이 잘 설명되어 있니다.

웹, 앱, 클라우드, 데이터베이스, 데브옵스 어떠한 역활을 하는지 알수 있습니다.


2. 프로그래밍, 디버깅, 인공지능, AWS등등 조금 깊이있게 알아보기

우리는 검색을 하면, 대부분 정보를 얻을수 있지만, 어떠한 검색을 해야 할지 몰라서

정보를 알기 어렵습니다. 개발 초급자 분들 및 개념이 부족한 독자 분들도 

이 책에서 다루는 다양한 개념들이 단순하지 않고, 개발자분들이 보셔도 충분한 정보를 가지고 있다고

생각이 들어서, 참조하면 좋을것 같습니다.

예를 들어서 쿠키, 토큰, 캐시 같은 사항은 개발을 시작할때, 개념을 확실하게 잡아놓으면 좋은 부분입니다.


3. 각 단계마다 표시되는 레벨

쉽게 접근할수 있는 내용과, 조금 어렵다고 생각되는 부분에 대해서

easy, medium, hard 로 표시를 해놓아서 책을 읽을때 난이도 조절이 용이하고

어려운 부분에 대해서 너무 거부감 없이 접근할수 있습니다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
그림으로 배우는 스프링 6 입문 - 애플리케이션을 직접 만들어보며 익히는 스프링 기본기와 실무 스킬
토키 코헤이 지음, 김성훈 옮김 / 한빛미디어 / 2024년 3월
평점 :
장바구니담기


스프링6기반의 새로운 책이 출간되었습니다.

참고로 책의 내용안에는 10장. 스프링부트로 생산성 향상하기 부분이 있지만 대부분 스프링에 대해서 세부적으로 설명되어 집니다.

책의 제목이 입문이라고 적혀있지만, 초급자분들도 대상이시지만 스프링을 조금 더 이론적으로 이해해고 싶으신 분들도 

많은 도움이 되는 내용으로 구성되었습니다.



책의 저자분은 일본저자 분이시고, 기존에도 다양한 스프링 버전의 책을 출간하시면서,

책의 표지도 비슷한 녹색 계열입니다. 꾸준히 스프링에 대해서 출간 및 번역이 이루어지는 것을 살펴볼수 있습니다.


이번에는 그림이 많이 들어가서 제목이 조금 변경된 것 같습니다.

책은 p.570 으로 두께가 적당히 있습니다.




책의 큰 구분은 기본편, 실무편으로 구성되어 있습니다.

목차를 살펴보시면, 현재 스프링에 대해서 살펴봐야 하는 깊이 있는 개념들이 잘 구성되어 있고

RESTful, 트랜잭션, Thymeleaf, 시큐리티 등등 필수적인 요소들이 잘 구성되어 있습니다.





■ 기본 개념 살펴보기

· DI, 컨테이너 및 기본으로 알아야 하는 3가지 인젝션 방식 (생성자, Setter, 필드) 등에 대해서 너무 무겁지 않게 하나하나 설명합니다.


개인적인 생각으로 일본인 저자분의 장점처럼 UML형태로 코드 기반으로 작성된 다이어그램은 그 의도를 명확히 설명하고 있습니다.


· JavaConfig와 @Bean 메소드를 활용한 방법

@Configuration, @Import, @Profile을 통한 다양한 설명을 통해서, 스프링에서 어떠한 경우에 사용을 해야 하는지 설명합니다.


· 처음부터 바로 JPA를 사용하는 방법하지 않고, 기본적으로 알아야 하는 JDBC를 통한 데이터베이스 접근

JDBC, JdbcTemplate를 통한 부분과 해당 조회한 데이타를 Entity객체로 변환해서 가져오는 필수적인 개념이 설명되어 집니다.

해당 부분은 기본적으로 DB를 통한 작업이 많은 스프링의 기본이여서, 핵심요소만 잘 정리되어 있습니다.


· 스프링 부트는 장점이 많은 부분을 간단하게 터치하고 설명합니다. 스프링의 학습이 잘 되어 있으면, 스프링 부트의 적용 및 활용은

자연스럽게 이루어지기 때문에 편하기 읽고 넘어가면 됩니다.


· 서버사이드의 작업을 위해서 화면 템플릿인 Thymeleaf를 사용한 내용으로 구성됩니다. 

RESTAPI구성을 위해서 get,post, put, delete등등 API를 만들기 위한 여러 케이스 들이 설명되어지고,

내용이 너무 길게 언급되지 않고, 실습 및 핵심만 바로바로 학습되는 예시와 설명으로 구성되어 집니다.



■ 실무편은 이책의 핵심요소가 많이 있습니다.

· 실제 심도있는 부분도 실무편에 아래와 같은 사항으로 구성되어 있습니다.

특히 테스트 부분에 대해서 많은 부분이 할애되어 있어서, 일반 스프링책에는 없는 관점으로 다양한 chapter를 구성하고 있습니다.



· 스프링은 기본적으로 싱글톤을 사용하는데, 싱글톤 처리 개념과 문제가 있는 코드를 개선하는 부분은 매우 중요한 개념이 

설명되어 지고 있다고 생각합니다.

· DB연동시 JDBC, MyBatis, JPA등 다양한 방식을 접근을 구성할수 있는데, 해당 부분에 대해서  오류처리를 정리하는 부분도

실무적으로 도움이 많이 되는 부분이고, 전체적으로 Error Handling하는 관점에서 좋은 개념설명이라고 생각이 듭니다.



■ 다양한 테스트 케이스를 예시로 들어주는 실습편 내용이 구성됩니다.

스프링을 사용하는 많은 이유가 있겠지만, 테스트가 다른 java프레임보다 용이하다는 점입니다.

python, node등을 비교대상으로 하는 부분은 아니지만, java를 기반으로 하는 프레임워크들이 많이 있었지만

지금 스프링이 대세가 되는 이유는 테스트 코드 작성이 용이하다는 점이  매우 큰 비중을 차지하는 부분이라고 생각합니다.

· 해당 책은 많은 부분이 테스트를 구성할때 필요한 내용이 많이 언급된 부분은 입문 책이라고 하지만, 그만큼 반대로 이해하면

테스트는 입문과정에서 매우 중요한 부분이라고 생각하는 것이 저자분이 입장이라고 생각됩니다.


· 단위테스트, 통합테슽, 및 E2E테스트가 언급되어 있어서 매우 좋았습니다.

필요한 어노테이션에 대해서 해당 그림으로 전반적인 flow를 살펴볼수 있습니다.

 

위 목차에서 언급한 부분처럼 각 Layer별로 단위테스트를 Repository, Service, Controller, RESTful등을 어떻게 접근해야 하는지

살펴보는 구성을 통해서, 테스트가 필요한 서비스 영역별로 필요한 부분을 선택적으로 적용해볼수 있습니다.


부록의 내용도, 기존에 오래돈 Legacy적인 부분 및 커맨드 부분등 스프링을 조금 다양하게 사용해본 저자분의 관점이 잘 정리되어 있어서

스프링을 잘 이해하고, 사용하기에 도움되는 부분이 많이 있습니다.


"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."







댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo