혹 선생님께서는 정적 팩토리 메소드의 역할이 어디까지라고 생각하실까요? 저는 팩토리 메소드이기 때문에 1. 단순히 파라미터를 받아 생성자를 통해 인스턴스를 생성하는 것 뿐만 아니라, 인스턴스를 생성하기 위해 2. 파라미터 valiation을 확인하고, 인스턴스 생성을 위한 데이터들을 가공하는 과정 또한 포함해도 괜찮은 것이 아닌가 하였는데, 저와 다른 의견 중에서는 팩토리 메소드는 가공이 전부 완료된 값을 단순히 받아서 인스턴스를 new 하기만 해야 한다는 의견이 있더라구요. 가공은 서비스 클래스에서 수행하구요! 예를 들면 아래와 같은 메소드가 validation과 데이터 가공을 처리하는 팩토리 메소드의 예시입니다 :: public static SearchRequest from( AnotherRequest request) { 55 //AnotherRequest 클래스로부터 SearchRequest 클래스를 생성함. if(request.get고객리스트().size() > 9) { 56 //validation? 혹은 비즈니스 로직? throw new Exception(); 57 } 58 //아래부터 데이터 가공 List<Passenger> 새로운 고객리스트 = request.get고객리스트().stream() 59 .map(p -> new Passenger(p.get생일(), p.get성별()) ) 60 .collect(Collectors.toList()); 61 62 //인스턴스 생성 후 return return new SearchRequest(새로운 고객리스트); 63 } 또한 webClient를 이용해 외부로 API 요청을 보내고자 할 때, path 값을 관리하는 과정에서, 해당 path 값 ( ex. /a/b/xxx ) 을 반드시 webClient를 변수로 주입받아 실제 통신을 하는 class에서 가지고 있는 것과 혹은 통신 시 사용되는 request 데이터 dto 에서 그 변수 값을 가지고, 실제 통신을 하는 class에서는 request dto에서 getPath()를 통해 가져와 사용하는 것 어느 부분이 더 적절하다고 생각하실까요? 저는 2번의 경우 webClient를 사용하는 클래스에서 추가적으로 여러 개의 path에 대한 상수 변수를 가지고 있을 필요가 없고 getPath()라는 메소드를 통해서 request dto의 종류를 신경쓰지 않고 일관되게 가져올 수 있다는 점에서 2번이 더 괜찮다고 생각을 하였는데, 다른 의견에서는 패스 값은 통신에 사용되는 값이기 때문에 dto가 아닌 통신을 하는 클래스가 가져야 하는게 더 자연스럽다. 그래서 새 기능이 추가되었을 때 통신을 하는 클래스 ( webClient를 변수로 가진 ) 에 패스에 대한 상수변수를 추가하고 패스에 따른 통신 메서드를 추가하는 것이 더 낫다. 라는 의견이 있었습니다. 코드 스타일에 따라 정답은 없겠지만, OOP의 입장에서 선생님의 의견을 여쭙고자 합니다! 답변 해주시면 정말 감사하겠습니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx ) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG ) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 강의 12:45 에 작성되어있는 코드 오류 발생합니다.. WARN: HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) INFO: HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) hibernate 문제인 것 같은데 어떻게 해결할 수 있을까요? 전체 에러 코드입니다. h2 db에 값이 저장도 안되고 옵션 값 true로 설정되어있는데 sql문도 표시가 안됩니다. <property name="hibernate.show_sql" value="true"/> <property name="hibernate.format_sql" value="true"/> <property name="hibernate.use_sql_comments" value="true"/>
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요?예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 여기에 질문 내용을 남겨주세요. 강사님 내부 클래스 관련해서 질문이있습니다. 내부 클래스가 외부 클래스에 대한 숨은 외부 참조를 갖기 때문에 가비지 컬렉션이 제대로 이루어 지지 않아 메모리 누수가 발생할 수 있다. 제가 구글링을 해보니 내부 클래스의 단점으로 위와같은 내용이있던데 내부 클래스는 메모리 누수를 발생할 수 있어서 내부 클래스에서 외부 필드를 참조하지않는다면 클래스앞에 static을 붙여 정적 중첩 클래스를 사용하는걸 권장한다던데 이 내용이 사실인지 궁금합니다..!
수업을 듣다보면 함수나 모델이나 이런것들을 가져올때 nump, sklearn, sklearn.preprocessing 등...그리고 import 해오는 것들이 어디에 속해있는 것인지? 이런 것들이 외우려니 좀 많이 혼동이 되서 잘 안외어져서 질문드립니다. 시험장에서 좀더 효율적으로 잘 기억나게 하는 방법이 있는지요? 아니면 나올때 마다 다 외워야하는지요?
안녕하세요 일코님. 저번에 visible설정을 잘 알려주셔서 무척 도움을 받았습니다! 다름이 아니고 원래는 제가 mac에서만 작업을 했는데요. 이번에 hwp 강의를 구매하면서 삼성 노트북을 구매하여 쓰고있습니다. 그런데 이 시스템 환경변수가 매번 말썽입니다. vscode + anaconda + bash터미널을 쓰고있는데요. bash 터미널에 which conda 명령어를 입력하면 $ which conda /c/Users/samsung-user/anaconda3/Scripts/conda 이렇게 잘 인식을 하고 있는데요. conda 명령어를 입력하면 $ conda bash: C:\Users\samsung-usernaconda3\Scripts: No such file or directory samsung-user/anaconda3 로 인식되어야 하는데, samsung-useraconda3 로 이렇게인식이 되고 있네요. GPT랑 아무리 씨름을 해보아도 답이 안나오더라구요. GPT가 시킨것은 ~/.bashrc 파일과 ~/.bash_profile 파일을 수정하라는 것인데, 각 파일은 아래와 같이 수정했습니다. ~/.bashrc ~/.bash_profile 시스템 환경 변수 설정도 아래와 같이 했는데요... 혹시 뭐가 문제가 있는걸까요?? 부탁드립니다 ㅠㅠㅠ 늘감사합니다!!
[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
선생님 인프런에 있는 고급 크롤링 강의는 리뉴얼이 안되는 걸까요? ( 쉽게 처음하는 파이썬 고급 크롤링 [Scrapy, Selenium, Headless Chrome] ) 예전에 구매한 이 강의 들을 예정인데 강의 자체가 구매불가로 내려가고, 선생님이 자체 운영하는 사이트에서 새 강의가 올라온 걸로 보여서요. ㅠㅜ
mappedBy로 연관관계의 거울인 인스턴스에 수정을 가하면 데이터베이스에 변경 사항이 적용되지 않고 연관관계의 주인 엔티티를 수정해야 데이터베이스에 적용되는걸로 알고 있습니다. 하지만 Order 클래스의 orderItems가 mappedBy 속성으로 연관관계 거울로 설정되었는데 Order 클래스의 비즈니스 로직인 cancel 함수에서는 orderItem.cancel()을 호출하는데 이때 orderItem의 변경사항이 데이터베이스에 적용되나요? 그렇다면 mappedBy 속성으로 연관관계 거울 인스턴스라도 해당 인스턴스에 수정을 가하면 데이터베이스에 적용되는건가요? 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요.
ob = df.value_counts(normalize=True).sort_index() ob = ob.to _list() ex = [0.1, 0.05, 0.15, 0.7] 즉, 관찰값과 기댓값을 비율로 입력하여 관찰값 [0.2, 0.15, 0.1, 0.55] 기댓값 [0.1, 0.05, 0.15, 0.7] 으로 비교하면 안되나요? 비율은 같은데 통계량과 P-value 가 다르게 나오네요.
/usr/local/lib/python3.10/dist-packages/sklearn/linear_model/_logistic.py:458: ConvergenceWarning: lbfgs failed to converge (status=1): STOP: TOTAL NO. of ITERATIONS REACHED LIMIT. Increase the number of iterations (max_iter) or scale the data as shown in: https://scikit-learn.org/stable/modules/preprocessing.html Please also refer to the documentation for alternative solver options: https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression n_iter_i = check optimize_result( 계속 이 문구가 뜨는데, 문제가 있는 걸까요??
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] Querydsl이 잘 작동하는데 (QHello 잘 만들어짐, 테스트 잘 성공함) 인텔리제이에서 빨간줄이 뜹니다. (아래 캡쳐 참고) 어떻게 해결할 수 있을까요?ㅜㅜ 참고로 annotation processors 설정은 이미 enable된 상태입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 어플리케이션 아키텍쳐 강의 내용 설명해주시면서, 영한님께서는 필요에 따라서 Controller 계층에서 Repository 계층에 직접 접근(Service계층을 거치지 않고)하는 것도 유연하게 허용하신다고 하셨는데요. 이런 경우에는 @Transcational 어디 계층에 적용하시는지와 이유가 궁금합니다. 제가 생각해보기로는 Controller 계층은 비즈니스 로직을 처리하는 계층의 개념은 아니니, Repository에 @Transactional을 다는게 적절해보이는데요. 이러면 Controller 계층에서 직접 접근하는 Repository 클래스들만 @Transactional 어노테이션이 붙어있고 Service 계층을 통해서 사용하는 대부분의 Repository들은 @Transactional 이 안 붙어있게되어(Service 계층에 @Transactional을 붙이니) 일관성이 조금 적어지지 않을까 하는 생각도 들기는 하네요.