묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
인텔리제이에서 갑자기 에러표시가 안뜹니다.
인텔리제이를 처음으로 사용해보고 있습니다. 에러가 나는 부분에는 항상 빨간줄 표시가 났었는데 갑자기 오늘 빨간줄이 안뜨기 시작했습니다.. public 옆에랑 return 주석한 부분등 문제가 있습니다. 오버라이드 때문에 빨간줄이 떠야 하는데.. 뜨지 않고 있습니다. 혹시 이 부분 알고 계신가요? ㅠㅠ
-
미해결실습으로 배우는 AWS 핵심 서비스
질문있습니다.
질문1. 강좌에서 선생님이 Role은 사용자에게 권한이 없을 때, 어떤 권한을 주고 싶으면 Role을 준다고 한것 같은데요. 그러면 어떤 권한을 계속 주고 싶지 않으면 굳이 Role을 한번도 사용하지 않아도 되는것인가요? 질문2. Role은 롱텀이 아닌 숏텀이라고 하셨잖아요?. 그러면 Role의 권한이 언제 정지되며, 권한을 더이상 주고싶지 않을때는 어떻게 해야하나요?
-
미해결차량 번호판 인식 프로젝트와 TensorFlow로 배우는 딥러닝 영상인식 올인원
안녕하세요. 강의 자료 다운은 어디서 받는지요?
안녕하세요. 강의 자료 받을 수 있는 곳 알려주시면 좋겠습니다. 감사합니다.
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
질문입니다.
제가 유튜브에서 들었던 boiler-plate와 boilerplate-mern-stack과 코드가 차이가 나는데 혹시 이부분에 대한 강의는 원래 없는건가요??
-
미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
해쉬값에 대한 질문이 있습니다
해쉬가 무엇인지는 알겠습니다. 그런데 해쉬값을 구한 후 그 해쉬값을 어떻게 쓸 수 있는건지 어떻게 그 값으로 value를 찾을 수 있는지는 잘 이해가 안갑니다 강의에서는 그것을 활용하는 실습이 없어서요...
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
EntityManager 질문있어요!
@PersistenceContext 어노테이션이 있으면 스프링이 EntityManager 를 주입 해준다고 설명해 주셨는데 MemberRepository 빈은 싱글톤으로 유지되자나요 그럼 EntityManager 객체도 한번 주입 받고 종료 될때까지 close 메소드 호출을 한번도 안하나요? 혹 EntityManager 도 싱글톤으로 유지되나요?
-
미해결스프링 핵심 원리 - 기본편
안녕하세요 선생님!
제가 인텔리제이에서 뭔가를 잘못 건드렸는지 강의중에 말씀하신 'Assertions'의 'static import'가 예전에는 됐었는데 지금은 단축기를 눌러도 안되네요. 다시 이 단축키 기능을 살리는 방법이 없을까요? '커맨드+엔터' 단축키는 'Assertions' 'static import'를 제외하고는 잘 작동합니다. 이 부분만 안되는것 같아요!
-
미해결실전! 스프링 데이터 JPA
LAZY 로딩과 Transactional 에 대해 질문드립니다.
안녕하세요 강사님 강의 열심히 수강하고 있습니다 ~~ 질문은 Lazy 로딩은 사용시점에 쿼리가 발생하니까 처음 쿼리 발생 이후 뒷쪽 로직에 LAZY 로딩이 필요한경우 꽤 Transactional 범위가 넓어지더라구요 그래서 Transactional 범위 사이에 update나 insert 있는 경우는 @Transactional(propagation = Propagation.REQUIRES_NEW) 보통 요걸로 처리하고 있는데 이렇게 Transcational을 길게 가져갈 경우혹시 성능 이슈나 다른 문제사항이 있을까요? ( PS. 다른 방법으로 생각한 부분은 미리 get으로 필요한부분을 호출하도록 생각해보았는데 로직상 뜬금없기도 하고 LAZY로딩에 의미가 없어지는것 같기도 한데 아니면 혹은 더 좋은 방법이 있을까요?)
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
설정문제!
삭제된 글입니다
-
미해결파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기
FinanceDataReader 을 이용하여 ...........
- 미국 선물지수 Micro E-mini Dow Jones 의 일별 지수를 다운받을 수 있는 방법을 알려 주시면 감사 하겠습니다.
-
미해결
화면이 흐렸다 선명해졌다 반복합니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 파이썬 머신러닝 완벽가이드 수업 보고 있는데요.1080p or 720p로 했을 때 화면이 지속적으로 흐렸다 선명해졌다 하는 오류가 발생합니다. 다른 분들도 그러신가요?
-
미해결실전! Querydsl
lazy loading 할 때 where 절 추가 관련 질문드립니다.
안녕하세요. OneToMany 가 여러개 있는 entity 를 페이징으로 가져오려고 하는 상황에서 default_batch_fetch_size 를 100 이상으로 설정해서 in query 로 가져오게 구성해놓았습니다. 이 때 lazy loading 으로 in query 호출 시 추가 where 조건을 넣어서 가져오고 싶은데요. 단 하나 가능한 케이스를 찾은건.. entity 클래스에 @Where 어노테이션을 달아서 처리하면 lazy loading in query 와 함께 명시한 where 절이 호출되는건 확인했습니다만, 이렇게 설정하면 관련된 모든 쿼리의 where 절에 추가될 수 있어서.. 특정 querydsl 로 호출 시에만 lazy loading 호출 시 where 조건을 추가하고싶습니다. 많이 검색해보면서 삽질해봤는데.. 딱히 방법이 보이지 않는 것 같은데요 ㅠㅠ 혹시 방법이 있을까요? 미리 감사합니다
-
미해결애플 웹사이트 인터랙션 클론!
검은색 영역 애니메이션이 움직이지 않습니다.
안녕하세요 강의 잘 듣고 있습니다. 제가 강의를 보면서 따라하던 도중 이상하게 검은색 박스는 생기지만 옆으로 움직이면서 서서히 사라지는 부분이 안 됌니다. 그런데 아무리 찾아보아도 문제의 원인을 모르겠습니다.(제가 변수의 이름을 제가 알기 쉽게 바꾼게 몇개 존재합니다.) (() => { let yoffset = 0; let prevScrollHeight = 0;//이전 스크롤 섹션의 높이를 담음 let currentScene = 0 //현재 활성화된 씬 let enterScene = false; const sectionInfo = [ //0 { type : 'sticky', heightNum : 5, height : 0, objs : { section : document.querySelector('#scroll-section-1'), MessageA : document.querySelector('#scroll-section-1 .main-message.a'), MessageB : document.querySelector('#scroll-section-1 .main-message.b'), MessageC : document.querySelector('#scroll-section-1 .main-message.c'), MessageD : document.querySelector('#scroll-section-1 .main-message.d'), canvas : document.querySelector('#scroll-section-1 #first_canvas'), ctx : document.querySelector('#scroll-section-1 #first_canvas').getContext('2d'), }, values : { //비디오 정보 img_values : 300, img_obj : [], imgeSequence : [0,300], canvas_opacity : [1,0,{start : 0.9, end : 1}], //투명도 조절 messageA_fade_in : [0,1,{start : 0.1, end : 0.2}], messageB_fade_in : [0,1,{start : 0.3, end : 0.4}], messageC_fade_in : [0,1,{start : 0.5, end : 0.6}], messageA_fade_out : [1,0,{start : 0.25, end : 0.3}], messageB_fade_out : [1,0,{start : 0.45, end : 0.5}], messageC_fade_out : [1,0,{start : 0.65, end : 0.7}], //transform 조절 messageA_transform_in : [20,0,{start: 0.1, end : 0.2}], messageB_transform_in : [20,0,{start: 0.3, end : 0.4}], messageC_transform_in : [20,0,{start: 0.5, end : 0.6}], messageA_transform_out : [0,-20,{start: 0.25, end : 0.3}], messageB_transform_out : [0,-20,{start: 0.45, end : 0.5}], messageC_transform_out : [0,-20,{start: 0.65, end : 0.7}], } }, //1 { type : 'normal', heightNum : 5, height : 0, objs : { section : document.querySelector('#scroll-section-2'), }, values : { } }, //2 { type : 'sticky', heightNum : 5, height : 0, objs : { section : document.querySelector('#scroll-section-3'), desc_messageA: document.querySelector('#scroll-section-3 .desc-message.a'), desc_messageB : document.querySelector('#scroll-section-3 .desc-message.b'), desc_messageC : document.querySelector('#scroll-section-3 .desc-message.c'), canvas : document.querySelector('#scroll-section-3 #second_canvas'), ctx : document.querySelector('#scroll-section-3 #second_canvas').getContext('2d'), }, values : { img_values : 960, img_obj : [], imgeSequence : [0,960], canvas_fade_in : [0,1, {start : 0.05, end : 0.1}], canvas_fade_out : [1,0, {start : 0.9, end : 1}], //투명도 desc_messageA_fade_in : [0 , 1, {start : 0.1, end : 0.2}], desc_messageB_fade_in : [0 , 1, {start : 0.3, end : 0.4}], desc_messageC_fade_in : [0 , 1, {start : 0.5, end : 0.6}], desc_messageA_fade_out : [1 , 0, {start : 0.25, end : 0.3}], desc_messageB_fade_out : [1 , 0, {start : 0.45, end : 0.5}], desc_messageC_fade_out : [1 , 0, {start : 0.65, end : 0.7}], //transform 조절 desc_messageA_transform_in : [20,0,{start : 0.1, end : 0.2}], desc_messageB_transform_in : [20,0,{start : 0.3, end : 0.4}], desc_messageC_transform_in : [20,0,{start : 0.5, end : 0.6}], desc_messageA_transform_out : [0,-20,{start : 0.25, end : 0.3}], desc_messageB_transform_out : [0,-20,{start : 0.45, end : 0.5}], desc_messageC_transform_out : [0,-20,{start : 0.65, end : 0.7}], } }, //3 { type : 'sticky', heightNum : 5, height : 0, objs : { section : document.querySelector('#scroll-section-4'), mainMessageA : document.querySelector('mid-message.a'), canvas : document.querySelector('#third_canvas'), ctx : document.querySelector('#third_canvas').getContext('2d'), }, values : { imgsrc : [ './images/blend-image-1.jpg', './images/blend-image-2.jpg' ], discrimination : 0, img_obj : [], recet1X : [0,0, {start: 0, end: 0}], recet2X : [0,0, {start: 0, end: 0}], rectscrollY : 0, } } ] function setHeight() { yoffset = window.pageYOffset; let totalHeight = 0; //각 섹션별 높이를 전부 담는 변수 const canvasRatio = window.innerHeight / 1080; //마지막 캔버스를 제외한 나머지 캔버스의 비율 for(let i = 0; i < sectionInfo.length; i++){ let sectionNum = sectionInfo[i]; let calcHeight = 0; if( sectionNum.type === 'sticky' ){ calcHeight = window.innerHeight * sectionNum.heightNum; sectionNum.height = calcHeight; sectionNum.objs.section.style.height = `${calcHeight}px` }else{ calcHeight = sectionInfo[i].objs.section.offsetHeight; sectionNum.height = calcHeight; } sectionNum.objs.section.style.height = `${calcHeight}px` } for(let i = 0; i < sectionInfo.length; i++){ totalHeight += sectionInfo[i].height; if( totalHeight >= window.pageYOffset){ currentScene = i; break; } } sectionInfo[0].objs.canvas.style.transform = `translate3d(-50%,-50%,0) scale(${canvasRatio})`; sectionInfo[2].objs.canvas.style.transform = `translate3d(-50%,-50%,0) scale(${canvasRatio})`; document.body.id = `show-scene-${currentScene}`; } function setCanvasImage() { let imgElem; let imgElem2; let imgElem3; for (let i = 0; i < sectionInfo[0].values.img_values; i++){ imgElem = new Image(); imgElem.src = `./video/001/IMG_${6726 + i}.jpg`; sectionInfo[0].values.img_obj.push(imgElem); } for (let i = 0; i < sectionInfo[2].values.img_values; i++){ imgElem2 = new Image(); imgElem2.src = `./video/002/IMG_${7027 + i}.jpg`; sectionInfo[2].values.img_obj.push(imgElem2); } for (let i = 0; i < sectionInfo[3].values.imgsrc.length; i++){ imgElem3 = new Image(); imgElem3.src = sectionInfo[3].values.imgsrc[i]; sectionInfo[3].values.img_obj.push(imgElem3); } } setCanvasImage(); function scrollLoop() { enterScene = false; prevScrollHeight = 0; for(let i = 0; i < currentScene; i++){ prevScrollHeight += sectionInfo[i].height; } if(yoffset > prevScrollHeight + sectionInfo[currentScene].height){ enterScene = true; currentScene++; document.body.id = `show-scene-${currentScene}`; } if ( yoffset < prevScrollHeight ){ if(yoffset < 0) return; enterScene = true; currentScene--; document.body.id = `show-scene-${currentScene}`; } if ( enterScene ) return; playAnimation(); } //애니메이션 처리 값과 현재 씬에서의 스크롤 비율을 넘겨받음 function calcValues(values,currentYoffset){ let rv;//값을 계산해 리턴해줄 변수 const scrollHeight = sectionInfo[currentScene].height; const scrollRatio = currentYoffset / sectionInfo[currentScene].height;//현재씬의 스크롤 비율 if ( values.length === 3 ){ //start ~ end 사이의 애니메이션 실행 const partScrollStart = values[2].start * scrollHeight; const partScrollEnd = values[2].end * scrollHeight; const partScrollHeight = partScrollEnd - partScrollStart; if( currentYoffset >= partScrollStart && currentYoffset <= partScrollEnd ){ rv = (currentYoffset - partScrollStart) / partScrollHeight * (values[1] - values[0] ) + values[0]; }else if(currentYoffset < partScrollStart){ rv = values[0] } else if ( currentYoffset > partScrollEnd ){ rv = values[1]; } }else{ rv = scrollRatio * (values[1] - values[0] ) + values[0]; } return rv; } function playAnimation() { const objs = sectionInfo[currentScene].objs; const values = sectionInfo[currentScene].values; const currentYoffset = yoffset - prevScrollHeight; const scrollHeight = sectionInfo[currentScene].height; const scrollRatio = currentYoffset / scrollHeight; switch(currentScene){ case 0: if ( scrollRatio <= 0.22 ){ objs.MessageA.style.opacity = calcValues(values.messageA_fade_in,currentYoffset); objs.MessageA.style.transform = `translateY(${calcValues(values.messageA_transform_in,currentYoffset)}%)`; } else{ objs.MessageA.style.opacity = calcValues(values.messageA_fade_out,currentYoffset); objs.MessageA.style.transform = `translateY(${calcValues(values.messageA_transform_out,currentYoffset)}%)`; } if(scrollRatio < 0.43){ objs.MessageB.style.opacity = calcValues(values.messageB_fade_in,currentYoffset); objs.MessageB.style.transform = `translateY(${calcValues(values.messageB_transform_in,currentYoffset)}%)`; }else{ objs.MessageB.style.opacity = calcValues(values.messageB_fade_out,currentYoffset); objs.MessageB.style.transform = `translateY(${calcValues(values.messageB_transform_out,currentYoffset)}%)`; } if( scrollRatio < 0.63 ){ objs.MessageC.style.opacity = calcValues(values.messageC_fade_in,currentYoffset); objs.MessageC.style.transform = `translateY(${calcValues(values.messageC_transform_in,currentYoffset)}%)`; }else{ objs.MessageC.style.opacity = calcValues(values.messageC_fade_out,currentYoffset); objs.MessageC.style.transform = `translateY(${calcValues(values.messageC_transform_out,currentYoffset)}%)`; } let imgeSequence = Math.floor(calcValues(sectionInfo[0].values.imgeSequence,currentYoffset)); objs.ctx.drawImage(values.img_obj[imgeSequence],0,0); objs.canvas.style.opacity = calcValues(values.canvas_opacity,currentYoffset); break; case 1: break; case 2: if( scrollRatio <= 0.22 ){ objs.desc_messageA.style.opacity = calcValues(values.desc_messageA_fade_in,currentYoffset); objs.desc_messageA.style.transform = `translate3d(-50%, ${calcValues(values.desc_messageA_transform_in,currentYoffset)}%, 0)`; } else{ objs.desc_messageA.style.opacity = calcValues(values.desc_messageA_fade_out,currentYoffset); objs.desc_messageA.style.transform = `translate3d(-50%, ${calcValues(values.desc_messageA_transform_out,currentYoffset)}%, 0)`; } if ( scrollRatio < 0.42 ){ objs.desc_messageB.style.opacity = calcValues(values.desc_messageB_fade_in,currentYoffset); objs.desc_messageB.style.transform = `translate3d(-50%, ${calcValues(values.desc_messageB_transform_in,currentYoffset)}%, 0)`; }else{ objs.desc_messageB.style.opacity = calcValues(values.desc_messageB_fade_out,currentYoffset); objs.desc_messageB.style.transform = `translate3d(-50%, ${calcValues(values.desc_messageB_transform_out,currentYoffset)}%, 0)`; } if ( scrollRatio < 0.62 ){ objs.desc_messageC.style.opacity = calcValues(values.desc_messageC_fade_in,currentYoffset); objs.desc_messageC.style.transform = `translate3d(-50%, ${calcValues(values.desc_messageC_transform_in,currentYoffset)}%, 0)`; }else{ objs.desc_messageC.style.opacity = calcValues(values.desc_messageC_fade_out,currentYoffset); objs.desc_messageC.style.transform = `translate3d(-50%, ${calcValues(values.desc_messageC_transform_out,currentYoffset)}%, 0)`; } if(scrollRatio < 0.5){ objs.canvas.style.opacity = calcValues(values.canvas_fade_in,currentYoffset); }else{ objs.canvas.style.opacity = calcValues(values.canvas_fade_out,currentYoffset); } let imageSequence2 = Math.floor(calcValues(values.imgeSequence,currentYoffset)); objs.ctx.drawImage(values.img_obj[imageSequence2],0,0); break; case 3: const widthRatio = window.innerWidth / objs.canvas.width; const heightRatio = window.innerHeight / objs.canvas.height; if ( widthRatio <= heightRatio ){ objs.canvas.style.transform = `scale(${heightRatio})`; }else{ objs.canvas.style.transform = `scale(${widthRatio})`; } const newWidth = document.body.offsetWidth / widthRatio//안쪽의 content영역의 width값을 구하기 위한 계산 const newheight = window.innerHeight / heightRatio//안쪽의 content영역의 높이를 구하기 위한 계산 const blockArea = newWidth * 0.15; values.recet1X[0] = (objs.canvas.width - newWidth) / 2; // 애니메이션 시작 지점을 계산 values.recet1X[1] = values.recet1X[0] - blockArea;//애니메이션 끝 지점을 계산 values.recet2X[0] = (values.recet1X[0] + newWidth) - blockArea; // 오른쪽 블록의 애니메이션 시작지점을 계산 values.recet2X[1] = values.recet2X[1] + blockArea//오른쪽 애니메이션의 끝 지점을 지정 if(!values.rectscrollY){ values.rectscrollY = objs.canvas.getBoundingClientRect().top; values.recet1X[2].end = values.rectscrollY / scrollHeight; values.recet2X[2].end = values.rectscrollY / scrollHeight; } objs.ctx.fillRect( parseInt(calcValues(values.recet1X, currentYoffset)), 0, parseInt(blockArea), objs.canvas.height ); objs.ctx.fillRect( parseInt(calcValues(values.recet2X, currentYoffset)), 0, parseInt(blockArea), objs.canvas.height ); break; } } window.addEventListener('resize',setHeight); window.addEventListener('scroll',() => { yoffset = window.pageYOffset; scrollLoop() }); window.addEventListener('load',() => { setHeight(); sectionInfo[0].objs.ctx.drawImage(sectionInfo[0].values.img_obj[0],0,0); sectionInfo[3].objs.ctx.drawImage(sectionInfo[3].values.img_obj[0],0,0); }); })();
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
몇 가지 질문이 있습니다.
1. public GameObject Instantiate(string path, Translate parent = null)에서 Translate 밑에 오류가 뜹니다. 형식 또는 네임스페이스 이름을 찾을 수 없다고 하는데, 왜 이런 건가요? 2. Instantiate의 경우 그냥 곧바로 prefab을 넣어서 사용했는데 왜 Destroy는 tank에 Instantiate를 넣은 뒤 tank를 넣어서 삭제해야 하나요? 3. public GameObject Instantiate(string path, Transform parent = null)에서 parent의 의미는 무엇인가요? 4. GameObject prefab = Load<GameObject>($"Prefabs/{path}");의 작동 원리를 모르겠습니다. 경로를 입력하는 것까진 알겠는데 경로에서 'Tank' 프리팹을 불러오려면 불러올 프리팹의 이름도 입력해 주어야 하는 게 아닌가요? 5. public GameObject Instantiate(string path, Transform parent = null)를 보면 Instantiate의 파라미터가 두 개인데 어째서 Managers.Resource.Instantiate에서 불러올 땐 Managers.Resource.Instantiate("Tank");로 파라미터가 하나만 들어가나요? 제가 모자라서 질문이 너무 많네요ㅠ 매번 친절히 답변해 주셔서 감사합니다.
-
미해결쉽게 따라할 수 있는 안드로이드 앱 개발
Mp3 플레이어와 관련하여....
강의 내용과 같이 코딩하여 프로그램을 하여 완성하였습니다. 그런데 mp.start(); 에서 음악이 흘러 나오지 않습니다. 어찌 된일일까요? 코딩한 자료입니다. mp = MediaPlayer.create(this, R.raw.samp1);mp.setLooping(false);Log.d("test", "mp start....");tv = (TextView)this.findViewById(R.id.hellobutton);Log.d("test", "mp in....1");tv.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { Log.d("test", "mp in....2"); if(!mp.isPlaying()){ mp.start(); Log.d("test", "mp playing......."); tv.setText("Stop"); } else { mp.pause(); tv.setText("Start"); } }});2021-05-31 19:15:02.181 21066-21066/kr.co.soncampus.myapplication17 D/test: mp start.... 2021-05-31 19:15:02.182 21066-21066/kr.co.soncampus.myapplication17 D/test: mp in....1 2021-05-31 19:15:05.211 21066-21066/kr.co.soncampus.myapplication17 D/test: mp in....2 2021-05-31 19:15:05.213 21066-21066/kr.co.soncampus.myapplication17 D/test: mp playing.......
-
미해결실전! Querydsl
JPAQueryFactory 필드 이동 오류 관련 질문입니다
강의를 보고 JPAQueryFactory를 필드로 옮겼을때 nullpointexception이 뜹니다. JPAQueryFactory를 startQuerydsl 메소드 안으로 옮기면 괜찮습니다. 강의 내용에서 필드로 옮기는 것이 가능하다고 하셨는데, 이 경우에는 어떻게 해야하는지 궁금합니다
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원가입 테스트에서 널값오류?가 납니다
똑같이따라하고있었는데 왜그럴까요?ㅠㅠ 따라들어가보니 Value가 null일때 나는 오류라고 써있는것같습니다,,,,, 제가뭔가 빼먹은걸까요?
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
TF_Record 파일 생성 시 오류
교수님 안녕하세요! 그동안 tensorflow object detection api 관련해서 여러가지 오류로 많이 질문했던 학생입니다! 그동안 발생했던 심각한 오류는 해결이 되었습니다. TF_Record 파일을 만드는 과정에서 다음과 같은 오류가 발생하여 여쭤보고 싶어서 쪽지 남기게 되었습니다! 해당 annotation 파일의 xmls 폴더 안에 들어가보면 아래 사진과 같이 Bengal_111.xml 파일이 없긴 하더라구요. 처음 다운로드 받았을 때 부터 없었던 것 같은데... 이 부분은 어떻게 해결해야 될 지 모르겠습니다... 감사합니다!
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
Axios 헤더 전달관련 질문입니다.
page컴포넌트에서 다음과 같이 작성을 해서 axios요청을 할 때마다 Authorization에 access_token을 전달할려고 하는데요, 그런데 LoginForm이라는 컴포넌트가 에서 axios요청을 하게되면 Header에 전달이 되지 않는 문제가 생기는 것 같습니다. const LoginForm = () => { const { register, handleSubmit } = useForm<Form>(); const dispatch = useDispatch(); const onSubmit: SubmitHandler<Form> = async (data) => { const res: AxiosResponse<LoginResponseType> = await loginAPI(data); if (res.status === 200) { const { accessToken, refreshToken } = res.data.tokens; setToken(accessToken, refreshToken); const userResponse: AxiosResponse<MeResponseType> = await meAPI(); const userInfo = userResponse.data.user; dispatch(userActions.setLoggedUser(userInfo)); } if (res.status === 400) { toastr.error("인증 오류", "아이디나 비밀번호를 확인해보세요"); } if (res.status === 500) { toastr.error("인증 오류", "아이디나 비밀번호를 확인해보세요"); } }; return ( <Container> <h1>로그인</h1> <form> <input type="text" {...register("email")} placeholder="이메일" /> <input type="password" {...register("password")} placeholder="비밀번호" /> <button onClick={handleSubmit(onSubmit)}>로그인</button> </form> <div className="go-register"> 회원이 아니신가요? <span>회원가입</span> </div> </Container> ); }; export default LoginForm; LoginForm 컴포넌트에서는 다음과 같이 작동하구요, me 정보를 가져오는 API입니다. 제가 SSR에서 쿠키를 다루는 방법을 아직 이해하지 못한 것일까요...
-
해결됨비개발자를 위한 RPA 강의 (UiPath 입문편)
Type into 에서 영문으로 입력하면 한글로 자꾸 변환되는데 영문으로 입력하려면 어떻게 해야하나요??
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 제목내용과 본문내용 같습니다.