안녕하세요 강사님. 완강하고 코틀린을 계속 공부하다가 궁금한 점이 생겨 질문 드립니다. run 의 경우에는 아래와 같이 확장함수가 아닌 일반적인 메소드의 형태로 정의된 것이 있는 것을 발견했습니다. 그래서 메소드를 작성할 때 run 을 사용해서 작성할 수도 있겠다는 생각이 들더라구요. 예시로 Int 의 확장함수로 거듭제곱을 수행하는 pow() 라는 메소드를 작성할 때 보통은 다음과 같이 작성하겠죠. fun Int.pow(n: Int): Long { var result = 1L repeat(n) { result *= this } return result } 그런데 위의 run 을 사용해서 아래처럼 작성할 수도 있었고 두 경우 모두 같은 결과를 반환하는 것을 볼 수 있었습니다. fun Int.pow(n: Int) = run { var result = 1L repeat(n) { result *= this } result } 그러면 메소드를 작성할 때 두가지 방법 모두 사용할 수 있다고 생각되는데, 어느쪽을 사용하는 것이 좋은 방법일지 강사님의 의견을 듣고싶어서 질문 남겨봅니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요. 강의 잘 듣고 있습니다. JPA를 쓸 때 persist()를 호출하면 1차 캐시에 엔티티가 저장되고(영속엔티티), insert쿼리가 쓰기지연 DB에 입력되는 것으로 알고 있는데요. 이때 영속된 엔티티의 필드값을 바꾸게 되면 flush될 때 변경감지가 동작해서 update쿼리를 쓰기지연 저장소에 넣게 된다고 알고 있습니다. 이제 질문 드리겠습니다. 1) 우선 제가 이해한 persist와 flush의 동작이 맞을까요? 2) 맞다면, 비용측면에서 쓰기지연DB에서 DB로 값을 밀어넣어 줄 때 insert, update쿼리 따로 나갈게 아니라, insert쿼리(수정된 필드값까지 고려된 insert문)만 나가면 더 효율적일 것 같은데 왜 insert와 update가 나가는건가요? 하이버네이트 특성이라면 왜 그렇게 동작해야만 하는지..알려주실 수 있을까요?
addForm.html에서 <form action="item.html" th:action th:object="${item}" method="post"> <hr class="my-4"> <div class="row"> <div class="col"> <button class="w-100 btn btn-primary btn-lg" type="submit">상품 등록</button> </div> <div class="col"> <button class="w-100 btn btn-secondary btn-lg" onclick="location.href='items.html'" th:onclick="|location.href='@{/form/items}'|" type="button">취소</button> </div> </div> </form> 상품등록은 type="submit" 취소는 type="button" 을 하셨길래 그 차이가 궁금하여 구글링을 해봤더니 버튼은 타입 명시가 없다면 기본적으로 'submit' 처리가 되며 'submit'은 새로고침을 하게 한다. 라는 것을 알게되었습니다. 그래도 잘 이해가 안되 상품등록버튼을 type="button" 으로 바꿔봤더니 작동이 되지않았습니다... <기존코드> <button class="w-100 btn btn-primary btn-lg" type="submit">상품 등록</button> <변경 코드> <button class="w-100 btn btn-primary btn-lg" type="button">상품 등록</button> 그래서 개발자도구를 보니 type="button"을 하면 POST가 아닌 GET으로만 보내고 있는 것을 확인했습니다. <정리> form 속성 중 method가 post인데 상품등록버튼을type="submit"에서 type="button"으로 바꾸면 POST가 GET으로 바뀌는 이유가 궁금합니다.
안녕하세요. 이제 앞부분 수강하고 있는 초보입니다.. 저항에 위치에 대해 질문 드릴꼐요. 강의해서 저항은 부품을 보호하기 위해 앞에 두는 보호장치라고 하셨는데요.. 입문 강의의 회로도를 보면 전원 -> LED 전구 -> 저항 -> GND 순으로 저항이 LED 다음에 붙어있는데 이부분이 이해가 되질 않습니다... 다른 자료를 찾아봐도 어떤건 앞에 있고.. 어떤건 뒤에 있는게 있어서.. 차이를 알고 싶습니다.~ 전자회로 지식이 없다보니 햇갈리네요~.. 감사합니다~
안녕하세요 제로초님, Splash Screen을 설정하는 과정 중에 안드로이드에서 Splash Screen이 두 개가 나옵니다. Default Splash Screen과 제가 만든 Splash Screen, 이렇게 두 개가 나오는데 Default Splash Screen을 나오지 않게 하는 방법을 알고 싶습니다. 아래와 같은 순서로 앱이 실행됩니다.
안녕하세요 선생님! 덕분에 정말 뷰 재미있게 배우고 있습니다. 한가지 궁금한점은 모든 페이지에는 헤더가 동일하다가 로그인/회원가입에서만 헤더가 다르거나 완전 다른 레이아웃일 경우에는 아래 중 어떤 것이 가장 적합한지 궁금합니다. router 를 사용한 후 v-if 등을 활용해서 header를 숨김처리 router 사용 / header 컴포넌트에 slot 등을 활용해서 숨김처리 로그인/회원가입과 같은 특수한 페이지만 router 사용하지 않고 a링크로 url 이동 어떤것이 가장 적합할까요? 또한, 30페이지 정도는 a헤더를 사용하고 40페이지 정도는 b헤더를 사용해야하는 경우에는 어떤것이 적합한지 궁금합니다!
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
13분 22초에 나오는 플레이어 스탯 관련 질문입니다. 저 같은 경우는 ebp레지스터의 위치를 기준으로 값을 할당하는게 아닌 아래의 내용처럼 eax레지스터의 주소에 +4, +8한 값을 이용하여 변수에 값이 할당되는데요 제 컴퓨터는 왜 eax레지스터를 이용하였는지 궁금합니다. ret.hp = 100; 00CC245E mov eax,dword ptr [ret] 00CC2461 mov dword ptr [eax],64h ret.attack = 10; 00CC2467 mov eax,dword ptr [ret] 00CC246A mov dword ptr [eax+4],0Ah ret.defence = 2; 00CC2471 mov eax,dword ptr [ret] 00CC2474 mov dword ptr [eax+8],2
안녕하세요. 항상 좋은 강의 해주셔서 감사합니다. 한 가지 질문드리고 싶은 것이 있습니다. 기선님께서 강의에서 public 가변 필드를 노출하면, 언제 어디서 값이 바뀔지 모르기 때문에 객체의 복사가 필요하고 그에 따라서 성능 저하가 발생할 수 있다고 말씀을 해주셨습니다. 그런데 private 필드로 선언하더라도, public setter나 필드의 변경 지점을 제공한다면 동일한 문제를 내포하는 것이 아닌가요? 예를 들어 아래와 같이 코드를 작성한다면, doSomething에서도 Setter가 열려있기 때문에 doSomething 내부에서 값을 복사해서 쓰거나, main 내부에서 값을 복사해서 써야하는 것은 매한가지 인 것 같습니다. public static void main(String[] args) { TestClass testClass = new TestClass(1,1); System.out.println(testClass.getT()); doSomething(testClass); System.out.println(testClass.getT()); } private static void doSomething(TestClass testClass) { testClass.setT(10); } 기선님께서 말씀하셨던 의도는 setter() 역시 공개되지 않은 상황일 때를 말씀하실까요?
설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
안녕하세요 맛비님. 항상 좋은 강의 잘 보고 있습니다. 제가 맛비님 강의를 들으면서 실습을 다 진행해봤습니다. 항상 vivado에서 ip를 만들고 zynq보드와 연결해서 xsa파일로 export를 진행하고, vitis에서 c코드를 build하고 실행하는 식으로 진행을 했는데, 잘 작동하던 vitis의 run과정에서 다음과 같은 에러가 발생했습니다. 분명 hardware로 run을 하면 이런식으로 다 완료가 되고 보드에 초록불까지 들어오는데 해당 에러가 발생합니다. 어제까지만 해도 잘 되던 보드가 왜 이러는지 알 방법이 없습니다. 유사한 에러들이 있나 구글링을 해봤는데 명확한 해답보단 보드 자체의 하드웨어 문제인듯 하니 run 설정에서 reset을 해보라는 등의 애매한 답변만 있는듯 해서 혹시 맛비님이 해답을 알고 계신다거나, 혹은 하드웨어 초기화방법같은 것을 알고계신다면 알려주시면 감사드리겠습니다. 추가로 말씀드리면 해당 에러를 해결해보려고 lab9과정을 다시한번 따라해봤는데 zynq보드와 led ip를 합치고 address 맵을 보니 이전과 다르게 나오고 뭔가 주소 체계가 망가진? 그런 느낌이었습니다. 또한 보드의 power를 on/off도 많이 해보고 혹시 jtag 점퍼 문제가 아닐까 해서 계속 확인해봤는데 해당 문제는 아닌듯 했습니다. 도움주시면 정말 감사드리겠습니다. 감사합니다. ================= 현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ) 강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등) 이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요) 개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등.. 글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.) 서로 예의를 지키며 존중하는 문화를 만들어가요. 질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! ) 먼저 유사한 질문이 있었는지 검색해보세요. 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. ==================
기존 문의사항 보고 작성해주신 답편대로 다 따라햇는데 ga_export 용량이 커서 스크립트 업로드가안돼요 DBEAVER 용량을 20,000M 이상으로 키울 경우 DBEAVER 실행이안돼요.. 텍스트 에디터 사용하여 복+붙해도 용량이 크다고안됩니다. 해결방법 알려주세요ㅠㅠㅠ
안녕하세요 import문에서 일부 입력하면 뒤에 경로가 자동으로 생성되는 부분에서 자꾸 소문자로 변하길래 수정해 주니 빨간 줄이 뜹니다. 또한 경로의 대소문자에 상관없이 실행이 어렵습니다. 확인 부탁 드립니다. 코드와 오류 나는 부분 첨부 합니다. Book.jsx import React from "react"; function Book(props){ return( <div> <h1>{`이 책의 이름은 ${props.name}입니다.`}</h1> <h2>{`이 책은 총 ${props.numOfPage}로 이루어져 있습니다.`}</h2> </div> ); } export default Book; Library.jsx import React from "react"; import Book from "./Book"; function Library(props){ return( <div> <Book name="책 1" numOfPage ={100}/> <Book name="책 2" numOfPage ={200}/> <Book name="책 3" numOfPage ={300}/> </div> ); } export default Library; index.js import React from 'react'; import ReactDOM from 'react-dom/client'; import './index.css'; // import App from './App'; import reportWebVitals from './reportWebVitals'; import Library from './ch03/Library'; ReactDOM.render( <React.StrictMode> <Library /> </React.StrictMode>, document.getElementById('root') ); // If you want to start measuring performance in your app, pass a function // to log results (for example: reportWebVitals(console.log)) // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals reportWebVitals();
선생님 질문입니다. 사실 너무 많은 알고리즘과 문제가 있어서 질문자체의 범위가 큰 질문일수도 있지만, 질문 그대로 문제에 대해서 1차원으로 접근할건지 2차원으로 접근할건지에 대한 판단이 문제를 보고 잘 안섭니다. 좋은 팁이 있을까요? (다른질문을 보니 물론 많이 풀어보면서 감을 익힐 수도 있겠지만 조언을 듣고싶습니다.)