리뷰 검색 결과

34개 발견
  1. 미리보기
    2024.05.06 - mr.november11

    켄트 벡의 Tidy First? 리뷰

  2. 미리보기
    2020.12.08 - mr.november11

    [React Native] Expo 에서 iOS 시뮬레이터 실행 시 오류 발생 해결 방법

  3. 미리보기
    2020.10.05 - mr.november11

    [nginx] nginx 페이지 응답 헤더에 버전 정보가 노출될 경우 조치 방법

  4. 미리보기
    2020.07.02 - mr.november11

    [mysql] 로컬 내 docker 를 사용하여 mysql 실행 시 명령어

  5. 미리보기
    2020.05.26 - mr.november11

    GitHub Actions 에서 Only actions in <ID> are allowed for this repository 에러가 발생할 경우

  6. 미리보기
    2020.04.18 - mr.november11

    Test

  7. 미리보기
    2020.03.31 - mr.november11

    [git] VS Code 편집기를 git diff 툴로 활용하기

  8. 미리보기
    2020.02.16 - mr.november11

    토이 프로젝트를 위한 퍼블릭 클라우드별 무료 서비스 정리

켄트 벡의 Tidy First? 리뷰

2024. 5. 6. 14:39 - mr.november11



ChatGPT, LLM, AI와 같은 유행성 서적들이 주를 이루는 IT도서 시장에서 오랜만에 소프트웨어 기본기를 다루는 서적이 출간되어 기쁘다. 특히 저자가 TDD로 유명한 '켄트 벡'이라는 것을 알게 되었을 때 이 책을 반드시 읽어야겠다고 생각했다.

이 책은 두 권으로 구성되어 있다. 첫 번째 권은 켄트 벡이 집필한 'Tiny First?'이며 두 번째 권은 역자가 추가로 기록한 '옮긴이 노트'이다. 'Tiny First?'의 첫인상은 생각보다 책의 분량이 적다는 느낌이었다. 100페이지 조금 넘는 공간에서 복잡한 소프트웨어 설계에 대한 내용을 다 다룰 수 있을까라는 의문이 들었다. 켄트 벡에 따르면 이 책은 연작으로 기획되었으며 최소 3권의 시리즈로 구성될 예정이다. 이 책은 그 시리즈 중 첫 번째 책이다. 책 가격 대비 분량이 적어 조금 아쉽다는 생각이 들었다. 하지만 내용이 군더더기 없이 정제되어 있고, 출퇴근 시간에 대중교통에서 읽기에 적합한 크기라는 장점이 있다.

켄트 벡의 'Tiny First?'는 단순한 코드 정리 방법부터 복잡한 설계 이론에 이르기까지 좋은 설계를 위한 다양한 내용을 다루고 있다. 초보 개발자들은 특히 1장 '코드 정리법'과 2장 '관리'에서 협업과 유지 보수를 위한 코드 정리 방법을 배울 수 있다(이 두 장의 내용에 흥미를 느꼈다면 해당 내용을 좀 더 자세히 다루고 관련 예시를 제공하는 클린 코드와 리팩터링 책을 읽어보길 권한다). 개인적으로 흥미로웠던 내용은 3장 '이론'에서 코드 정리의 가치를 경제 이론을 통해 다룬 부분이었다. 현업에서 개발 업무를 하면서 신규 기능 구현과 코드 정리의 중요성 사이에서 우선순위를 결정해야 하는 상황이 자주 발생한다. 개발자들은 자연스럽게 코드 정리에 더 큰 가치를 두는 경향이 있지만, 이를 사업부나 상위 관리자에게 설득하는 것이 쉽지가 않다. 또한 해당 시점에서 코드 정리가 실제로 더 중요한지에 대한 의문도 항상 남아 있었다. 켄트 벡은 이런 문제에 대해 경제적 직관을 활용하여 해결 방향을 제시한다.

첫 번째 책인 'Tiny First?'에서 소프트웨어 설계에 관련된 지식을 얻을 수 있었다면, 두 번째 책인 '옮긴이 노트'에서는 좋은 개발자로 성장하기 위한 동기 부여를 전달받을 수 있었다. 특히 역자가 켄트 벡과 주고받은 대화를 통해 개발자로서 가져야 할 사명감과 열정을 배울 수 있었다. 이들처럼 노력하고, 실천하며, 즐기는 태도로 꾸준함을 잃지 않으면 나도 언젠가 좋은 개발자가 될 수 있을 것이라는 희망을 가지게 되었다.

"한빛미디어의 도서 지원을 받아 작성한 리뷰입니다."

다른 카테고리의 글 목록

리뷰 카테고리의 포스트를 톺아봅니다

1. 현상 

 

expo에서 iOS 시뮬레이터를 실행할 경우 터미널 상에서 아래와 같이
'System Events에 Apple 이벤트를 보낼 권한이 없습니다.'  

에러가 발생한다. 

 

Expo 개발 웹 UI 상에서는 Error opening is simulator. Check Metro logs for details. 라는 에러 문구가 나온다. 

(node:47980) UnhandledPromiseRejectionWarning: Error: Command failed: osascript -e tell app "System Events" to count processes whose name is "Simulator"
28:69: execution error: System Events에 Apple 이벤트를 보낼 권한이 없습니다. (-1743)

    at ChildProcess.exithandler (child_process.js:295:12)
    at ChildProcess.emit (events.js:223:5)
    at maybeClose (internal/child_process.js:1021:16)
    at Socket.<anonymous> (internal/child_process.js:430:11)
    at Socket.emit (events.js:223:5)
    at Pipe.<anonymous> (net.js:664:12)
(node:47980) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 14)
(node:47980) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

 

2. 해결 방법

Mac OS의 환경 설정에서 Termial -> System Events 항목을 활성화한다. 

다른 카테고리의 글 목록

리뷰/기타 카테고리의 포스트를 톺아봅니다

1. 현상
아래와 같이 nginx 기본 설정에서는 응답해더에서 nginx 버전 정보가 노출된다.

이 경우 특정 nginx 버전의 보안 취약점을 노린 해커의 공격이 유입될 수 있기 때문에 조치가 필요하다. 

 

2. 조치 방법 

nginx.conf 파일 내 아래 설정을 추가한다. 

server_tokens off;

 

3. 조치 결과 

응답 헤더의 Server 정보에 nginx 버전인 1.19.2 사라졌다. 

다른 카테고리의 글 목록

리뷰/기타 카테고리의 포스트를 톺아봅니다

로컬 내 docker 를 사용하여 mysql 실행 시 명령어

 

docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=password -d mysql mysqld --default-authentication-plugin=mysql_native_password

다른 카테고리의 글 목록

리뷰/기타 카테고리의 포스트를 톺아봅니다

GitHub Actions 에서 Only actions in <ID> are allowed for this repository 에러가 발생할 경우 

Workflow 로그를 확인하면 다음과 같은 문구의 에러가 발생한다. 

Error 

Only actions in "novenber11th" are allowed for this repository 

 

이 경우 Setting -> Actions 메뉴에서 Actions permissions 가 Enable local and third party Actions for this repository 로 설정되어 있는지 확인한다. 에러가 발생할 당시에는 해당 값이 Enable local Actions only for this repository 로 설정되어 있었다.

(메뉴 설명상으로는 문제가 없어야 하는데 왜 그런지는 잘 모르겠다 ..)

 

다른 카테고리의 글 목록

리뷰/기타 카테고리의 포스트를 톺아봅니다

Test

2020. 4. 18. 01:14 - mr.november11

Test

 

다른 카테고리의 글 목록

리뷰/기타 카테고리의 포스트를 톺아봅니다

[git] VS Code 편집기를 git diff 툴로 활용하기

2020. 3. 31. 19:41 - mr.november11

1. ~/.gitconfig 파일 내 diff 관련 설정을 추가한다(또는 수정한다).

[diff]
    tool = vscode
[difftool "vscode"]
    cmd = code --wait --diff $LOCAL $REMOTE

2. git difftool <branch 이름> 명령어로 diff 를 실행한다. 

 

3. VS Code 왼쪽 상단 아이콘을 클릭하여 CHANGES 파일 리스트를 확인하고 변경된 소스 코드 내역을 비교한다. 

다른 카테고리의 글 목록

리뷰/기타 카테고리의 포스트를 톺아봅니다

토이 프로젝트를 위한 퍼블릭 클라우드 별 무료 서비스 정리

토이 프로젝트를 위한 퍼블릭 클라우드별 프리 티어(Free Tier) 서비스를 정리해봤습니다. 여기서 프리 티어란 기간 제한 없이 항상 무료로 사용 가능한 서비스를 의미합니다(12개월 후 만료되는 체험 서비스와는 다릅니다).

 

대상 업체는 현재 국내에서 서비스중인 AWS, Azure, Oracle, IBM입니다.
GCP의 경우 국내 리전 대상 프리 티어 서비스가 없어 조사 대상에서 제외했습니다.

 

개별 업체에서 제공하는 프리 티어의 사용량은 매우 적습니다.
하지만 여러 업체의 프리 티어 서비스 자원을 조합하여 사용한다면 토이 프로젝트 서비스에 충분한 인프라를 갖출 수 있습니다.

 

또한 업체별 제공하는 프리 티어 서비스의 특성이 조금씩 다르기 때문에 특성에 맞추어 체리 픽 한다면 유용하게 활용할 수 있습니다.

 

예를 들어 
 - 서버리스는 AWS/Azure를 사용하고 
 - VM은 Oracle
 - Object Storage는 IBM을 사용한다면,
프리 티어 환경에서도 서비스 제공을 위한 기본적인 인프라 환경을 구성할 수 있습니다.


         
업체 AWS Azure Oracle IBM
VM 없음 없음 VM 2개(각각 OCPU 1/8, 1GB) 없음
서버리스 Lambda 월별 1백만 Functions 월별 1백만 없음 없음
데이터베이스 DynamoDB 25GB 없음 데이터베이스 2개, OCPU 1개, 20GB DB2 100MB
스토리지 없음 없음 Block Volume 100GB / Object Storage 10GB Object Storage 25GB
네트워크(Outbound) 확인 불가 5GB 10TB 확인 불가
기타   App Service 10개    

* 혹시나 틀린 부분이 있다면 의견 주시면 반영하여 수정하겠습니다.

참고 URL

다른 카테고리의 글 목록

리뷰/기타 카테고리의 포스트를 톺아봅니다