안녕하세요 '[실습] 백엔드 프로젝트(Spring Boot) 프로젝트를 Docker로 실행시키기'에서 그대로 따라 했는데 이렇게 RestController가 인식이 안 됩니다 build.gradle이고 이걸 다시 run했는데 동일합니다 아래는 run 후 콘솔에 찍히는 내용입니다 확인 후 답변 부탁드립니다! 오후 4:51:31: Executing... > Task :help Welcome to Gradle 8.10.1. To run a build, run gradle <task> ... To see a list of available tasks, run gradle tasks To see more detail about a task, run gradle help --task <task> To see a list of command-line options, run gradle --help For more detail on using Gradle, see https://docs.gradle.org/8.10.1/userguide/command_line_interface.html For troubleshooting, visit https://help.gradle.org Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0. You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins. For more on this, please refer to https://docs.gradle.org/8.10.1/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation. BUILD SUCCESSFUL in 451ms 1 actionable task: 1 executed 오후 4:51:32: Execution finished. 시키기
코드로 이미지 파일을 decompress RawData로 가져와서 FImage를 확보하고, 이거를 Texture2D로 변환하는데 메모리를 아끼려고 압축옵션을 적용해도 변화가 없습니다. 런타임중에 직접 texture2d를 생성하고 UpdateResource() 를 호출하여 최종 적용했을 때, 미리 설정한 압축 옵션이 작동되게 하는 방법이 무엇인가요??? 압축옵션 뿐만 아니라 mipmap, 그룹 옵션 등등 작동이 안됩니다. (런타임 중)
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요 .이미지와같이 맥스힙일때 190이 push되어 맨 아래 즉 말단 노드에 일단 추가되고 부모노드와 비교를 통해 스왑되다가 190이 위 이미지와같이 위치해있는 상황일떄 150 노드 하위에 60과 100이 존재하는데요, 150노드는 90과 같은 위치에 존재하는데 100이 90보다 큰값이어도 서로 스왑할 필요는 없이 저대로 존재하는게 맞는건가요?!
@Override public synchronized void put(String data) { while (queue.size() == max) { log("[put] 큐가 가득 참, 생산자 대기"); try { wait(); // RUNNABLE -> WAITING, 락 반납 log("[put] 생산자 깨어남"); } catch (InterruptedException e) { throw new RuntimeException(e); } } queue.offer(data); log("[put] 생산자 데이터 저장, notify() 호출"); notify(); // 대기 스레드, WAIT -> BLOCKED } 생산자 스레드가 먼저 실행되면 마지막 스레드는 wait() 호출 후 스레드 대기 집합에서 관리 되는걸로 이해했습니다. 이 상태에서 소비자 스레드가 실행되면 데이터를 처리하고 마지막에 notify()를 호출하면 스레드 대기 집합에서 관리 되던 생산자 스레드가 깨어날텐대 여기서 wait(); 바로 다음 코드를 실행하지 않고 바로 BLOCKED 상태가 되는건가요? BLOCKED 상태에 있다가 소비자 스레드가 락을 반납 했을때 BLOCKED 상태가 풀리면서 wait() 바로 다음 코드를 실행한다고 이해하면 될까요?
안녕하세요. 강의 중에 설명해주시는 내용 중 Development info > Main interface 설정하는 부분이 안보여서 질문드립니다. 최신 xcode, mac 버전을 사용하고 있어 업데이트가 된 거 같은데 어디에서 설정할 수 있을까요? 강의 중 화면 제 화면 .
안녕하세요 강의를 듣다가 궁금한게 있어서 질문 드려봅니다. 차량 GSW를 살펴보면 센서신호선이 있고 CAN 선이 또 따로 있던데 센서 신호선은 CAN과 다른 역할을 하는 걸까요? 센서신호선의 전압 값을 ECU에 보낸다고 설명에는 적혀있는데 CAN도 동일하게 센서의 정보들을 내부 컨트롤 모듈에 보내는 걸로 알고있는데 어떻게 다른지 궁금하네요.
라이브러리에 대하여 궁금한 점이 있습니다. main함수가 있는 파일 : A 라이브러리 파일 : B A파일에서 B라이브러리에 있는 함수들을 사용해서 실행파일로 만들경우 컴파일러(링커)에서 A파일에 정의되어 있지도 않는 함수들을 사용했기 때문에 오류가 발생할 수 있지만 여기선 두가지 길이 있다는 걸 확인 했습니다. 첫번째 : 헤더파일을 만들어서 거기에 함수의 선언과 정의를 몰아적기 그리고 해당 헤더파일을 include 하기 첫번째 방법대로 했을 경우 라이브러리 파일을 따로 만들지 않아도 된다. 두번째 : 헤더파일엔 함수의 선언(프로토타입)부분만 적어놓고 몸체(정의)부분은 .c파일로 만들어서 라이브러리 파일로 만들기 두번째 방법의 경우 vs(IDE)의 기능 덕분인지 다양한 방법들이 있다. 이 경우에는 include를 따로 하지 않아도 알아서 실행이 되더라구요. 같은 프로젝트에 있으니까 vs(IDE)가 알아서 지원 해주는 것 이겠죠? 또 다른 방법으로는 프로젝트를 분류하여 lib파일을 만든 다음 lib파일을 전혀 다른 폴더 위치에 옮긴 다음 진행해봤습니다. main함수가 있는 프로젝트 옵션에서 사용하려는 lib를 등록만 했는데 include를 따로 하지 않아도 작동되는 걸 확인할 수 있었습니다. 이처럼 따로 include를 하지 않고 다른 프로젝트에서 라이브러리를 만들고 그 라이브러리를 링커에 등록만 해주면 사용할 수 있는 구조가 맞는 구조인건가요? 어차피 링커는 함수의 몸체(정의)부분만 찾으면 되는 거니까요? 그렇다면 굳이 헤더파일과 라이브러리 파일을 분류하여 둘 다 만드는 이유는 라이브러리 파일만 쓰자니 라이브러리 파일에 어떤 함수가 있고 어떤 것들이 있는지는 .c파일을 열어보기 전까지 확인할 수 없고. 헤더파일만 쓰자니 함수의 선언과 몸체부분을 한 곳에 다 몰아적으면 함수가 많아질 경우 직관적으로 보기가 힘들어서 사용하기 불편하기 때문이고 이걸 남들이 사용할 수 있도록 배포 했을 경우 라이브러리 파일만 배포했을 경우 사람들이 해당 라이브러리엔 어떤 함수들이 있는지 보지 못하기 때문에 헤더파일엔 어떤 함수들이 있는지 선언(프로토타입)부분만 보여주며 입력값은 무엇이고 리턴값은 무엇인지 알려주고 그 함수들이 어떻게 정의(몸체)가 되었는지 보여주고 싶지 않기 때문에(비밀) lib파일과 .h파일 둘 다 만들어서 배포하는 건가요?
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 영상 기준 4:46초쯤에 void 메서드는 return이 생략되어도 자바 컴파일러가 마지막줄에 넣어준다고 하셨는데 .class로 컴파일된 파일을 확인해보니 반대로 적어두었던 return도 생략이 되어있습니다. 자바 버전이 올라가면서 바뀐걸까요 아니면 컴파일된 파일이 아닌 파일을 실행 시에 return이 추가가 되는건가요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. // flush 자동 호출 commit, query int resultCnt = em.createQuery("update Member m set m.age = 20") .executeUpdate(); Member findMember = em.find(Member.class, member1.getId()); System.out.println("findMember.getAge() = " + findMember.getAge()); 이 부분을 보시면 영한님의 12분 코드와 같잖아요? 이때 Member findMember = em.find(Member.class, member1.getId()); 의 findember를 출력할 때, 영속성 컨텍스트 때문에 update문의 age가 20인 것이 반영이 안 돼야 하는데 제 환경에서는 반영이 되는 걸로 나옵니다..! 정리하면, em.clear() 를 하지 않았을 때는 age가 0이 나와야 하지만, em.clear() 를 하지 않았음에도 불구하고 age가 20이 나옵니다 물론 아래처럼 member의 age 초기값을 0으로 지정해줬습니다 Member member1 = new Member(); member1.setUsername("회원1"); member1.setAge(0); member1.changeTeam(teamA); em.persist(member1); 이유가 무엇일까요??
강의에서 각 스레드 스택 마다 지역변수로 objectReference 참조 변수를 생성하시는 것을 예시로 들어주셧는데요, 해당 변수는 문자열 풀 값들을 이용해서 만들어진 것이잖아요. 힙에 저장될 때 어떻게 데이터가 저장되나요? thread 1번에서 생성한 지역변수인 objectReference 는 "1" 의 문자열 풀 주소값 + ": Hello World" 의 문자열 풀 주소값, thread 2번에서 생성한 지역변수인 objectReference 는 "2" 의 문자열 풀 주소값 + ": Hello World" 의 문자열 풀 주소값, ... 이렇게 저장되는 것이 맞을까요?? 혹은 "1 : Hello World" 라는 문자열 전체가 하나의 스트링 풀에 저장되고, 그 상수에 대한 주소값이 저장되는 것일까요?
문자열 함수 수업에서 어떤 함수는 print("endswith?:",str_o2.endswith("s")) 뒤에 점을 찍고 나타내고 어떤 함수는 print("sorted:",sorted(str_o1)) 와 같이 점(.)을 찍지 않고 나타내는데 차이점을 설명 해주셔야죠 ㅜㅜㅜ ㅜㅜㅜ 차이점이 뭘까요...? ㅠ 함수마다 구조 다 다르니까 외워야하면 그런거라고라도 말을 해주세요 ...