강의 22분 35초 경 switch-case 문을 통해 체크박스의 id로 분기를 하려고 할 때 // id로 분기함 switch (checkboxId) { case R.id.checkBox: break; case 문의 R.id .checkBox 부분에서 "Constant expression required" 에러가 발생합니다. 구글링을 해보니 switch-case 문의 상수가 final로 선언되지 않아 발생하는 문제라고 하는데 어떻게 해결할 수 있을까요?
이 두 구문에서 차이는 증감연산자가 전위인지 후위인지 인데 for문에서는 전위든 후위든 작동 방식에 있어서는 차이가 없지 않나요? i = 0 일때 조건식을 검사해서 참이므로 i를 출력하고 i++든 ++i든 i의 값을 1 증가 시킨후에 다시 조건식을 검사하는 것으로 알고 있습니다. chat gpt에서 차이가 있다고 나오는데 설명이 명확하지 않아 여쭈어 봅니다! 정리하자면 전위와 후위의 근본적인 차이점은 알고 있지만 그것이 for문 증감식으로 쓰일땐 결과적으로 같은 동작 방식을 취하는게 아닌가 궁금합니다 감사합니다!
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
안녕하세요 강사님먼저 첫번째 질문은 DTO (CalculatorMultiplyRequest request)를 매개변수로 받는 데, 자동으로 request 인스턴스가 생성되는 것이 이해가 가지 않습니다. 클래스는 생성자를 호출하기 위해서는 new키워드로 생성해야 하는 것으로 알고있는데, 이해가 잘 되지 않습니다.두번째 질문은 GET요청과는 다르게 POST요청은 Request 클래스 내부에 생성자 없이도 number1과 number2에 값이 할당되는 점입니다.어떻게 이게 가능할 수 있죠..?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. <property name="hibernate.hbm2ddl.auto" value="update"/> create / create-drop 은 잘 됩니다. 하지만 update는 이상한점을 발견을 했습니다. 이유를 알고 싶어서 이런 질문 드립니다. update를 value에 작성을 한뒤에 Member class 에서 A - private int age x B - private Integer o 위 와 같이 작성을 하고 나서 실행을 해보면 A는 오류가 발생하지만 B는 정상적으로 작동이 됩니다. 이유를 알려주세요.
[질문 내용] 준영속 상태와 비영속 상태의 차이점에 대해 이해한바는 다음과 같습니다. 비영속 상태 : 한번도 엔티티 매니저의 관리를 받아본적 없는 엔티티 준영속 상태 : 엔티티 매니저의 관리를 받다가 연결을 끊음으로써 더이상 관리 받지 않고있는 상태. 제가 아는 차이점은 이것 뿐인데 혹시나 이게 두 상태의 차이점의 전부라면 굳이 상태를 나눌 필요가 있나? 라는 생각이듭니다. 그냥 '준영속 상태' 라는 단계를 없애고 연결이 끊기면 비영속 상태 로 , 다시 연결을 맺으면 영속 상태 로 이렇게 단계를 줄여도 되지 않을까요? 혹시나 제가 모르거나 잘못이해하고 있는점이 있다면 알려주시면 감사드리겠습니다!!
강의에서 문자열의 경우, 메모리를 확인했을 때 문자열의 순서에 따라서 바이너리가 정렬된 것을 알 수 있었습니다. 근데 int로 선언된 16진수 데이터의 경우는 역순으로 채워진다는 개념을 들으니 혼동이 옵니다. 혹시 문자, 문자열의 경우는 정배열이고 숫자 데이터의 경우는 역배열이다 라고 생각하면 될까요?
int TestFunc(){ static int a = 10; ++a; return a; } int main(){ printf("%d\n",TestFunc()); printf("%d\n",TestFunc()); printf("%d\n",TestFunc()); } 위 예제에서의 질문입니다. 1. Compile시에 정적영역이 결정되는 건가요? 질문이유 : a의 주소에 코드가 실행되지 않았음에도 이미 10이라는 값이 들어가있어서 질문을 드립니다. 2. TestFunc()이 실행될 때 static int a = 10 가 매번 평가되는게 아닌건가요? 질문이유 : 제 생각으로는 정적영역에 있더라도, 할당 연산자 때문에 10을 매번 넣어서, 출력값이 11 ,11 ,11이 될거라고 생각했습니다.
양질의 강의에 진심으로 감사의 말씀 드립니다. 다름이 아니라 제가 참조에 대해서 계속 고민하다가 개념적인 이해를 시도하는데 이것이 맞는 것인지 확인하고자 강사님께 질의를 남깁니다. 직접참조 : 메모리 주소로 접근해서 바이너리 확인 - 메모리 주소 : 포인터(값을 가리키지 않고 주소를 나타냄) - 그 메모리 주소의 값 : 비트로 구성된 메모리의 값 - 변수 : 메모리가 값을 위해 할당한 데이터 공간(값이 들어갈 수 있는 일종의 space) 간접참조 : 메모리 주소의 주소 - 즉, 포인터의 포인터 - 그래서 간접참조된 메모리 주소에는 값이 들어있지 않고 그 값을 가리키는 포인터(메모리 주소)가 들어있다. "가장 큰 차이는 직접참조는 메모리 공간에 쓰인 바이너리가 있는 것. 간접참조는 주소에 관련된 정보 바이너리가 있기 때문에(직접참조는 메모리 주소 - 값, 간접참조는 메모리주소 - 메모리 주소) 일종의 파이프-라인. 따라서 같은 15라는 값을 나타내도 직접참조는 그 메모리 주소의 값 그 자체를 나타내고, 간접참조는 그 주소에 대한 정보 바이너리가 적혀있다. " 제가 계속 고민을 하다 이런식으로 좀 개념을 잡았는데 제대로 잡고 있는 것인지 궁금합니다. 감사합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. 간단한 내용이지만 조금 고민이 있어서 질문드립니다. 요청을 통해서 받은 데이터를 통해서나 로직상에서 연관관계에 필요한 Entity의 id값을 알고 있는 경우 필요한 Entity를 DB에서 조회하는 과정 없이 id값만 초기화된 Entity를 생성하여 주입하는 방식이 가능한 것으로 알고 있습니다. 이 때, 그렇게 주입된 Entity는 persist된 상태가 아니라는 점인데요. ( cascade 옵션이 적용 안 되었다는 가정 ) 이런 경우에 두 가지 경우의 수를 고려하였습니다. 첫 번째는 연관관계 Entity가 연관관계 설정 외에는 사용될 일이 없는 로직의 경우이고 두 번째는 연관관계에 필요한 Entity가 이후에도 여러 로직에서 사용되는 경우입니다. 두 번째의 경우에는 사실 고민할 것 없이 ID를 이용해 Entity를 생성하는 것이 아닌 SELECT를 통해서 Entity를 조회하여 사용하는 것이 좋은 방법이고 EntityGraph를 맞추는 면에서도 당연히 해주어야 하는 것으로 사료됩니다. 하지만 첫 번째의 경우 굳이 Entity를 ID값을 통해 조회하는 과정이 필요한 지에 대한 의문입니다. 저런 단순한 로직의 경우 굳이 DB와의 정합성을 위해 조회 및 연관관계 편의메소드 등을 이용해서 EntityGraph를 맞춰줄 필요가 있나 싶었습니다. 이런 경우에서 실제 현업에서는 어떤식으로 처리하는 지 궁금합니다. 저렇게 각 상황에 따라 효율을 따져서 다르게 처리하는 지 아니면 ID를 통해 데이터를 조회하는 것은 크게 성능상 문제가 되지 않으니 불필요하더라도 로직의 통일성이나 혹시 모를 사이드 이펙트를 대비해서 조회한 뒤 연관관계 편의 메소드를 통해 EntityGraph까지 맞춰 주는 지 궁금합니다..! 저는 불필요하다고 생각하여 굳이 Entity그래프를 맞춰줄 필요가 없는 경우는 그런 과정을 생략하며 프로젝트를 하고 있었는데, 완성하고 보니 EntityGraph를 맞춰 주는 로직이 단 하나도 없는 걸 알게 되었습니다. 아무래도 복잡한 비즈니스 로직이 없어서 그럴 수도 있겠다는 생각은 들었지만 너무 심한 것 같아 제가 JPA를 제대로 쓰고 있는 게 맞나 싶어 질문드립니다..ㅠㅠ
안녕하세요 선생님! 선생님 덕분에 재미있게 C를 공부하고 있습니다. 감사합니다. 다름이 아니고 비트연산자로 뺄셈을 구현할 때 약간 이해가 안 가는 점이 있어 질문을 드립니다. int a = 9, b = 6; printf("%d\n", a + (~b + 1)); // 1001 + 1010 = 10011 ....??? return 0; 10진수 9에서 10진수 6을 빼는 연산에서 6을 2진수로 치환한 후 부정을 걸어 1의 보수로 만들고 1을 더하면 1010 이 되는 것으로 알고 있습니다. 여기에 10진수 9를 2진수로 치환한 1001을 더하면 10011 이 됩니다. 그럼 답이 19가 되어야 하지 않을까 생각이 듭니다. 자리올림을 소거하면 0011로 3이 맞지만 그걸 따로 코딩을 안해준 상태에서는 19가 나와야하지 않나요? 혹시 C에서 자리올림을 알아서 소거해주는 걸까요? 아니면 제가 계산을 잘 못하고 있는 걸까요? 답변 주시면 너무 감사하겠습니다!
Cookie 값을 삭제 하며 여러 동작을 해보던 도중, 로그인을 하기 전부터 JSSESSIONID 값이 cookie 에 들어가 있는 것을 확인하였습니다. 처음에는 오류인가 싶어 값을 삭제하고 로그인하였더니, 로그인이 동작하지 않고 그냥 페이지가 reload 된 다음 임의의 JSSESSIONID 값을 가져왔습니다. 왜 reload 할 때마다 JSSESSIONID 값을 가져오는 걸까요? 그리고 왜 JSSESSIONID 값 없이는 로그인 동작 자체가 안 되는 걸까요?
#include <stdio.h> int main(void) { char ch; while (1) { ch = getchar(); if (ch == 'x') break; if (ch == 'q') continue; putchar(ch); } return 0; } 이 예제에서 한 문자를 입력받을 때마다 while문이 실행되며 x인지 q인지를 검사하는 것으로 알고 있습니다. 만약에 aaaq를 입력하고 엔터를 누르지 않앗다면 q를 입력하는 순간 컨티뉴 문이 작동하여 putchar을 실행 시켜야 한다고 생각하는데 엔터를 눌러야만 작동하는 것이 이해가 안됩니다 ㅜㅜ 또한 getchar 함수는 한 글자씩 입력을 받는데 제가 if(ch == zxc) break;를 추가하고 zxc를 입력 후 엔터를 치면 브레이크 문이 작동 됩니다. 정리하자면 q나 x를 입력하는 순간에 브레이크나 컨티뉴 문이 작동 해야 하는게 아닌가요? 왜 엔터를 쳐야 작동하는지 모르겠습니다. 또한 getchar함수는 한글자만 입력받는 것으로 알고 있는데 왜 문자열로도 작동이 될까요?