안녕하세요 선생님. 좋은 강의를 정말 잘 듣고 있습니다ㅎㅎ [네비게이션관련 커스텀 훅] 강의에서 궁금한게 생겼는데요~ 쿼리 스트링에 page와 size가 있는데, moveToList에 파라미터로 page와 size를 전달해서 처리해야 하는 이유가 무엇인지 알 수 있을까요?
while (ch = getchar())를 이용해서 글자수 세는 함수를 만들고있는데, if (ch == '\n') 는 엔터를 인식하는데 if (ch == "\n") 는 엔터를 인식못합니다. 이유가 뭘까요? 그리고 기억상 해당 질문에 관련 개념이 나오는 강의가 있엇던거 같은데, 해당 내용은 몇 강에서 나올까요? 추가로, if (ch == "\n") 는 인식을 못하는데 printf("\n")는 왜 제대로 작동할까요?
[Rookiss University] Haker님의 UE5 소스코드 분석 시리즈 #2 (네트워크)
12:40분에 언급한 그림이 이상한 것 같습니다. 설명한 로직은 LastChangeListIndex ~ HistoryEnd -1까지 범위의 Changed 값을 HistoryEnd 위치의 Changed에 merge하여 저장하는 로직으로 보입니다. 코드 상으로는 Changed(== PossibleNewHistoryItem)에 해당하는 값은 HistoryEnd 인덱스에 위치하는 값이며, History의 순회 범위는 [LastChangeListIndex, HistoryEnd ) 입니다. 따라서 그림에 "History_2 Change"에 해당하는 인덱스 값은 "HistoryEnd"가 아닌 HistoryEnd - 1이 되야 할 것 같아 글을 작성합니다. 감사합니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. import requests from bs4 import BeautifulSoup for i in range(1,5): response = requests.get("https://startcoding.pythonanywhere.com/basic?page={i}") html = response.text soup = BeautifulSoup(html, 'html.parser') items = soup.select(".product") for item in items: category = item.select_one(".product-category").text name = item.select_one(".product-name").text link = item.select_one(".product-name > a").attrs['href'] price = item.select_one(".product-price").text.split('원')[0].replace(',', '') print(category, name, link, price) 코드 실행은 잘 되는데 결과값이 밑에 출력이 안되네요. 설정문제 같은데 어떻게 해결해야 하나요
깃허브 서비스 소개 https://inf.run/RnkTH 서비스 https://inf.run/2ePoD 이력서 공유 플랫폼을 만들었는데 피드백을 받으려고 합니다! 디자인이나 서비스에서 부족한 점이나 수정해야할 부분을 전부 적어주세요! 참고로 지금 데이터는 모두 모킹데이터 입니다! 비난을 하셔도 좋습니다! 그 부분까지 수정하겠습니다!
1. 현재 학습 진도 몇 챕터/몇 강을 수강 중이신가요? 2-6 어떤 알고리즘을 학습하고 계신가요? LinkedList 여기까지 이해하신 내용은 무엇인가요? 어떻게 로직이 흘러가는지 이해가 된 상태 입니다. 2. 어려움을 겪는 부분 어느 부분에서 막히셨나요? 어려운 부분은 아니고 뭔가 제 풀이에 대해서 공유 해드리고 싶습니다! 코드의 어떤 로직이 이해가 안 되시나요? 이해가 안되진 않는 것 같습니다! 어떤 개념이 헷갈리시나요? 없습니다! 3. 시도해보신 내용 문제 해결을 위해 어떤 시도를 해보셨나요? 우선 값들을 StringBuilder 로 만들어서 각각 Int로 파싱한다음 더해주는 과정을 해보았습니다. 에러가 발생했다면 어떤 에러인가요? 없습니다! 현재 작성하신 코드를 공유해주세요 package algorithm_practice.second_week; public class GetLinkedLiistSum_01 { // Node 클래스 정의 static class Node { int data; Node next; Node(int data) { this.data = data; this.next = null; } } // LinkedList 클래스 정의 static class LinkedList { Node head; public LinkedList(int value) { this.head = new Node(value); } public void append(int value) { Node cur = head; while (cur.next != null) { cur = cur.next; } cur.next = new Node(value); } } // 두 연결 리스트의 합을 계산하는 메서드 public static int getLinkedListSum(LinkedList list1, LinkedList list2) { StringBuilder firstNumber = new StringBuilder(); StringBuilder secondNumber = new StringBuilder(); Node cur1 = list1.head; Node cur2 = list2.head; while (cur1 != null && cur2 != null) { firstNumber.append(cur1.data); secondNumber.append(cur2.data); cur1 = cur1.next; cur2 = cur2.next; } int result = Integer.parseInt(firstNumber.toString()) + Integer.parseInt(secondNumber.toString()); return result; } // 메인 실행 테스트 public static void main(String[] args) { LinkedList linkedList1 = new LinkedList(6); linkedList1.append(7); linkedList1.append(8); LinkedList linkedList2 = new LinkedList(3); linkedList2.append(5); linkedList2.append(4); int result = getLinkedListSum(linkedList1, linkedList2); System.out.println("두 연결 리스트의 합: " + result); // 예시: 1032 } } 파이썬 코드를 자바로 변환해서 풀어봤는데 이렇게 접근해도 좋은 풀이 일까요~? 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다! 😊
2.8 페이지별 레이아웃을 설정하는 방법을 듣고있는 학생입니다! getLayout이란 메서드를 레이아웃을 적용할 컴포넌트 객체에 생성해서 _app.tsx 파일에서 메서드를 통해 레이아웃을 적용시키는 방법이라는건 이해했습니다. 그런데 여기서 궁금했던 점이 특정 레이아웃을 적용하기 위해 페이지 마다 따로 코드를 작성해줘야 하는 방식이라면 그냥 레아이웃 컴포넌트를 적용시킬 컴포넌트의 최상위 요소로 감싸주는게 app.tsx에 추가로 코드를 작성할 필요도 없어 더 좋지 않나요? 그리고 리액트 라우터에서는 특정 레이아웃을 적용시킬 컴포넌트들을 <Route element={<Layout/>}><Route/> 이런 path가 없는 컴포넌트 안에서 감싸주는 방식을 사용하는걸로 알고 있습니다. 지금 배우는 방식보다 더 직관성이나 코드 길이 등에서 리액트 라우터가 더 좋은거 같은데 Next는 페이지별 레이아웃 설정방식이 getLayout로 설정하는것 밖에 없는건가요? 유지보수 할 때 특정 레이아웃이 적용된 페이지를 찾기 위해 getLayout을 사용한거라 보기에도 뭔가 애매하게 느껴지고 app.tsx에서 타입을 추가로 만들어줘야 해서 코드가 더 복잡해 보이는거 같습니다.
안녕하세요, Top Earners 문제 관련 질문 있습니다. 저는 From절 서브쿼리를 사용해 보았는데 제 풀이에 어떤 오류가 있는지 알고 싶습니다. 제가 작성한 쿼리는 다음과 같습니다. SELECT MAX(tmp.earnings), COUNT(tmp.name) FROM (SELECT employee_id,name,months,salary,months*salary as earnings FROM Employee ) as tmp GROUP BY earnings ORDER BY earnings DESC LIMIT 1
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 매개변수 전달관련 예제 출력할때 오타가 약간있는거 같습니다. System.out.println("person.introduceWithNumber = " + fun2.apply(person, 1)); // fun2로 변경
[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다! [코드팩토리 디스코드] https://inf.run/54jjz - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 rotateToken(token: string, isRefreshToken: boolean) { const decoded = this.jwtService.verify(token, { secret: JWT_SECRET, }); 여기를 비롯해서 다양한곳에서 Unsafe assignment of an any value라는 오류가 뜨는데 강사님 영상에서는 따로 이런 에러가 발생하지 않더라고요. 혹시 강의에서 ESLint 설정을 약하게 해두신 건가요? 아니면 verify 결과에 타입을 명시해줘야 하는 건가요?
[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다! [코드팩토리 디스코드] https://inf.run/54jjz - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강의에서 알려주신 decodeBasicToken() 함수를 그대로 구현했는데요, 다음과 같이 리턴을 명확히 하고 있음에도 불구하고, decodeBasicToken(base64String: string){ // 그냥 공식으로 외우면 됨 const decoded = Buffer.from(base64String, 'base64').toString('utf8'); const split = decoded.split(':'); if (split.length !== 2) { throw new UnauthorizedException('잘못된 유형의 토큰입니다.'); } const email = split[0]; const password = split[1]; return { // email: email, // password: password, email, password, }; } 에서 이 함수를 사용하면 TypeScript가 다음과 같은 에러를 표시합니다: Argument of type 'void' is not assignable to parameter of type ... 혹시 이 부분은 TypeScript의 일시적인 추론 문제일까요? 리턴 타입을 명시하니까 에러가 사라지긴 했는데, 강의에서는 따로 리턴 타입 없이도 문제없이 작동하던 것 같아서요! 혹시 제가 놓친 부분이 있는지, 아니면 단순히 타입스크립트 인텔리센스의 문제인지 궁금합니다 감사합니다!
main브랜치에서 커밋을 1, 2, 3을 생성했는데, 커밋 2버전에서 새로운 브랜치를 생성해서 작업을 진행하려면 어떻게 해야 하나요?? checkout으로 HEAD가 해당 커밋(2번 커밋)을 가리키게 하고 거기서 브랜치를 생성하여 작업진행하는 걸까요? 아니면 revert?로 3에서 2로 변경된 내용을 새로 커밋하여 최신커밋(main commit 4)이 2의 내용을 가리키게 하여 거기서 브랜치를 새로 만드는 걸까요?? git commit - m "main commit 1" git commit - m "main commit 2" git commit - m "main commit 3" git checkout 1234567 # <- main commit 2 이동 git branch test git checkout test #=========================================== git commit - m "main commit 1" git commit - m "main commit 2" git commit - m "main commit 3" git revert 1234567 # <- main commit 2 내용으로 새로운 commit 생성 git branch test git checkout test )) revert의 내용을 잘 이해한건 맞겠죠??;;;;;