강의

멘토링

로드맵

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

Bruce Han님의 프로필 이미지
Bruce Han

작성한 질문수

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

게시글 CRUD API 구현

13분쯤 테스트 코드가 또 안 된다면?

작성

·

17

·

수정됨

0

만약 하다가 테스트 코드 돌리려는데 500에러 뭐시기 떨어진다면, 그거는 MySQL 실행이 제대로 되지 않았을 수 있습니다.

제 경우에는 GPT가 MySQL 연결 혹은 플러그인 문제라고 자꾸 그래서, 이렇게 해결한 결과 연결 문제가 맞구나 싶었습니다.

이 방법은 테스트 데이터 삽입 때도 잘 써먹은 방법입니다.

  1. 명령 프롬프트(cmd, 윈도우 기준) 관리자 모드로 들어가서, netstat -ano 로 3306 과 8080 포트를 사용하는 프로세스가 있는지 검색하고 taskkill /f /pid 프로세스 ID 로 그 프로세스를 종료시킨다.

    1. 8080은 왜인지 터미널로 MySQL 접속하면 뜬다.

       

  2. docker desktop을 켠다.

    image.png
  3. 혹시나 켜져있던 MySQL 터미널창을 다 끈다.

  4. docker에 있는 mysql을 켠다.

    1. docker start [여러분의 mysql 이미지 이름]

  5. docker exec -it [여러분의 mysql이미지이름] bash

  6. mysql -u root -p;

  7. use article;

  8. 그러고 다시 애플리케이션 서버 켜고, 그런 다음 테스트 코드 돌리기

 

만약, image를 지웠다면 테이블, DB, 인덱스 생성 다시 해야 합니다.

답변 1

0

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

테스트 코드 실행 시 500 에러가 발생할 경우, MySQL 연결 문제가 주요한 원인일 수 있습니다. Bruce Han님이 제공해주신 해결 방법은 주로 MySQL 서버와의 연결 문제를 점검하고 해결하기 위한 과정입니다. 여기서 중요한 몇 가지 포인트를 정리해 보겠습니다:

  1. 포트 확인 및 프로세스 종료:

    • netstat -ano 명령어를 사용하여 특정 포트를 사용하는 프로세스를 확인하고 종료하는 것은 포트 충돌 문제 해결에 도움을 줍니다. 3306은 MySQL이 기본으로 사용하는 포트이며, 필요하다면 8080 등 다른 포트 역시 점검해 주세요.
  2. Docker 설정:

    • Docker Desktop을 열어 MySQL 컨테이너를 확인하고, 필요에 따라 시작합니다. 이는 MongoDB 실행이 제대로 이뤄지도록 보장합니다. Docker는 가상화된 환경을 제공하므로, 운영 체제의 다른 프로세스와의 충돌을 피할 수 있습니다.
  3. MySQL 터미널 관리:

    • MySQL 터미널이나 관련 프로세스를 정리한 후 Docker 내 MySQL을 관리하는 것이 중요합니다. 이는 중복 실행을 피하고, 통제된 환경을 유지하는 데 유용합니다.
  4. 애플리케이션 서버 및 테스트:

    • MySQL이 제대로 연결됐는지 확인한 다음, 애플리케이션 서버를 재시작하고 테스트 코드를 실행해 보세요. 이를 통해 초기의 네트워크/포트 관련 문제점을 배제할 수 있습니다.

추가적으로, 유사한 문제를 겪으신 다른 분들이 있는지 인프런 커뮤니티 게시물을 참고함으로써 문제 해결에 도움을 받을 수 있습니다:

질문자님의 문제 해결에 있어 도움되기를 바랍니다. 만약 추가적인 문제가 발생하면, 최신 로그와 오류 메시지를 포함하여 문의해 주세요.

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

Bruce Han님의 프로필 이미지
Bruce Han

작성한 질문수

질문하기