강의 감사하게 잘 보고있습니다 ! 질문이있습니다. age?.let { ... }?: kotlin.run { } 에서 kotlin.run 은 일반 스코프함수의 run 과 다른건가요??? 그리고 뭔가 try catch 문의 catch문처럼 사용되어지고있는것같은데, try catch문과의 차이점이 무엇인가요?
강의와 관련있는 질문 을 남겨주세요. • 강의와 관련이 없는 질문은 지식공유자가 답변하지 않을 수 있습니다. (사적 상담, 컨설팅, 과제 풀이 등) • 질문을 남기기 전, 비슷한 내용을 질문한 수강생이 있는지 먼저 검색 을 해주세요. (중복 질문을 자제해주세요.) • 서비스 운영 관련 질문은 인프런 우측 하단 ‘문의하기’ 를 이용해주세요. (영상 재생 문제, 사이트 버그, 강의 환불 등) 질문 전달 에도 요령이 필요합니다. • 지식공유자가 질문을 좀 더 쉽게 확인할 수 있게 도와주세요. • 강의실 페이지 (/lecture) 에서 '질문하기'를 이용해주시면 질문과 연관된 수업 영상 제목이 함께 등록됩니다. • 강의 대시보드에서 질문을 남길 경우, 관련 섹션 및 수업 제목을 기재 해주세요. • 수업 특정 구간에 대한 질문은 꼭 영상 타임코드 를 남겨주세요! 구체적인 질문 일수록 명확한 답을 받을 수 있어요. • 질문 제목은 핵심 키워드를 포함해 간결하게 적어주세요. • 질문 내용은 자세하게 적어주시되, 지식공유자가 답변할 수 있도록 구체적으로 남겨주세요 . • 정확한 질문 내용과 함께 코드 를 적어주시거나, 캡쳐 이미지 를 첨부하면 더욱 좋습니다. 기본적인 예의 를 지켜주세요. • 정중한 의견 및 문의 제시, 감사 인사 등의 커뮤니케이션은 더 나은 강의를 위한 기틀이 됩니다. • 질문이 있을 때에는 강의를 만든 지식공유자에 대한 기본적인 예의를 꼭 지켜주세요. • 반말, 욕설, 과격한 표현 등 지식공유자를 불쾌하게 할 수 있는 내용 은 스팸 처리 등 제재를 가할 수 있습니다. 안녕하세요, 강사님. 강사님의 영상을 따라 도커와 쿠버 설치를 순차적으로 해보는데 버전 혼동이 온 것인지 install.sh파일을 bash후 kube 명령어를 쓰면 " see 'snap info <snapname>' for additional versions. " 라고 뜹니다. 혹시 제가 install.sh를 잘못 작성하였나 싶어 명령어를 확인해도 똑같은데(쿠버 홈페이지 명령어 복붙하여 사용했습니다.) 이 문제가 왜 발생하고 어떻게 하면 해결할 수 있는지 아신다면 알려주실 수 있을까요? 저는 강사님의 이미지 파일로 다운로드 하여 사용중인데 제 snap 버전은 이렇습니다.
강의와 관련있는 질문 을 남겨주세요. • 강의와 관련이 없는 질문은 지식공유자가 답변하지 않을 수 있습니다. (사적 상담, 컨설팅, 과제 풀이 등) • 질문을 남기기 전, 비슷한 내용을 질문한 수강생이 있는지 먼저 검색 을 해주세요. (중복 질문을 자제해주세요.) • 서비스 운영 관련 질문은 인프런 우측 하단 ‘문의하기’ 를 이용해주세요. (영상 재생 문제, 사이트 버그, 강의 환불 등) 질문 전달 에도 요령이 필요합니다. • 지식공유자가 질문을 좀 더 쉽게 확인할 수 있게 도와주세요. • 강의실 페이지 (/lecture) 에서 '질문하기'를 이용해주시면 질문과 연관된 수업 영상 제목이 함께 등록됩니다. • 강의 대시보드에서 질문을 남길 경우, 관련 섹션 및 수업 제목을 기재 해주세요. • 수업 특정 구간에 대한 질문은 꼭 영상 타임코드 를 남겨주세요! 구체적인 질문 일수록 명확한 답을 받을 수 있어요. • 질문 제목은 핵심 키워드를 포함해 간결하게 적어주세요. • 질문 내용은 자세하게 적어주시되, 지식공유자가 답변할 수 있도록 구체적으로 남겨주세요 . • 정확한 질문 내용과 함께 코드 를 적어주시거나, 캡쳐 이미지 를 첨부하면 더욱 좋습니다. 기본적인 예의 를 지켜주세요. • 정중한 의견 및 문의 제시, 감사 인사 등의 커뮤니케이션은 더 나은 강의를 위한 기틀이 됩니다. • 질문이 있을 때에는 강의를 만든 지식공유자에 대한 기본적인 예의를 꼭 지켜주세요. • 반말, 욕설, 과격한 표현 등 지식공유자를 불쾌하게 할 수 있는 내용 은 스팸 처리 등 제재를 가할 수 있습니다. 이제 막 수강하기 시작했는데요 수업중에 사용하신 도면을 어디서 다운 받을 수 있는 지 궁금합니다 도면 없이 실습을 해보려니 힘듭니다...ㅠㅠ
안녕하세요. 트레이닝 할 때 데이터셋 분류와 몇가지 파라미터에 대해서 이해가 잘 안되는 부분이 있습니다. 먼저 데이터셋을 train/val/test로 나뉘는데, 한 epoch 당 train 데이터셋을 시작으로 훈련이 진행될 것입니다. 그리고 한 epoch가 끝나면, 이제 검증을 하는데 이를 val 데이터셋으로 하는건가요? 그러면 test 데이터셋은 모든 epoch가 끝나고 하는 것인지요? 기본적인 regression은 train만으로 가능하다고 생각하는데, 왜 valid가 더 붙은건지 궁금합니다 하나의 훈련 예제를 돌렸을 때, 결과값이 Validation Loss: 4.6118, Validation Regression Loss 1.3363, Validation Classification Loss: 3.2755 막 이렇게 나오는데 Loss가 1이 넘는 값으로 나오는데 어떻게 4.6118을 해석해야하는지 잘 모르겠습니다 그리고 배치사이즈에 대해서도 궁금한 점이 있습니다. GPU 메모리 사이즈가 크면 배치사이즈를 크게 해도 된다고 찾아본 결과 알게됐습니다. 3-1. 배치사이즈가 크면 한 step(?)당 훈련하는 데이터 갯수가 많은 것이니, 한 번에 좀 더 많은 데이터를 참고할 수 있으니 가중치 설정에 유리하다고 보면 될까요? 3-2. 배치사이즈가 더 크면 훈련이 좀 더 빠르다고 보면 되나요? 3-3. 배치사이즈라는게 결국 6000개의 데이터셋이 있다면, 32로 잡는다면 (6000/32 + 1)번을 데이터로 나눠서 훈련시키는 것이라고 이해하면 되나요? 데이터로더를 할 때 num_workers는 훈련 결과에 큰 영향은 없는 것이죠? 저 파라미터가 높으면 처음에 데이터를 메모리에 적재하는데 소요되는 시간을 줄일 수 있는 건가요? 감사합니다
머신러닝을 처음 접하고, 완벽가이드 책과 강사님의 강의를 매우 잘 듣고 있는 수강생입니다.^^ 아직 머신러닝 유아 단계라 몸에 안익숙하긴 하지만, 궁금한게 있어 글 남깁니다! 타이나닉 생존자 예측 부분에서 (데이터 전처리 ->...->예측 수행 -> 평가)이런 흐름으로 코드를 진행하셨는데, 결론이 과연 제가 생각하는게 맞는가 갑자기 의문이 생겼습니다. 질문은 우선, 141P에 중간 단락 첫 문장에 생존자를 예측해보겠습니다. 라고 나와 있는데, 생존자 예측이 현재 사용된 ML 알고리즘의 00% 가 예측의 정도 인거 같은데, 그렇다면!! 가령 임의의 feature 값 은 다음과 같이 정의하고( passengerid = 1 , sex=여, cabin=c 등) , label 값은 미지수로 두었을 경우 '예측 수행 및 best 파라미터의 ML 의 알고리즘' 을 통해 임의의 값을 둔 탑승자의 생존여부 (label = survived)를 알 수 있다는 건가요? 아니면, 단순 datasets을 통해 예측 수행 및 best 파라미터의 ML 알고리즘의 정확성만 나타낼 수 있는 건가요? 이상입니다. 항상 좋은 강의 감사합니다~^^
안녕하세요. 주니어 개발자 백정호라고합니다. 강의를 완강하고 회사에서 웹 개발을 하다가 "인터페이스 1개, 구현체 1개" 존재하는 상황에서 클라이언트 쪽 클래스에서 DI 를 받기위해서 인터페이스 타입으로 받아야하는게 맞는데, 구현체로 DI 를 받는 코드가 있었고, ex) private final TestServiceImpl testService; 서버 기동시 에러가 발생해서 이러한 문제를 해결하기 위해서 정보를 찾아보니 JDK dynamic proxy 와 CGLib proxy 에 대해 궁금증이 생겼습니다. 서버 기동시 발생한 에러는 다음과 같았습니다. he bean 'testServiceImpl' could not be injected as a 'net.weave.test.service.TestServiceImpl' because it is a JDK dynamic proxy that implements: net.weave.test.service.TestService Action: Consider injecting the bean as one of its interfaces or forcing the use of CGLib-based proxies by setting proxyTargetClass=true on @EnableAsync and/or @EnableCaching. 그리고 문제 해결을 위해 참고한 내용의 블로그는 다음과 같습니다. https://gmoon92.github.io/spring/aop/2019/04/20/jdk-dynamic-proxy-and-cglib.html 해당 블로그에서 인터페이스가 존재하는 경우 JDK dynamic proxy 를 사용하고 인터페이스가 존재하지 않는 클래스의 경우 CGLib 을 사용한다고하길래 테스트를 해봐야겠다고 생각하고 아래와 같이 실시했습니다. 테스트 방식을 AnnotationConfigApplicationContext 를 사용하여 다음과 같이 했습니다. 1. @Configuration 을 적용한 TestConfig 의 bean.getClass 확인 결과 : class net.mayeye.site.config.TestConfig$$EnhancerBySpringCGLIB$$ff8bbd9f 2. TestService 인터페이스를 구현한 TestServiceImpl 의 bean.getClass 확인 결과 : class net.mayeye.site.module.test.TestServiceImpl 3. 인터페이스를 구현하지 않고 @Service 애노테이션을 사용하여 빈으로 등록된 TestServiceImpl 의 bean.getClass 확인 결과 : class net.mayeye.site.module.test.TestServiceImpl 여기서 궁금한게 위 블로그에 나온 설명대로라면 인터페이스가 존재하지 않는 경우 세 번째 결과에서 CGLib 을 사용했을거같은데 그러면 결과가 @Configuration 을 사용한 경우와 같이 뒤에 CGLIB 이 붙어야한다고 생각하는데, 제가 생각한 결과랑 다르게 나와서 이렇게 질문을 남깁니다. @Configuration 을 사용하는 경우에만 빈으로 등록될때 CGLib 을 사용하고 @Service, @Controller 와 같은 애노테이션의 경우에는 빈으로 등록될때 JDK dynamic 방식을 사용하는건가요?
아까 FileNotFoundError 질문했는데 경로에 공백이 있으면 안 되는 경우가 많다고 하셨습니다. 그런데 경로를 옮겨도 똑같이 오류가 생깁니다. 경로를 공백이 없는 영문 경로(바탕화면)로 옮겨도 오류가 나옵니다. 계정명도 영어(kim)입니다. 위치에 관계없이 절대 경로를 입력하면 오류가 안 나오는데 상대 경로를 입력하기만 하면 오류가 나오네요. 상대 경로를 입력하는 방식이 잘못된 건가요?
안녕하세요 강사님! 강의 정말 잘 들었습니다. 웹팩에 대한 개념이 없었는데, 강사님의 강의를 들으면서, 웹팩의 중요성을 깨닫고 기본적인 개념을 습득할 수 있었습니다. 우선 제가 마지막 실습을 진행하면서 버전 관련한 에러때문에 고생을 좀 하면서 몇가지 궁금한게 생겼습니다. webpack4 버전에 맞춰 terser plugin과 copy plugin의 버전을 최신버전으로 설치하니, 빌드시 에러가 발생했습니다. 그래서 버전을 각각 terser-webpack-plugin@4, copy-webpack-plugin@6으로 다운그레이드 시켜 인스톨하고, 강사님이 공지사항에 올려주신 copy-webpack-plugin 코드를 사용하니 빌드가 정상적으로 됐습니다. 여기서 궁금한게, 이제 webpack의 최신버전이 5버전이 되면서, 변경 사항이 많아졌고, 그에 따라 라이브러리에서도 버전업을 하면서 호환성을 맞추는 것으로 알고 있어서, 웹팩과 각 라이브러리의 버전을 안맞출 경우 에러가 발생하는 걸로 파악했습니다. 이에 따라 4버전과 5버전의 차이점이 큰지, 그리고 향후 프로젝트를 진행할 때, 5버전을 쓰는게 좋을지 4버전을 써도 되는지도 궁금합니다. 5버전으로 웹팩을 업그레이드하고 실습 프로젝트를 빌드하니 기존의 설정과 충돌나는 부분이 많을 것 같아서, 여쭤봅니다.
Gradle로 프로젝트를 만들고 싶어서 해보고 있는데 강의에서 만드신 Holoman클래스를 dependency에 추가하고 라이브러리에 나타내는게 잘 안되서... 저는 build.gradle에서 implementation 'me.jangjangyi:springboot-getting-start' 이렇게 했습니다. 강의에서 메이븐 dependency 설정 파일에서 me.whiteship과 keesun-spring-boot-starter를 의존성에 넣어셨더라구요. 1. 일단 jar파일 생성. 2. 새로운 프로젝트를 생성하여 gradle.build에 이전 프로젝트의 의존성을 추가했는데 .. 이 부분이 틀린거같은데 ㅠㅠ 어떤 부분이 틀렸는지 알 수 있을까요?ㅠㅠㅠ
강의에서는 res = bricks[0][1]로 하고 res = max(res,dy[i]) 로 처리하였는데, res = 0 으로 하고 if dy[i] > res : res = dy[i] 로 해도 같은 의미 코드인거죠? 전 강의문제 코드 참조해서 풀어서 통과되었는데, 혹시 운좋게 맞은건가해서 질문드립니다.
<details> 엘리먼트에 대해 질문이 있습니다. 아코디언식 UI부분에 details 엘리먼트를 사용해보려고 합니다. 그래서 div 엘리먼트를 사용해 구현할 때와 비교하여, details 엘리먼트의 이점을 생각해보았습니다. 1. details가 상세정보를 포함하는 영역이며, 내부의 내용이 상세 정보임을 명확하게 나타낸다. 2. summery 부분을 클릭하면 자동으로 상세정보 영역이 토글되므로, 별도로 click event를 설정할 필요가 없다. 이 외에 또 다른 이점이 있을까요?
DDD 자료를 찾아보면 강의 자료와 같이 Domain이 전체 레이어를 아우르고, Controller에서 Repository를 접근 하도록 설계되어 있습니다. 기초 강의에서는 Entity를 Controller에 넘기지 말라고 말씀 하셨고 그 이유도 충분히 이해 했었습니다. 지금 예제에서는 Controller가 Repository를 호출하게 된다면 Entity가 넘어가게 될텐데... 강의상 편의를 위해서 하신건가요? 실무에서도 빈번하게 사용하는 구조인가요? 추가적으로 DTO를 사용한다면, 아래 예제 계층에서 오고가는 DTO에 대한 표현(naming rule, suffix, package 등등)을 어떻게 하시는지 궁금합니다. - web <-> controller - service <-> repository
아래 처럼 에러가 나서 이리저리 찾아보았는데 ... 어떤 에러인지 node를 처음 배우는 저로서는 ... 해결하지 못했어요. 에러 메세지가 말하는 의미가 뭔지 설명 부탁드려요 ! search in google : Class constructor Hashtag cannot be invoked without 'new' at Sequelize.import https://github.com/sequelize/sequelize/issues/7840 https://github.com/sequelize/sequelize/issues/11270
module.exports = { User }를 하고 const { User } = required('./models/User')를 할 때 굳이 User를 객체에 넣은 후 구조 분해 할당으로 require 하는 이유가 있나요? 그냥 module.exports = User 를 하고 const User = required('./models/User')를 해도 잘 동작해서 궁금합니다. 두번째로 궁금한 것은 다른 몽구스 강의나 책을 보면 스키마를 만들 때 const { Schema } = mongoose; const userSchema = new Schema({ })를 하던데 강의는 그렇지 않고 index.js에서 new를 사용하는 것 같더라고요. 이것이 어떤 차이가 있고, 왜 같은 결과가 나오는지 자세히 설명 부탁드립니다 좋은 하루 보내세요 :)