inflearn logo
강의

Course

Instructor

jOOQ in action! Type Safe SQL with Java

질문) jOOQ 프로젝트에서 CI/CD 자동화 문의

Resolved

176

KHLIM

2 asked

1

안녕하세요, 강사님.

강의 잘 들었습니다. 감사합니다.

 

jOOQ를 사용한 프로젝트에서 CI/CD 과정을 어떻게 자동화하는지 궁금하여 문의드립니다.

CI/CD 서버와 데이터베이스를 연결하는 부분에서 보안 리스크가 큰 것 같은데, 실제 업무에서는 이 문제를 어떻게 해결하는지 알려주시면 감사하겠습니다.

 

아니면 자동 생성한 코드를 Git Repository에 함께 업로드해야 하는지 여쭙고 싶습니다. 이 경우 git commit이 깔끔해지지 않을 것 같아 걱정이 됩니다.

 

 

java sql spring-boot jooq dsl

Answer 3

1

sdm32851630

KHLIM님 안녕하세요.

 

  1. CI 환경에서 DSL 생성을 위한 DB 연결

실제로 CI/CD 서버와 데이터베이스를 연결하는 부분은 여러 관리 포인트와 망분리와 같은 이슈들이 있어

 

testcontainers + flyway로 CI 환경에서 테스트컨테이너로 DSL을 만드는 방식을 주로 사용하고 있습니다. 해당 내용은 아래 강의에서 확인 가능하십니다.

 

image.png

 

 

  1. 자동 생성한 코드를 Git Repository에 함께 업로드해야 하는지 여쭙고 싶습니다.


    이 경우 git commit이 깔끔해지지 않을 것 같아 걱정이 됩니다.

저는 자동생성된 DSL은 git 으로 관리하지 않습니다.

git으로 관리하게 된다면 말씀하신대로 git commit 도 지저분해지고,
누군가 매번 자동으로 생성되는 DSL에 로직을 넣거나 할 가능성이 생겨서 선호하지 않습니다. 🙂

1번이 해결된다면, 2번을 고려할 필요도 없다고 생각됩니다. 감사합니다 ㅎㅎ

0

KHLIM

답변 감사합니다. 완강 전에 서둘러 문의를 드렸었네요 ㅎㅎ
세션5까지 보고 이해했습니다. 명쾌한 강의 감사합니다.

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. KHLIM님.

CI/CD 파이프라인에서 jOOQ와 데이터베이스를 안전하게 자동화하는 방법에 대해 설명드리겠습니다.

  1. 보안 강화: CI/CD 환경에서 데이터베이스에 접근하기 위한 민감 정보(예: 비밀번호, API 키 등)는 환경 변수나 시크릿 관리 시스템을 활용해서 관리합니다. 많은 CI/CD 툴은 이러한 보안 정보를 안전하게 저장하고 사용할 수 있는 기능을 제공합니다. 예를 들어, GitHub Actions에서는 Secret을 활용하여 환경 변수를 관리할 수 있습니다.

  2. 코드 자동 생성과 버전 관리: jOOQ는 코드 생성 도구로 매 빌드마다 자동으로 코드를 생성할 수 있지만, 이 자동 생성된 코드를 Git에 포함할 것인지에 대해서는 여러 의견이 있을 수 있습니다.

    • 코드 리뷰를 위한 가독성을 확보하고 협업을 원활하게 하려면 생성된 코드를 포함하는 것이 좋습니다.
    • 일관된 빌드 환경을 보장하기 위해 입맛에 따라 사전에 정의된 버전의 코드를 저장하고 사용하기도 합니다.
  3. Git 관리: 자동 생성 코드의 경우, 주석 기반으로 구성 요소를 설명하거나 특정 디렉토리에서만 관리하는 방법으로 Git 관리의 복잡성을 줄일 수 있습니다. .gitignore에 추가하여 간단히 관리하는 것도 하나의 방법이 될 수 있습니다.

관련된 다른 사용자분들의 질문들은 다음과 같습니다:
- IDE로 스프링부트 실행없이 jooq로 짠 쿼리 결과를 바로 확인하는 방법이 있을까요? : CI/CD와 상관없이 jOOQ 활용에 대한 이해를 높일 수 있습니다.
- 하나의 디비를 여러 백엔드 서버가 필요로 할 때, flyway 관리 : 데이터베이스에 대한 마이그레이션 관리 및 버전 컨트롤에 대한 힌트를 얻을 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

안녕하세요 FetchGroups에서 Multiset방식 사용하면 어떤가 해서 물어봅니다

0

60

1

monosoul jooq plugin-docker registry 변경

1

101

3

generate dao 를 통한 삽입 시 pk auto-increment 가 적용되지 않습니다

1

109

1

jooq+flyway에서 질문드립니다

0

249

2

안녕하세요 생성일,생성자,수정일,수정자는 자동으로 해주는 기능이 있을까요?

0

209

2

[사례] Maven에서 TestContainers 플러그인 적용시 예외발생

0

143

0

Routines 관련 질문

1

159

2

JOOQ 환경설정 중에 db 패스워드 관련 질문입니다.

1

173

1

Sakila DB 도커 컴포즈 구성 시 팁

1

152

1

DB 벤더별 내장함수에 대한 방언 지원 듣고 질문드려요

1

176

1

인텔리제이 테마 질문

2

426

3

kotlin jOOQ , 컴파일시 힙메모리 부족

0

525

2

pojo 에 setter 가 없는 경우가 있을까요?

1

189

1

FilmWithActor로 fetch 시 select와 생성자의 매개변수 순서가 다를 경우 map이 정상적으로 이루어 지지않는 케이스

1

228

1

from절 subquery table filed nullable 처리

1

221

1

kotlin mapping error

0

517

4

db column은 not null로 되어 있는데 kotlin에서 pojo가 다 nullable로 생성되요.

0

514

1

하나의 디비를 여러 백엔드 서버가 필요로 할 때, flyway 관리

1

889

5

dslContext 작성 시 fetchGroups 이렇게 작성해도 될까요?

2

639

6

update with dto 질문

1

268

1

R2DBC 환경에서 jOOQ generate 된 Dao를 사용할 수 있는 방법이 있을까요?

2

1245

3

IDE로 스프링부트 실행없이 jooq로 짠 쿼리 결과를 바로 확인하는 방법이 있을까요?

1

503

1

build.gradle.kts

3

758

2

마리아 DB 쓰시는분들은 mysql 파일 쓰시면됩니다.

1

371

1