개발자를 위한 시프트-레프트 테스트 - 단위 테스트, 리팩터링, 애자일 개발 시 품질 담보, 테스트 자동화 등 소프트웨어 품질을 높이는 개발자 테스트 실천 기법
다카하시 주이치 지음, 김모세 옮김 / 제이펍 / 2023년 2월
평점 :
장바구니담기


책의 저자분과, 옮긴이의 서문을 보고 이책의 방향성과 어려운 이야기를 매우 쉽고 핵심을 잘 짚어주는 책이라는 느낌이 들었습니다.

저자는 일본인이지만, 경험한 기업은 글로벌한 기업(SAP, MS, 소니)에서 다양한 품질활동을 경험이 있으십니다.

또 소트프웨어 품질연구로 박사학위까지 취득하셔서, 현실과 이론의 적정한 밸런스를 가지고 있으시다고 생각이 들었습니다.


저자는 "개발자가 검증하는 내용" 과 "QA 진행시 검증되는 요소"는 명확히 다르다고 저자는 정의합니다.

역자는 "개발활동 주체"와 "품질활동 주체"가 분리되어 있으며, 개발활동 주체가 발견할수 있는 오류의 영역과, 품질활동 주체가 발견할수 있는 오류의 영여깅 전혀 다르다고 정의합니다.

이러한 내용에 많은 분들이 공감을 하실 거라고 생각이 듭니다. 


책의 제목에서 보듯이 눈에 들어오는 키워드가 3가지 있습니다.

① 개발자

 시프트레프트

③ 테스트

여기서 처음에 그 의미를 잘 파악하기 어려운 단어는 ② 시프트레프트 입니다.

shfit-left  : 직독을 하면 왼쪽으로 이동시킨다는 의미입니다.

무엇을 왼쪽으로 이동시킨다는 의미일까요? 네. 맞습니다. 책에서 애기하는 테스트 과정을 의미합니다.

 

반대개념 및 우리가 보통 일반적으로 사용하고 있는 개념이 시프트라이트(shift-right)라는 개념도 있습니다.

시프트라이트의 의미는 "무엇보다 제품 개발과정에서 가장 분주한 시점을 후반부에 두든것" 이라고 합니다.

■ 시프트-레프트의 정의

· 소프트웨어 개발 과정과 관련된 접근법

· 제품이나 프로세스 등의 전체 개발 과정에서 품질을 향상하는 중요한 활동을 최대한 조기에 설계하고, 코딩단계에서도 수행하는 전략

·  이론적으로는 누구나 테스트 비중등을 앞으로 이동하고 싶어 합니다. 현실적인 방법에 누구나 궁금할 것입니다.

   아래 그림을 보면서, 공감을 많이 하실것 같습니다. 테스트가 제일 마지막에 몰려서 한꺼번에 진행되는 구조입니다.

■ 소프트웨어 개발시 수행해야 하는 테스트 목록

필자는 단위테스트에서 아래 3가지 기법을 이해하고, 실천할수 있다면 충분하다고 합니다.

· 단위 테스트

· 조합 테스트

· 경곗값 테스트 : 이 테스트만으로도 80% 의 버그를 잡을수 있음

· 상태 전이 테스트 : 상태가 변경되어서 프로그램적으로 영향을 미치는것

· 탐색적 테스트

· 통합 테스트

· 시스템 테스트



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
자바스크립트로 배우는 SICP - 컴퓨터 프로그램의 구조와 해석
해럴드 에이블슨 외 지음, 류광 옮김 / 한빛미디어 / 2022년 12월
평점 :
장바구니담기


SICP는 무엇의 줄임말일까?

처음 듣어보시는 분들도 계실것 같고, 아시는 분들도 있을것입니다.

 

Structure and Interpretation of Computer Programs

한글로 번역하면, 컴퓨터 프로그램의 구조와 해석로 해석되고 불리어 집니다. 
기존에도 이렇게 동일 저자분의 책이 출간되어 있습니다.
하지만 기존에 책은 아래와 같은 장벽이 있었습니다.
SICP는 사실 모든 프로그래밍 언어에서 사용하기 유용하고 강력한 프로그램 조직화 방법을 소개하지만
스킴(Scheme)이라는 언어를 사용해 진입 장벽이 있었다.
 

"이번에 새롭게 출간된 SICP는 많은 개발자들에게 친숙한 언어인 자바스크립트로 옮긴 책입니다."

책을 받고 나서 책의 두께에 매우 압도 당했습니다. (p.883)

책이 두꺼운 이유는 설명이 매우 자세하게 되어 있고, 연습문제가 매우 많이 있습니다.

 

책을 보는 순간 무자정 책을 보면 안될거 같은 생각이 들었습니다.
기본 내용은 1판,2판 모드 큰 맥락은 비슷하여서 우선 관련 책에 대한 블로그 및 다른 분들이 중요하다고 생각하는 
사항들을 먼저 접해보고 잭을 읽어보고 싶었습니다.

 

 

 

아래 블로그에서도 좋은 정보를 찾았습니다.

· https://steelbear.tistory.com/70

· http://ropas.snu.ac.kr/~kwang/4190.210/mooc/ (서울대학교 이광근 교수님)
강의 내용은 2012년 강의 내용입니다. 저도 강의를 다 보지는 못했지만, 아주 좋은 내용입니다.

시간이 되시면 영상을 보시면 좋을것 같습니다.

 

 

http://ropas.snu.ac.kr/~kwang/4190.210/mooc/l01_02_01.mp4

 

■ 목차 살펴보기

책의 목차는 5장으로 구성되어 있습니다.

목차를 보면 "추상화"라는 단어가 많이 있는것이 눈에 들어옵니다.

제1장 함수를 이용한 추상화
제2장 데이터를 이용한 추상화
제3장 모듈성, 객체, 상태
제4장 메타언어적 추상화
제5장 레지스터 기계를 이용한 계산
 

1장의 추상화는 interface나 abstact 메소드 같은 패턴을 이야기 할거 같습니다. 아닐수도 있구요

2장의 추상화에 데이터라는 말이 나오는데 enum같은 것을 의미하는것일까? VO나 Entity객체를 의미하는것일수도 있을것 같습니다.

value를 Object개념으로 사용하는것일거 같은 생각이 듭니다.

 

4장의 추상화에서 나오는 메타언어적이라는 것은 무엇을 의미할까요?

상상을 해보면 spring에서 의존성을 해소하기 위해서, 의존성분리 DI/IoC개념을 의미할 것도 같고,

properties를 통해서 meta적인 코드성을 이용해서 프로그래밍을 하는 것일까요?

 

이렇게 적어놓고 보니, 책에서 주안점을 두는 부분을 조금이라도 나만의 시각으로 바라볼수 있을거 같습니다.

책의 내용중 기억에 남는 부분을 정리해보려고 합니다.

■ 제1장 함수를 이용한 추상화

  • 1장의 내용은 추상화의 개념보다 프로그래밍을 하기 위한 기본요소에 대해서 설명합니다.
  • 표현식, 연산, 이름생성을 통해서 함수라를 개념을 도출합니다.
  • 함수의 종류는 다양하게 구성되며, 재귀함수, 반복, 거듭제곱 등등 다양한 표현식을 제공합니다.
    수학적인 표현이 모두 프로그램적으로 표현이 가능한 부분입니다.
  • 람다표현식도 설명되어 있습니다.
  • "1.3.4. 함수를 돌려주는 함수"이 절이 제일 핵심이 아닌가 생각이 듭니다. 
    "함수가 다른 함수를 인수로 받는 능력은 프로그래밍 언어의 표현력을 크게 향상한다."
    함수가 단순히 return 되는 항목이 고정된 value 값이 아닌 다양한 return타입을 가지는것은 프로그래밍의 다양성을 확보합니다.

 

■ 제2장 데이터를 이용한 추상화

  • 1장보다는 조금 더 프로그램 적으로 구체화를 하는 장표이다.
  • 데이터 객체들을 조합해서 복합 데이터(compound data)를 형성함으로 써 추상을 구축하는데 사용되는 수단 사용
    • 복잡한 현상을 모형화(modeling)하기 위해 프로그램을 설계해야함
    • 다양한 측면을 가진 실세계의 현상을 모형화 하려면 부품이 여러개인 계산적 객체를 구축해야 함
  • "데이터 추상화" 방법론
    • 프로그램에서 데이터 객체의 표현을 다루는 부분과 그러한 객체를 실제로 활용하는 부분을 분리한다는 개념
    • 핵심원리 : 복합 데이터 객체를 사용하는 프로그램이 "추상 데이터"에 대해서 작동하도록 프로그램의 구조를 짜는것
    • 복합 데이터를 이용하면 프로그램의 모듈성을 높일수 있다.
    • 프로그램의 설계와 유지보수, 수정이 훨씬 쉬워진다.
    • 프로그램은 데이터에 관해 최소한의 가정만 두고, 데이터의 표현을 독립적으로 진행해야 함
    • 추상화 장벽 (abstraction barrier) : 데이터 추상화를 이용하면, 프로그램의 서로 다른 부분들 사이에 존재한 영역
  • 복합 데이터를 다루는 중요한 개념
    • 닫힘 (closure)
    • 합의된 인터페이스 (conventional interface)

■ 제3장 모듈성, 객체, 상태

  • 이전장에서는 프로그램 구성 기본요소, 원시함수, 원시데이터 조합을 통한 복합적 개체 생성, 추상화의 필요성 학습
  • 프로그램을 효과적으로 구성하기 위한 방법이 필요!!
    • 대규모 시스템이 모듈성(modularity)을 확보하기 위한 전략이 필요함
    • 객체(object)에 초점을 두고 대규모 시스템을 구성하는 방법
    • 정보의 흐름 or 스트림에 초점을 두고 접근하는 방법
  • 객체
    • 객체의 상태는 하나 이상의 상태변수들로 특정지을 수가 있다
    • 다수의 객체로 구성된 시스템에서 객체들이 완전히 독립적인 경우는 드물다.
    • 각각의 객체는 상호작용을 통해 다른 객체의 상태에 영향을 미친다. (coupling 역활 수행)
    • 계산적 객체는 실제 객체의 상태를 서술하는 자신만의 지역상태변수를 가져야 한다
  • 배정
    • 배정연산 (assignment operation) : 언어는 주어진 이름과 연관된 값을 변경할수 있어야 함
    • 배정표현식 : 이름 = 새 값
    • 함수형 프로그래밍 (fuctional programming) : 배정을 전혀 사용하지 않고 프로그램을 짜는 방식
    • 명령식 프로그래밍 (imperative programming) : 배정을 적극적으로 사용하는 프로그래밍 방식
  • 동시성
    • 상태의 복잡성, 같음, 변환에 깔린 문제는 배정을 도입하면, "시간" 이라는 요소가 포함된다.
    • 직렬화 (serialization) : 스레드들이 동시적으로 실행되기는 하지만, 여러 스레드가 동시에 실행할수 없는 함수들의 집합
    • 뮤텍스 (mutex) : 기본적인 동기화 메커니즘
    • 교착 (deadlock) : 두 스레드들이 서로 종료되길 기다리는 과정 (둘이상의 공유자원 접근시 발핼할수 있는 위험 존재)
  • 스트림
    • 배정때문에 생기는 다양한 문제를 해결하기 위한 방법중에 하나
    • 지연평가 (delayed evaluation)를 이용한 스트림 표현
    • 무한 스트림 방식

 

 

■ 제4장 메타언어적 추상화

  • 복잡한 시스템을 구성시, 한가지 프로그래밍 언어로 충분하지 않을때가 발생한다.
    • 특별히 적합한 원시 연산들과 조합 수단들, 추상화 수단들을 제공하는 새로운 언어를 도입하며 효과적 해결 가능
    • 정의
      • 언어로 언어를 만드는 개념
      • 컴퓨터의 기계어 (물리적인 언어)를 통해서 하드웨어를 Control
      • 기계어 위에 고수준 언어를 상용해서 시스템의 대규모 조직화에 적합한 조합 및 추상화 수단들 제공
  • 평가기(ealuator) 또는 해석기 (interpreter)
    • 해당 언어로 된 문장이나 표현식을 받고 그 문장이나 표현식을 평가하는데 필요한 동작들을 수행하는 함수
    • 평가기의 핵심부
      • evaluate 함수 : 프로그램의 한 구성요쇼(component)와 환경을 받는다.
        • 원시 표현식
        • 조합
        • 구문형
      • apply 함수 : 두개의 인수를 받는다. 하나는 함수이고, 다른 하나는 그 함수를 적용할 인수들의 목록이다.
        • 함수 인수
        • 조건부 구성요소
        • 문장렬
        • 블록
        • 반환문
        • 배정과 선언

 

  • 구성요소의 표현식
    평가기를 거처 실제 우리가 작성하게 되는 형태의 프로그램적인 구문 요소들에 대해서 설명한다.
리터럴 표현식 : list("literal", 값)
이름  : list("name", 기호)
표현식 문장 : <<표현식>>
함수 적용 : 함수 표현식(인수-표현식, . . . . . . , 인수 표현식)
조건부 구성 요소 : <<술어 ? 귀결-표현식 : 대안-표현식>>
람다 표현식 : (이름, . . . , 이름) => 표현식
문장렬 : <<문장, . . . , 문장 >>
블록 : { 문장들  }
반환문 : <<return 표현식>>
배정 : <<이름 = 표현식 >> = list("assignment", <<이름>>, <<표현식>>)
상수,변수,함수 선언 : << 이름 = 표현식>>

■ 제5장 레지스터 기계를 이용한 계산

  • 앞에서 학습하고 이해한 사항을 가지고 우라가 알고 있는 레지스터 기계를 구현해보는 실습 chapter이다.
  • 실제 아래 그림보다 더 복작하고 서브루틴, 이중재귀, 저장소, 스택의 구현등을 통해 구체화 해본다.

■ 책에 대한 소감

  • 유명한 책을 보고 나서 유명한 이유를 알게 되었습니다.
  • 이 책이 처음 나온 시점이 몇십년전이니까, 이런한 지식을 바탕으로 다양한 언어들이 나온것 같았습니다.
  • javascript를 통해서 예제가 제공되어서 코드를 이해하기 좋았습니다.
  • 조금 더 근본적으로 생각해볼 거리와  평소 놓치고 있던 부분들을 경험할 수 있었습니다.
  • 예시가 많으니, 차분히 풀어보면 많은 도움을 받을수 있는 책이라고 생각합니다.
  • 설명도 자세히 잘 되어 있었습니다.

 

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



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
혼자 공부하는 데이터 분석 with 파이썬 - 1:1 과외하듯 배우는 데이터 분석 자습서 혼자 공부하는 시리즈
박해선 지음 / 한빛미디어 / 2023년 1월
평점 :
장바구니담기


머선러닝 딥러닝 책에서 박해선 저자님은 매우 유명하십니다.

다양하 번역서 뿐만이 아니라, 그런 지식을 바탕으로 직접 집필도 하십니다


최근에 나온 혼자 공부하는 데이터 분석이라는 책은 초보자도 쉽게 데이터 분석을 할수 있는

방법과 원리를 그림과 친절한 설명으로 이해하도록 구성되어 있습니다.


또한 한빛 미디어에서 혼공족이라는 6주간의 동기부여 프로그램을 진행합니다.

https://www.facebook.com/groups/hongong/

일년에 2번 정도 열리는데, 한빛에서 나오는 다양한 혼자 공부하기 시리즈를 이용해서 

함께 공부할수 있습니다.


혼공족장님이 매주 정해진 과제을 체크하시고, 답변을 달아주시고

선순환 구조 및 동기부여가 되는 좋은 커리큘럼도 있으니 참고하시면 좋을거 같습니다.

보통 책 한권을 다보기 힘들수도 있는데, 좋은 기회가 될것입니다.



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
NestJS로 배우는 백엔드 프로그래밍 - 타입스크립트 환경의 차세대 서버 프레임워크를 만나다
한용재 지음 / 제이펍 / 2022년 12월
평점 :
장바구니담기


■ 평소에 궁금했던 사항

js로 구성된 프레임워크 중에 backend는 node.js가 있고 기반으로 express가 있다는 것은 알고 있었는데

next.js의 포지션이 어떻게 되는지 궁금했습니다.

☞ node와의 관계는 있을까?

☞ node, express와 무관한것일까?

 → 해당 궁금했던 사항이 1줄로 잘 정리되어 있습니다.

 → node.js기반!!, Express프레임워크 매핑!!

 → 여기서 눈에 들어오는 단어가 "웹 API프레임워크" 입니다.

     ☞ REST-API기반의 기능에만 특화된 것인가?

     ☞ Python의 Fast-API와 같은 Concept의 프레임워크인가?

    

이러한 궁금증은 책을 통해서 살펴보려고 합니다.

■ 모든 웹 프레임워크에서 사용되어지는 중요한 사항입니다.

· 해당 항목들은 언어가 java, python, js이든 기본적으로 프레임워크에서 지원해야 하는 사항으로 정의해주셨습니다.

  이러한 항목들이 nest.js에서 잘 구성되어 있습니다.

  각 언어별로 정의된 이름은 다르지만, nest를 처음 학습하기 쉽게 잘 설명되어 있습니다.

  예를 들어 횡단관심사라고 표현하는 (python, ts에서는 데커레이터라고 정의되어 있고 java에서는 어노테이션으로 정의되어 있습니다.)

 

■ 도움이 되는 샘플 예제

책에서는 "유저 서비스"라는 것을 만들어 봅니다.

구성요소로 (회원가입 / 이메일 인증 / 로그인 / 회원정보 조회)의 핵심 기능을 가지고 있고

아래 그림 옆에 있는 요소들 (환경변수설정, 유효성 검사, 인증, 로깅, 헬스 체크, CQRS) 및 DB저장까지

nest.js를 통해서 구성합니다.

아래 사항을 보면 backend개발시 전부 필수적으로 가져가야 하는 항목인것을 아실수 있습니다.

 

· 실습환경은 아래 같습니다.

→ Nestjs(node.js, express   nest는 아래 환경 위에서 동작합니다. express대신에 fastify도 가능은 합니다.) 

→ Typescript(nest에서는 기본적으로 ts가 기본이고, js도 사용은 가능합니다.)

→ mysql8 (docker로 설치함)

→ orm을 구현하기 위해서 TypeORM을 사용합니다.

→ 인증을 위해서 JWT를 사용합니다.

 

■ 내용 소개

· node.js, typescript에 대해서 책을 보는데 문제가 없도록 중요한 원리 및 문법에 대해서 설명합니다. 

· 컨트롤러

  MVC패턴에 대해서, 한번쯤은 들어보셨을거 같습니다. 

  당연히 사용자 요청에 대한 handling을 위해서 nest에서도 관련 기능이 있습니다.

  아래 소스 코드를 보면, Spring하고 매우 비슷한 구조를 가지고 있습니다.

  ※ 언어/프레임워크의 차이만 있지 동작원리의 큰 구조는 비슷해서 한개를 잘 알고 있으면, 확장해서 사용하기 쉽게 됩니다.

  @Post() : Spring, FastAPI등 직관적으로 Http Method타입을 정의합니다.

  @Body() : Request의 Body영역에 대한 data를 사용하기 위해서 정의합니다. 

                    Spring에서는 @RequestBody의 역활입니다.

  @DTO : Data Transfer Object의 개념이 nest에서도 동일하게 사용되어서 신기했습니다.

                사용자가 전송한 데이터를 정의해서 객체로 활용하기 위해서 정의합니다. 

# DTO구조는 Java와 비슷합니다.
export class CreateUserDto{
	name : string;
    email : string;
}

<샘플코드>

· 비지니스 로직을 개발하기 위한 프로바이더

  ServiceLayer 부분으로 생각하시면 될거 같습니다.

  여러가지 실제 수행되어야 할 로직을 prividers로 등록하고 class를 정의하고 개발합니다.

@Module({
   ...
   prividers : [UsersService]
})
export class UsersModule{}

· 각종 환경에 맞는 구성을 분리하여서 프로젝트 설정을 해봅니다.

 (production / development / stage) 영역으로 구분해서 운영 및 테스트 환경을 구분합니다.

· 기본적으로 제공하는 @nest/common 패키지의 다양한 Validation용 내장 파이프 내용

· 미들웨어/인터셉터에 대한 개념 및 활용

· JTW연동을 통한 실습

 

■ 현업에서 고민해볼 사항과 심도있는 내용 추가

· 서비스를 운영하면서, 고민해봐야 하는 내용이 추가되어 있습니다. 

· 특정 언어에 종속적이지 않게 일반적인 내용 (ex : JWT유효성) 들도 많아서 유익합니다.

 

■ 책에서 얻은 좋은 인사이트

· 전반적인 Backend의 기술에 대해서 현업에서 고민하는 사항들이 잘 녹아져 있습니다.

· nest.js의 핵심적인 내용이 친절한 설명과 함께 잘 구성되어 있습니다.

· 다양한 언어의 비교 예시도 있어서 이해하는데 도움이 됩니다.

· 쉬어가는 페이지 / 심화학습을 통해서 조금 더 깊이 있는 부분을 전달하려고 합니다.


댓글(0) 먼댓글(0) 좋아요(1)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
파이썬 웹 프로그래밍 기초편 - Django(장고)로 배우는 쉽고 빠른 웹 개발, 3판 파이썬 웹 프로그래밍
김석훈 지음 / 한빛미디어 / 2022년 11월
평점 :
장바구니담기


파이썬으로 웹개발을 할때 다양한 Framework가 나타납니다.

Java의 경우 Spring으로 거의 일원화 되었지만, 

Python의 경우 Django, Flask, FastAPI등 많은 선택지가 있습니다.

 

장고의 경우, Python을 대표하는 프레임워크이고 가장 많이 사용합니다.

한빛미디어에 김석훈 저자님의 책은 빨강색(기본편), 파란색(실전편) 중에

이번에 기본편에 대해서 개정판이 나왔습니다.

이번에 개정된 3판에서는 2022년에 Release된 4.0 기반으로 책이 작성되어 있습니다.

 

글을 작성하는 시점에 최신 버전 정보는 아래와 같습니다.

Django 4.1.3 release notes

November 1, 2022

Django 4.1.3 fixes a bug in 4.1.2 and adds compatibility with Python 3.11.

 

> pip install Django로 버전명 없이 설치를 하면 현재 최신버전인 4.x의 사항이 설치됩니다.

기존 책에서는 3.x버전이 구성된 내용이 많아서 3.x버전을 설치하시려면 LTS버전인 3.2 버전으로 설치하시는게 좋습니다.

pip install Django==3.2.16

 

 

■ 웹을 처음으로 접하는 분들을 위한 기본 동작 원리 설명

· 처음에는 Web의 동작방식 및 Django는 파이썬 기반하에 동작되는 Framework이기 때문에 
  파이썬 웹 표준라이브러리에서 urllib패키지, http.client모듈에 대해서 상세히 설명을 합니다.

  이런한 표준 라이브러리에 대한 개념 학습을 통해서, 사용되는 모듈의 전체적인 필요성과 동작방식을 이해하는데 도움이 됩니다.

 

■ 환경구성

· 기존에 3.x 버전을 사용중이신 독자분들은 아래 명령어를 통해서 4.x버전으로 업그레이드가 가능합니다.

pip install Django --upgrade

 

· 장고를 수동설치하는 부분에 대한 내용

  개인적으로 이런 부분이 있어서 좋았습니다.

  일반적으로는 서버, 개인 개발환경에서 인터넷이 접속 가능한 환경이 일반적이지만,

   Offline환경에서 pip설치 및 django.tar.gz을 다운받아서 구성하는것은 좋은 가이드 같습니다.

 

· MVT모델

  모델 - 뷰 - 템플릿 형태로 기본적인 장고의 프로젝트를 구성합니다.

  자동을 생서오디는 파일 및 polls을 이용해서 구성되는 프로젝트를 통해서 각 파일의 성격 및 의미를 설명합니다.

 화면 출력을 위한 템플릿 사용, 폼을 이용한 값 전송하기, 클래스형 뷰 형태, 로그 남기기등을 

 샘플 예제를 작성하면서 구성합니다.

 기존에 3.x버전과 최근 major 릴리즈 버전인 4.x의 차이점을 설명하는 부분이 조금 있었으면 하는 아쉬움은 있습니다.

 

■ Django 웹서버 연동

· 실제 서비스를 위해서는 django 에 웹서버를 연동해서 사용합니다.

  해당 부분에 대한 내용이 있어서 실무 구축하는데 도움이 되실겁니다.

  많이들 연동해서 사용하는 서버는 nginx를 사용합니다.

  연동할때 많이 사용하는것이 uwsgi 입니다. 중간에 웹서버하는 역활을 하는 서버들이 다양합니다.

  6,9장에서는 uwsgi에 대해서 설명을 하고 8장에서는 Gunicorn에 대해서 설명하는 부분을 통해서

  2서버간의 연동설정에 대한 가이드 및 연동방식에 대해서 학습하실수 있습니다.

  10장에서는 apache웹서버와 연동하는 부분도 나옵니다. 

  현업 서비스시에 다양한 제약 및 선택가능한 옵션들이 있을수 있어서 다양한 구성방식에 대한 설명은

  처음 환경구축하시는 분들에게 도움이 됩니다.

 

■ 부록

· 기본적으로 Default로 장고를 설치시에는 sqlite db를 기본적으로 사용하고 settings.py에도 sqllite로 설정이 되어 있습니다.

· 부록에서는 다양한 DB에 접속 가능한 설정을 참고 하실 수 있습니다.

 


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