강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

쿠드비님의 프로필 이미지
쿠드비

작성한 질문수

AI 다루는 백엔드 설계 기본 - SpringBoot SNS 편

▶︎ Claude Code 활용 (Skills, Hooks)

claude 동작 결과값이 다를 경우 어떻게 해나가야 될지 모르겠습니다.

해결된 질문

작성

·

18

·

수정됨

1

  1. git에 있는 .claude를 프로젝트 파일세 추가하고,

  1. 'User 도메인을 만들고 회원가입, 조회 등 관련 API를 만들어줘. '

라고 동일하게 터미널에 입력시 얼추 강의와 비슷하게는 만들어지는데 (여러번 돌려봤는데) 예를들면 dto에 record가 생성은 되는데 네이밍이 아예 다르다거나, 네이밍은 그럴 수 있는데 내용이 아예 달라서(예: Annotation이 전혀 없이 아래와 같이 생성 되거나 다른 파일의 내용이 다르거나 하는 경우, Service에 애노테이션이 아예 없거나, Controller에도 메서드가 반절도 안만들어졌다거나, resources>http>user.sh파일 내용에 내용이 반절이상 없다거나.. 등

package com.apiece.springboot_sns_sample.controller.dto;

import com.apiece.springboot_sns_sample.domain.user.User;

public record UserRegisterRequest(String email, String password, String username) {

  public User toEntity(String encodedPassword) {
    return User.builder().email(email).password(encodedPassword).username(username).build();
  }
}

이럴 경우 어떻게 강의를 수강해 나가면 좋을지 궁금합니다.

답변 2

0

한조각님의 프로필 이미지
한조각
지식공유자

안녕하세요 쿠드비님!

 

우선 코드가 강의와 다르게 나오는 것은 정상입니다.
claude 같은 생성형 AI 를 사용하시면서, AI의 비결정적이고 확률적인 특성을 이미 경험하고 계실거라고 생각합니다.
AI는 컴파일러처럼 매번 동일하게 결정적인 결과를 내는 도구가 아니라, 가능성이 높은 결과를 그때그때 만들어내는 도구이기 때문입니다. (skills 등 보조도구를 설정했다해도 말이죠.)

 

이 강의는 AI가 항상 같은 코드를 만들어준다는 전제 위에서 진행되지 않습니다.
매번 조금씩 다른 결과물을 사람이 읽고, 판단하고, 설계 관점에서 고쳐 나가는 과정을 학습 목표로 삼고 있습니다.
이 점을 고려하여 강의와 완전히 동일한 코드를 만들어나가기 보다, 꼭 필요한 부분만 비슷하게 수정하여 (AI 에게 수정해달라고하여) 진행해보시면 좋을 것 같습니다.

 

쿠드비님처럼 미션을 직접 구현해나가면서 진행하시는 건 제가 바라던 결과이고, 강의를 듣기만 하는것보다 얻어가는 것이 많을 거라고 생각합니다. 그래서 지금처럼 착오가 발생하더라도 하나씩 고치면서 진행하는 걸 추천드립니다. 다만 강의와 완전히 동일하지는 않아도 좋으니 우리가 작성했던 설계를 충족하는지 기준에 맞추어 코드를 만들어나가시면 좋을 것 같습니다.

 

예를 들어, 전달해주신 코드를 보시면 제 강의에는 없던 email 필드가 있다거나, toEntity() 안에 빌더패턴을 사용하고 있습니다.
이 경우 저라면, email 필드는 과감히 없애고, toEntity() 같은 건 프로젝트 전체적으로 이런 구조를 사용할 것이라면 통일하도록 spring-api-rules 에 넣어서 관리하도록 할 것 같습니다.

 

Service에 애노테이션이 아예 없거나, Controller에도 메서드가 반절도 안만들어졌다거나, resources>http>user.sh파일 내용에 내용이 반절이상 없다거나

또한 위 부분은 반드시 구현되어야 할 부분이므로, 끈기있게 시도해보며 완성시키도록 해야합니다. 현재 AI 개발은 단순히 명령을 한번으로 모든 것이 구현된다고 기대하기 보다, 이런 과정이 아직은 필수라고 생각하시면 됩니다.

 

감사합니다!

 

 

0

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

강의에서 Claude를 사용하여 자동으로 코드 생성을 시도할 때, 예상과 다른 결과가 나오거나 불완전한 코드가 생성될 수 있습니다. 이는 Claude의 AI 모델이 특정 콘텍스트에서 원하는 결과를 완벽하게 맞추지 못할 수 있기 때문입니다. 다음은 이와 같은 상황을 더 잘 다루기 위한 몇 가지 팁입니다:

  1. 문제 파악: 생성된 코드의 어떤 부분이 강의와 다르고 원하는 결과와 어떻게 차이가 있는지 파악합니다. 예를 들어, DTO 네이밍이나 annotation 위치와 같이.

  2. 코드 검토: Claude가 생성한 코드를 수동으로 검토하여 수정하는 것을 고려합니다. 이를 통해 특정 기능이 제대로 구현되어 있는지, 코드 구조가 문제 없는지를 확인할 수 있습니다.

  3. 정확한 명령어 수정: Claude에게 좀 더 구체적이고 명확한 지침을 주는 것이 필요할 수 있습니다. 예를 들어, “User 도메인을 만들고, @Service annotation을 추가하고, 각 API에 필요한 annotation을 Javadoc 형태로 명시해줘.” 이렇게 좀 더 자세히 명령어를 줄 수 있습니다.

  4. 유사한 질문과 답변 참조: 아래 링크에서 유사한 질문과 답변을 참조하여 더 많은 도움을 받을 수 있습니다.

  5. Experimental Approach: 초기 생성된 코드가 완벽하지 않을 수 있다는 점을 염두에 두고, 생성된 코드를 이용하여 수동으로 수정 및 추가적인 코드를 작성해 나가는 실험적인 접근 방법도 학습에 크게 도움됩니다.

이러한 과정을 통해 다양한 코딩 스타일을 경험하고, 코드의 자동 생성과 수정을 통해 코딩 능력을 향상시킬 수 있을 것입니다.

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

쿠드비님의 프로필 이미지
쿠드비

작성한 질문수

질문하기