<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>외래 키 on 얼쑤 · Team Edo</title><link>https://team-edo.github.io/tags/%EC%99%B8%EB%9E%98-%ED%82%A4/</link><description>Recent content in 외래 키 on 얼쑤 · Team Edo</description><generator>Hugo</generator><language>ko-kr</language><lastBuildDate>Thu, 29 Oct 2026 00:00:00 +0900</lastBuildDate><atom:link href="https://team-edo.github.io/tags/%EC%99%B8%EB%9E%98-%ED%82%A4/index.xml" rel="self" type="application/rss+xml"/><item><title>회원 한 행이 막은 테스트 준비</title><link>https://team-edo.github.io/posts/2026/10/preserve-seed-parent-fixtures/</link><pubDate>Thu, 29 Oct 2026 00:00:00 +0900</pubDate><guid>https://team-edo.github.io/posts/2026/10/preserve-seed-parent-fixtures/</guid><description>&lt;p>기본 악기와 악보를 DB 시드로 넣고 나니 매퍼 테스트가 시드와 같은 ID에 다른 값을 넣어야 했습니다. 처음에는 고정 데이터를 넣기 직전에 시드 행을 지웠습니다. 깨끗한 DB에서는 동작했습니다. 가입 테스트가 먼저 회원을 커밋해 둔 상태에서는 테스트 본문을 실행하기도 전에 준비 단계가 실패했습니다.&lt;/p>
&lt;h2 id="회원이-참조하는-악기는-지울-수-없었다">기본 악기를 가리키는 외래 키&lt;/h2>
&lt;p>실제 HTTP로 가입하는 테스트는 회원 행을 커밋합니다. 그 행은 기본 악기인 단소를 참조합니다. 정상 실행에서는 회원 행을 정리하지만, 테스트가 중간에 멈추면 참조가 남을 수 있습니다. 그 상태에서 매퍼 테스트가 악기를 &lt;code>DELETE&lt;/code>하면 MySQL은 외래 키 오류 &lt;strong>1451&lt;/strong>로 막습니다.&lt;/p></description></item><item><title>악보 체류 기록의 재전송 오류 구분</title><link>https://team-edo.github.io/posts/2026/10/permanent-score-view-sync-rejections/</link><pubDate>Wed, 28 Oct 2026 00:00:00 +0900</pubDate><guid>https://team-edo.github.io/posts/2026/10/permanent-score-view-sync-rejections/</guid><description>&lt;p>얼쑤 앱은 악보 화면을 떠날 때 그동안 보인 시간과 연습으로 인정한 시간을 기록합니다. 네트워크가 끊겨도 기록을 남길 수 있도록 앱은 닫힌 구간을 기기의 대기열에 넣었다가 다시 보냅니다. 저는 팀과 이 전송 규칙을 정리하고 서버의 저장 API를 구현했습니다.&lt;/p>
&lt;p>이 API에서 상태 코드는 앱의 다음 동작을 정합니다. 5xx나 연결 오류가 오면 구간을 보관하고 다음 기회에 보냅니다. 400이나 404가 오면 해당 구간은 대기열에서 빼고 오류를 기록합니다. 401에는 토큰을 갱신하는 경로가 따로 있습니다. 리뷰에서 같은 요청을 다시 보내도 해결될 이유가 없는 &lt;strong>두 가지 경우&lt;/strong>가 500으로 분류되는 것을 확인했습니다.&lt;/p></description></item></channel></rss>