[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오)네 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)네 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)네 [질문 내용] [김영한의 자바 입문] 강의 중 [형변환 1-자동형변환] 수강 중 질문이 있습니다. 1:25에 숫자 표현 범위가 long보다는 double이 크다고 하셨습니다. 하지만 이전 변수 타입 강의 때, long과 double 모두 2의 64승 만큼의 메모리 크기를 가진다고 배웠습니다. 메모리 크기가 같은데 왜 long보다 double의 숫자 표현 범위가 더 큰지 궁금합니다. double이 실수형이라 소수점까지 표현이 가능하기 때문인가요?
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 강의를 보다가 문득 궁금한 부분이 생겨서 질문 드립니다. int의 경우 오버플로우가 발생하면 Long 형으로 형 변환을 하면 된다고 하셨는데 double을 사용하다가 오버플로우가 발생한다면 어떻게 처리를 하는지 궁금해져서 질문드립니다. 혹시 double형을 사용하면서 오버플로우가 발생하는 상황 자체가 잘 못 된것일까요?
스프링 MVC 2편 중 섹션 7. 로그인 처리2 - 필터, 인터셉터 의 '스프링 인터셉터 - 요청 로그' 강의 11:09쯤에 코드 중 다음과 같은 코드가 있는데요. if(handler instanceof HandlerMethod){ HandlerMethod hm = (HandlerMethod) handler; } 위와 같이 만든 hm이라는 변수를 사용하지 않는데 만드는 이유가 뭔지, 왜 캐스팅해서 무엇을 보여주고자 하는지 모르겠습니다. 바로 밑에 로그에 출력하는 handler에 영향을 주나요?
안녕하세요, 저는 m1 MacOS로 따라가고 있습니다. 그러다보니 일단 개발환경이 다르긴한데, (VSCode로 하고있습니다.) 저 같은 경우 해당 강의 내용처럼 int x에, 정수형 가장 기본이 되는 값 0이 들어가있는 게 아니라 67836960, 7248928 등등 디버깅 후 Run 할 때마다 값이 달라져서 나옵니다. (주소값이 매번 달라지는 건 알고 있습니다. x 값 자체가 변합니다.) 당장 뭐 문제가 있는 건 아니지만, 혹시 어떤 이유 때문인지 궁금해서 질문합니다. 코드는 아래와 같습니다. #include <iostream> int main() { int x; // x = 123; std::cout << x << std::endl; std::cout << &x << std::endl; return 0; }
안녕하세요 제로초님 var 같은 호이스팅 시 선언과 초기화가 동시에 일어나는걸로 알고 있는데요 여기서 초기화란 자바스크립트 엔진이 undefined를 할당해주는 것이니 초기화랑 할당은 같은 의미로 봐도 되는걸까요? 아니면 다른 차이점이 있는지 궁금합니다 ex) const a = 123; // 선언과 초기화? 선언과 할당 인지... 관련 자료를 찾아봤는데 자바 (Java)에서 초기화는 객체를 선언하고 값을 최초로 할당하는 것이다. int a = 10; 이렇게 작성한 것은 선언과 동시에 초기화한 것이고, 이후에 a = 20; 을 입력하면 초기화가 아니라 값을 바꾸는 할당(allocation)이 된다. 자바스크립트에서도 동일하게 이해하면 될까요?
안녕하세요. 고수님들 기본적인것 같은데 헷갈려서 질문드립니다 ㅠㅠ 아래 코드에서 logUser_Google 이라는 함수를 만들었습니다. 그리고 signIn_GooglePopup 라는 함수를 임포트 해와서 변수에 할당했는데요. signIn_Google 함수는 firebase 라이브러리에서 구글로그인폼이 켜지는 함수 입니다. 여기서 궁금한게 있는데요. response라는 변수이름을 어디서 사용한적이 없는데도 실제 onclick=logUser_Google 이 동작하는 이유가 뭘까요? 지금까지 공부한대로라면 함수를 변수에 할당했을뿐이지 호출하지 않았다면.. 작동이 안되는걸로 받아들여지는데요. 혹시 변수에 할당하면 함수가 동작가능한 상태가 되는건가요..? 아니면 온클릭이라는게 누르는 순간 함수를 호출하는 그런걸까요..? 넘 궁금합니다 ㅠ-ㅠ
안녕하세요. 제로초님 다름이 아니라, 스코프에 관한 문제를 하나 풀다가 너무 이해가 안 되서 질문 드립니다. - 문제 : 콘솔창에 1초에 한번씩 1부터 5까지의 정수를 출력해주고 싶습니다. for (var i = 0; i < 5; i++) { setTimeout(function() { console.log(i); }, i*1000 ); } 논리적으로 완벽한 for 반복문입니다. 그런데 반복문으로 축약하자마자 제대로 작동하지 않습니다. 계속 5라는 숫자가 1초마다 출력되네요. Q. 위 코드는 왜 의도대로 동작하지 않는 것이죠? 해결할 방법은 무엇일까요? 개발자 툴에서 돌려보니, for문이 다 실행되고 나서 setTimeout 함수가 실행이 되는데, 이때 i 값은 5 이기 때문에 5초에 동시에 5가 찍힌다는 것은 알겠습니다. 그런데, 제가 이해가 안 되는 부분은 바로 "정답"입니다. 정답은 var 로 선언된 for문 속의 i 값을 let으로 바꿔주는 건데요... for문 안에 var를 안 쓰고, let을 쓰더라도 for문이 다 돌고나서( 1초 전에 ), setTimeout이 작동하기 때문에 5 -> 5 -> 5 -> 5 -> 5 이렇게 뜨거나, for문은 종료가 됐기 때문에, i 변수가 사라져서, 차리라 undefined 로 5번 뜨는 게 더 말이 되는 것같은데..... 어떻게 1, 2, 3, 4 ,5 로 뜨는지 모르겠습니다. 왜 Let 으로 바꿨을 뿐인데, 1, 2, 3, 4 ,5 가 뜨나요?? - 현재까지 제가 생각할 수 있는 최대한도는 반복문이 끝나도, setTimeout 함수가 let i 변수가 살아있는 블록 스코프 안에 존재하기 때문에, setTimeout 함수 i 값을 찾으려 할 때, 해당 i 값은 살아 있겠다. 고 생각하는데요. 정말로 이해가 안되는 건, setTimeout 함수가 i 값을 찾으려 하는 순간에는 for 문은 끝나있고, 그럼 i는 무조건 5이기 때문에, var 나 Let 이나 출력값은 5 -> 5 -> 5 -> 5 -> 5 되야 맞지 않나?? 라는 겁니다. 그런데, 1 -> 2 -> 3 -> 4 -> 5 가 출력되버리니... 너무 혼란스럽니다 ㅠ.ㅠ
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 강의자료 PDF 84쪽 - 병합 사용 부분 코드 변수가 잘못된 것 같아 남깁니다. 현재 : em.merge(item) 후 : em.merge(itemParam) 으로 수정하는게 맞아 보입니다! void update(Item itemParam) { //itemParam: 파리미터로 넘어온 준영속 상태의 엔티티 Item mergeItem = em.merge(item); }
안녕하세요 :D 강의에서 변수를 통해 프로그래머가 번거롭게 메모리 주소를 잡아 데이터를 넣는 과정을 생략하고 변수명을 매개체로 변수에 어떤 데이터를 선언해서 특정 메모리 주소로 간접적으로 값을 넣는 것이라고 이해했는데 예를 들면 int a; a = 1; 은 a라는 변수가 램에서 메모리 주소를 하나는 갖고 있고 거기에 1를 대입하는 코드인데 이때 a에 매칭되는 메모리 주소는 C언어 시스템에서 자동적으로 정해주나요? 그리고 이를 프로그래머가 직접 잡아 줄 수도 있나요?
안녕하세요 아래와 같이 문제풀이를 했습니다. 하지만 tmp2 라는 리스트 변수 초기화 위치에 따라 정답이 달라집니다. 그 이유가 궁금합니다. 특히 마지막 입력값 3 1 4 이 들어갈때 취해지는 리스트 x 의 경우 3번째 행만 변경되어야 할 거 같은데, 2번째, 5번째 3번째 행의 리스트 값이 변경이 됩니다. 이유가 궁금합니다. ------------------------------------
클래스 변수가 클래스 내부에서 정의되는 변수이고, 클래스 이름 뿐만 아니라 인스턴스 이름으로도 접근할 수 있다는 것을 이해했습니다. 하지만 클래스 변수가 어느 시점에 정의되는지 명확하게 이해하지 못했습니다. 인스턴스를 정의할때마다 클래스 변수가 재정의되면, 클래스 변수가 계속해서 초기화되는 것이므로 아닌 것 같고, 클래스 코드가 처음 실행될때 클래스 변수도 같이 정의되는 건가요? 추가적으로 클래스 내부에서 클래스 변수가 정의된 다음 다시 불러올 때 "클래스명.클래스변수"로 사용하던데, 왜 클래스 내부에서도 클래스 변수를 사용할 때 그냥 클래스변수 이름으로는 부르지 못하는 건가요?
안녕하세요. 변수의 활용에서 에러같지 않은 에러라고 해야할까요? 알려주신 예문 그대로 기입했는데 저의 경우에는 name변수를 let letter 변수에 입력하면 name값에 가운데 줄이 생기더라구요. 그런데 프롬포트에 실행하면 작동은 잘 되구요. 가운데 줄이 생기는 이유가 따로 있는걸까요? 아래는 제가 작성해본 스크립트 첨부합니다! let name='ruki'; let letter = 'Dear '+name+' rem, ipsum dolor sit amet consectetur adipisicing elit. Mollitia '+name+' consequatur nulla commodi reprehenderit illum adipisci magnam, eum nam animi quis '+name+ 'sed rerum obcaecati possimus totam dolor velit fugiat.
안녕하세요. new Member(memberId , "MemberA" , Grade. VIP ) ; 는 윈도우에서 ctrl alt v 하면 Member member = new Member(memberId , "MemberA" , Grade. VIP ) ; 이렇게 만들 수 있는데 new AnnotationConfigApplicationContext(SameBeanConfig. class ) ; 얘는 왜 안되는 건가요? 둘이 어떤차이가 있는지 모르겠어서 질문 남깁니다.
질문이 많아서 죄송합니다. GA4에서 큰 변화가 있어 이해가 어려워 질문이 많습니다. T^T 1. 전자상거래 기존 GA에서 전자상거래 (Goal)을 설정할 경우 개발자가 상품ID, 가격정보 등을 GA에 전송할 수 있도록 각 항목들을 셋팅해줬어야 하는 데, GA4도 동일한 구조로 개발자가 셋팅을 해줘야 하는 지 궁금합니다. 만약 그렇다면 어떻게 셋팅하는 지 혹시 가이드가 있을 런지요? 또한 그렇지 않다면 마케터가 직접 셋팅할 수 있는 방법이 어떤 것인지 또한 궁금합니다. 2. 변수 설정 GTM 통해서 셋팅하려고 하는 데 기존에 상품 ID를 Custom Dimension에 전송하고 싶다면 GTM에서 맞춤 자바스크립트를 통해 상품ID를 가져오고 해당 값을 변수로 정의한 후에 Custom Dimension index에 맞춰 넣었습니다. GA4에서도 이러한 변수를 가져오는 작업은 동일하게 필요한지요? 3. 기본 매개변수 Page관련 매개변수 외 변수들은 어떤 용도로 주로 활용되나요? 수집은되나 용도를 모르겠어서 문의드립니다. 또한 User_engagement로 수집되는 값은 기존 session과 동일한 의미 일까요? 4. 세션 관련 session_start이벤트 설명에서 30분 동안 아무런 행동이 없을 때 새로운 이벤트가 트리거 된다고 말씀주셨습니다. 그럼 사용자가 19:05분에 접속한 후 아무활동도 없이 19:50분까지 있다가 19:55분에 종료하게 되면 세션이 2가 되는 건가요? UA에서는 해당 케이스에서는 세션1, 이탈1로 이해했는 데 아닐까요? UA와 세션 기준이 달라지는 것인지 궁금합니다. 5. 향상된 측정 페이지조회, 스크롤 등은 자동으로 GA에서 생성하게 셋팅할 수 있다고 이해했습니다. 그러면 GA4에서 페이지 조회, 스크롤을 측정하게 셋팅해놓고, GTM 을 통해 특정 페이지 (ex. /cart) 접근 시 이벤트 발생 30%, 60%, 90% 스크롤 시 이벤트 발생 시 이벤트 발생을 추가했다면, 이벤트가 2번 찍히는 케이스에 대한 방어는 GA에서 자동으로 되는 건가요? 아니면 이벤트가 2번 찍히게 되나요?
만약, 자바안에서는 모든 정수 값이 기본으로 int형(4바이트)라면, 굳이! int형 범위 안에 있는 정수를 선언해줄 이유가 있나요? 예를 들어, 32라는 수를 int num = 32; 이렇게 해줘야 되는 이유를 잘 모르겠어요 ㅠㅠ 그냥 num = 32; 라고 해줘도 자동으로 int형으로 들어가는 게 아닌가요??