Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WebSocket + 네이버 클로바 챗봇] 경제 용어 챗봇 구현해보기 #9

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

pykido
Copy link
Contributor

@pykido pykido commented Jul 9, 2024

해결하려는 문제가 무엇인가요?

어떻게 해결했나요?

  • 노션에 자세히 써놨습니다~!
  • 네이버 클로바를 통해 답변 및 응답을 커스터마이징할 수 있더라고요.
  • 클로바를 통해서는 하드코딩된 더미 응답들을 할 때 유용할 거 같네요! + 웰컴 메시지, 실패 메시지 등 공통메시지 또한!

# Conflicts:
#	build.gradle.kts
#	src/main/resources/application.properties
#	src/main/resources/application.yml
Copy link
Contributor

@stopmin stopmin left a comment

Choose a reason for hiding this comment

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

한 메소드는 30줄은 넘지 않았으면 좋겠습니다!
그리고 STOMP형식으로 구현하는 것을 추천드립니다. 그리고 의존성에 대해서는 왜 추가했는지 정확하게 코멘트로 명시 부탁드립니다! 다음 PR에서 코드 리팩토링 부탁드리고 STOMP로 수정하셔서 구현하는게 유지보수/가독성에 좋겠다고 판단됩니다.


private static final Logger logger = LoggerFactory.getLogger(ChatController.class);

private static String secretKey = "SnNOQ2ZPcElzYnJiTURtWUZXWFVnTUhqVEVQaVROWEU=";
Copy link
Contributor

Choose a reason for hiding this comment

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

키값 올려둔거 application-secret.yml파일로 빼주세요 ^^..

private static final Logger logger = LoggerFactory.getLogger(ChatController.class);

private static String secretKey = "SnNOQ2ZPcElzYnJiTURtWUZXWFVnTUhqVEVQaVROWEU=";
private static String apiUrl = "https://v72bqnhpzy.apigw.ntruss.com/custom/v1/15050/eddd8440e74fa955e718cb3d1d76e68be523ad9293e60321542d50432f0e5255";
Copy link
Contributor

Choose a reason for hiding this comment

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

마찬가지입니다..

logger.info("Request Message: {}", message);
logger.info("Signature: {}", encodeBase64String);

//api서버 접속 (서버 -> 서버 통신)
Copy link
Contributor

Choose a reason for hiding this comment

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

테스트코드라고 생각하겠습니다!! 가독성도 떨어지고 무슨 일을 하고 있는지 알기가 어렵네요 ㅠㅠ... 또한 컨트롤러에 있으면 안될 것 같은 로직들이 많은 것 같아요! 제대로 분리 부탁드립니다.


//api서버 접속 (서버 -> 서버 통신)
HttpURLConnection con = (HttpURLConnection)url.openConnection();
con.setRequestMethod("POST");
Copy link
Contributor

Choose a reason for hiding this comment

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

HttpURLConnection을 쓰지 않아도 되는 것으로 아는데 이거는 왜 사용하신건가요?

String jsonString = "";
if(responseCode == 200) { // 정상 호출

BufferedReader in = new BufferedReader(
Copy link
Contributor

Choose a reason for hiding this comment

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

BufferedReader는 응답을 읽는 용인 것인가요?

//받아온 값을 세팅하는 부분
JSONParser jsonparser = new JSONParser();
try {
JSONObject json = (JSONObject)jsonparser.parse(jsonString);
Copy link
Contributor

Choose a reason for hiding this comment

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

왜 또 json으로 파싱하는지 궁금합니다!

String description = "";
description = (String)data.get("description");
chatMessage = description;
} catch (Exception e) {
Copy link
Contributor

Choose a reason for hiding this comment

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

에러 핸들링이 제대로 안된 것 같습니다! 전역적으로 잡는 행위는 지양하는게 좋을 것 같습니다. 그리고 웹소캣은 websocket별도의 에러가 있는 것으로 알고있습니다!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[WebSocket + 네이버 클로바 챗봇] 경제 용어 챗봇 구현해보기
2 participants