묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[입문자를 위한 UE5] Part3. 언리얼 엔진 3D 게임 개발 입문
axis turn 인풋값은 키를 누를 때는 무조건 0이 아니니 0이 아닌 경우 조건문 안달아줘도 되지 않나요?
게임 플레이 프레임워크에서비행기가 q,e누르면 회전하게 만드는 코드에서인풋값이 0이 아닌 경우만 적용되도록 한 거에서요 0은 그냥 키를 안 눌렀을 때 값이니까사실 키를 눌렀을 때는 항상 0이 아니니까조건문 안달아줘도 상관없는 것 아닌지 궁금합니다.
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
collection.dart 임포트할 때요.
에러는 아니지만 pubspec.yaml에 추가해달라고 워닝이 뜨는데, 이건 추가해도 되고 안해도 되는 건가요? 아니면, mapIndexde만 사용하는 정도면 펍스펙에 추가 없이 그냥 쓸수 있지만 그 이상을 사용하려면 추가해야 하는 건가요?
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
입력 값과 시간 복잡도 관해서 여쭙습니다!
다름이 아니라 이 입력값 N이 30인 경우,연산에 매우 오랜시간이 걸리더라구요!2중 반복문을 사용해서 구하는게 시간 복잡도상 이상적인 것인가요?아니면 DP를 사용하는 방법을 고려해야 되는건가여??
-
미해결몇 줄로 끝내는 인터랙티브 웹 개발 노하우 [초급편]
코드가 미리보기로 보여주는 확장프로그램이 뭔가요?
코드가 미리보기로 보여주는 확장프로그램이 뭔가요?
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
12강 한글복사
hwp.Run("CopyPage")row = 2while True:if not ws.Cells(row, 1).Value:hwp.Run("DeletePage")breakelse:data = list(ws.Range(ws.Cells(row,1),ws.Cells(row, 4)).Value[0])data[2] = data[2].strftime("%Y년 %#m월 %#d일")필드삽입(row-2, data)hwp.Run("PastePage")row += 1 전체 카피가 되지 않고 하나의 파일만 복사되어 엑셀첫번째 열 파일만 생성됩니다.
-
해결됨모의해킹 실무자가 알려주는, XSS 공격 기법
board 화면에 아무런 정보가 뜨지 않습니다.
이런 화면이 발생하고 있습니다.코드는 패스워드 외 수정한건 없구요~table 생성 화면테이블 select 쿼리문(db내용이 없으면 아래처럼 뜨는게 맞나요?
-
해결됨기출로 대비하는 개발자 전공면접 [CS 완전정복]
Array 조회에 대해 질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. Array에 저장되는 자료의 자료형이 동일하다고 가정하기 때문에 element당 차지하는 바이트 수가 같다고 생각할 수 있는 걸까요? 그렇다면 자료형이 동일하면 바이트 수가 항상 같은가요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
안녕하세요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]11분 50초 쯤 요즘 세션 객체를 안쓴다고 하셨는데 그럼 토큰으로 인증을 주로 하는 건가요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
MemberRepository 터미널 세팅 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]➜ libs java -jar jpashop-0.0.1-SNAPSHOT.jar . ____ _ /\\ / ___'_ __ (_)_ _ \ \ \ \( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.7.10)2023-03-29 10:00:16.420 INFO [,,] 33389 --- [ main] jpabook.jpashop.JpashopApplication : Starting JpashopApplication using Java 17.0.6 on yunsang-yeon-ui-MacBookAir.local with PID 33389 (/Users/sangyeon/Desktop/study/jpashop/build/libs/jpashop-0.0.1-SNAPSHOT.jar started by sangyeon in /Users/sangyeon/Desktop/study/jpashop/build/libs)2023-03-29 10:00:16.422 INFO [,,] 33389 --- [ main] jpabook.jpashop.JpashopApplication : No active profile set, falling back to 1 default profile: "default"2023-03-29 10:00:17.075 INFO [,,] 33389 --- [ main] o.s.cloud.context.scope.GenericScope : BeanFactory id=7e250d03-eb6b-3405-9b07-0ce9cd1e93022023-03-29 10:00:17.575 INFO [,,] 33389 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)2023-03-29 10:00:17.583 INFO [,,] 33389 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]2023-03-29 10:00:17.583 INFO [,,] 33389 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.73]2023-03-29 10:00:17.641 INFO [,,] 33389 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext2023-03-29 10:00:17.642 INFO [,,] 33389 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1180 ms2023-03-29 10:00:18.403 INFO [,,] 33389 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''2023-03-29 10:00:18.420 INFO [,,] 33389 --- [ main] jpabook.jpashop.JpashopApplication : Started JpashopApplication in 2.308 seconds (JVM running for 2.591)2023-03-29 10:00:27.868 INFO [,06eafb76d211bbc3,06eafb76d211bbc3] 33389 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'2023-03-29 10:00:27.868 INFO [,06eafb76d211bbc3,06eafb76d211bbc3] 33389 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'2023-03-29 10:00:27.869 INFO [,06eafb76d211bbc3,06eafb76d211bbc3] 33389 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms 이렇게 나오고 local host 8080에 들어가니Whitelabel Error PageThis application has no explicit mapping for /error, so you are seeing this as a fallback.Wed Mar 29 10:00:27 KST 2023There was an unexpected error (type=Not Found, status=404).이렇게 뜹니다.
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
왜 자기 게시글을 리트윗하는 것을 금지해야하는 지 궁금합니다.
왜 자기 게시글을 리트윗하는 것과자기게 시글을 남이 리트윗 한 거를 자기가 또 리트윗 하는 거를 금지해야하는 지 궁금합니다.실제 트위터에서 보면 제 트윗을 제가 또 리트윗 하는 것이 가능하던데 특별한 이유라도 있나요?
-
미해결실전! Querydsl
build관련 질문드립니다.
안녕하세요 영한님.스프링 입문 로드맵부터 지금까지 정말 좋은 강의 감사합니다.로컬에서는 compileQuerydsl도 정상적으로 작동되고 Q클래스도 잘 생성 되는데 결국에 배포를 하기 위해서는 build를 해야 하는데 해당 부분에서 계속 문제가 생겨서 질문드립니다.아래는 설정파일입니다.querydsl관련 중복 에러만 발생하여 다른 라이브러리는 제외하고 해당 부분만 올렸습니다. buildscript { ext { queryDslVersion = "5.0.0" } } plugins { id 'java' id 'org.springframework.boot' version '3.0.3' id 'io.spring.dependency-management' version '1.1.0' id "com.ewerk.gradle.plugins.querydsl" version "1.0.10" } group = 'heyuniverse' version = '0.0.1-SNAPSHOT' sourceCompatibility = '17' configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta' annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta" annotationProcessor "jakarta.persistence:jakarta.persistence-api" annotationProcessor "jakarta.annotation:jakarta.annotation-api" } tasks.named('test') { useJUnitPlatform() } def querydslDir = "$buildDir/generated/querydsl" clean { delete file(querydslDir) } querydsl { jpa = true querydslSourcesDir = querydslDir } sourceSets { main.java.srcDir querydslDir } configurations { querydsl.extendsFrom compileClasspath } compileQuerydsl { options.annotationProcessorPath = configurations.querydsl }distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip아래는 배포를 위해 build시 발생하는 에러 로그입니다.> Task :compileJava FAILEDDeprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.See https://docs.gradle.org/7.6/userguide/command_line_interface.html#sec:command_line_warnings3 actionable tasks: 3 executedFAILURE: Build failed with an exception.* What went wrong:Execution failed for task ':compileJava'.> Compilation failed; see the compiler error output for details.Attempt to recreate a file for type xxxx.xxxx.QClassAttempt to recreate a file for type xxxx.xxxx.QClassAttempt to recreate a file for type xxxx.xxxx.QClassAttempt to recreate a file for type xxxx.xxxx.QClass인텔리제이 ,gradle 양쪽 다 캐쉬 삭제 후 실행 해봐도 결과는 같았고,gradle 버전이 문제인가 하여 8.0으로 업그레이드 해봐도 해결이 되지는 않았습니다.이틀 넘게 종일 매달려봐도 도무지 질문할 곳이 없어서 남겨봅니다 ,,
-
해결됨깃헙 블로그(Github blog)로 차별화 된 나만의 홈페이지 만들기!
타이포라 유료네요ㅠㅠ
유료인데 써야하나요? 혹시 대체재는 없나요?
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
win32com.client run 오류
Pywin32 cmd로 설치되었는데 파이썬에서 Run하면 실행이 안되네요ㅠ 이유가 뭘까요...
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
context.go 가 실행이 안될때
안녕하세요.GoRouter 이론 부분을 듣다가 context.go('/one'); 가실행이 되지 않고 버튼을 누르면 먹통입니다.context.push('/one'); 는 작동을 합니다..설치버전은 4.2.2처음에 최신버전을 사용했다가 이전 문의글들 참고해서 4.2.2로 다시 설치했습니다. 이후에 flutter clean , put get, restart 도 했어요어떤 부분을 확인해야 할까요? 도와주세요... 소스코드 ------cupertino_icons: ^1.0.2 go_router: ^4.2.2 main.dartimport 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; import 'package:go_router_actual/screen/1_screen.dart'; import 'package:go_router_actual/screen/2_screen.dart'; import 'package:go_router_actual/screen/3_screen.dart'; import 'package:go_router_actual/screen/home_screen.dart'; void main() { runApp( _App(), ); } class _App extends StatelessWidget { const _App({Key? key}) : super(key: key); GoRouter get _router => GoRouter( initialLocation: '/', // 앱을 처음 시작했을 때 보여주는 화면 // routes - 모든 스크린 정의 routes: [ GoRoute( path: '/', builder: (_, state) => HomeScreen(), routes: [ GoRoute( path: 'one', builder: (_, state) => OneScreen(), ), ], ), ], ); @override Widget build(BuildContext context) { return MaterialApp.router( routeInformationProvider: _router.routeInformationProvider, routeInformationParser: _router.routeInformationParser, routerDelegate: _router.routerDelegate, ); } } HomeScreen.dartimport 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; import 'package:go_router_actual/layout/default_layout.dart'; class HomeScreen extends StatelessWidget { const HomeScreen({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return DefaultLayout( body: Column( crossAxisAlignment: CrossAxisAlignment.stretch, children: [ ElevatedButton( onPressed: () { context.go('/one'); }, child: Text( 'Screen One (Go)', ), ), ], ), ); } }
-
해결됨스프링부트 JUnit 테스트 - 시큐리티를 활용한 Bank 애플리케이션
이클립스 VS 비주얼스튜디오 장 단점 알려주세요~
안녕하세요 강사님 ~현재 저는 이클립스 사용해서 개발중 입니다회사에 일부 신입개발자나, 젊은 분들은 비주얼스튜디오코드를 사용중이더라구요저는 아직 설치는 아직 해보지 않았지만, 처음 설정 잡기가 많이 까다롭다고 하더라구요 강사님 개발 경력이 많으시니, 최주호 강사님이 생각 하시는 이클립스에서 -> 비주얼스튜디오 로 갈아 탄다면 어떤 이점이 있고, 이런 부분은 불편해서 감안 해야 한다 설명 해주셨으면 좋겠습니다 ( 참고로 html, css, jquery, javascript 뒷단 java, sql 모든 부분 개발 유지 보수 하고 있습니다 ) 급한 부분 아니니 한가하게 시간 나실 때 답변 주세요..계속 좋은 강의 많이 올려주셨으면 좋겠습니다감사합니다. 좋은 하루 보네 세요~ #장단#장단점#비교#eclipse#비주얼스튜디오코드#visual-studio-code#visual#studio#code#비주얼#스튜디오#코드
-
해결됨ARM Cortex-M 프로세서 프로그래밍
r7 레지스터 관련 질문 드립니다.
강사님. 강의 잘 보고 있습니다.r7 레지스터가 강의 초반부에 스택 포인터와 관련된 레지스터라고 말씀해주셨던 것 같은데 왜 필요한지 잘 이해가 가지 않습니다.익셉션 호출시 하드웨어에서 자동으로 sp를 포함한 8개의 레지스터를 저장한다고 강의에서 설명해주셨는데, 왜 따로 r7에 스택 포인터를 저장하고 필요시 저장까지 하는지 이해가 필요할 것 같습니다.
-
해결됨스프링 부트 - 핵심 원리와 활용
예제 코드 작성시 왜 생성자를 @Autowired 안 쓰고 명시 해서 만드시나요?
강사님 안녕하세요~스프링부트 강의 잘 듣고 있습니다.. 자동구성 > 예제만들기 동영상 중 @Repository 만들 때 왜 public MemberRepository(JdbcTemplate templage)주입받게 하나 @Autowired 로하면 안되나요? ( 불필요하게 코드도 만들고 길어진다고 생각이 들어서요... )테스트 코드 작성 인지 때문 인지.. 강사님의 강의 대부분의 동영상에서는 생성자를 꼭 만드시더라구요오토와이어드 안 쓰구요 제가 기본 개념이 안되어서 이런 질문을 드리는 건지 죄송하고 부끄럽지만 질문 드립니다 #스프링#스프링부트#spring#boot#spring-boot#Autowired#생성자#왜#주입#받게#하나
-
미해결스프링 프레임워크는 내 손에 [스프1탄]
아이디중복확인 ajax
아이디 중복확인 ajax작성할때 /memRegisterCheck.do에서 리턴값 1 또는 0 받는데 ajax에 dataType 안적는 이유는 뭔가요?
-
미해결
socket.io 실행
안녕하세요채팅을 구현하기위해 socket.io를 썼는데 통신이 안되는 것같습니다 io에 주소를 제대로 넣었고 서버 on 마다 클라이언트에서 emit으로 작성했는데 작동하지 않습니다 이유가 무엇일까요? // server 파일의 코드입니다 require('dotenv').config(); const { createApp } = require('./app'); const { appDataSource } = require('./models/index'); const startServer = async () => { const app = createApp(); const PORT = process.env.PORT; await appDataSource .initialize() .then(() => { const server = app.listen(PORT, () => { console.log(`🟢server is listening on ${PORT}🟢`); }); const io = require('socket.io')(server, { cors: { origin: true, credentials: true, }, }); const { socketMessage } = require('./middlewares/socket.io'); socketMessage(io); }) .catch((err) => { console.log(`❌Failed server connect❌`); appDataSource.destroy(); }); }; startServer(); // server의 socket 파일의 코드입니다 const jwt = require('jsonwebtoken'); const chatDao = require('../models/chatDao'); const { catchAsync } = require('../utils/error'); const socketMessage = (io) => { io.use((socket, next) => { const token = socket.handshake.headers.authorization; if (!token) { return next(new Error('Authentication error')); } jwt.verify(token, process.env.SECRET_KEY, async (err, decoded) => { if (err) { return next(new Error('Authentication error')); } userId = decoded.userId; next(); }); }); io.on('connection', (socket) => { console.log('A User Connected.'); socket.on( 'create_room', catchAsync(async (postId, callback) => { const room = await chatDao.createRoom(userId, postId); socket.join(room.raw.insertId); callback(room.raw.insertId); }) ); socket.on( 'enter_room', catchAsync(async (roomId, callback) => { socket.join(roomId); callback(roomId); }) ); socket.on('new_text', async (content, roomId, callback) => { await chatDao.createChat(userId, content, roomId); socket.to(roomId).emit('new_text', content); callback(content); }); socket.on('disconnect', () => { console.log('접속이 해제되었습니다', socket.id); clearInterval(socket.interval); }); socket.on('error', (error) => { console.error(error); }); socket.on('send', (data) => { console.log(data); socket.emit('reply', { data, }); }); socket.interval = setInterval(() => { socket.emit('news', 'Hello Socket.IO'); }, process.env.SOCKET_INTERVAL || 1000); }); }; module.exports = { socketMessage }; // client 코드입니다import React, { useState, useContext } from 'react'; import io from 'socket.io-client'; import './chat.css'; import { MenuContext } from '../../components/Nav/MenuProvider'; const Token = localStorage.getItem('accessToken'); const socket = io.connect('http://192.168.0.194:4000', { withCredentials: true, extraHeaders: {Authorization: `Bearer ${Token}` } appDataSource.destroy(); }), }); socket.on('connection', () => { console.log('Connected to server'); }); const Chat = () => { const [roomId, setRoomId] = useState([]); const [searchData, setSearchData] = useContext(MenuContext); const handleCreateRoom = event => { event.preventDefault(); socket.emit('create_room', searchData, ({ searchData, roomId }) => { console.log(`Joined room ${roomId}`); setRoomId(roomId); }); }; const handleJoinRoom = roomId => { socket.emit('enter_room', roomId, roomId => { console.log(`Joined room ${roomId}`); setRoomId(roomId); }); }; const handleNewText = content => { socket.emit('new_text', content, roomId, content => { console.log(`Sent message: ${content}`); }); }; const handleNewText = content => { socket.emit('new_text', content, roomId, content => { console.log(`Sent message: ${content}`); }); }; const onCheckEnter = e => {if (e.key === 'Enter') { handleNewText(); } }; return ( <div className="h-screen pt-36"> <button onClick={handleCreateRoom}>테스트</button> <button onClick={() => handleJoinRoom(roomId)}>테스트2</button> <input id="input-text" type="text" onKeyDown={onCheckEnter} /> <button onClick={handleCreateRoom}>제출</button> </div> ); }; export default Chat;
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
컴포넌트 재사용하는 부분에서 궁금한게
여기서 isEdit는 변수인건가요..? vscode에서는 속성이라고 뜨는데 뭔지 헷갈려요..