[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
1. class 는 설계도라고 하셨는데 그렇다면 main 함수에서든지 그 위에 전역변수 선언하는 영역에서든지 객체를 생성하지 않으면 class 내에 모든 멤버변수나 멤버함수의 메모리가 잡히지 않는다는 건가요? 2. 또 구조체를 제가 그새 까먹어서... 구조체 역시 구조체 내의 변수들을 한 데 모아주는 역할만 할 뿐 구조체 변수를 따로 만들지 않으면 구조체 내의 묶어준 변수들의 메모리가 잡히지 않는건가요?
C# 입문부터 Xamarin Forms(자마린 폼즈) + Maui(마우이) 안드로이드, 윈도우 앱(UWP) 동시에 만들기
18강에서 Ch_17 ch_17 = new Ch_17() Ch_18.time3(ref ch_17) 클래스: public static void time3(ref Ch_17 ch_17) { ch_17.name = "태권브이" Console.WriteLine(ch_17.name + "고향:" + Ch_17.homeTown) } 이 나옵니다. 근데 이미 클래스에서 ch_17을 참조 (ref Ch_17 ch_17)한다고 나와있는데 왜 클래스를 이용할 때 ref ch_17를 붙여야 하나요? 강의를 한 번 더 보니 이해가 되었습니다. ref Ch_17 ch_17은 매개변수 내의 클래스이고 ref ch_17을 해서 ref Ch_17 ch_17 내에 ch_17 클래스를 넣는 것이군요!
페이지 구현- 일기쓰기 (/new) 강의의 40분 48초 부터 onClick={handleSubmit}에서 9월 30일이나 10월 31일같이 그 달의 마지막날은 new(새로운 글)이 작성이 되지 않습니다.. 이유가 무엇인가요? const getStringDate = (date) => { return date.toISOString().slice(0,10); } export const getStringDate = (date) => { let year = date.getFullYear(); let month = date.getMonth() + 1; let day = date.getDate(); if (month < 10) { month = 0${month}; } if (day < 10) { day = 0${day}; } return ${year}-${month}-${day}; };
안녕하세요. 제 글을 보시는 분들 가볍게 의견 남겨주셨으면 좋겠습니다. 현재 저는 개발자로 진로를 정하였는데, 비전공자이기 때문에 학벌로 인한 고민이 많은 상태입니다. 현재는 타전공의 대학을 휴학중인 상태고, 1학년까지 마치고 휴학을 했기 때문에 복학해서 졸업하려면 3년의 시간이 걸립니다. 그리고 휴학을 하면서 학점은행제 과정을 수료했기 때문에, 학은제로 내년 초 3개월만 하면 대학 학사 학위가 나오는 상황이구요. (대학과 학은제는 모두 컴공관련 아닌, 비전공과 입니다) 하지만 내년에 대학교 복학을 하지 않으면 제적 되는 상황인데 , 여기서 고민은 한학기 남은 학은제 그냥 수료할지(=대학은 제적 처리됨),아니면 하던 학은제를 포기하고 그냥 복학해서 3년을 다니며 (타전공일지라도) 4년제를 졸업을 해야할지 고민입니다. 대학을 졸업까지 1년 정도 남으면 고민 안하고 복학을 했을 것 같은데 타전공인데다가 3년을 더 다녀야 한다는 생각에 고민이 됩니다. ( 이 3년이면 개발공부를 하기에 정말 중요한 시간이 될 것 같아서요) 대학교 수준은 중위권 정도의 국립대이며 , 과는 어문계열의 한 학과 입니다. <요약하자면> 우선 비전공자로서 개발자로 진로를 확실히 정하였고 , 타전공일 지라도 4년제의 국립대 타이틀을 얻기 위해 대학을 3년동안 다녀야 할지, 인식 수준은 낮지만 그 3년 아껴서 학사 취득에 시간을 단축하고 개발 공부를 한시라도 빨리 시작하기 위한 학은제를 마저 수료하는게 나을지 고민입니다.
안녕하세요 강사님 강사님의 강의 잘듣고있습니다. 강사님의 강의를 듣고 프로젝트 진행중 고민인 부분이 있어 질문남깁니다! 전체는 아니지 대략적인 erd 부분입니다. 게시물에 달려있는 태그, 게시물 제목 등으로 필터링 하는 상황입니다. 또한 "게시물" 엔티티와 "게시물_태그" 엔티티가 양방향으로 되어있습니다. 궁금한점이 게시물에 있는 태그를 조건으로 필터링할때 아래 두방식중 어떠한 방식이 적합합니까? 아니면 더좋은 방법이 있으시다면 어떤것이 있는지 여쭈어봐도 되나요?! 게시물 테이블에 태그를 제외한 나머지 조건으로 필터링한 후 결과 게시물들의 "게시물_태그" 프록시 객체를 초기화하면서 태그 조건에 만족하는 게시물을 필터링하는 방법 "게시물_태그" 테이블에서 태그조건을 가진 게시물들을 먼저 찾은후(찾은후 group등을 이용) 나머지 조건사용해서 필터링하기 읽어주셔서 감사합니다!!!
{ "title": "자! 새로운 글입니다!", "content": "희망찬 vue3!", "createAt": 1664546739213, "id": "SJ5GpEi" } 16:15 id 가 6으로 되지 않고 7자리 문자열로 들어오는 이유를 모르겠습니다. createPost.vue에서 마지막 id를 추가로 따로 받아서 +1을 하고 그값을 form값에 포함시켜 post하는 방법도 있겠지만, 왜 선생님은 id가 저절로 +1되고, 저는 따로 설정해야 하는 이유를 모르겠습니다. 참고) 제 버전 "dependencies": { "axios": "^0.27.2", "vue": "^3.2.38", "vue-router": "^4.1.5" }, "devDependencies": { , "json-server": "^0.17.0", "prettier": "^2.7.1", "vite": "^3.0.9" }
안녕하세요 장고 클라우드 서버로 AWS를 쓰면서 지속적으로 하고 싶었던 기술이 CI CD + AutoScaling을 동시에 도입을 하고 싶었습니다. 기존에 github action과 aws ec2로 자동 배포는 어찌어찌해서 찾아서 해봤는데 결국에는 하나의 서버 인스턴스로만 돌아가기 때문에 나중에 부하 걱정이 되더라고요 그래서 제가 사용하고 싶은 조합은 AWS Autoscaling + AWS Codedeploy + AWS EC2 + AWS Loadbalance + GithubAction을 통해 github에 코드가 push되면 loadbalance 타겟 그룹된 전 인스턴스가 전부 코드 업데이트 되어 배포가 되는것을 생각을 해봤는데, 위 조합으로 제가 생각한 내용이 가능할까요? 제가 codedeploy는 한번도 써보지 않아서 사실 감이 잘안오는데, codedeploy는 github에 코드가 push되지 않더라도 자동으로 autoscaling에서 인스턴스를 생성하면 깃허브 코드가 적용된 서버를 생성하기 위해서 필요할것 같더라고요. 위는 결국 서버를 유연하게 관리하기 위한 제가 생각한 조합이구 제 생각한 위 아키텍처에 문제가 있을까요? (사실 일단 위 아키텍처 직접 구현이 어려울것 같아서 먼저 전문가이신 선생님께 확인을 받고 찾아보려합니다.) 보통 기업에서는 어떻게 서버 로드를 유연하게 관리하나요?? 클라우드 관점에서용!(다양한 자료나 서비스 다 좋습니다 !!) 쿠버네티스나, ECR, ECS 클러스터를 활용하나요? 궁금적으로 제가 현재 원하는 방식은 비교적 접근성 좋고(쉽고 ㅠㅠ) 혼자서 어느 정도 컨트롤 할만한 서버 아키텍처 구성을 원해서 질문드립니다!! (쿠버네티스는 어렵다고 들어서 선생님강의에서도 ㅠㅠ어렵다고 말씀하시고 ㅎㅎ; 위 방법이 가능성이 있는지 파악하고 나중에 차근차근공부하려합니다)
[질문 내용] @PostMapping("/request-body-string-v2") public void requestBodyStringV2(InputStream inputStream) throws IOException { String messageBody = StreamUtils.copyToString(inputStream, StandardCharsets.UTF_8); log.info ("messageBody = {}", messageBody); } HTTP 요청 메시지 - 단순 텍스트 강의에서 v2를 똑같이 따라서 작성하다가 제가 Writer는 생략하고 inputStream만 받아서 바이트 코드를 String 값으로 변환한 뒤 로그 출력만 하려 했는데 inputStream만 받고 포스트맨으로 v2 url에 post로 요청을 보냈더니 에러가 발생했습니다. 아무리 생각해 봐도 writer를 뺀 것 말고는 다 똑같아서 에러가 날 이유가 없다고 생각했는데, 이상하게 에러가 발생했습니다. 그래서 혹시나 하는 마음에 영상과 완전히 똑같이 Writer를 넣어서 서버를 다시 시작하고 요청을 보냈더니 제대로 작동했습니다. 이상한 건, writer 뿐만 아니라 다른 아무 argument resolver에 등록된 객체를 함께 받으면 문제 없이 동작한다는 것이었습니다. 에러 내용을 확인해 보니 타임리프 템플릿 오류인 것 같은데 inputStream이랑 관련이 없어 보여서 어느 부분이 문제인 지 알 수가 없었습니다..ㅠ inputStream을 단일로 받으면 문제가 있는 것인 지 질문 남겨봅니다! 밑은 에러 내용입니다. org.thymeleaf.exceptions.TemplateInputException: Error resolving template [request-body-string-v2], template might not exist or might not be accessible by any of the configured Template Resolvers at org.thymeleaf.engine.TemplateManager.resolveTemplate( TemplateManager.java:869 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.engine.TemplateManager.parseAndProcess( TemplateManager.java:607 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.TemplateEngine.process( TemplateEngine.java:1098 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.TemplateEngine.process( TemplateEngine.java:1072 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.spring5.view.ThymeleafView.renderFragment( ThymeleafView.java:366 ) ~[thymeleaf-spring5-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.spring5.view.ThymeleafView.render( ThymeleafView.java:190 ) ~[thymeleaf-spring5-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.springframework.web.servlet.DispatcherServlet.render( DispatcherServlet.java:1405 ) ~[spring-webmvc-5.3.23.jar:5.3.23] at org.springframework.web.servlet.DispatcherServlet.processDispatchResult( DispatcherServlet.java:1149 ) ~[spring-webmvc-5.3.23.jar:5.3.23] at org.springframework.web.servlet.DispatcherServlet.doDispatch( DispatcherServlet.java:1088 ) ~[spring-webmvc-5.3.23.jar:5.3.23] at org.springframework.web.servlet.DispatcherServlet.doService( DispatcherServlet.java:964 ) ~[spring-webmvc-5.3.23.jar:5.3.23] at org.springframework.web.servlet.FrameworkServlet.processRequest( FrameworkServlet.java:1006 ) ~[spring-webmvc-5.3.23.jar:5.3.23] at org.springframework.web.servlet.FrameworkServlet.doPost( FrameworkServlet.java:909 ) ~[spring-webmvc-5.3.23.jar:5.3.23] at javax.servlet.http.HttpServlet.service( HttpServlet.java:681 ) ~[tomcat-embed-core-9.0.65.jar: 4.0.FR ] at org.springframework.web.servlet.FrameworkServlet.service( FrameworkServlet.java:883 ) ~[spring-webmvc-5.3.23.jar:5.3.23] at javax.servlet.http.HttpServlet.service( HttpServlet.java:764 ) ~[tomcat-embed-core-9.0.65.jar: 4.0.FR ] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:227 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:162 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.tomcat.websocket.server.WsFilter.doFilter( WsFilter.java:53 ) ~[tomcat-embed-websocket-9.0.65.jar:9.0.65] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:189 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:162 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.springframework.web.filter.RequestContextFilter.doFilterInternal( RequestContextFilter.java:100 ) ~[spring-web-5.3.23.jar:5.3.23] at org.springframework.web.filter.OncePerRequestFilter.doFilter( OncePerRequestFilter.java:117 ) ~[spring-web-5.3.23.jar:5.3.23] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:189 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:162 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.springframework.web.filter.FormContentFilter.doFilterInternal( FormContentFilter.java:93 ) ~[spring-web-5.3.23.jar:5.3.23] at org.springframework.web.filter.OncePerRequestFilter.doFilter( OncePerRequestFilter.java:117 ) ~[spring-web-5.3.23.jar:5.3.23] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:189 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:162 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal( CharacterEncodingFilter.java:201 ) ~[spring-web-5.3.23.jar:5.3.23] at org.springframework.web.filter.OncePerRequestFilter.doFilter( OncePerRequestFilter.java:117 ) ~[spring-web-5.3.23.jar:5.3.23] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:189 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:162 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.StandardWrapperValve.invoke( StandardWrapperValve.java:197 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.StandardContextValve.invoke( StandardContextValve.java:97 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.authenticator.AuthenticatorBase.invoke( AuthenticatorBase.java:541 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:135 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.valves.ErrorReportValve.invoke( ErrorReportValve.java:92 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.StandardEngineValve.invoke( StandardEngineValve.java:78 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.connector.CoyoteAdapter.service( CoyoteAdapter.java:360 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.coyote.http11.Http11Processor.service( Http11Processor.java:399 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.coyote.AbstractProcessorLight.process( AbstractProcessorLight.java:65 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process( AbstractProtocol.java:890 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.tomcat.util.net .NioEndpoint$SocketProcessor.doRun( NioEndpoint.java:1789 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.tomcat.util.net.SocketProcessorBase.run ( SocketProcessorBase.java:49 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker( ThreadPoolExecutor.java:1191 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run( ThreadPoolExecutor.java:659 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run( TaskThread.java:61 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
jpashop 으로 데이터베이스를 만들고, 강의 영상처럼 ls-arlth 로 mv.jpashop 파일이 만들어진 것을 확인했습니다 h2 웹 콘솔에서 jdbc:h2:~/jpashop 경로로 접속하면 이전에 JPA 기초 클래스에서 만들어졌던 테이블이 나옵니다 무었 때문에 그런걸까요?
중간에 random.shuffle을 하여 섞어주는 이유가 무엇인가요? 어차피 random.choice를 통해서 무작위로 words 중의 하나를 q에 저장하는 방식일 텐데 굳이 셔플을 해야 하나요? 리스트 섞기 부분을 주석처리하고 여러번 시행해 보았는데, q에는 계속해서 무작위의 [정답, 힌트] 리스트가 저장되었습니다.