@@ -143,20 +143,14 @@ const IDE = () => {
143143 // 비회원이면 API 호출 안함
144144 if ( ! isLoggedIn ) return ;
145145
146- try {
147- // 단순한 API 호출로 변경
148- const response = await fetch ( 'http://localhost:4000/api/files' ) ;
149-
150- if ( ! response . ok ) {
151- throw new Error ( '파일 목록 불러오기 실패' ) ;
152- }
153-
154- const files = await response . json ( ) ;
155- setSavedFiles ( files ) ;
156- } catch ( error ) {
157- console . error ( '파일 목록 불러오기 오류:' , error ) ;
158- // 오류 시 기본 파일 목록 유지
159- }
146+ // 임시 로컬 파일 목록 사용
147+ const localFiles = [
148+ { name : "untitled.py" , code : '# 여기에 코드를 입력하세요' } ,
149+ { name : "example.py" , code : 'print("Hello, World!")' } ,
150+ { name : "test.js" , code : 'console.log("Testing JavaScript");' }
151+ ] ;
152+
153+ setSavedFiles ( localFiles ) ;
160154 } ;
161155
162156 // 회원 상태가 변경될 때 파일 목록 갱신
@@ -218,19 +212,25 @@ const IDE = () => {
218212 // 현재 에디터의 값을 가져옴
219213 const currentCode = editorRef . current . getValue ( ) ;
220214
221- // API 호출 - HTML 예시에서 본 엔드포인트 사용
215+ // HTML 예시처럼 API 호출
222216 const response = await fetch ( 'http://localhost:4000/api/run' , {
223217 method : 'POST' ,
224218 headers : {
225219 'Content-Type' : 'application/json' ,
226220 } ,
227221 body : JSON . stringify ( {
228222 code : currentCode ,
229- lang : selectedLanguage , // HTML 예시에서는 'lang'으로 전송
223+ lang : selectedLanguage ,
230224 input : input
231225 } ) ,
232226 } ) ;
233227
228+ console . log ( '보내는 데이터:' , JSON . stringify ( {
229+ code : currentCode ,
230+ lang : selectedLanguage ,
231+ input : input
232+ } ) ) ;
233+
234234 if ( ! response . ok ) {
235235 throw new Error ( 'API 호출 실패' ) ;
236236 }
@@ -298,7 +298,7 @@ const IDE = () => {
298298 } ;
299299
300300 // 파일 저장 함수
301- const handleSave = async ( ) => {
301+ const handleSave = ( ) => {
302302 // 비회원은 로그인 유도
303303 if ( ! isLoggedIn ) {
304304 alert ( "로그인 후 이용 가능한 기능입니다." ) ;
@@ -309,27 +309,6 @@ const IDE = () => {
309309 // 현재 에디터의 값을 가져옴
310310 const currentCode = editorRef . current . getValue ( ) ;
311311
312- // API 호출
313- const response = await fetch ( 'http://localhost:4000/api/save' , {
314- method : 'POST' ,
315- headers : {
316- 'Content-Type' : 'application/json' ,
317- } ,
318- body : JSON . stringify ( {
319- code : currentCode ,
320- fileName : fileName ,
321- language : selectedLanguage
322- } ) ,
323- } ) ;
324-
325- if ( ! response . ok ) {
326- throw new Error ( '파일 저장 실패' ) ;
327- }
328-
329- // 저장 성공
330- setIsSaved ( true ) ;
331- setCode ( currentCode ) ;
332-
333312 // 로컬 상태 업데이트
334313 const existingFileIndex = savedFiles . findIndex ( ( file ) => file . name === fileName ) ;
335314
@@ -343,76 +322,38 @@ const IDE = () => {
343322 setSavedFiles ( [ ...savedFiles , { name : fileName , code : currentCode } ] ) ;
344323 }
345324
325+ setIsSaved ( true ) ;
326+ setCode ( currentCode ) ;
346327 toast ( "파일이 저장되었습니다." ) ;
347328 } catch ( error ) {
348329 console . error ( '파일 저장 중 오류:' , error ) ;
349-
350- // API 오류 시 로컬만 업데이트
351- const currentCode = editorRef . current . getValue ( ) ;
352- const existingFileIndex = savedFiles . findIndex ( ( file ) => file . name === fileName ) ;
353-
354- if ( existingFileIndex >= 0 ) {
355- // 기존 파일 업데이트
356- const updatedFiles = [ ...savedFiles ] ;
357- updatedFiles [ existingFileIndex ] = { name : fileName , code : currentCode } ;
358- setSavedFiles ( updatedFiles ) ;
359- } else {
360- // 새 파일 추가
361- setSavedFiles ( [ ...savedFiles , { name : fileName , code : currentCode } ] ) ;
362- }
363-
364- setIsSaved ( true ) ;
365- setCode ( currentCode ) ;
366- toast ( "API 연결 실패. 임시로 저장되었습니다." ) ;
330+ toast ( "저장 중 오류가 발생했습니다." ) ;
367331 }
368332 } ;
369333
370334 // 파일 선택 함수
371- const handleFileSelect = async ( name ) => {
335+ const handleFileSelect = ( name ) => {
372336 // 현재 파일에 변경사항이 있으면 저장
373337 if ( ! isSaved ) {
374338 const shouldSave = window . confirm ( '변경 사항을 저장하시겠습니까?' ) ;
375339 if ( shouldSave ) {
376- await handleSave ( ) ;
340+ handleSave ( ) ;
377341 }
378342 }
379343
380- try {
381- // API에서 파일 내용 불러오기
382- const response = await fetch ( `http://localhost:4000/api/files/${ name } ` ) ;
383-
384- if ( ! response . ok ) {
385- throw new Error ( '파일 불러오기 실패' ) ;
386- }
387-
388- const fileData = await response . json ( ) ;
389- setFileName ( fileData . name ) ;
390- setCode ( fileData . code ) ;
391- setActiveFile ( fileData . name ) ;
344+ // 로컬 상태에서 파일 찾기
345+ const selectedFile = savedFiles . find ( ( file ) => file . name === name ) ;
346+ if ( selectedFile ) {
347+ setFileName ( selectedFile . name ) ;
348+ setCode ( selectedFile . code ) ;
349+ setActiveFile ( selectedFile . name ) ;
392350 setIsSaved ( true ) ;
393351
394352 // 파일 확장자에 맞는 언어 설정
395- const langId = getLanguageFromFileName ( fileData . name ) ;
353+ const langId = getLanguageFromFileName ( selectedFile . name ) ;
396354 if ( langId ) {
397355 setSelectedLanguage ( langId ) ;
398356 }
399- } catch ( error ) {
400- console . error ( '파일 불러오기 오류:' , error ) ;
401-
402- // API 호출 실패 시 로컬 상태에서 불러오기 시도
403- const selectedFile = savedFiles . find ( ( file ) => file . name === name ) ;
404- if ( selectedFile ) {
405- setFileName ( selectedFile . name ) ;
406- setCode ( selectedFile . code ) ;
407- setActiveFile ( selectedFile . name ) ;
408- setIsSaved ( true ) ;
409-
410- // 파일 확장자에 맞는 언어 설정
411- const langId = getLanguageFromFileName ( selectedFile . name ) ;
412- if ( langId ) {
413- setSelectedLanguage ( langId ) ;
414- }
415- }
416357 }
417358 } ;
418359
0 commit comments