강의에서 나온 내용 중 pd.get_dummies를 제외하고 동일하게 했는데 RandomForestClassifier로 모델링을 하려고 하니 아래와 같은 오류가 나타납니다 : Unknown label type: unknown. Maybe you are trying to fit a classifier, which expects discrete classes on a regression target with continuous values.
- 강의 영상에 대한 질문이 있으시면, 상세히 문의를 작성해주시면, 주말/휴일 제외, 2~3일 내에 답변드립니다 (이외의 문의는 평생 강의이므로 양해를 부탁드립니다.) - 강의 답변이 도움이 안되셨다면, dream@fun-coding.org 로 메일 주시면 재검토하겠습니다. - 괜찮으시면 질문전에 챗GPT 와 구글 검색을 꼭 활용해보세요~ - 잠깐! 인프런 서비스 운영(다운로드 방법포함) 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 즐겁게 강의를 수강 중인 수강생입니다. sql 데이터 수정 삭제 문법 이해하기 - 실습 중 이름이 김철수인 학생만 삭제하려고 넣으니 15:25:41 DELETE FROM students WHERE name = '김철수' Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column. To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect. 0.000 sec 라고 오류가 떠 gpt에 질문하여 해결하였습니다. 다만 gpt는 안전모드를 해제(일시적 또는 영구적)하거나 기본키(id) 또는 인덱스가 있는 컬럼을 사용하여 삭제하라고 추천합니다. 질문은, 보통 sql 이용 시 안전모드를 해제하고 사용하면 되는 걸까요? 아니라면 id가 아닌 컬럼을 선택하여 삭제하는 경우가 거의 없어서 일시적으로 안전모드 해제하고 삭제하는 것이 일반적인 경우일까요?
재귀함수에서 결과값이 15로 나온 것은 이해를 하였습니다. 단순 노가다식으로 접근하면 크게 어렵지 않을 것 같아요. 근데 입력값이 5가 되는 것이 이해가 되지 않습니다. 초기식에 5를 입력하고 계속 재귀함수로 n값이 낮아지면서 결국엔 n이 0값이 되는데 입력값은 그렇다면 0으로 바뀌는 것이 아닌가요?
토근 발급하는 과정에서 해당 오류로 다음 진도를 못나가고 있습니다..ㅜㅜ 이전 서울시 공공데이터 실습하는 과정에서 requests 정상 import 및 문제없이 작동하였는데, 이번 실습에선 module 'requests' has no attribute 'post' 오류가 발생하네요. - 오류를 해결하기 위해 requests.py 파일이 있는지 확인 - requests 정상 import 확인 - requests reinstall 진행하였으나 문제 해결이 되지 않았습니다..혹시 놓친 부분이 있는지 도와주세요. 감사합니다! import requests client_id = '' redirect_url = 'https://example.com/oauth' authorize_code = '' token_url = 'https://kauth.kakao.com/oauth/token' data = { 'grant_type': 'authorization_code', 'client_id': client_id, 'redirect_url': redirect_url, 'code': authorize_code } response = requests.post(token_url, data=data) tokens = response.json() print(tokens) 추가로 아래 AI 답변 관련하여 확인 해보았습니다. 그럼에도 놓친 사항이 있을 수 있으니 함께 확인하여 답변해주시면 감사하겠습니다!
안녕하세요 쿠케님 강의 잘 듣고 있습니다. 너무 좋아서 팀원들한테도 전파했을 정도입니다. 다들 구매예정이시라고 하네용 강의 듣는 도중 궁금점이 생겼는데 PathVariable과 RequestParam의 가장 큰 차이점은 단 하나의 유일한 자원의 식별자를 url 경로에서 표현하는가의 여부로 배웠습니다. 그래서 저는 articleId의 경우는 PatVariable로 남겨두었습니다. 이 두가지를 구분하는 쿠케님의 기준이 있으실까용? 이 강의에서 테스트는 전부 JUnit이 아닌 다른 것들로 수행 중이신데요. 실제로 테스트 코드 작성하실때도 JUnit을 사용하지 않으시나요? 아니면 그냥 강의 진행 편의상 JUnit을 사용하지 않으신건가요? 감사합니다.
안녕하세요 강사님, 좋은 강의 잘 듣고 있습니다. 바쁘실텐데도 불구하고 답변해주셔서 감사합니다. 질문은 크게 2가지 입니다. 유니크 제약 조건 위반시 예외처리방법 like() 로직에선 article_id와 user_id로 유니크 제약 조건을 걸어서 한 명의 사용자가 중복 생성하는 것을 막고 있습니다. 이 유니크 제약 조건을 위반하여 발생하는 에러는 @ControllerAdvice에서 @ExceptionHandler(DataIntegrityViolationException.class) 로 시작하는 핸들러를 통해서 처리하는 것이 일반적인가요? 2.unlike()에서 한 명의 사용자가 삭제 중복요청시 발생하는 동시성 문제 @Transactional public void unlikePessimisticLock2(Long articleId, Long userId) { articleLikeRepository.findByArticleIdAndUserId(articleId, userId) .ifPresent(articleLike -> { articleLikeRepository.delete(articleLike); ArticleLikeCount articleLikeCount = articleLikeCountRepository.findLockedByArticleId(articleId).orElseThrow(); articleLikeCount.decrease(); }); } 한 명의 사용자가 "좋아요" 중복 생성 요청하는 것을 방어하는 로직이 있으니 "좋아요 해제" 중복 요청에 대한 고려에 대해서 생각해봤습니다. 이 로직에선 findLockedByArticleId 에서 베타락을 걸게 되어서 하나의 article에 대한 여러 사용자의 "좋아요 해제" 요청시의 동시성 문제를 방어하고 있습니다. 그런데 한 명의 사용자가 "좋아요 해제" 중복 요청 시에 ifPresent 구문을 통과하게 되어 articleLikeRepository.delete(articleLike);를 여러번 수행하게 됩니다. 여기서 delete는 멱등성이 보장되니 큰 문제 없이 넘어가겠지만 그 아래 count감소 로직은 해당 트랜잭션들이 베타락을 획득할 때마다 계속 수행되는 것이 아닌지 궁금합니다. 일단 ifPresent 구문 안으로만 들어오면 count감소는 무조건 일어나게 되니 문제가 생기는게 아닐까요? 그래서 ifPresent구문 전에 락을 걸기 위해 findByArticleIdAndUserId() 여기서 락획득이 이루어져야 하는건 아닌지 궁금합니다. 작성하다 보니 질문이 길어져서 죄송합니다.
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 라이브러리 및 데이터불러오기 20분지점 주어진 데이터 분리하기 train= pd.read _csv("train.csv") test= pd.read _csv("test.csv") 가 주어졌습니다. 이게 어느 단계에서의 작업이며, 데이터를 왜 분리하는지, 어떤 데이터를 분리하는지에 대해 전반적인 설명이 없어서 지금의 학습과정을 이해할 수 없습니다. train과 test가 주어졌다면 타겟레이블을 생성하는 과정이 아닐까 추측해 봤지만, 여기서는 income을 삭제했는데 왜 삭제했는지 이해가 안 갑니다. 설명을 바랍니다.
[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
안녕하세요. 강의와 관련 없는 질문 죄송합니다. 하지만 너무 불편한데다가 도저히 해결 방법을 찾을 수 없어서 여쭤봅니다. 주피터 노트북에서 화면을 밑으로 내리는데 위 영상과 같이 자꾸 위로 튀는(?) 현상이 나타납니다. 스크롤바로 화면을 내려도 같은 현상입니다. 캐시삭제, 재부팅 등 챗gpt가 알려준 조치를 했지만 개선되지 않아 여쭙니다..
학습 관련 질문을 최대한 상세히 남겨주세요! 고민 과정도 같이 나열해주셔도 좋습니다. 먼저 유사한 질문이 있었는지 검색해보세요. 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. [문의사항] 강사님의 코드 그대로 따라서 하나하나 작성하고, 모든 부분의 설정을 똑같이 했습니다. Comment 테스트 중에 <삭제할 댓글이 자식 있으면, 삭제 표시만 한다.> 는 성공이 되었습니다. 그러나 <하위 댓글이 삭제되고, 삭제되지 않은 부모면, 하위 댓글만 삭제한다.> 부분의 테스트를 그대로 따라했는데, mockito.exceptions.misusing.UnnecssaryStubbingException 오류가 납니다. 강의 자료로 올려주신 소스코드를 그대로 복사하여 붙여넣기 해도 같은 오류가 납니다. 소스코드와 에러메세지 작성드리며, 같은 환경에서 똑같은 소스코드를 작성했는데 어떻게 오류가 나는지 궁금합니다. 해결 부탁드립니다 ㅠㅠㅠ package kuke.board.comment.service; import kuke.board.comment.entity.Comment; import kuke.board.comment.repository.CommentRepository; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; import java.util.Optional; import static org.junit.jupiter.api.Assertions.*; import static org.mockito.BDDMockito.given; import static org.mockito.Mockito.*; @ExtendWith(MockitoExtension.class) class CommentServiceTest { @InjectMocks CommentService commentService; @Mock CommentRepository commentRepository; @Test @DisplayName("삭제할 댓글이 자식 있으면, 삭제 표시만 한다.") void deleteShouldMarkDeletedIfHasChildren() { // given Long articleId = 1L; Long commentId = 2L; Comment comment = createComment(articleId, commentId); given(commentRepository.findById(commentId)) .willReturn(Optional.of(comment)); given(commentRepository.countBy(articleId, commentId, 2L)).willReturn(2L); // when commentService.delete(commentId); // then verify(comment).delete(); } @Test @DisplayName("하위 댓글이 삭제되고, 삭제되지 않은 부모면, 하위 댓글만 삭제한다.") void deleteShouldDeleteChildOnlyIfNotDeletedParent() { // given Long articleId = 1L; Long commentId = 2L; Long parentCommentId = 1L; Comment comment = createComment(articleId, commentId, parentCommentId); given(comment.isRoot()).willReturn(false); Comment parentComment = mock(Comment.class); given(parentComment.getDeleted()).willReturn(false); given(commentRepository.findById(commentId)) .willReturn(Optional.of(comment)); given(commentRepository.countBy(articleId, commentId, 2L)).willReturn(1L); given(commentRepository.findById(parentCommentId)) .willReturn(Optional.of(parentComment)); // when commentService.delete(commentId); // then verify(commentRepository).delete(comment); verify(commentRepository, never()).delete(parentComment); } private Comment createComment(Long articleId, Long commentId) { Comment comment = mock(Comment.class); given(comment.getArticleId()).willReturn(articleId); given(comment.getCommentId()).willReturn(commentId); return comment; } private Comment createComment(Long articleId, Long commentId, Long parentCommentId) { Comment comment = createComment(articleId, commentId); given(comment.getParentCommentId()).willReturn(parentCommentId); return comment; } }
1. 현재 학습 진도 몇 챕터/몇 강을 수강 중이신가요? 5-4. 카카오 신입 개발자 블라인드 채용 1차 코딩테스트 - 2 어떤 알고리즘을 학습하고 계신가요? 여기까지 이해하신 내용은 무엇인가요? 2. 어려움을 겪는 부분 어느 부분에서 막히셨나요? W = "))()(" 케이스에 대해서, u와 v로 나누어야 하는데 u는 더이상 나눌 수 없는 균형잡힌 괄호 문자열이어야 된다고 했습니다, 하지만 해설로 제공해주신 풀이로 풀 때에는 W = "))()(" 가 애초에 균형잡힌 괄호 문자열이 아니기 때문에 u도 균형잡힌 괄호 문자열이 되지 않는다고 이해했습니다. (W의 문자열 길이가 홀수인 경우에는 )와 (가 모두 짝수 개수만큼 있을 수 없다고 생각했습니다.) 해당 문제의 원 링크에서 제공해주신 코드를 제출했을 땐 정답이 나오는데, 문제 설명 중에서 어떤 조건을 보고 W가 균형잡힌 문자열이 아닐 수도 있다는 것을 알수 있으며, u가 무조건 균형잡힌 문자열이 아니어도 된다는 것을 알 수 있는건가요? 코드의 어떤 로직이 이해가 안 되시나요? 어떤 개념이 헷갈리시나요? 3. 시도해보신 내용 문제 해결을 위해 어떤 시도를 해보셨나요? 제가 짠 코드와 제공해주신 해설 코드 중 차이점이 W를 u와 v로 나누는 부분에 있음을 알게되었고, 제 코드는 W가 무조건 균형잡힌 괄호 문자열인 경우에 대해서만 풀리게 되어있습니다. 에러가 발생했다면 어떤 에러인가요? from collections import deque def is_this_correct_parentheses(string): N = len(string) left_parentheses_num = 0 for s in string: if s == "(": left_parentheses_num += 1 if left_parentheses_num == N-left_parentheses_num: return 1 else: return 0 def is_this_balanced_parentheses(string): stack = [] stack.append(string[0]) string = string[1:] for s in string: tmp = s if len(stack) != 0 and stack[-1] == "(" and tmp == ")": stack.pop() else: stack.append(tmp) if len(stack) == 0: return 1 else: return 0 def u_string_processing(u): u = u[1:-1] tmp_u = "" for i in range(len(u)): if u[i] == "(": tmp_u += ")" else: tmp_u += "(" return tmp_u def get_correct_parentheses(balanced_parentheses_string): W = balanced_parentheses_string if W == "": return "" idx = 0 for i in range(1, len(W)): tmp_u = W[:i] if is_this_correct_parentheses(tmp_u) == 1: idx = i break if len(W) == 2: idx = 2 u = W[:idx] v = W[idx:] if is_this_balanced_parentheses(u) == 1: processed_v = get_correct_parentheses(v) return u+processed_v elif is_this_balanced_parentheses(u) == 0: tmp_string = "(" processed_v = get_correct_parentheses(v) tmp_string += (processed_v + ")") tmp_string += u_string_processing(u) return tmp_string return W 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다! 😊
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 작업형1 모의고사 풀어보기 6분 38초 지점 문의입니다. 위에서 2번의 a는 “data1-2.csv”를 저장하기 위해 생성한 아무 의미 없는 임시변수인지. 종전에 df로 저정하던 것을 a로 바꾼 이유가 있는지. 어떤 의미를 지니는지. 여기서는 (1)data1-2.csv의 데이터프레임을 의미한다고 보고 5번에 a는 “data1-2.csv”에서 임의로 선택한 ['s1','s2','s3','s4','s5','s6'] 컬럼명만 저장한 즉 (2)data1-2.csv에서 -> ['s1','s2','s3','s4','s5','s6'] 컬럼명만 남긴 결과값을 담은 임시변수명인지. 그럼 (1)과 (2)의 의미가 다른데 임시변수명 a로 동일하여 혼란스러워 가독성 문제도 야기되어 보입니다. 이어서 6번 (3)a=a[cols]에서 변수 a는 5번값 a['s1','s2','s3','s4','s5','s6'] 컬럼명을 담은 a와 무엇이 다른지? 같은 의미가 아닌지. 질문은 원데이터에서 1차 가공 후 2차 데이터를 뽑고 2차 데이터에서 3차 가공 후 3차 데이터를 뽑는다면 처음과 마지막에 저장하는 변수를 동일하게 할 것인가 달리 할 것인가. 무엇이 가독성이 좋은가에 관한 질문 같습니다. 일단 이러든 저러든 상관 없는 것이라면 무엇이 가독성이 좋은 변수 저장 방식인지 여쭤봅니다.
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 작업형1 모의고사 풀어보기 6분 지점에서 cols 변수에 대해서도 단순한 임시 변수가 아닌 일부 조건을 담은 변수인 경우에는 구분해서 설명이 되면 좋겠어요. 적어도 자신이 임의로 만든 변수와 외부에서 일정 조건을 포함한 변수를 가져다 쓰는 경우에는 이를 구분해줄 필요가 있습니다. 아니 구분해줘야 한다고 생각을 합니다. 이게 결과값을 저장하기 위해 임시로 폴더명을 정한 건지, 이미 고정된 의미를 가진 파일 명을 포함하고 있는건지 구분을 못하면 개념을 이해 못하고 있는 것이 됩니다. 전자에 해당한다고 판단하여 cols 라는 이름을 따라서 쓰지 않고 임의로 바꿀 경우에는 학습자가 혼란스러워지겠죠.
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 작업형1 모의고사 풀어보기 3분지점에서 cond를 설명하셨는데요 변수?라고 하면서 동시에 조건문?이라고도 하셨어요. 2가지 의미에 대한 정리된 개념을 듣지 못했습니다. cond라는 것이 변수고 함수( )는 아니지만 조건식을 만드는 함수의 성격도 동시에 지닌 것인지 여부가 궁금합니다. cond=a['target']==0 지점을 놓고 보면 cond는 위치상 결과값을 담기 위한 임시변수에 해당하지만 "설명"에서는 조건을 준다고~ 설명을 하여 이 코드를 작성하는 목적이 1) 저장하는 행위인지 2) 조건식을 부여하기 위한 것인지 3) 둘 다의 의미를 동시에 포함하고 있는지... 개념의 중첩현상으로 해석이 모호합니다. 뒤의 a[cond]와 a=a[cond]를 보면 cond가 임시변수임에는 맞는 것 같습니다. 정리를 부탁드립니다.