묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
velog., github 업로드 관련 문의
강사님 잘 듣고 있습니다..! 혹시 다름이 아니라 출처를 남기고 velog, github에 공부한 내용을 업로드 해도 될까요?
-
미해결김영한의 실전 자바 - 기본편
v-table 오버라이딩 동작방식 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]여기에 질문 내용을 남겨주세요. 많은 분들이 똑같은 질문을 하시는 것 같은데 문장에서 헷갈릴 수 있을만한 요소가 있는 것 같습니다.강의내용 이나 강의 자료에서 부모에서 자식으로 찾아내려가는 것은 불가능하다 라는 문장이 있는데요,c++ 을 전공과목 에서 배우며 vptr 과 같은 내용을 배웠음에도 java 문법이나 jvm 에 관해서는 아는게 전혀 없어 저도 헷갈립니다 ㅠㅠ.. 저 오버라이딩 되는 부분이 어떻게 구현되는건지, 왜 오버라이딩은 예외로 분류 ( 부모에서 자식으로 아래로 찾아내려가는 것은 불가능하다고 강의 pdf 에 기재되어 있기 때문에 ) 인건지 질문해봅니다. 바로 아랫분이랑 똑같은 내용인데 저도 전혀 해결이 되질 않네요..
-
해결됨두고두고 써먹는 유니티 비동기 프로그래밍
1-3. 코루틴의 주요 키워드 부분에서 자막에 'PoEc' 라는 용어가 나오는데 정확한 용어와 뜻을 알수 있을까요?
1-3. 코루틴의 주요 키워드 영상 0:28 부분에서 자막에 'PoEc' 라는 용어가 나오는데 정확한 용어와 뜻을 알수 있을까요?구글에서 검색해봐도 잘 모르겠습니다.
-
해결됨실리콘밸리 빅테크 29개의 실습으로 배우는 시스템 디자인 설계
URL 단축 서비스에서 redis counter를 사용하는 이유가 무엇인지 궁금합니다.
URL 생성 write 시나리오에서,short url을 생성하고redis counter를 증가시키고db에 저장하고캐시를 업데이트하는 부분이 있는데요.이때 redis counter를 어떤 용도로 사용하는 것인지 이해가 잘 가지 않습니다. 추측으로는, redis counter를 통해 발생한 새로운 값으로 인코딩해 shortUrl을 생성하는 케이스였다면 redis counter를 증가시키고, short url을 생성해주었을 것 같습니다. non functional 요구사항인 100억개의 url limit을 체크하기 위함이 제일 합리적일 것 같은데, 그렇다면 db에 저장하는 부분이 이해가 안돼서요. 이부분 추가 설명 부탁드려도 될까요?
-
미해결그림으로 쉽게 배우는 운영체제
FIFO 알고리즘에 대해서 질문이 있습니다.
안녕하세요. 감자님.FIFO 알고리즘에서 질문사항이 있어서 이렇게 글을 남기게 되었습니다.FIFO 알고리즘은 "현재 실행 중인 프로세스가 완전히 끝나야 다음 프로세스가 실행되기 때문에먼처 도착한 실행기간이 긴 프로세스가 완료될 때까지 기다려야 한다."라는 Convoy effect(호위 효과)단점이 있다고 말씀을 하셨습니다.특정 프로세스가 실행시간이 너무 길어서 할당 받은 CPU 점유 시간을 넘어가면 운영체제가 인터럽트를 걸어서 강제로 CPU를 뺏는 경우도 있지 않을까 싶어서요.FIFO 알고리즘에서는 타임아웃에 따른 인터럽트를 크게 고려하지 않는 걸까요?
-
해결됨BigQuery(SQL) 활용편(퍼널 분석, 리텐션 분석)
1-9. [자습] PIVOT 테이블 생성하기
WITH base as ( SELECT event_date, event_timestamp, event_name, user_id, user_pseudo_id, platform, MAX(IF(params.key='firebase_screen', params.value.string_value, NULL)) as firebase_screen, -- MAX(IF(params.key='food_id', params.value.int_value, NULL)) as food_id, MAX(IF(params.key='session_id', params.value.string_value, NULL)) as session_id, FROM advanced.app_logs CROSS JOIN UNNEST(event_params) as params WHERE -- event_date = "2022-08-01" # 적은 데이터로 쿼리를 작성하기 위해 만든 조건 event_date BETWEEN "2022-08-01" AND "2022-08-18" GROUP BY ALL ), fileter_event_and_concat_event_and_screen AS( -- event_name + screen 하면서(필요한 이벤트만 WHERE 조건에 걸어서 사용) SELECT * EXCEPT(event_name, firebase_screen, event_timestamp), CONCAT(event_name, "-", firebase_screen) AS event_name_with_screen, DATETIME(TIMESTAMP_MICROS(event_timestamp), "Asia/Seoul") AS event_datetime FROM base WHERE event_name IN("screen_view", "click_payment") ) -- step_number + cnt 만들기 -- step_number : CASE WHEN을 사용해 숫자 지정 , pivot_base as ( SELECT event_date, # 일자별로 퍼널별 유저 수 쿼리, 일자별로 처리하기 위해 event_date 추가 event_name_with_screen, CASE WHEN event_name_with_screen = 'screen_view-welcome' THEN 1 WHEN event_name_with_screen = 'screen_view-home' THEN 2 WHEN event_name_with_screen = 'screen_view-food_category' THEN 3 WHEN event_name_with_screen = 'screen_view-restaurant' THEN 4 WHEN event_name_with_screen = 'screen_view-cart' THEN 5 WHEN event_name_with_screen = 'click_payment-cart' THEN 6 ELSE NULL END AS step_number, COUNT(DISTINCT user_pseudo_id) as cnt FROM fileter_event_and_concat_event_and_screen GROUP BY ALL HAVING step_number IS NOT NULL ORDER BY event_date -- WHERE -- user_pseudo_id = "2173465695.8694960923" -- user_pseudo_id = "2173465695.8694960923" :event_name_with_screen = screen_view-welcome의 user_id는 NULL -> home에서 로그인 -- food_detal, search 등 event_name_with_scree의 여러 요소들을 확인해보기 ) # [자습] 위 테이블을 screen_view 타입별로 피벗 테이블 만들기 쿼리 (위 테이블을 with 절로 만들고 아래 쿼리 실행) SELECT event_date, MAX(IF(event_name_with_screen="screen_view-welcome", cnt, NULL)) as `scren_view-welcome`, MAX(IF(event_name_with_screen="screen_view-home", cnt, NULL)) as `scren_view-home`, MAX(IF(event_name_with_screen="screen_view-food_category", cnt, NULL)) as `scren_view-category`, MAX(IF(event_name_with_screen="screen_view-restaurant", cnt, NULL)) as `scren_view-restaurant` FROM pivot_base GROUP BY event_date ORDER BY event_date과제 올립니다 감사합니다
-
미해결실습으로 손에 잡히는 SQLD의 정석(2과목)
DBeaver를 연결했는데 도커를 또 연결해야해요?
DBeaver를 연결했는데 도커를 또 연결해야해요?
-
해결됨[2025] SQLD 문제가 어려운 당신을 위한 노랭이 176 문제 풀이
노랑이 39P 15번문제
FROM (SELECT (LENGTH(C1) -LENGTH(REPLACE(C1,CAR(10))+1 CCFROM TAB1 이부분에서 LENGTH(REPLACE(C1,CAR(10))+1+1이라는게 C1의 ROWNUM1이 >ROWNUM2를 가르키나요? 저는 C1 ROW1을 공백제거해서 2C2ROW2를 공백제거해서 3 해서2+3=5 여기에 +1일해서 6이 정답인줄알았는데+1이 정확히 뭘의미하는지잘모르겠어요ㅜ
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
채팅 프로그램 콘솔출력 겹침
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 채팅 프로그램 작성 도중 여쭤볼 게 있어 남기게되었습니다문제 상황위 사진은 제 콘솔출력창입니다 왼쪽사용자는 kim : hi라는 메시지를 보냈고, 오른쪽 사용자는 han: hello라는 메시지를 보냈는데요, 문제는 메시지를 보내달라는 문장과 다른 사용자가 보낸 메시지 내용이 겹친다는 것입니다 질문 위 사진은 제가 해결해보려는 시도로 static메소드를 lock을 사용해서 만들었습니다. 하지만 결과가 똑같았습니다. 해결방법이 궁금합니다! 그리고 lock을 걸어서 사용했는데 왜 결과가 똑같은지도 궁금합니다...답변해주시면 감사하겠습니다 아래는 제 코드를 보여드리겠습니다!1.Client 메세지 보내는 부분 클래스입니다 public class ClientSecond { private static final int PORT = 12345; static Socket socket; static DataOutputStream output; static DataInputStream input; public static void main(String[] args) throws IOException { try { socket = new Socket("localhost", PORT); output = new DataOutputStream(socket.getOutputStream()); ClientReceiverSecond clientReceiverSecond = new ClientReceiverSecond(socket); Thread thread = new Thread(clientReceiverSecond); thread.start(); System.out.println("Chatting Program"); System.out.print("사용자의 이름을 입력하세요 : "); Scanner scanner = new Scanner(System.in); String name = scanner.nextLine(); output.writeUTF(name); //1.이름전송 while (true) { //System.out.print("메세지를 입력해주세요 : "); ClientOutput.printMessage(); String message = scanner.nextLine(); output.writeUTF(message); //2.메세지전송 if (message.equals("exit")) { System.out.println("채팅 프로그램을 종료합니다. "); break; } } }finally { output.close(); socket.close(); } } } 각 클라이언트에게 다른 사용자의 메세지를 보내는 클래스입니다public class ClientReceiverSecond implements Runnable { private static Socket socket; static DataInputStream input; public ClientReceiverSecond(Socket socket){ this.socket = socket; } @Override public void run() {//다른 사용자들의 메세지 확인 try { while (true) { input = new DataInputStream(socket.getInputStream()); String other_messages = input.readUTF(); //사용자의 이름과 메시지 분리 필요 //System.out.println(other_messages); ClientOutput.printMessage(other_messages); //todo if (other_messages.equals("exit")) { System.out.println("채팅을 종료합니다. "); break; } } } catch (IOException e) { throw new RuntimeException(e); }finally { try { input.close(); } catch (IOException e) { throw new RuntimeException(e); } } } } 클라이언트와 통신하는 세션 클래스인데요 혹시 몰라서 추가로 올려보겠습니다public class SessionSecond implements Runnable{ private Socket socket; private SessionManagerSecond sessionManagerSecond; DataInputStream input = null; DataOutputStream output = null; public SessionSecond(Socket soket, SessionManagerSecond sessionManagerSecond) { this.socket = soket; this.sessionManagerSecond = sessionManagerSecond; sessionManagerSecond.add(this); } public void send(String message) throws IOException { output = new DataOutputStream(socket.getOutputStream()); String messages[] = message.split(","); String name = messages[0]; String messagemain = messages[1]; output.writeUTF(name+" : "+messagemain); } @Override public void run() { try { input = new DataInputStream(socket.getInputStream()); //output = new DataOutputStream(socket.getOutputStream()); String name = input.readUTF(); while (true) { String message = input.readUTF(); if (message.equals("exit")) { break; } String allmesaage = name+","+message; sessionManagerSecond.call(allmesaage); } } catch (IOException e) { throw new RuntimeException(e); }finally { try { output.close(); input.close(); } catch (IOException e) { throw new RuntimeException(e); } } } }
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
save 를 눌렀을 때
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.회원 웹 기능 - 등록 강의에서PostMapping 중join을 눌렀을 땐 강의처럼 잘 이동하는데save를 누를 경우에강의에서는 MemoryMemberRepositoty 클래스로 이동하는데저 같은 경우에는MemberRepository 인터페이스로 이동이 되더라고요실행했을 경우엔 초기 화면으로 돌아가지지 않았습니다 코딩은 동일하게 따라했습니다혹시 더 필요하신 코드 있으시면 더 남기겠습니다package hello.hello_spring.controller; import hello.hello_spring.domain.Member; import hello.hello_spring.service.MemberService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @Controller public class MemberController { private final MemberService memberService; public MemberController(MemberService memberService) { this.memberService = memberService; } @GetMapping("/members/new") public String createForm() { return "members/createMemberForm"; } @PostMapping public String create(MemberForm form) { Member member = new Member(); member.setName(form.getName()); memberService.join(member); return "redirect:/"; } }
-
미해결[2024 업데이트] UX/UI 시작하기 : Figma 입문 (Inflearn Original)
frame 생성 시 android large가 없습니다.
해당 강의해서 첫 시작 때 frame를 adroid large로 사용하는데 android compact와 android medium은 있는데 large만 없습니다. 어떻게 해야 하나요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
도커로 mysql을 가동했으면 어떻게 해야할까요?
docker exec -it bash 해서 복사 해서 내 디렉터리까지 옮겨서 다 따라해봤는데 저는 kongmac@minuuimaegbug-ui-noteubug Dockerfile % docker logs cde3e64f71aa2025-03-07T08:00:12.394150Z 0 [System] [MY-015015] [Server] MySQL Server - start.2025-03-07T08:00:12.622065Z 0 [Warning] [MY-010143] [Server] Ignoring user change to 'root' because the user was set to 'mysql' earlier on the command line2025-03-07T08:00:12.623333Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 9.1.0) starting as process 1mysqld: File './binlog.index' not found (OS errno 13 - Permission denied)2025-03-07T08:00:12.628763Z 0 [ERROR] [MY-010119] [Server] Aborting2025-03-07T08:00:12.630606Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 9.1.0) MySQL Community Server - GPL.2025-03-07T08:00:12.630620Z 0 [System] [MY-015016] [Server] MySQL Server - end.이런 오류가 나오네요... 도커로 db포트 열었으면 어떻게 해야하나요?
-
미해결[2024 업데이트] UX/UI 시작하기 : Figma 입문 (Inflearn Original)
불리언프로퍼티
[예제 실습] 버튼 컴포넌트의 variants 만들기강의 8:14초에서버튼 안에 프레임 생성 후 프로퍼티를 생성하려고 하는데 생성하는 버튼이 안떠서요ㅜ 어떻게 생성하는지 알 수 있을까요?
-
미해결애프터이펙트 기초부터 실무까지!
수업자료
수업자료는 어디서 다운받나요
-
해결됨친절한 블렌더 - [LV.2] 모델링 연습
화면에 X축 Y축이랑 주황색 표시(활성화 되었다는 표시)가 안 보여요
뭘 잘못눌렀는지 갑자기 X축 Y축도 안 보이고 주황색 표시도 안 보여요..단축키를 잘못누른걸까요?다시 띄우려면 어디서 찾아야 하죠..?
-
미해결시작하는 PM/PO들에게 알려주고 싶은, 프로덕트의 모든 것
새로운 제품을 기획할 때는 moment 정의를 어떻게 하나요?
setup moment, aha moment, habit moment 를 정의할 때 기존 데이터를 이용한 상관관계 분석을 통해 정량적으로 정의한다고 말씀하셨는데요! 기존 데이터를 확보할 수 없는 신규 제품을 기획하는 경우에는 어떤 식으로 정의해야 할까요?
-
미해결시작하는 PM/PO들에게 알려주고 싶은, 프로덕트의 모든 것
B2C 사업이 아닌 B2B사업의 경우 지표 설정 방법
안녕하세요!B2C 사업이 아닌 B2B사업의 경우 지표 설정을 어떻게 하는지 궁금합니다.예를 들어, 저희 회사의 제품을 A회사에 판매하고, A회사는 저희 회사의 제품을 사용함으로써 더 많은 신규 유저/고객(실질적인 고객)을 획득하려고 하는 경우, 제 입장에서는 A회사와 같은 기업 고객들을 신규 유저/고객들로 설정하고 새로운 기업 고객을 얼마나 확보할 수 있는지를 Acquisition 지표를 통해 보면 될까요? 아니면 궁극적인 고객인 A회사의 신규 유저/고객을 대상으로 Acquisition 지표 분석을 해야 할까요?이런 상황에서는 다른 지표들에서도 어떤 접근 방식을 택해야 하는지 궁금합니다. 기업 대상으로 제품을 판매하거나 기획할 때 1차 고객은 저희 회사와 계약한 해당 기업이겠지만 결국 이 기업의 궁극적인 목표는 해당 기업의 이윤 창출이고, 이 기업과 연계된 2차 3차 고객이 존재하고, 다양한 이해관계자들이 얽혀 있을 때 어떤 식으로 상황을 정리해야 하는지 궁금합니다.
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
세션8 우선순위 큐 pop함수의 Predicate 적용 관련 질문이 있습니다.
pop 함수를 보면 if (right < (int)_heap.size() && predicate(heap[next], _heap[right]))인 left와의 비교에서 나온 결과 값을 비교하는 부분에만 predicate를 적용하였는데 위에 left와 비교하는 부분은 둘 중 더 큰 값을 next에 넣는게 목적인 코드입니다.더 작은값을 찾을때 문제가 생길 수 있을것이라 생각이 되는데 문제가 생기지 않아 의문점이 생겨 질문 드립니다.left쪽엔 predicate 비교를 하지 않아도 되는 이유가 무엇일까요?
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
컴파일러 경고 메세지 관련 질문입니다.
안녕하세요 쿠케님 강의 잘 듣고있습니다!제네릭을 사용할 때마다 생기는 고민이 있습니다.. 제네릭을 사용하다보면 컴파일러 경고가 발생하는 경우가 있는데(IDE의 노란 밑줄) 이런 경고들을 모두 해결해서 제거해야할 까요?? 아니면 어느정도 무시를 해도 되는 걸까요??이펙티브 자바에는 런타임에 캐스팅 관련 예외가 발생할 수 있으니 이런 경고를 최선을 다해 제거하라. 라는 내용이 있기도 하고, 노란 밑줄이 보이면 눈에 거슬리기도 해서 처음에는 어느정도 제거하면서 개발을 했었는데, 시간이 지날 수록 이게 맞나 싶기도하고 책에 있는 내용이 절대적인 것도 아니기도해서 그리고 강의에서도 어느정도 무시를 하는 것 같아 질문 남깁니다!팀에서 결정한 컨벤션으로 개발하면 될 것 같은데, 다른 팀에서는 어떻게 진행하는지 궁금합니다! 최대한 제거하는지.. 어느정도는 무시(@SuppressWarnings)해도 되는지
-
미해결리눅스 시스템 프로그래밍
혹시 고급과정도 출시가 되는지요?
안녕하세요, 시스템 프로그래밍 도움을 많이 받았는데, 혹시 고급과정도 추후에 출시가 되는지 궁금합니다. 감사합니다.