묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Axure RP 9,10 - 서비스 기획자를 위한 최적의 프로토타이핑 툴
클라우드 관련 질문
안녕하세요 데이먼님! 유익한 강의 재밌게 잘 듣고 있습니다. 1) xeicon과 iphone X Lite rp파일 수업자료를 사용한 rp 파일을 클라우드에 업로드 한 후, 다른 기기에서도 수업자료를 다운받은 후 클라우드에서 해당 rp파일을 다운로드 받아 열었는데 xeicon들이 네모 박스로 뜹니다. ㅠㅠ 무엇이 문제일까요? 2) 그리고, 액슈어 작업 시 프리뷰할 땐 하단에 잘 고정되어있던 것이, 클라우드 업로드 파일에서 프리뷰하면 화면에서 살짝 떠있게 나옵니다. 제가 뭘 잘못 설정한걸까요? (이미지 첨부합니다)
-
해결됨(UPDATED) Python을 이용한 개인화 추천시스템 | 추천알고리즘 | 추천인공지능
화면이 안나오는데 정상인가요?
안녕하세요 아래 캡처처럼 화면이 안나오는데 제가 원래 이런건지 궁금합니다.
-
미해결자바스크립트 : 기초부터 실전까지 올인원
여기서 왜 map함수가 실행이 안될까요??
const getLatestnews= async()=>{ let url=new URL( `https://api.newscatcherapi.com/v2/latest_headlines?countries=kr&topic=business&page_size=10`) let header=new Headers({'x-api-key':'d8h9038rFoacHi1tlRVr5p0r0_F2AF2PHOcaR4mb24Y'}) let response= await fetch(url,{headers:header}) let data=await response.json() news=data.articles render() } getLatestnews() let render=()=>{ let newsHtml=""; newsHtml=news.map(news=>{ return `<div class="row"> <div class="col-lg-4"> <img class="newsimg" src="https://static01.nyt.com/images/2022/06/14/world/15buffalo-shooting-header-copy/merlin_206877762_554fdf7d-d257-41e6-a289-b60f54708738-jumbo.jpg?quality=75&auto=webp"> </div> <div class="col-lg-6" > <h2>경찰이 출동을 하였다</h2> <p> 무장강도가 침입을 하여 경찰이 출동을 하였다 </p> <div> 2021-05-16일 </div> </div> </div>` }) document.getElementById("newscontainer").innerHtml=newsHtml
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
DB없이 데이터 저장이 어떻게 가능한지 궁금합니다.
ㄱ학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.안1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용] 강사님, 안녕하세요. 강의 정말 잘 듣고 있습니다. 스프링 서버만 구현하여서 데이터가 저장되는데, 이것이 어떻게 가능한지 궁금합니다. 답변 부탁드립니다. 감사합니다.
-
미해결Axure RP 9,10 - 서비스 기획자를 위한 최적의 프로토타이핑 툴
텍스트 링크 질문
안녕하세요 강의 정말 잘듣고 있습니다 텍스트 링크 인터랙션을 삭제하면, 인터랙션 넣기 전으로 돌아가지 않고 글자에 스타일이 적용된채로 남아있는데요(파란글씨에 볼드) 원래대로 돌리려면 글씨 스타일에서 일일히 다시 검정 폰트와 볼드 없는 상태로 바꾸어주어야 하나요? 제가 인터랙션을 잘못 제거해서 그런것인지, 쉽게 원래대로 돌릴 수 있는 방법은 없는지 궁금합니다
-
해결됨파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
환경변수를 통한 API HOST 지정 후 생기는 에러 관련 질문드립니다.
강사님 안녕하세요.. 좋은 강의를 제공해주심에 감사드립니다. 다름이 아니라, 섹션 11의 환경변수를 통한 API HOST 지정 강의를 따라하며 기존 localhost:8000 의 주소들을 .env 파일을 만들어 REACT_APP_API_HOST="http://localhost:8000" 를 설정해주고 api.js , Constants.js 로 빼내어서 지정하고 개발 서버를 다시 실행했는데요.. 그 뒤로 이렇게 웹 화면이 뜨지 않는 상황이 발생했습니다. (네트워크 탭에서 api 들이 200 상태로 뜨는데 크기가 0B로 나타나는 것을 보게 되었습니다.) 어떤 점이 오류일 지 ... 고쳐야 하는 부분의 감이 잘 안잡히는 것 같습니다. 답변주시면 대단히 감사하겠습니다...!
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
난이도 질문
안녕하세요. 이 강의들 모두 수강해서 소화하면 백준 실버 ~ 골드 하위 문제는 충분히 풀 수 있는정도의 실력이 될까요?
-
미해결실무에서 바로 쓰는 영어 이메일
강의자료 요청드립니다.
강의 감사합니다. 강의 자료 공유 부탁드려요 lifelongchris@gmail.com
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
서버 재기동 시 데이터 출력에 관해 질문 있습니다.
제가 테스트로 등록한 데이터는 재기동시 날아가는데 itemA와 itemB는 어떻게 그대로 출력되는지 궁금합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
스프링부트와 mockito 연동 문의
안녕하세요 과정과 관련이 많진 않지만, 검색으로 해결책을 찾지 못해서 문의 드립니다ㅠ spring boot 2.4.13을 사용 중인데, mockito의 static mock을 사용하기 위해서 mockito-inline을 추가하면 잘 작동하던 @SpringBootTest에서 아래와 같은 오류가 발생합니다. gradle을 사용하고 , 아래와 같이 추가하였습니다. testImplementation 'org.mockito:mockito-inline:3.10.0' 아래는 에러 코드 입니다. java.util.ServiceConfigurationError: com.sun.tools.attach.spi.AttachProvider: Provider sun.tools.attach.WindowsAttachProvider could not be instantiated 2022/05/16 10:02:28.565 main WARN o.s.t.c.TestContextManager.logException(550) :: Caught exception while invoking 'beforeTestMethod' callback on TestExecutionListener [org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@10cf09e8] for test method [void com.abc.test()] and test instance [abc.test@326451bf] java.lang.IllegalStateException: Could not initialize plugin: interface org.mockito.plugins.MockMaker (alternate: null) at org.mockito.internal.configuration.plugins.PluginLoader$1.invoke(PluginLoader.java:84) at com.sun.proxy.$Proxy302.getHandler(Unknown Source) at org.mockito.internal.util.MockUtil.isMock(MockUtil.java:110) at org.mockito.internal.util.DefaultMockingDetails.isMock(DefaultMockingDetails.java:32) at org.springframework.boot.test.mock.mockito.MockReset.get(MockReset.java:106) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:82) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:70) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.beforeTestMethod(ResetMocksTestExecutionListener.java:57) at org.springframework.test.context.TestContextManager.beforeTestMethod(TestContextManager.java:293) at org.springframework.test.context.junit.jupiter.SpringExtension.beforeEach(SpringExtension.java:174) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeEachCallbacks$2(TestMethodTestDescriptor.java:163) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeMethodsOrCallbacksUntilExceptionOccurs$6(TestMethodTestDescriptor.java:199) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeMethodsOrCallbacksUntilExceptionOccurs(TestMethodTestDescriptor.java:199) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeEachCallbacks(TestMethodTestDescriptor.java:162) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:129) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:66) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) at java.util.ArrayList.forEach(ArrayList.java:1257) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) at java.util.ArrayList.forEach(ArrayList.java:1257) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86) at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86) at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:53) at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:71) at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38) at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54) Caused by: java.lang.IllegalStateException: Failed to load interface org.mockito.plugins.MockMaker implementation declared in sun.misc.CompoundEnumeration@3dd4d6e6 at org.mockito.internal.configuration.plugins.PluginInitializer.loadImpl(PluginInitializer.java:57) at org.mockito.internal.configuration.plugins.PluginLoader.loadPlugin(PluginLoader.java:65) at org.mockito.internal.configuration.plugins.PluginLoader.loadPlugin(PluginLoader.java:50) at org.mockito.internal.configuration.plugins.PluginRegistry.<init>(PluginRegistry.java:26) at org.mockito.internal.configuration.plugins.Plugins.<clinit>(Plugins.java:20) at org.mockito.internal.util.MockUtil.<clinit>(MockUtil.java:28) ... 60 common frames omitted Caused by: java.lang.reflect.InvocationTargetException: null at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.mockito.internal.configuration.plugins.PluginInitializer.loadImpl(PluginInitializer.java:52) ... 65 common frames omitted Caused by: org.mockito.exceptions.base.MockitoInitializationException: Could not initialize inline Byte Buddy mock maker. It appears as if your JDK does not supply a working agent attachment mechanism. Java : 1.8 JVM vendor name : Azul Systems, Inc. JVM vendor version : 25.212-b04 JVM name : OpenJDK 64-Bit Server VM JVM version : 1.8.0_212-b04 JVM info : mixed mode OS name : Windows 10 OS version : 10.0 at org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.<init>(InlineDelegateByteBuddyMockMaker.java:246) at org.mockito.internal.creation.bytebuddy.InlineByteBuddyMockMaker.<init>(InlineByteBuddyMockMaker.java:25) ... 70 common frames omitted Caused by: java.lang.IllegalStateException: Error during attachment using: net.bytebuddy.agent.ByteBuddyAgent$AttachmentProvider$Compound@49df0145 at net.bytebuddy.agent.ByteBuddyAgent.install(ByteBuddyAgent.java:613) at net.bytebuddy.agent.ByteBuddyAgent.install(ByteBuddyAgent.java:586) at net.bytebuddy.agent.ByteBuddyAgent.install(ByteBuddyAgent.java:538) at net.bytebuddy.agent.ByteBuddyAgent.install(ByteBuddyAgent.java:515) at org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.<clinit>(InlineDelegateByteBuddyMockMaker.java:117) ... 71 common frames omitted Caused by: java.lang.reflect.InvocationTargetException: null at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at net.bytebuddy.agent.Attacher.install(Attacher.java:106) at net.bytebuddy.agent.ByteBuddyAgent.install(ByteBuddyAgent.java:608) ... 75 common frames omitted Caused by: com.sun.tools.attach.AttachNotSupportedException: no providers installed at com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:203) ... 81 common frames omitted
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
@ControllerAdvice 적용시에 404 에러의 경우
1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요. 강의 내용중에 궁금한게 있어서 질문드립니다. @ControllerAdvice 적용시에 다른 Exception은 잘 적용되는데 URL을 잘 못 입력해서 발생하는 404(NoHandlerFoundException)의 경우에는 처리가 안되어서 구글링을 해서 아래와 같이 적용 처리 하였습니다. 이때 @EnableWebMvc를 넣지 않으면 처리가 안 되는데 @EnableWebMvc가 왜 필요한건지 궁금해서 질문 남깁니다. * 저의 가설은 - 스프링부트가 부팅될때 DispatherServlet이 필요한 설정들을 자동구성하는데 이때 자동구성된 설정에서 수동구성 설정이 추가되면서(=> setThrowExceptionIfNoHandlerFound(true)) 다시 설정이 적용되어야 하고 그때 @EnableWebMvc가 그 역할을 한다. @Configuration@RequiredArgsConstructor@EnableWebMvcpublic class WebConfig implements WebMvcConfigurer { private final AccessInterceptor accessInterceptor; @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(accessInterceptor) .order(1) .addPathPatterns("/**") .excludePathPatterns("/error"); } /** * 적절한 URL을 못 찾으면(Not Found Handler) Exception 으로 던진다. * + EnableWebMvc * @return */ @Bean DispatcherServlet dispatcherServlet() { DispatcherServlet dispatcherServlet = new DispatcherServlet(); dispatcherServlet.setThrowExceptionIfNoHandlerFound(true); return dispatcherServlet; }}
-
미해결
react-native 로 클라이언트 프로그램을 개발하는데
서버프로그램에 접속하여 디바이스들의 상태정보를 일정주기 간격으로 실시간으로 받아서 리스트에 표시하고, 디바이스 제어 명령어를 보내는 클라이언트 프로그램을 개발하여 합니다. 서버 프로그램은 node.js 로 개발 중이며 서버와의 접속은 wifi 또는 모바일 데이터 통신을 하는데 , 이런 경우 서버와 통신은 어떻게 개발하면 좋을까요? 웹소켓 또는 소켓 통신 중 어떤것이 적합한지 모르겠네요.
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
Table Calendar 소개 강의에서 질문있습니다.
1번 질문. 7:46에 말씀하시는 "selectedDay값을 들고 있을게요."가 어떤 뜻인지 풀어서 알려주실 수 있나요? 2번 질문. 어떤 경우에 state가 들고 있는건지, 어떤 경우에 class Calendar extends StatefulWidget{ 아랫줄에 넣는건지, 어떻게 구분하는 건가요?
-
해결됨실제 이력서 사례로 알아보는 [합격하는 이력서] 작성 가이드
세미나 관련 문의
안녕하세요 수강평 남기고 오늘 저녁에 진행되는 세미나 등록하였는데... 오류인지, 번호를 잘못적은건지 아무런 안내를 못받았습니다!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
맥 os에서 쓰시고 있는 터미널 이름은 무엇인가요? 한 줄 씩 정렬도 되고 파일크기도 보여줘서 신기하네요
맥 os에서 쓰시고 있는 터미널 이름은 무엇인가요? 한 줄 씩 정렬도 되고 파일크기도 보여줘서 신기하네요
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
x - randomIndex * 2하면 배열 범위 벗어날 줄 알았는데 잘 작동해서 당황스러워요
가로로 한 번도 가지 않았을 경우 = 랜덤으로 뽑을 수 있는 값 = 0 가로로 한 번 이동했을 경우 = 랜덤으로 뽑을 수 있는 값 = 1 x - 1 * 2 = x - 2 가로로 두 번 이동했을 경우 = 랜덤으로 뽑을 수 있는 값 = 2 x - 2 * 2 = x- 4 이렇게 계산해서 인덱스 x가 마이너스를 가질 경우도 있을 거 같은데 잘 작동하는 거 보면 ... 제 생각에 오류가 있나요?
-
미해결Do It! 장고+부트스트랩: 파이썬 웹개발의 정석
post_set관련해서 질문입니다.
강의 9:05 즈음에 '저번에 배운 post_set' 라고 언급하셨는데 언제 나온 무슨 개념인지 잘 모르겠습니다. 혹시 자세하게 설명해주실수 있으신가요
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
static 미들웨어에 대한 질문입니다
노드버드를 만들다 궁금증이 생겨 질문합니다 저희가 static을 배울때 분명 지정된 폴더의 정적인 파일들을 브라우저에서 접근할 수 있도록 하는 기능이 있습니다 그리고 파일이 없으면 next를 호출하지만 파일이 있으면 응답으로 파일을 보내고 다음 미들웨어를 실행하지 않습니다 제 궁금증은 app.js 파일의 app.use(express.static(경로는'public')); 이 코드에서 public폴더에는 main.css가 있고 그렇다면 css를 보내고 다음 미들웨어를 실행하지 않는 것이 맞지 않나요? 네트워크로 찾아보니 로그인 전에는 views폴더의 layout.html이 실행되던데 이유가 궁금합니다. 또 로그인 이후에도 main.css가 네트워크에 있던데 왜 static 아래에 있는 미들웨어가 실행되는 것인가요? 경로가 uploads폴더인 경우도 마찬가지로 왜 요청경로에 파일이 있으면서도 왜 다음 미들웨어가 실행되는 건가요?
-
미해결스프링부트 시큐리티 & JWT 강의
React, iOS, Android 등 Spring boot 가 API 서버일 경우 OAuth2 연동 방법
안녕하세요. 강의중 궁금한 점이 있어서 질문 남깁니다. 강의해주신 내용을 보면 Spring boot에서 Web page까지 제공하는 방식으로 OAuth2.0 을 연동하고 있습니다. 그런데 만약 Spring security 서버(백엔드)가 Web page가 아닌 Mobile app과 연동하는 REST API 서버 일경우는 어떻게 하나요? 단순히 프론트엔드에서 호스트서버:8080/oauth2/authorization/google 를 호출하게 하는건 안될것 같습니다. 강사님 github 중 https://github.com/codingspecialist/Springboot-JWT-React-OAuth2.0-Eazy 도 한번 봤는데요. 제가 이해한게 맞다면 프론트(React)에서 인증, 인가를 받아 사용자 정보를 받아오고, 백엔드(Spring boot)에서는 단순히 /join 을 통해 프론트에서 넘겨준 User 데이터를 password와 함께 저장하는것 같습니다. 이 때, JWT 토큰을 발행해서 프론트에 넘겨주는것 같구요. 그런데 만약에 프론트엔드에서 앱을 삭제했다 다시 설치하거나 password를 분실했을 경우는 어떻게 해야 하나요? 강의와 같이 웹서비스의 경우에는 로그인이 풀리더라도 다시 Google 등의 소셜 로그인만 하면 로그인이 되지만 모바일앱과 연동할 경우, github에 올려주신 Client Credentials 방식을 이용한 연동에서는 방법이 떠오르지 않습니다. 이미 강의나 코드에 설명에 있는제 제 이해가 부족한건지, 다른 방법이 혹시 있는지 궁금합니다.
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
메모리 누수문제.
안녕하세요. 루키스님^^ 루키스님 강좌를 토대로 열심히 게임개발을 공부하고 있는 직장인입니다. 다름이 아니고 개발 후 메모리 점유율이 높아지는 현상이 생겼는데요. 루키스님의 최종 프로젝트를 이용해 오라클 클라우드 서버 인스턴스에서 구동해보고 관찰을 해보았습니다. 메모리 점유상태가 50%를 지속적으로 잘 유지하는 것같다가도(몬스터 500마리) 이후에 몬스터를 다수 잡고난 뒤에 더이상 게임 접속없이 몇 일 결과를 지켜보니 메모리 점유율이 점차 높아지는 현상이 발생하였습니다. 플레이어의 접속이 없어도 메모리 점유율이 올라갑니당ㅠㅠ 몬스터 리젠과 관련된 부분으로 추측해서 열심히 뜯어봤는데 도무지 어디서 메모리 점유율이 계속 올라가는지 감을 못잡겠습니다. ㅠㅠ 어느 부분을 먼저 살펴보면 좋을지 몰라 힘트라도 얻고자 이렇게 글을 남기게 되었습니다.ㅠㅠ 그리고 유투브 구독신청과 좋아요 매번 누르고 있어용~ ㅎㅎ 영상 많이 올려주세용~