안녕하세요~ 3D 프린터 쪽에서 교수님 활약을 보다가 C++ 강의를 하시길래 듣고 있습니다. 전공은 원래 전자공학인데, 졸업 후에 아예 다른 일을 하고 있어서 취미로 배우고 있습니다. 20년만에 C++강의를 들어보는데 교수님이 잘 가르쳐주셔서 옛 생각도 나고 재밌습니다. ^^ 영상 강의 1:00 경에 나오는 int x(0); 라는 표현이 int x = 0; 과 같다고 하셨는데, 이게 int를 반환값으로 갖고 인자의 값이 0인 x라는 함수처럼 보이지 않을까요? 이렇게 함수를 호출하지 않겠지만, 오히려 가독성이 떨어지지 않나 생각되는데, 교수님께서 앞선 강의에서 이걸 더 선호하신다고 한 기억이 있어서 문득 궁금하여 어쭈어봅니다. 혹시 고전적인 문법인가요? 아니면 근래에 나오는 문법인가요? 감사합니다~ ^^
UI를 메인스레드에서 갱신하는 것은 대부분의 운영체제에서 동작하는 방식이기 때문에 이해는 했는데요. 이전 강의인 ImageDownloader에서 보면 이미지 다운로드할 때 downloadTask에서도 결국 클로저(콜백)를 통해서 이미지뷰에 이미지를 넣었잖아요. 그런데 메인스레드에서 갱신하지 않고 클로저에서 직접 이미지뷰에 접근해서 넣었는데 xcode에서는 알림이 뜬 것이 없었고 별 문제 없이 돌아갔습니다. 그런데 이번 강의의 UITableView.reloadData()는 문제가 있다고 나온거고요. 구글 검색해보면 이런식으로 비동기로 데이터를 받아오고 클로저에서 UI를 갱신해야 되는 경우에는 무조건 메인스레드에서 하는게 맞다고 나오기는 하는데요. ImageDownloader 예제에서는(imageview에 이미지 세팅) 왜 xcode에서 알림이 없는 것인지 궁금합니다. 이런 경고가 없다는 것이 안전하다는 것을 의미하는 것인지도 궁금하고요. 그냥 imageview의 경우에는 이미지만 잘못나올 뿐이니 괜찮을거야를 의미하는 것이고 테이블뷰의 경우에는 모든 데이터가 다 잘못나올 수 있으니(데이터가 아예 안나올 수도 있으니) 알림을 해준 것인지 궁금하네요. 혹시 알고 계신다면 답변 부탁 드리겠습니다. 좋은 강의 해주셔서 감사합니다. (__)
const obj = { a: 1, b: 2, } obj2 = obj 와 같은 코드가 있을 때 obj2는 obj를 참조하는 참조 변수이고, obj의 값을 따라간다는 것을 알고 있습니다. 대개 다른 프로그래밍 언어에서는 obj2를 변경할 경우에 obj에는 영향을 주지 않고 obj의 값이 obj2에 영향을 주는 것으로 알고 있었는데 자바스크립트에서 테스트해보니 obj2에서 값을 변경하거나 추가해도 obj에 똑같이 반영이 되는것을 확인할 수 있었습니다. (제가 잘못 알고 있는 것일수도 있습니다.) 그렇다면 참조형 변수를 사용하는 의미가 없지 않나요? 아니면 참조형 변수만을 독립적으로 사용할 수 있는 방법이 있는지 궁금합니다. 또한 예시 코드처럼 단순히 저런 참조형 변수를 사용한다면 어떤 목적에서 사용하는지도 알고 싶습니다.
강사님과 똑같은 방법으로 했습니다만 수정과 삭제 부분이 원활하게 이뤄지지 않고 있습니다. 수정을 하면 수정전 결과가 그대로 남아있고 수정을 완료한 결과가 화면 최하단부에 추가가 되구요 삭제를 하면 리스트 최상단 부분의 항목이 화면에서 사라집니다. 이것들은 모두 새로고침을 하면 정상적으로 작동이 되는데요. 수정하면 수정한 항목이 그 자리에 수정한대로 값만 변해있는 (정상적인 수정) 상태로 돼있고, 삭제하면 삭제한 항목이 없어져있고 상단부의 사라졌던 부분은 다시 원래대로 상단부에 있게 됩니다.(정상적인 삭제) 왜 이렇게 되는건지 원인하고 해결방안을 알려주셨으면 좋겠습니다. import { Injectable } from '@angular/core'; import { DatabaseProvider } from '../database/database'; @Injectable() export class ProfileProvider { private userArray : any; constructor(public DatabaseProvider: DatabaseProvider) { console.log('Hello ProfileProvider Provider'); this.DatabaseProvider.db.changes({ live : true, since : 'now', include_docs : true, attachments : true }).on("change",(change)=>{ this.checkChange(change); }) } checkChange(change){ let changed_doc = null; let changed_index = null; this.userArray.forEach((doc, index)=>{ if(doc._id === change._id){ changed_doc = doc; changed_index = index; } }); if(change.deleted){ this.userArray.splice(changed_index, 1); } else { if(changed_doc){ this.userArray[changed_index] = change.doc; }else{ this.userArray.push(change.doc); } } } 코드는 이런식으로 돼있구요 오탈자가 있는지 확인은 한 20번은 했습니다. 강사님께서 첨부해주신 첨부파일도 확인했을 때 이것과 차이가 있음을 확인할 수 없었습니다.
import pytube yt = pytube.Youtube("주소") videos = yt.streams.all() print("videos",videos) 강사님과 같이 했는데 콘솔에 오류가 나네요 ... 하루종일 해결하려고 노력중인데 모르겠어요 . pytube.exception.regemaxtcherror: regex pattern(yt.akamized.net~~~~~) had zero matches 라고 뜹니다 다른 유투브 영상들도 마찬가지로 안됩니다.. 확인좀 부탁드리겠습니다.
비박스랑 칼리 리눅스랑 다 설치 하고 nat 설정 까지 되있고 같은 아이피 대역인 172.30.1.xxx 대역인데 칼리 리눅스브라우저에서 비박스 아이피를 쳤는데 접속이 되질 않습니다 2016.1버전의 칼리 리눅스로 하면 좋은데 vmware 로 되있는것이 많이 없어서 2018.2버전 32비트로 설치 해서 사용중에 있습니다
안녕하세요 기선님 질문이있습니다. 운영중에는 spring.jpa.hibernate.ddl-auto 설정을 보통 validate 로 세팅할 것 같은데 보수라던지 기능 추가로 인해서 엔티티의 설정이 변하게 되는 경우 보통 어떻게 처리하나요 혹시 DB에 직접 접근하여 설정을 바꿔주나요?? 수업을 듣다 문득 궁금해져서 질문드립니다.!