Skip to content

Conversation

@momuzzi
Copy link
Member

@momuzzi momuzzi commented Jan 28, 2025

#️⃣ 요약 설명

  1. 채용 공고 조회에서 더미 데이터를 사용하던 부분을 Answer 데이터를 사용하도록 수정했습니다.
  2. 매 요청마다 gpt 요청이 가지 않도록 하기 위해서 GptAnswer 엔티티를 추가했습니다.
  3. 답변 마지막 updated_at을 항상 갱신시키기 위해 AnswerCommandService의 updateAnswerList 메서드에 코드 몇줄 추가했습니다.

📝 작업 내용

코드의 흐름이나 중요한 부분을 작성해주세요.

// 핵심 코드를 붙여넣기 해주세요

코드에 대한 간단한 설명 부탁드립니다.

동작 확인

  1. GptAnswer이 이미 있고, 답변 데이터 수정이 이루어지지 않은 경우 채용 공고 조회 시
image

image


  1. 답변 수정 후 다시 채용 공고 조회 시

일단 답변 수정을 하겠습니다
image

젤 위 튜플의 updated_at만 갱신되는걸 확인할 수 있습니다 -> order 1번이면서 sequence 1번
image

image

기존 GptAnswer의 updated_at도 확인하겠습니다
image

이 상태에서 조회를 하면, gpt 요청 로직이 동작해서 이전보다 조회 시간이 오래걸립니다
image
로그를 보면 if문도 잘 탄 것 같습니다
image
GptAnswer도 새로 갱신되었습니다
image


  1. 이렇게 한 상황에서 다시 한번 채용 공고 조회

이제 GptAnswer의 updated_at이 답변 updated_at 이후이기 때문에 gpt 요청을 하지 않습니다. (조회 시간도 짧아짐)
image
로그로 if문이 잘 타는걸 확인할 수 있습니다.
image


  1. 사용자가 템플릿에 답변을 하지 않고(답변 데이터가 db에 없음) 바로 채용 공고 조회를 할 경우

일단 Answer 테이블을 밀었습니다 (추가로 GptAnswer 테이블도 밀었습니다)
image

gpt에게 분석시킬 데이터가 없기 때문에 경력은 0년 처리, 직무는 member의 job으로 처리했습니다 (gpt 요청 x)
image

경력은 0년 처리하는 부분인데, 로그를 안찍어둬서 코드로 대체하겠습니다
image

이 경우에도 경력은 0년 처리, 직무는 member의 job으로 처리한 데이터로 GptAnswer를 생성해서 저장합니다
image
image


  1. 4번 상태에 이어서 템플릿에 대한 답변을 생성할건데 답변 content를 전부 빈 문자열로�저장하겠습니다
    image

스웨거로 요청하는 캡처 사진 까먹음..

근무기간에 데이터가 빈 문자열이라서 0년 처리합니다
image

모든 답변이 빈문자열인 경우의 if문에 걸린 로그이고, 이 경우 또한 gpt에게 요청보내지 않고 멤버 프로필의 job으로 직무에 대해 처리합니다
image


  1. 5번에 이어 인턴 템플릿에 대해 정상적인 답변 데이터를 넣고 조회

정상 답변에 대한 db
image

gpt 요청이 발생한 조회
image

로그도 if문에 잘 걸리는 걸 확인
image

GptAnswer updated_at 시간 갱신 확인 (멤버 프로필 job이랑 정상 데이터 전부 백엔드로 진행해서 직무 데이터가 다릅니다)
image


  1. 마지막으로 6번에 이어 다시 채용 공고를 조회

gpt 요청 로직 없이 조회되었습니다
image

로그도 확인
image

기능을 실행했을 때 정상 동작하는지 여부를 확인하고 사진을 올려주세요

ex) 테스트 코드 작성후 성공 사진
ex) swagger 사진

💬 리뷰 요구사항(선택)

리뷰어가 특별히 봐주었으면 하는 부분이 있다면 작성해주세요

ex) 메서드 XXX의 이름을 더 잘 짓고 싶은데 혹시 좋은 명칭이 있을까요?

@momuzzi momuzzi added the feat 기능 추가 label Jan 28, 2025
@momuzzi momuzzi self-assigned this Jan 28, 2025
Copy link
Member

@jjeongdong jjeongdong left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 고생하셨습니다!!


@Service
@RequiredArgsConstructor
@Transactional(propagation = Propagation.REQUIRES_NEW)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이건 무슨 어노테이션인가요??

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

트랜잭션 전파 설정을 정해주는 옵션입니다! GptAnswerCommandService의 메서드들(save, update)을 호출하는 쪽(RecruitQueryService)이 readOnly 상태라서 해당 트랜잭션이 이어지면 db 변경이 불가능해서, 전파 옵션으로 트랜잭션을 분리했습니다

@momuzzi momuzzi merged commit 1369081 into develop Jan 30, 2025
1 check passed
@momuzzi momuzzi deleted the feature/CMAT-42 branch January 30, 2025 08:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feat 기능 추가

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants