안녕하세요 선생님 수치형 데이터(n_train, n_test)와 범주형 데이터(c_train, c_test)를 분리하여 처리하는 이유가 있을까요? 분리했다가 합치는게 직관적으로 잘 이해가 안되어서요. X_train[cols] 또는 X_test[cols]로 처리하면 안되나요? 아 그리고 train data만 fit_transform하고 test data는 transform만 하는 자세한 이유도 궁금합니다. 아직 학습 모델링 적용 전에 전처리 하는 과정에서도 학습을 하는건가요? (수치형만 학습, 범주형 중 원핫인코딩은 학습이 없는 것도 이유가 궁금합니다. ) 미리 감사합니다.
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
강의를 다시 보며 개인적으로 복습하던 중 만약 MySQL까지 배포를 완료한 후에 깃허브에 코드를 올리게 되면 Repo가 Public이라서 application에 설정해둔 저의 DB정보와 password도 함께 보여지게 될 텐데 이를 방지하는 방법이 있을까요? Private일 때 배포하는 방법은 강의 내용에 없어서 아쉽지만ㅠ Public일 때 깃허브에 application 설정을 gitignore을 통해서 push하지 않아도 배포하는 데에 있어서 지장이 없는지 궁금합니다!
앞에서부터 70% 데이터 중 views 컬럼의 3사분위 수에서 1사분위 수를 뺀 값을 구하시오 라고 한다면, df = df[:int(len(df) * 0.7)] 는 슬라이싱이라 끝 값이 포함 안되지 않나요,,? df2 = df.loc[:int(len(df) * 0.7)] 이렇게 되어야 하지 않나 해서 문의드립니다.
plugins { id 'java' id 'org.springframework.boot' version '3.3.5' id 'io.spring.dependency-management' version '1.1.6' } group = 'hello' version = '0.0.1-SNAPSHOT' java { toolchain { languageVersion = JavaLanguageVersion.of(21) } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' } tasks.named('test') { useJUnitPlatform() } 제 프로젝트에 "toolchain { languageVersion = JavaLanguageVersion.of(21)" 라고 기술했는데요. 제 시스템에 설치된 jdk버전이 꼭 21 버전이어야만 빌드가 되더라구요. 자바 버전이 17이면, jdk가 17이상만 되면 빌드가 된다고 어디서 들었던 것 같은데, 혹시 툴체인이랑은 별개의 내용인건가요?
class method와 static method는 각각 어떤 목적으로 사용되는건가요? 타 언어의 static class method와 비슷한 느낌인데, replit 에서 테스트 해보니 instance로도 해당 method 들을 call 할 수 있던데, 각 method type의 목적과 사용 예시를 알고 싶습니다.
Type hint를 작성했을때(특히 function의 args type과 return type) Type Checking을 언어단에서 해주는건가요? (강제성이 있는지? Interpreting 과정에서 Type Checking을 해주는건지?) 아니면 정말 순수하게 코딩 작업의 Hint 목적으로만 존재하는 문법인가요?
"1-9. [노하우] 기존에 열린 한글 프로그램을 파이썬으로 제어" 관련하여 질문드립니다. 질문1. 일코 님은 Jupyter Notebook을 사용하고 있는건지 아니면 파이참에 IPython을 설치한 것인지요? 일코님의 움짤 동영상에서는, 파이썬 콘솔 내에서 In [7]: In [8]: In [9]: 같은 식으로 보여지는데, 제 파이참의 파이썬 콘솔 내에서는 그러한 것이 보이지 않아서 궁금하여 여쭤 봅니다. 질문2. hwp.Run ("FileClose") 은 hwp.Clear() 와 어떻게 다른가요? 질문3. 움짤 동영상에서의 진행과정은 아래에 제가 기록한 내용이 맞나요? 혹시 잘못 이해한 부분이 있는지 확인 후 피드백 부탁드립니다. ■ 움짤 동영상 진행내용 분석 ※ 일코님의 움짤에 있는 코딩 툴을 파이참으로 추정하였으나, 확실치는 않음. 00:00:01 예문모음.hwpx 파일을 더블클릭하여 오픈한다. hwpx의 10/10 페이지가 보임 00:00:03 1/10 페이지로 이동한다. 00:00:06 ( 파이참 화면 중 에디터(Editor)에 위의 코드 전체(기존에 열린 한글 프로그램을 파이썬으로 제어)가 보임. ) 00:00:07 에디터(Editor) 화면을 최소화하고, 파이썬 콘솔 영역을 크게 확대함. 00:00:10 파이썬 콘솔에서, In [7]: 상태에서, hwp.Path 타이핑 후 엔터를 치니, 뭔가 오류 같이 빨간색으로 10줄 정도 뜬다. ※ 미리 열어놓은 hwpx 파일을 Path를 얻어오는데 실패한 걸 보여주는 듯 함. 00:00:12 상단 메뉴바 중 Edit를 클릭하는 것 같음. 그 즉시 에디터(Editor) 화면이 절반정도를 차지하도록 커짐. 파이참 화면 중 에디터(Editor)에, 위의 코드 전체(기존에 열린 한글 프로그램을 파이썬으로 제어)가 보임. 00:00:13 블럭지정해서 코드 복사(ctrl + c) 한 거 같음. 00:00:14 파이썬 콘솔에서, In [8]: 상태에서, 아까 복사해 둔 위의 코드 전체를 붙여넣고 엔터를 친 것 같음. 그 직후 별도의 빨간 텍스트가 안뜨는 걸로 봐서 정상적인 진행으로 보임. 00:00:15 In [9]: 상태에서, hwp.Path 타이핑 후 엔터를 치니, 흰색으로 Out[9]: 'C:\\Users\\Administrator\\Desktop\\예... 라고 뜨는 걸로 봐서, hwp.Path가 제대로 작동되는 것을 보여주는 듯 함. 00:00:19 에디터(Editor)와 파이썬 콘솔이 반반이던 화면에서, 에디터(Editor) 화면이 최소화 되고 파이썬 콘솔 영역이 크게 확대됨. 파이썬 콘솔 최상단 줄에 빨간색 텍스트로, pywintypes.com _error: (-2147023174, 'RPC 서버를 사용할 수 없습니다.' 라고 보이는 것은, 아까 In [7]의 결과가 보이는 것임. 혼동 주의 00:00:22 파이썬 콘솔의 좌측 패널 상단의 아이콘들 중 안경모양 아이콘을 클릭한 듯 함. 그 즉시 우측에 보이던 패널이 오른쪽으로 밀려 닫히며 안보임. 00:00:22 이 화면에서는, 아까 In [8]: 상태에서 코드 전체를 붙여넣고 엔터를 쳤다는 걸 다시 관찰 가능. 00:00:23 In [10]: 상태에서, hwp.Run ("FileClose") 타이핑 후 엔터를 치니, 예문모음.hwpx 파일이 닫히고, 화면에 빈 문서 1 만 보임. 00:00:30 In [11]: 상태에서, hwp.Quit() 타이핑 후 엔터를 치니, 빈 문서 1 마저도 닫히고 우측 절반 화면에 바탕화면이 보임. (화면 좌측 절반은 파이참 화면) In [12]: 상태에서, 커서가 깜빡이다가 움짤 동영상이 끝남. ※ 강의 개선의견도 드립니다. 초보자가 이번 챕터의 코드를 이해하려면 움짤 동영상의 도움이 크게 필요한데, 동영상의 진행이 너무 빠르고 동영상 프레임 간 이동도 불가능해서 결국에는 동영상으로 녹화한 후에 천천히 돌려보기를 여러 번 해서 파악하였습니다. 코드 자체의 난이도가 어려워서가 아니라 움짤 동영상을 천천히 단계적으로 보기가 어렵다는 이유로 인해, 이 코드의 용도와 실제 어떻게 사용하는 것인지 이해하기가 매우 어려웠습니다. 초보자를 위해 추후 강의 개선이 가능하시다면, 움짤 동영상을 훨씬 더 느리게 보여주시거나, 움짤 동영상에서 어떤 행위들이 이루어지고 있는 것인지 흐름이라도 짚어주시면 좋을 거 같습니다. 거창한 설명을 말씀드린 게 아니라 움짤 동영상이 뭘 보여주는 것인지의 핵심만이라도 텍스트로 추가해 주시면 매우 도움 이 될 거 같아요. 움짤에 대한 설명을 예를 들면, 움짤에서는, hwp문서를 수동으로 미리 열어놓은 후, 해당 코드를 적용하기 전에는 hwp.Path 명령어가 정상작동되지 않는 모습을 확인할 수 있지만, 해당 코드를 적용한 후에는 hwp.Path 명령어를 실행하면 hwp 파일 경로가 정상적으로 출력되는 모습을 확인가능합니다. 참고로, 움짤에서는 파이참에 IPython을 추가 설정한 환경에서 진행한 것입니다. cmd 창의 Python 콘솔로도 이 실습이 가능합니다 또는 불가합니다. 요 정도의 설명 추가만으로도 초보자도 헤매지 않을 거 같습니다. 동영상을 정말 엄청 많이 돌려보고 나서야, 움짤에서 일코님이 하셨던 거 비슷하게 제 파이참에서도 진행하는 것을 성공하긴 했는데, 알고보면 너무 쉬운 난이도에 비해서 불필요하게 헤맸던 과정이었던 거 같습니다. 왕초보여서 그런 점도 있겠지만, 핵심만 간단히 라도 짚어주시면 수강생의 이해에 매우 도움이 될 거 같아서요. 그럼 답변 부탁드릴게요. 감사합니다.
안녕하세요 다니엘 선생님, 좋은 설명해주셔서 수업을 즐겁게 다 들을 수 있었습니다. 수업을 마치며, 한가지 궁금한 점이 있어 질문 드립니다. 도커를 배우기 전 윈도우 운영체제에서 CUDA와 tensorflow를 설치하는 데 고생했던 기억이 있습니다. 자신의 GPU에 맞는 그래픽 드라이버와 이에 호환되는 CUDA버전, cudnn 버전을 맞춰야 하는게 그 이유였는데, 도커에서 이미지로 빌드한 컨테이너 안에서 돌린 keras예제는 잘 실행되었습니다. pytorch도 마찬가지였습니다. 어떻게 따로 버전을 맞추지 않아도 자연스럽게 환경이 맞춰진건가요? VM에서 사용된 Tesla T4 gpu가 특이한건가요? 전공자가 아니라 질문이 황당하게 느껴지실 수도 있겠지만, 정말 궁금해서 여쭤봅니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 네 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 네 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 네 [질문 내용] 안녕하세요! 책으로 공부 할 땐 어려웠는데 영한님 덕분에 편하게 공부 하고 있습니다. 감사합니다. 다름이 아니라 블로그에 배운 내용을 작성 하려고 하는데 쓰레드 섹션 2,3의 경우 영한님 코드가 노출 되어도 괜찮나요?.. 출처는 당연히 남깁니다! 섹션 2,3 경우 코드가 많지 않아서 이걸 블로그에 올려도 될까 고민입니다.
저는 자바스크립트로 Front, 그리고 간단한 서버(단순 CRUD 수준)를 개발하다가, 이제 막 JAVA 문법을 익혔습니다. 제 프로젝트의 서버 개발을 위해 Spring을 배우려고 하는데요. 스프링부터 배울지 이 강의를 먼저 수강후 스프링을 배울지 고민이 됩니다. 고민이 되는 주된 이유는 난이도 때문에 그렇습니다. 당장 필요한 서버 기능을 위해 스프링을 배울까 하다가도 결국 객체지향을 이해하는게 핵심이겠다 싶어 이 강의를 먼저 듣는게 낫겠다 싶기도 합니다. 그러나 제가 따라 갈 수 있을지 고민이 됩니다. 이미 강의 결제는 했지만, 어떤 과정이 효율적일지 판단이 안됩니다. 혹시 조언을 부탁드려도 될까요?
import java.util.*; public class Main { static int N, M, R; static int[] answer; static ArrayList<Integer>[] graph; static boolean[] visited; static int order = 1; public static void dfs(int idx) { visited[idx] = true; answer[order] = idx; order++; for(int i = 0; i < graph[idx].size(); i++) { if(!visited[graph[idx].get(i)]) dfs(graph[idx].get(i)); } } public static void main(String[] args) { Scanner input = new Scanner(System.in); N = input.nextInt(); M = input.nextInt(); R = input.nextInt(); answer = new int[N+1]; visited = new boolean[N+1]; graph = new ArrayList[N+1]; for(int i = 1; i <= N; i++) { graph[i] = new ArrayList<>(); } for(int i = 0; i < M; i++) { int x = input.nextInt(); int y = input.nextInt(); graph[x].add(y); graph[y].add(x); } for(int i = 1; i < graph.length; i++) { Collections.sort(graph[i], Collections.reverseOrder()); } dfs(R); for(int i = 1; i < answer.length; i++) { System.out.println(answer[i]); } } } 이렇게 구현한 경우, 틀렸다고 나오는데, ide로 돌리고 출력해보면 1 4 3 2 0 으로 정상 출력되는데.. 이유를 모르겠습니다ㅠㅠ! 선생님이 작성해주신 코드 answer[idx] = order; order++; 제가 작성한 코드 answer[order] = idx; order++; 이렇게해도, 제가 하나씩 디버깅해서 따라가보면, 정답과 맞게 나오는데, 틀렸다고합니다.. !
강사님과 똑같이 했는데 h2에서 member 테이블이 사라지고 결과 값엔 Table "MEMBER" not found; SQL statement 라고 나옵니다. 그래서 테이블 생성을 위해 @Table(name = "Member")로 생성을 시도했지만 생성 또한 되지 않습니다. 제가 원하는건 강사님과 똑같은 결과 값이 나오게 하려면 어떤 부분을 수정해야할까요?
무신사와 비슷하게 만들고 있는데 하나의 옷은 여러개의 카테고리를 가질 수 있잖아요 Ex) [상품] 버버리코트 - [카테고리]상의, 코트, 겨울 등등.. 그런데 하나의 카테고리 또한 여러개의 상품에 등록되는 거 같아요 Ex) [상품]아디다스 저지, 빨간색니트, 반팔티 - [카테고리]상의 이래서 N-M으로 연관관계 매핑이 되는 줄 알고 중간테이블로 둬서 1:N , N:1로 만들었습니다. 그런데 아이템을 넣고 확인해보니 중간테이블과 카테고리의 아이디가 동일하게 올라갈 수 밖에 없는 로직으로 구성되어 있습니다. 왜냐하면 옷 하나를 등록할 때 보통 많은 카테고리를 넣기 때문입니다. Item item = ItemRegisterDto.Request.toItemEntity(itemRegisterDto, findMember); itemRepository.save(item); Set<String> categoryNames = itemRegisterDto.getCategoryNames(); for (String categoryName : categoryNames) { Category category = ItemRegisterDto.Request.toCategoryEntity(categoryName); category.addItemCategories(item, category); categoryRepository.save(category); } public void addItemCategories(Item item, Category category) { this.itemCategories = new ArrayList<>(); this.itemCategories.add(ItemCategory.builder() .category(category) .item(item) .build()); } 중간테이블과 카테고리의 아이디가 동일하게 올라가므로 굳이 중간테이블을 쓰지 않고 옷과 카테고리를 1:N 양방향 매핑으로 연관관계를 만들면 될 거 같다고 생각했습니다. 만약, 옷과 카테고리를 1:N 양방향 매핑이 맞다면 하나의 옷은 여러개의 카테고리를 가질 수 있고 하나의 카테고리 또한 여러개의 옷을 가질 수 있는데 다대다관계가 아닌 이유도 궁금합니다. 마지막으로 어떻게 생각해야 연관관계 매핑에 있어서 잘 지을 수 있을까요?