int main() { int num1 = 10; int num2 = 15; int temp =0; int *ptr1 =&num1; int *ptr2=&num2; temp = ptr1; ptr1= ptr2; ptr2 = temp; printf(" *ptr1 : %d , *ptr2 : %d,", *ptr1, *ptr2); } ptr1이 가리키는 변수와 ptr2가 가리키는 변수를 서로 바꿔 ptr2는 num1을 가리키고, ptr1은 num2를 가리키게 하는 함수를 만들어보았습니다. 물론 ptr1 = &num2; ptr2 = &num1; 이렇게 하는 간단한 방식도 있다는 걸 알지만, 어쩌다가 저 부분에 궁금증이 생겼는데, 위와같이 temp를 그냥 int temp = 0; 으로 선언하면 컴파일이 제대로 이루어지지 않지만, int *temp; 와 같이 포인터 변수로 선언하면, 문제 없이 작동하는 걸 확인하였습니다. 저는 포인터 변수를 선언하면, *ptr이라는 변수가 ptr에는 가리키는 변수의 주소가 상수로 저장이 되고, *ptr은 ptr이라는 변수에 상수로 저장된 주소에 접근하는 일종의 연산이라고 생각하였기에, ptr에 저장된 상수(주소값)을 int 형으로 선언된 일반 변수(temp)에 저장하고, 그것을 다시 다른 변수(ptr2)에 옮겨도 문제가 없을 것이라고 생각했는데, temp라는 일반 변수에서는 오류가 발생하고, *temp라는 포인터 변수에 저장을 해야만 제대로 작동하는 것을 확인하였는데 왜 *temp로 선언해야만 제대로 작동하는 지 이유가 궁금합니다..!
강의 2분 50초부터 2분 55초 구간에 ' float로 변환하면, 1.0이 될겁니다. '라고 하셨습니다. 각각의 color channel에 대한 data type은 unsigned char 이므로, 8 bits 의 size를 가지고 있습니다. 그러므로 만약 ' 255 '라는 10진수를 저장한다면, binary data는 1111 1111 입니다. 그런데 이 binary data가, 어떻게 float type의 ' 1.0 '을 의미하는 것인지 모르겠습니다. 32 bits size를 가지는 float type으로 casting하면, 0000 .... 1111 1111 (32bits) 이므로 ' 255.0 '이 나옵니다. 혹시 8-bit 부동소수점 숫자 로 표현한다는 것을 말씀하신것인가 싶어서, 1111 1111 라는 binary data를 8-bit 부동소수점 수로 직접 계산해보니 -1 * 16 * 1.9375 = -31 이 나옵니다. (Format : Sign 1 bit, Exponent 3 bits, Fraction 4 bits) 어떤 과정으로 인해서 alpha channel의 data인 '255', 즉 binary data 1111 1111 이 ' 1.0 '이되는 것인가요?
안녕하세요 AOP를 적용하면 스프링 컨테이너가 진짜 빈 앞에 가짜 빈을 세워놓는다고 하셨고 실제로도 콘솔에 찍어서 확인을 했는데요, AOP 관련 코드를 싹 다 지우고 AOP를 아예 안 써도 아래와 같이 hello.hellospring.service.MemberService 가 아닌 MemberService$$EnhancerBySpringCGLIB$$d7471118 이라고 뜹니다. 왜 그런 것인가요? AOP 적용 여부와 상관없이 빈이면 무조건 그 앞에 가짜 빈을 만드는 것인가요?
강사님과 똑같은 IDE이고, 30일 무료 체험판을 쓰고 있습니다. npm i 를 통해서 설치도 했고, npm start 까지 진행하였습니다. <Provider>를 치고 option + Enter를 쳤는데 import를 해주는 옵션이 뜨질 않습니다. back 파일이 설치된 곳에 파일명이 한글로 된 파일이 있긴한데 이것이 문제일까요? 그럼 파일명을 바꾸면 간단하게 해결될까요? 무서워서 답변 듣고 파일명 건들겠습니다 ㅜㅡㅜ
deserializeUser 로 나눈이유가, 세션 메모리가 한정되어있기때문에 효율적으로 하기위해, user.id값 하나만으로 받아와서, 이를 deserialize에서 쿼리를 보내 데이터를 얻는 식으로 하기 위해서라고 설명하셨는데, 메모리 아낀다는 취지는 이해했습니다. 하지만 이렇게하면, 매번 페이지 들어갈때마다 무거운 조인 2개가 계속 db IO가 되게 되는데, 오히려 이러한 방법이 데이터베이스에 무리를 일으켜 서비스에 지장이 생기지 않은지 여쭈어봅니다. 뒤에 redis를 배우는데, 그러면 아예 redis의 세션스토어에 조인결과를 string으로 저장해 버리는 방법은 어떨지 질문드립니다.
강사님, XGBRegressor 및 LGBMRegressor 불러올 때, 하단과 같이 에러가 뜨는데, 버전문제인가요?! from xgboost import XGBRegressor from lightgbm import LGBMRegressor -> No module named 'xgboost'
책 166 ~167 쪽에 F1 스코어는 정밀도와 재현율이 어느 한쪽으로 치우치지 않는 수치를 나타낼 때 상대적을 높은 값을 가진다고 써있는데 167쪽에 분류 결정 임곗값 표를보면 0.6일 때 왜 더 좋은 성능 지표를 보여주는지 모르겠습니다 어느 한쪽으로 치우치지 않는 수치를 가질 때 더 좋은 값을 가진다면 분류 결정 임곗값이 0.45일 때 제일 좋은 값을 보여줘야 하는거 아닌가요? 그리고 임곗값이 0.6일 때가 임곗값 0.4~ 0.6 중에 제일 좋은 성능지표라고 말할 수 있는건가요?
강의 감사합니다. 코로나 격리 기간에도 강의 해주셔서 고맙습니다. 개인적으로 많은 도움이 되었고 지식과 기술을 빠른 시간에 습득할 수 있었던것 같습니다. 한가지 바램이 있다면 네트워크 시스템 파일시스템 모바일포렌식 안티포렌식 이 부분에대해서 추후 혼자서 입문할수 있는 자료 공유해주시면 더많은 도움이 될듯싶습니다. 다음 강의 계획하시고 있으신가요? 또 듣고싶네요. 건승하시고 계획한 모든 일이 잘 되시길 응원할께요.
안녕하세요 선생님. 강의 정말 잘듣고 있습니다. 궁금한 것이 하나 있습니다. PCA가 항상 변동성이 큰 방향으로 축을 삼고 주성분으로 분류한다고 하셨는데, 1번째 주성분을 선택하는 경우는 명확해 보입니다. 다만, 2번째 주성분을 구할때는 1번째 주성분 축의 직교가 되는 방향으로 구합니다. 직교방향이 반드시 2번째로 변동성이 큰 방향인지 궁금합니다. 3번째, 4번째 등도 직교=큰변동성 논리가 계속 유지되는지도 궁금합니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요. 먼저 좋은 강의 제작해주셔서 많은 도움이 되었고, 감사드립니다! osiv 를 설명해주신 강의에서, osiv가 켜져있으면 커넥션을 오래 물고 있어 트래픽이 많으면 장애가 발생할 수 있다고 하셨는데요. 같은 맥락으로 커넥션을 릴리즈하는 시점이 아닌 획득 하는 시점에서도 1. datasource에서 커넥션 autocommit을 false로 설정하고, (디폴트는 true) 2. 하이버네이트에게 트랜잭션 시작(그리고 종료) 시 set autocommit를 수행하지 않도록 해서( hibernate.connection.provider_disables_autocommit 옵션으로 하이버네이트에게 알려줌 ) 커넥션 획득을 지연시키고 불필요한 SET 문 실행을 없애, 결과적으로 커넥션 점유 시간을 줄이면서 리소스 사용과 쓰루풋 최적화가 가능하다고 합니다. 참고한 자료 - https://vladmihalcea.com/why-you-should-always-use-hibernate-connection-provider_disables_autocommit-for-resource-local-jpa-transactions/ - https://github.com/spring-projects/spring-boot/issues/9261 - https://pkgonan.github.io/2019/01/hibrnate-autocommit-tuning - https://docs.jboss.org/hibernate/orm/5.2/userguide/html_single/appendices/Configurations.html 그래서 위 자료들에 따르면 일반적인 스프링 부트 2 + 하이버네이트 조합을 쓰는 경우에는 datasource의 autocommit을 항상 false로 하는 것이 좋을 것 같은데(이 경우 hibernate.connection.provider_disables_autocommit는 자동으로 enable 설정됨) , 혹시 이 설정에 대한 경험이 있으신지, 있으시다면 조심해야할 사이드이팩트는 없으셨는지 궁금해서 질문남겨봅니다. (늦더라도 영한님께서 직접 답변해주시면 좋을 것 같습니다^^) 감사합니다.
안녕하세요. 문제 어떤 UI가 모바일용과 데스크탑용의 구성이 너무 달라서 모바일용 컴포넌트 / 데스크탑용 컴포넌트로 개발되어있습니다. 이걸 미디어쿼리처럼 사용자의 device width에 따라 모바일/데스크탑용 UI를 각각 뿌려주고 싶지만, SSR에서는 javascript의 window 객체는 만들어져 있지 않기 때문에 접근은 불가능하므로 javascript로는 사용자 device의 width를 가져오는건 불가능에 가까운것 같고 대신에 request의user-agent를 이용해 사용자 device의 정보를 가져오면 판별은 할 수 있을꺼 같은데 미디어 쿼리같이 실시간으로 사용자 device의 width에 따라 UI를 나누는건 어려운 상황 질문 보통 모바일용과 데스크탑용 컴포넌트를 가지고 있을때 SSR에서는 어떻게 모바일과 데스크탑을 구분하시나요?
실무에서 가끔 stream이나 .then .ifPresent 형태로 쓰여져있는 코드들을 맞이하면 디버깅이 제대로 안 되어서 매우 골치 아픈 적이 많습니다. 이런 코드들은 보통 어떻게 디버깅하시나요? 아니면 그런 불편함을 감수하고 좀 더 깔끔해 보이는 코드를 추구하는 것일까요? 좋은 강의 감사드립니다.