JSCODE Logo
블로그후기멘토진
회사명 : JSCODE대표 : 박재성사업자 등록번호 : 244-22-01557통신판매업 : 제 2023-인천미추홀-0381 호
학원 명칭 : 제이에스코드(JSCODE)원격학원학원설립ㆍ운영 등록번호 : 제6063호

서울특별시 구로구 경인로 20가길 11(오류동, 아델리아)

Copyright ⓒ 2025 JSCODE - 최상위 현업 개발자들의 프로그래밍 교육 All rights reserved.

이용약관개인정보처리방침
← 블로그 목록으로 돌아가기

[실습] 프로젝트 코드 고도화하기 / JSON 프로세서 jq

JSCODE 시니
JSCODE 시니
2026. 04. 09.
author
JSCODE 시니
category
Jenkins CI/CD
createdAt
Apr 9, 2026 12:57 PM
isPublic
isPublic
series
Jenkins를 활용한 CI/CD 입문 (with.AWS)
slug
enhancing-project-code-with-jq-jenkins
type
post
updatedAt

✅ 1. 프로젝트 코드 고도화 하기

  • 우리가 현재 작성한 코드는 생각보다 하드 코딩된 것이 많고 동적으로 작동하지 않는다.
aws ecs update-service --cluster 클러스터명 --service 서비스명 --task-definition 테스크정의명:릴리즈번호(2번)
  • 예를 들면 해당 코드의 경우 우리가 서비스를 update 할 때 마다 릴리즈 번호를 수동으로 입력해 주어야 한다.
  • 해당 릴리즈 번호를 하드코딩 하지 않고 동적으로 받아오려면 어떤 방법을 사용하면 좋을까?
notion image
  • 우리가 aws cli의 명령어를 통해 태스크 정의를 등록하면 json으로 해당 태스크 정의 내용을 콘솔에 출력해준다.
  • 이때 revision이라는 속성의 값으로 다음 릴리즈 번호를 출력하고 있다.
  • 이를 활용하여 변수에 저장하고, 해당 변수를 우리 명령문에 넣는다면 동적으로 코드를 변경할 수 있다.
  • 이때 어떻게 JSON 데이터를 파싱할 수 있을까?
 
 

✅ 2. JSON 프로세서 jq

  • jq는 커맨드라인용 JSON 프로세서이다.
  • jq는 아주 간단한 문법으로 JSON 구조를 탐색하고, 필터링하고, 수정할 수 있게 도와준다.
  • 특정값을 추출하거나 데이터를 변환하는 등 다양한 작업을 할 수 있다.
stage('Deploy to AWS') { agent { docker { image 'amazon/aws-cli' // aws-cli 이미지는 기본적으로 실행 후 바로 종료되므로 엔트리포인트 무력화 reuseNode true // jq 설치를 위하여 root 계정으로 변경 args "-u root --entrypoint=''" } } steps { withCredentials([usernamePassword(credentialsId: 'my-aws', passwordVariable: 'AWS_SECRET_ACCESS_KEY', usernameVariable: 'AWS_ACCESS_KEY_ID')]) { sh ''' aws --version yum install jq -y LATEST_TD_REVISION=$(aws ecs register-task-definition --cli-input-json file://aws/task-definition-prod.json | jq '.taskDefinition.revision') echo $LATEST_TD_REVISION aws ecs update-service --cluster 클러스터명 --service 서비스명 --task-definition 테스크정의명:$LATEST_TD_REVISION ''' } } }
  • jq 설치를 위하여 반드시 root 계정으로 변경해야한다.
  • 점 표기법(.)으로 속성에 접근할 수 있다.
  • 변수의 값을 표현할때는 반드시 $를 명시해야 한다.
notion image
  • 설치 후 빌드를 통해 반드시 변수의 값이 잘 출력되는지 확인해야한다.
 
 
 
 
author
category
Jenkins CI/CD
createdAt
Apr 9, 2026 01:25 PM
isPublic
isPublic
series
Jenkins를 활용한 CI/CD 입문 (with.AWS)
slug
type
series-footer
updatedAt
📎
이 글은 Jenkins를 활용한 CI/CD 입문 (with.AWS) 강의의 수업 자료 중 일부입니다.