묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결선형대수학개론
1.8 onto 질문입니다.
onto의 개념은 알았습니다 그런데 example2에서 R4->R3 변환시 R3에 있는 임의의 벡터 b에 대해서 T(x) = b 를 만족하는 R4스페이스의 x 가 최소한 하나이상 존재하면 onto라는게 이해가 되지 않습니다. R3에 있는 임의의 벡터 하나에 T(x) = b 를 만족하는 R4스페이스의 x 가 최소한 하나이상 존재한다 하여도 R3에 있는 어떤 벡터에는 T(x) = b가 되지 않는 경우도 있을수 있는거 아닌가요? 예를 들면 onto가 되지 않는 예시를 설명하신 1.8 피피티 8페이지의 그림처럼요. 이 그림이 Rm에 있는 특정 벡터들에는 T(x) = b 를 만족하는 Rn스페이스의 x 가 최소한 하나이상 존재하지만, Rm에 있는 어떤 벡터들에는 T(x) = b가 되지 않아서 not onto인 상황 아닌가요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
reinterpret_cast질문이있습니다.
template<typename T> BufferWriter& BufferWriter::operator<<(const T& src) { *reinterpret_cast<T*>(&_buffer[_pos]) = src; _pos += sizeof(T); return *this; } reinterpret_cast c++강의에서 아주 강력한 변환 포인터랑 정수사이도 변환이 가능하고.. 다 가능한 변환 느낌이었는데 앞에*를 붙여주는 이유가 궁금합니다. *reinterpret_cast<T*>(&_buffer[_pos]) = src; =========================== T*로 변환하는데 src가 참조라서 *를 한번 더 붙여주신건가요?
-
미해결스프링 시큐리티
Controller에 Authentication타입 파라미터를 주입하는 HandlerMethodArgumentResolver의 구현체가 무엇인가요?
안녕하세요 강의 잘 보고 있습니다. 다름이 아니라 제가 Spring Security로 예제를 만들어보고 있었습니다. 그런데 익명 사용자인 경우 컨트롤러의 Authentication 파라미터로 주입되지 않더라고요. @GetMapping("/authentication")@ResponseBodypublic String authenticationTest(Authentication authentication) 예를 들면 컨트롤러에 이런 함수를 만들면 일반적인 인증 사용자인 경우에는 Authentication 객체가 주입되지만 익명 사용자인 경우에는 Authentication객체가 주입되지 않았습니다. 이유를 찾아보니 표준 서블릿 API 스펙을 따르기 위해서라고 합니다. 다른 응용 프로그램이 spring security의 구현에 의지하지 않도록 하기 위해서고 굳이 익명 사용자인 경우에도Authentication 객체를 주입받고 싶으면 spring security의 getContext().getAuthentication() api를 사용하면 된다고 합니다. 그래서 이유에 대해서는 제가 이렇게 찾아서 궁금한 부분은 아닌데요. https://github.com/spring-projects/spring-security/issues/4011 이 링크에 가보시면 내부적으로 왜 Authentication 객체가 익명 사용자인 경우 컨트롤러에 주입이 안 되는지 나온 부분이 있습니다. SecurityContextHolderAwareRequestWrapper이 객체에 아래와 같은 부분이 있다는 것입니다. private Authentication getAuthentication() { Authentication auth = SecurityContextHolder.getContext().getAuthentication(); if (!trustResolver.isAnonymous(auth)) { return auth; } return null; } SecurityContextHolderAwareRequestWrapper 객체는 HttpServletRequest가 RequestCacheAwareFilter를 통과하면서 재구성된 request 객체라고 합니다. 그래서 SecurityContextHolderAwareRequestWrapper객체에서 getAuthentication()라는 함수를 호출해서 Controller의 Authentication 타입 파라미터에 주입해주는 Security전용 HandlerMethodArgumentResolver가 있을 것 같은데, 제가 아무리 찾아봐도 정확히 이런 Resolver가 있다는 글을 못 찾겠더라고요.혹시 아신다면 알려주시면 감사하겠습니다.
-
미해결
c로 글자수세기 프로그램을 만드려는데 출력이 안됩니다.
#include <stdio.h> int main(void) { int c, total_byte = 0, line_count = 0; while ((c = getchar()) != EOF) { total_byte++; if (c == '\n') ++line_count; } printf("파일 크기 : %d 바이트\n" , total_byte); printf("파일 줄 수 : %d 행\n" , line_count); return 0; } 소스코드는 이렇게 되어 있구요 실행하면 출력 결과가 안 나오고 그냥 빈화면만 뜨네요 제 생각엔 while문이 무한루프에 빠져서(?) 그런 것 같은데 어떻게 해결해야 할지를 잘 모르겠습니다
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
궁금해서 적어봅니다.
1. C#에도 순수가상함수 개념이 있나요? 아직까지는 못본거 같아서요. 2. 9:40부터 나오는 Base.(가상함수) 는 어느정도의 부모계층 까지 올라가나요? 최상위 부모계층의 메소드를 쓰게되나요? 3. 자식 클래스에서 쓰이는 메소드가 부모 클래스에서 쓰이는 메소드에 몇가지 추가적인 기능만 붙었다고 가정했을때는 어떤 방식이 효율적일까요 첫번째. 자식클래스 메소드에 부모클래스의 메소드 기능을 복붙한 후에 뒤에 몇가지 기능을 추가하는 방법 아니면 두번째. 부모클래스의 메소드에 sealed를 붙여 자식클래스들이 공용으로 사용하는 기능만 남기고 자식클래스에서 sealed로 묶인 부모클래스의 메소드를 호출한 뒤 자식클래스만의 추가적인 메소드를 만들어 호출하는 방법 이렇게 두가지 생각중인데 다른 방법이 있는지도 궁금합니다.
-
해결됨코딩은 실전이다! - Git알못을 위한 깃린이코스(Git, Github 실습위주)
git clone 명령어 관련 질문 드립니다.
강사님 안녕하세요. git clone 명령어 관련해서 질문드립니다. 만약 리포지토리에 특정 파일의 변경사항이 저장된 커밋이 3가지 있는 상황이라고 가정하면, git clone을 실행했을 때, 가장 마지막으로 push된 커밋 상태의 파일이 로컬로 전송되는 것인가요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
200, 201, 302상태코드에 대해 질문 있습니다.
졸업프로젝트 진행 중 상태코드에 대한 질문이 있어 남기게 되었습니다. 깃허브가 작동하는 방식을 살펴보았는데, 이슈의 댓글 생성시에 201대신 200코드를 반환하는 것으로 파악했습니다. (https://developer.mozilla.org/ko/docs/Web/API/Location) 200과 201코드의 차이점은 location응답헤더의 유무인 것으로 알고 있는데, 댓글 생성시에는 새로운 자원(댓글)이 만들어지지만 생성된 이후에 페이지 자체는 변하지 않기 때문에 location이 없는 200 상태코드가 오는 것으로 생각했습니다. 이슈가 생성될 때에는 이슈페이지로 이동하게 되지만 201대신 302를 통해서 리다이렉트하는 방식을 사용하고 있더군요. (네이버와 티스토리도 분석해본 결과)결과적으로 페이지를 이동하든, 이동하지 않든 생성시에 201을 사용하는 곳은 아무데도 없었습니다. 이런 사이트들은 어떤 규칙을 지키는지, 201 상태코드가 실제로 사용되는 부분은 어떤 곳인지 궁금합니다!! 감사합니다!!
-
미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
상속
class unit: def __init__(self, name, hp, speed): self.name = name self.hp = hp self.speed = speed print("{} unit creation complete".format(name)) class AttackUnit(unit): def __init__(self, name, hp, speed, damage): unit.__init__(self, name, hp, speed) self.damage = damage print ("{} 생성 완료.".format(self.name)) print ("HP {0}, Damage {1}".format(self.hp, self.damage)) unit 클래스에서 상속 받을때 __init__(self, name, hp, speed, damage):을 다시 다 적는 이유가 뭔가요? 밑에 줄에 unit.__init__(self, name, hp, speed) 이 있으면 굳이 적을 필요 없다고 생각했는데 지우니까 오류가 뜨네요 왜 그런지 궁금합니다.
-
해결됨MERN STACK 커뮤니티 : 시작부터 배포까지 알려주는 React
s3 , post.js 에서 설정 까지 다 해줬는데 에러가 나서 질문드립니다
판다님 강의처럼 s3 설정 및 post.js에서 경로설정 까지 다 해줬는데 에러가 뜨네여 혹시나 뭔가 잘 못 적었나 싶어서 몇번이나 강의를 보면서 체크 해봤는데 다른 부분은 없었습니다 키부분은 질문 작성한다고 잠시 지웠습니다
-
미해결[유니티6] 따라하면서 배우는 하이퍼캐주얼게임 시리즈 01
PinSpawner 스크립트를 추가하는 과정에서 오류가 발생합니다.
PinSpawner 스크립트가 Hierarchy에 있는 PinSpawner에 추가가 안됩니다. 몇 번이고 확인하고 똑같이 따라쳤는데도 오류가 발생합니다.;
-
미해결스프링 시큐리티
마지막에 AuthenticationManager에게 다시 인증처리를 맡기는 이유가 무엇인가요?
remember-me 토큰을 비교해서 user 계정이 존재하면 그것으로 인증처리가 된 것으로 생각되는데 마지막에 RememberMeAuthenticationToken을 AuthenticationManager에게 넘겨서 인증처리를 또 하는 이유가 무엇인가요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
포트에 관하여
안녕하세요. 강의 정말 잘 듣고있습니다. 강의를 듣다 모르는 것이 생겨 질문을 남기게 되었습니다 ㅎㅎ. ppt 37p에서 클라이언트가 서버한테 요청을 할 때 예를 들어 게임같은 경우는 8090포트를 사용한다 되어있는데, 해당 포트는 랜덤으로 정해지는 건가요? 그리고 서버의 11220포트는 서버 쪽에서 정한 포트 번호인건가요??
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
maxHeight 질문
Upload를 여러개해보니 card들이 이상하게 보여서 maxHeight를 낮춰보니 화면에 제대로 나왔습니다. 이런 px단위 문제는 어떻게 하면 되는지 궁금합니다.!
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
제대로 이해한것인지 궁금합니다.
5분대부터 헷갈리고 있습니다. 59번째 줄에 killKnight(knight); 가 남아있어서 그런가? 싶은 생각이 듭니다. 1. 59번째 줄 이후로 knight.hp값이 0이 되있는 상태인데 쓰여진 코드를 보면 knight2.hp는 처음부터 0을 참조하는것이 아닌가 싶어서요 62번째 줄의 knight.hp=0을 쓰신 이유를 모르겠습니다 위 생각과는 상관없이 설명만을 토대로 정리할 겸 써보자면 2. 5분대에 있는 61번째 쓴 줄이 C++ 에서는 Knight& knight2 = knight 라고 표현될수 있는 건가요? 3. new를 써서 메모리 할당을 했는데 해제는 안하나요?
-
해결됨[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
cookie parser 질문드립니다(소스코드 2차 수정했습니다)
강사님 안녕하세요 소스코드를 수정해서 다시 질문드리고 싶습니다(app.js 를 수정했습니다) 아래는 app.js입니다 /** * ch6.1 */ const express = require('express'); const path = require('path'); const { nextTick } = require('process'); const morgan = require('morgan'); const cookieParser = require('cookie-parser'); const app = express(); app.set('port', process.env.PORT || 3000); //'port' 라는 속성에 포트번호 3000번을 설정합니다. //서버의 포트를 3000번으로 지정하는 것 같습니다. // 이 속성은 아래 19행처럼 가져올 수 있습니다 //app.use(morgan('dev')); app.use(cookieParser()); app.get('/login', (req, res, next) => { if(req.url.startsWith('/login')){ req.cookies // 쿠키 객체화 res.cookie('name', encodeURIComponent(name2),{ expires: new Date(), httpOnly: true, path: '/', }) } else if(true) { next('route'); } else{ next(); } }, (req, res, next)=>{ console.log('실행되지 않음1') next(); },(req,res,next)=>{ console.log('실행되지 않음2') next(); }); app.get('/', (req, res) => { // res.send('Hello, Express'); console.log('실행되지 않음3') res.sendFile(path.join(__dirname, '/cookie2.html')); }); app.use((err,req,res,next)=>{ console.log(err); res.status(200).send('에러났지롱') }) app.listen(3000, () => { console.log(app.get('port'), '번 포트에서 대기 중'); }); 아래는 cookie2.html 입니다 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>쿠키&세션 이해하기</title> </head> <body> <form action="/"> <input id="name" name="name2" placeholder="이름을 입력하세요" /> <button id="login">로그인</button> </form> </body> </html> 이렇게 로그인을 해봤습니다 그런데 name2는 이렇게 cookie2.html에 있는데, 혹시 어디가 문제인지 도와주시면 감사하겠습니다 도저히 모르겠습니다
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
이미지 출력 에러가 발생합니다
이미지 출력하는 부분에서 에러가 발생합니다. 에러 내용은 이러합니다. 파일 경로에 이미지가 uuid형식으로 저장되는 것은 확인 하였습니다. 어떻게 해결해야하나요 ? 2022-04-28 18:33:16.708 ERROR 18184 --- [nio-8080-exec-4] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception java.io.FileNotFoundException: URL [file:C:/Users/gyfls/Desktop/backend/study/file/${imageFile.getStoreFileName()}] cannot be resolved in the file system for checking its content length at org.springframework.core.io.AbstractFileResolvingResource.contentLength(AbstractFileResolvingResource.java:240) ~[spring-core-5.3.19.jar:5.3.19] at org.springframework.http.converter.ResourceHttpMessageConverter.getContentLength(ResourceHttpMessageConverter.java:121) ~[spring-web-5.3.19.jar:5.3.19] at org.springframework.http.converter.ResourceHttpMessageConverter.getContentLength(ResourceHttpMessageConverter.java:45) ~[spring-web-5.3.19.jar:5.3.19] at org.springframework.http.converter.AbstractHttpMessageConverter.addDefaultHeaders(AbstractHttpMessageConverter.java:260) ~[spring-web-5.3.19.jar:5.3.19] at org.springframework.http.converter.AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:211) ~[spring-web-5.3.19.jar:5.3.19] at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:293) ~[spring-webmvc-5.3.19.jar:5.3.19] at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:183) ~[spring-webmvc-5.3.19.jar:5.3.19] at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78) ~[spring-web-5.3.19.jar:5.3.19] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:135) ~[spring-webmvc-5.3.19.jar:5.3.19] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.19.jar:5.3.19] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.19.jar:5.3.19] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.19.jar:5.3.19] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067) ~[spring-webmvc-5.3.19.jar:5.3.19] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) ~[spring-webmvc-5.3.19.jar:5.3.19] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.19.jar:5.3.19] at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) ~[spring-webmvc-5.3.19.jar:5.3.19] at javax.servlet.http.HttpServlet.service(HttpServlet.java:655) ~[tomcat-embed-core-9.0.62.jar:4.0.FR] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.19.jar:5.3.19] at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) ~[tomcat-embed-core-9.0.62.jar:4.0.FR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.62.jar:9.0.62] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.19.jar:5.3.19] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.19.jar:5.3.19] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.19.jar:5.3.19] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.19.jar:5.3.19] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.19.jar:5.3.19] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.19.jar:5.3.19] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
handleFilters 질문 ㅠㅠ
newFilters[category] = filters 여기부분이 왜이렇게 되나요? 이 줄이 해당 카테고리에 filters값을 넣는 의미가아닌가요? Filters의 init값이 { continents = [], price=[] } 인데 newFilters.category = filters 이런식으로 대야하는거 아닌가요?? 그리고 setSkip(0)은 왜해주는건가요?? body에 skip:0은 useState Skip이랑 상관없지안나요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
한글 깨짐 현상
안녕하세요 Q&A 게시판에 있는 한글 깨짐 현상에 대한 모든 질문&답변을 읽은 후 실행해보았고 구글링하여 해결하려 했으나 되지 않아 질문 드립니다! 질문 강의: HelloServlet (18m) 질문 내용: 해당 강의를 따라하면서 인터넷에 http://localhost:8080/hello?username=신 을 검색했을 때 인터넷과 콘솔에서 모두 한글이 깨져 나옵니다. https://www.lesstif.com/java/intellij-file-console-encoding-121012310.html https://goddaehee.tistory.com/248 https://knoow.tistory.com/195 위 방법 모두 해보았습니다. 다만 아래 방법을 따라할 때 약간 이상한 점이 있어 알려드립니다. ---------------------------- 1. vmoptions 파일 수정 Google 검색을 해보면 대부분이 이 방법을 제시한다.Intellij가 설치된 경로에 bin 폴더로 가면 idea.exe.vmoptions와 idea64.exe.vmoptions 이렇게 두 개가 있는데, 본인의 환경에 맞게(64bit인 경우 idea64) 파일을 수정하면 된다고 한다. (사실 난 두 파일 전부 다 수정함) 실제 해당 파일의 맨 아랫줄에-Dfile.encoding=UTF-8을 추가 해봤으나, 바뀌는 건 없었다 출처: https://knoow.tistory.com/195 [ICT Story] ---------------------------- 위의 방법을 할 때 저는 idea64.exe.vmoptions 만 존재하고 idea.exe.vmoptions는 폴더에 없었습니다. 또한 idea64.exe.vmoptions에 -Dfile.encoding=UTF-8를 추가하려고 파일을 열었을 때 -Xms128m-Xmx750m-XX:ReservedCodeCacheSize=240m-XX:+UseConcMarkSweepGC-XX:SoftRefLRUPolicyMSPerMB=50-ea-XX:CICompilerCount=2-Dsun.io.useCanonPrefixCache=false-Djava.net.preferIPv4Stack=true-Djdk.http.auth.tunneling.disabledSchemes=""-XX:+HeapDumpOnOutOfMemoryError-XX:-OmitStackTraceInFastThrow-Djdk.attach.allowAttachSelf=true-Dkotlinx.coroutines.debug=off-Djdk.module.illegalAccess.silent=true 위처럼 되어 있다는 다른 사람들과 다르게 저는 아무리 기다려도 아래 한 줄만 파일이 존재했습니다. -Xmx750m 확인 부탁드립니다!
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
fetch 질문
안녕하세요 3:45에 fetch then대신 try catch로 바꿔 봤는데 이렇게 사용하면 될까요? const getData = async () => { try { const response = await (await fetch(`https://jsonplaceholder.typicode.com/comments`)).json(); console.log(response); } catch (err) { console.log(err); } };
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
다대다 관계에서 페치 조인
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요. 다대다 관계에서 페치조인 성능에 대해 질문이 있습니다. 실전 JPA1의 프로젝트를 기준으로 orders와 item은 다대다 관계이기 때문에 사이에 order_item이라는 중간 엔티티를 둬서 일대다 , 대다일 로 풀어내주셨습니다. 이때 order 를 이용해서 그 주문한 상품의 이름을 알고싶은 경우 1) 처음에 order id를 기반으로 order와 연관된 orderItem을 모두 가져오는 페치조인을 하였고 2) 이후 그 여러 orderItem 각각에 대하여 다시 페치조인으로 orderItem을 조회하여 orderItem과 , Item을 모두 가져왔습니다. 이후에 Item의 이름을 출력해 보았는데, 2번 과정에서 어차피 각각의 orderItem에 대해 페치 조인이 사용되는 것 이기에 - orderItem의 개수만큼 inner join이 나갔습니다. 그래서 이를 수정하여 수정 1) 동일하게 order id를 기반으로 order 와 연관된 orderItem을 모두 가져오는 페치조인 수행 후 수정 2) 각각의 orderItem에 대하여 orderItem.getOrder.getName() 으로 연관된 Item의 이름을 조회하였더니 위와 동일한 개수의 SQL이 나가지만, inner join을 쓰지 않고 단순히 where문을 사용한 조회 문이 나갔습니다. => 이를 보고 , 다대다의 관계에서 한쪽을 이용해 연관된 다른 한쪽을 조회해야하는 상황에서는, 위의 수정된 방법처럼 처음에는 페치조인을 쓰고 + 이후에는 지연로딩으로 인한 단순 조회를 사용하는 식으로 사용하고 있는데요 이런식으로 사용하는것이 맞게 사용하는 건지 궁금합니다.