9장 추천시스템부터 듣고있는데 전에는 1.0.2버전 설치했다가 강의 들으면서 따라하는 도중 from sklearn.feature_extraction.text import CountVectorizer 가 임포트 안되는 오류가 계속되어서 scikit-learn 삭제 > 버전 지정 안하고 다시 설치 > 정상 작동 에러가 사라져서 좋긴하지만 다른 질문들을 찾아보니 버전은 강의대로 따라가는게 좋다고 하셔서 1.6.0 버전 사용여부 여쭤봅니다.
프로그래밍 시작하기 : 도전! 45가지 파이썬 기초 문법 실습 (Inflearn Original)
1. 질문하시기 전 유사한 질문 이 있는지 검색을 먼저 부탁드려요! 전체 소스코드 를 올려주시면 답변을 빠르게 드릴 수 있어요!(글보다 빨라요) 기초적인 질문은 이미 검색해보시면 사례가 많이 있어요! 문법적인 궁금증은 먼저 구글 검색을 통해서 레퍼런스(메뉴얼)을 읽어보시고 해결하시면 실력 향상 100% 너무 잦은 질문이나 강의와 관련 없는 질문 은 가급적 자제 부탁드려요 ㅠ.ㅠ 2. 답변이 다소 늦을 수도 있어요! 일반적인 근무시간(9 TO 6) 안에는 답변을 드리도록 노력하고 있어요! 문법적인 질문은 먼저 검색을 통해 해결해 보세요! 정확하게 질문해주시면 정확한 답변을 받으실 수 있어요! 늦더라도 꼭 응답은 드리고 있으니, 먼저 검색을 통해 해결해 보세요!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. "회원 도메인과 리포지토리 만들기" 강의까지 듣고 궁금한 점이 있어 질문 남깁니다~ HelloController와 같은 컨트롤러 클래스나 Repository 인터페이스의 구현체인 MemoryMemberRepository 클래스 전부 객체가 다 생성되고 동작한다고 보면 될까요? 그렇게 생성된 객체들을 스프링 빈이 관리한다고 보면 될까요?
public class SessionManagerV6 { private List<SessionV6> sessions = new CopyOnWriteArrayList<>(); public void add(SessionV6 session) { sessions.add(session); } public void remove(SessionV6 session) { sessions.remove(session); } public void closeAll() { for (SessionV6 session : sessions) { session.close(); } sessions.clear(); } } session들을 담는 List로, ArrayList 대신에 동시성 컬렉션인 CopyOnWriteArrayList을 사용하고, 각 메소드에서 synchronized 키워드를 제거하는 방식도 유효한가요? 만약 유효하다면, 기존 방식(synchronized )과 새 방식(동시성 컬렉션) 중 어느 방식을 언제 사용하는 것이 적절한가요?
select * from article where board_id = 1 order by article_id desc limit 30 offset 1499970; 해당 SQL 문을 실행하면 선생님이 설명 해주신 것 처럼 먼저 Secondary Index 에서 offset 0 부터 탐색이 일어나는데요. Secondary Index 에서 offset 0 조회 한 다음 Clustered Index 에서 데이터를 찾는다고 해주셨습니다. 이러한 과정을 offset 1499999 까지 반복 과정이 발생 하는데 왜 Secondary Index 에서 탐색 후 Clustered Index 에 데이터를 찾는 과정이 필요한지 궁금 합니다. 그러니깐 Secondary Index 에서만 일단 1499999 번 탐색한 다음에 Clustered Index 을 통해 그 외 데이터 (select *) 을 가져오면 되는것이 아닌가요? 제가 아직 인덱스에 대한 지식이 부족해 이런 질문을 한건데요ㅠ 다시 정리해서 질문 드리자면 왜 Secondary Index 을 통해 offset 순번 1499999 까지 도착 하지 않았는데 불필요하게 Clustered Index 까지 탐색하는가 입니다!
안녕하세요 강사님 새해 복 많이 받으세요! 개인적으로 궁금한 점이 있어 질문을 드리게 되었습니다. 멀티 모듈 및 멀티 모듈 셋팅에 관한 지식을 공식 문서를 보시고 영어를 해석 하거나 혹은 번역 기능을 활용하여 직접 테스트를 하시면서 습득하셨는지 아니면 도서나 타 강의로 습득을 하셨는지 질문 드리고 싶습니다! 간혹 다른 타 강의에서 질문을 드릴 때 공식 문서 링크를 주셔서 공식 문서를 보았는데 봐도 내용이 너무 방대하고 어떻게 해야 할지 잘 모르겠더라고요 그러면 그냥 실력이 부족한 것일까요? 아니면 제가 제대로 시간을 제대로 들이지 않고 탐독하지 않은 것일까요? 제가 해당 강의에서 개인적으로 느끼기에는 멀티 모듈 및 세팅 방법, 디테일 한 내용이(apply piugin 설정, bootJar.enabled=true, jar.enabled=true 같은) 일반적인 지식이 아닌 생소한 지식이라고 생각을 했습니다.(일반적인 지식이었다면 비전공자여서 그랬나 봅니다 ㅠㅠ...) 비전공자로서 개발 공부를 하면서 느끼는거지만 디테일한 내용이나 검색으로 잘 찾아지지 않는 지식들과 새로운 지식들은 어떻게 습득해야할지 방법을 잘 모르겠어서 계속 헤메는 느낌이 있어 질문 드립니다!
안녕하세요. 22분경, 변경감지 관련해서 질문드립니다. 순서도를 보면 flush가 두번 있어서 이 부분이 이해가 되지않아서 질문드립니다. 비슷한 다른 질문들을 찾아봤지만 이해가 되지않아서 추가적으로 질문드립니다. 1. 전체적으로아래와 같이 이해하면될까요? JPA는 트랜잭션을 커밋할때 flush()가 호출된다. 영속성컨텍스트의 엔티티와 스냅샷을 비교한다. UPDATE SQL을 생성해서 쓰기지연SQL저장소에 SQL쿼리를 저장한다. 쓰기지연SQL저장소에있는 쿼리를 flush를 통해 쿼리를 데이터베이스에 전송한다. 트랜잭션이 커밋된다 2.또, 추가적으로 위와 같이 이해하게 되면, 트랜잭션을 커밋할때 flush를 두번 호출하는것일까요? 두 flush가 어떤 차이인지 궁금해서 질문드립니다. 3.4번에 있는 flush는 쓰기지연SQL저장소에 UPDATE쿼리가 있어서 flush하는것으로 보면 될거같은데, 첫번째 flush는 왜 flush를 해주는것인지 이해가 되지않아 질문드립니다..
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 5:30초 에서 order.getOrderItems().stream()하는 부분에서 orderItem에 있던 Item들에 값이 들어가는것으로 알고있는데, 이는 @Transactional 이 있는 Service계층이 아니라 Repository계층에서 불렀기 때문에 프록시 객체가 들어간것이 맞나요? @Transactional 어노테이션이 없는 계층에서 em.find()나 createQuery()같은 메소드를 호출해도 되는지와 왜 트랙잭션이 없을때 item에 대한 값을 얻을수있는지 궁금합니다.
코드 순서에 궁금한 점이 있어 질문드립니다 ! class HamBurger { String name; public HamBurger(String name) { this.name = name; } public HamBurger() { this("햄버거"); } } 이렇게 작성되는 코드와 class HamBurger { String name; public HamBurger() { this("햄버거"); } public HamBurger(String name) { this.name = name; } } 이렇게 작성되는 코드가 구동에 있어 차이가 발생하는지 궁금합니다 ! 코드는 위에서부터 순서대로 진행된다고 알고 있어서 첫 번째 방법의 코드가 더 맞는 방법이 아닌지 생각이 되는데, 선생님께서는 두 번째 방법으로 작성하셔서 차이점 설명 부탁드리겠습니다 ..! 추가적으로, // 햄버거 메소드 String[] ingredient = {"양상추", "패티", "피클"}; public void cook() { System.out.println(this.name + "를 만듭니다."); System.out.println("빵 사이에 들어가는 재료는?"); for (int i = 0; i < ingredient.length; i++) { if (i == 0) { System.out.println("> " + ingredient[i]); } else { System.out.println("+ " + ingredient[i]); } // 치즈버거 메소드 public void cook() { super.cook(); System.out.println("+ 치즈"); } // 새우버거 메소드 public void cook() { super.cook(); System.out.println("+ 새우"); } 퀴즈를 이렇게 풀어서 정답과 동일하게 출력은 되었는데, 혹여나 풀이 방법에 틀린 점이 있거나 개선할 점이 있는지 피드백 부탁드립니다 :)
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] Contoller에서 Service를 의존하는게 아니라 Repository에 의존해도 되나요?? 예제라서 단순화 한건지 아니면 다른 프로젝트에서도 동일하게 Controller에서 Repository로 접근해도 되는지 궁금합니다. 이전에 비슷한 질문을 본것같은데 답변을 못찾아서 질문 남깁니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 빌드,실행,배포->Gradle에서 Gradle을 intelliJ IDEA로 바꾸었습니다. 근데 원래 Gradle에서는 중단 실행 버튼(HelloSpringApplication.java)만 누르면 코드를 바꾼대로 웹브라우저가 업데이트가 되었었는데, intelliJ로 바꾼후에는 코드를 바꿔주어도 out이 업데이트 되어야만 웹브라우저가 업데이트 되는것으로 확인되었습니다. 하지만 out폴더에 있는 파일은 중단 실행 버튼(HelloSpringApplication.java)만으로 업데이트가 안되고 프로젝트 다시빌드를 해주어야만 업데이트가 되는데 왜이런지 알고싶습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 자주하는 질문 링크도 모두 확인해보고 혼자 서치도 해봤지만 해결이 안되어 남깁니다. 혹시 인텔리제이 커뮤니티버전인게 문제인가 싶어 학생 라이선스로 울트라버전까지 다운받아봤지만 해결이 안됩니다. 스프링 관련 어노테이션도 전혀 인식하지 못하는 것처럼 보입니다. 런 버튼은 당연히 활성화가 안되고요 우선 자바 버전은 아래와 같습니다. openjdk version "21" 2023-09-19 LTS OpenJDK Runtime Environment Temurin-21+35 (build 21+35-LTS) OpenJDK 64-Bit Server VM Temurin-21+35 (build 21+35-LTS, mixed mode, sharing) 자주하는 질문이나 검색을 통해 보면, build tool 내의 gradle을 설정하라는 것처럼 보이는데, 저에게는 gradle 선택지가 아예 존재하지 않습니다. 아래 사진처럼요. ./gradlew bootRun 을 터미널에 직접 쳐서 정상적으로 실행시키고 있었으나 너무 불편합니다. 혹시 해결방법이 보이신다면 도움 부탁드립니다.
학습을 하다보니 FastAPI 문서에서 autoflush=False을 권장한다는 것을 알게 되었습니다. 헌데 이번 프로젝트에서는 해당 설정을 사용하지 않은 것으로 알고 있습니다. 기본 설정이 autocommit=false, autoflush=true로 알고 있는데, 해당 옵션을 그대로 이번 강의 프로젝트에서 사용된 것으로 알고 있습니다. 혹시 autoflush=False를 적용해야 하는 경우가 있는 것인지, 다른 이유가 있는 것인지를 알고 싶어 질문을 드리게 되었습니다.
N = int(input()) temp = 0 for i in range(2, N//2 + 1): temp += (N//i) * i - i print(temp%1_000_000) 안녕하세요! 강의중에서 2의 제곱 수를 구하는 아이디어를 바탕으로 위 코드와 같이 작성하였습니다. 처음 시도에선 range를 2에서 n+1까지 돌렸으나 시간초과라는 답을 받았고, 다음 시도에선 입력에 100이 주어졌을 경우에 51부터는 하나의 경우만 나오니 저런 식으로 범위를 줄이고 제출을 했으나 계속 시간초과라는 답만 받고있습니다.. 저의 생각에서 놓친 부분을 알고자 이렇게 문의드립니다..!(그리고 pypy3으로 제출했을 경우에는 맞다고 나옵니다..!)
[AI 실무] AI Research Engineer를 위한 논문 구현 시작하기 with PyTorch
안녕하세요, 수업 정말 잘 들었습니다 🙂 하나 궁금한 건, vgg19 의 features 및 classifier 를 확인해보니, """ (features): Sequential( (0): Conv2d(3, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (1): ReLU(inplace=True) ... (34): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (35): ReLU(inplace=True) (36): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False) (classifier): Sequential( (0): Linear(in_features=25088, out_features=4096, bias=True) (1): ReLU(inplace=True) """ 이렇게 생겼더라구요. 입력 이미지의 원래 width, height 를 X 라고 했을 때, vgg19 에서 다섯 번의 maxpool2d 및 Conv 레이어를 거치며, 최종적인 width, height, channel 은 X/(2^5), X/(2^5), 512 이 될 것 같고, 이게 Fully Connected Layer 의 입력 unit 25088 개와 같은 숫자가 되려면, X = 224 가 맞는 것 같은데, 강의 코드에서 512 로 설정하신 이유가 특별히 있으실까요?
[AI 실무] AI Research Engineer를 위한 논문 구현 시작하기 with PyTorch
안녕하세요, 수업 정말 잘 들었습니다 🙂 하나 궁금한 건, loss.py 에서 ContentLoss, StyleLoss 를 정의하고, 이후 해당 클래스들을 train.py 에서 불러온 다음 total_loss 를 계산하였는데. 혹시 loss.py 에서 total_loss 의 클래스도 구현하는게 정석적인 건지 아니면 이처럼 train 과정에서 새로운 loss term 을 하이퍼파라미터와 함께 초기화하여 사용하는게 더 일반적인 건지 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요 여기서 if문에만 return을 사용한 이유는 조건을 만족할 경우 아래까지 내려가지 않고 메서드를 끝내 성능향상을 위함인가요?
안녕하세요 ! 인스턴스 변수 및 메소드 / 클래스 변수 및 메소드 내용 공부 중 이해가 쉽게 되지 않는 부분이 있어 질문드립니다 ! 인스턴스 변수 : 객체마다 다르게 설정이 필요한 변수 (수업 내용 중 블랙박스 이름, 용량, 색상 등) 클래스 변수 : 선언하는 클래스 내 모든 객체가 동일하게 설정된 값 (수업 내용 중 블랙박스 자동 신고 기능) 인스턴스 메소드 객체마다 별도로 입력 받을 파라미터가 있고, 그에 따라 다른 결괏값 출력이 필요한 경우 사용 (수업 내용 중 블랙박스 내 영상 종류 별 저장된 수) 반환값의 자료형이 void 인 경우 출력값이 필요(System.out.println) / 반환값의 자료형이 void 가 아닐 경우 반환값이 필요(return) 반환값의자료형 메소드명(파라미터) { 출력값 } 클래스 메소드 별도로 입력 받을 파라미터가 필요 없고, 선언하는 클래스 내 객체 전체에 동일한 결괏값 출력이 필요한 경우 사용 (수업 내용 중 블랙박스 서비스 센터 연결) 클래스 변수 및 메소드는 객체 단위가 아닌 클래스 단위로 불러오는 것을 권장 static 반환값의자료형 메소드명() { 출력값 } 이렇게 이해했는데 .. 제가 이해한 내용이 맞는지, 잘못 이해한 부분이 있거나 추가적으로 알아야 할 부분이 있다면 피드백 부탁드립니다 ! 그리고 추가적으로 궁금한 점이 있습니다. 수업 내용을 보면, 다른 클래스에서 변수 혹은 메소드를 가져 올 경우 public 이 없어도 가져올 수 있는 것으로 보입니다. private 설정만 하지 않는다면 굳이 public 이 없더라도 다른 클래스에서 가져오는 것이 상관 없는 것인지 궁금합니다 :)