const getEnv = async ()=>{ const response = await axios.get(’/비밀키요청’) return response.data } 강의에서 위 코드를 통해 비밀키를 받아오는 예시를 작성해 주셨는데 ConfigModule.forRoot({isGlobal:true, load: [getEnv]}) 과정에서getEnv와 같은 비동기 함수를 등록한 경우 forRoot 내부적으로 await을 통해 메서드가 동작을 완료할때까지 기다리는지 궁금합니다.(비동기 함수를 등록해도 forRoot의 내부 동작으로 처리되는지?)
만약에 openai api를 사용해서 챗봇 서비스를 프로덕션 환경에서 배포해서 사용자들이 사용할 수 있도록 한 경우, 만약 많은 사용자로 인해 Usage Limit이 초과 되면 어떻게 해야할까요? Usage Tier 1 기준 gpt-4o-mini 모델의 한도: RPM(분당 요청): 500 RPD(일당 요청): 10000 TPM(분당 토큰): 200000 gpt-4o-mini 모델을 사용한 챗봇을 배포했다고 가정했을 때 많은 사용자로 인해 요청 횟수를 넘어가게 되면 어떻게 해야할까요? 사용자 별로 제한을 둬야하는 걸까요? 분당 몇 번, 하루에 몇 번 질문 가능 이런식으로..?
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] assertThat을 부르려고 assertj의 AssertThat을 import static으로 해도 안 불러와집니다 import할때 아예 import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertThrows; 이렇게 해봐도안되고, 지금은 junit의 Assertions를 불러와서 assertThrows에 에러 표시가 안 나는데... 정리하면 assertThat이 되면 assertThrows가 안됩니다. 반대도 마찬가지이고 하나가 되면 하나가 안 불러와져요 gradle.build에서 의존성도 건드렸었는데 효과가 없네요
안녕하세요 🙂 신규 보드로 zybo z7-20을 사는 것은 비효율적입니다. 비슷한 가격으로 스팩이 5~10배 이상 좋은 kv260을 구매할 수 있습니다. 다만 자료가 부족하여 보드를 구매할 때 망설이는 부분이 있다고 생각이 듭니다. 하지만 zybo z7에는 없는 ultra 램과 4GB의 ddr4램 10만개 이상의 LUT과 20만개 이상의 FF, 1280개의 DSP는 석사 레벨 혹은 박사 레벨의 프로젝트도 무리 없이 수행 가능하다고 생각합니다. 저도 verilog season1 수강을 할 때도 kv260으로 고생하면서 들은 기억이 납니다. verilog season 2 dma를 실제로 올리고, 작동까지 확인하는 것을 보고 나서, 이제는 다른 수강생들에게 저의 경험을 공유해도 될 것이라고 생각해서 이 글을 올립니다. 저의 vivado 환경은 ubuntu 24.04 vivado 2024.1을 사용하고 있습니다. 윈도우 환경에서는 vitis 빌드가 되지 않는 치명적인 버그가 있어서 vivado를 사용하는 분들이면 마음 편하게 SSD를 하나 더 사셔서 듀얼 부팅 환경을 만드시는 것을 추천합니다. UART 연결하기 KV260의 UART는 zybo z7-20과 다르게 36, 37번 pin과 연결되어 있습니다. IO의 기본 voltage가 1.8V로 되어있으므로 이 부분은 수정하지 않아도 될 것 같습니다. 이 화면 그대로 따라하면 될 것 같습니다. jtag boot kv260의 기본 boot setting은 qspi boot입니다. 제가 생각하는 kv260의 치명적인 단점은 external boot selector switch가 없는 것입니다. jtag boot를 위해서 다음의 문서를 참조했습니다. https://xilinx.github.io/kria-apps-docs/creating_applications/2022.1/build/html/docs/bootmodes.html 이 환경에서 따로 boot_jtag.tcl파일을 만드신 다음 xsct console에서 connect target source .. boot_jtag.tcl파일 위치 boot_jtag를 순서대로 입력하면 jtag boot로 변합니다. 이 두가지만 해결하시면 kv260으로도 충분히 수강 가능하다고 생각합니다. 또 kv260에는 100mhz clock이 정확히 안돠고 99000001 이런식으로 클록이 나오는데 이는 에러 코드에 나오는 클록을 그대로 복사 붙여넣기 하시면 해결이 됩니다. DDR3 메모리가 점차 단종 수순을 밟으면서 zybo z7-20도 단종될 것 같습니다. KV260을 사고 싶었는데 자료가 없어서 망설이시는 분을 위한 좋은 길잡이가 되었으면 좋겠습니다.
reprogramming 기능의 여부에 따라 secondary bootloader와 first bootloader가 나뉜 다면, MCU에는 first 아니면 secondary bootloader 중 하나를 보유하고 있는 것인가요? 아니면 bootloader의 state machine에 따라 각 기능 secondary bootloader의 역할인 reprogramming과 그 밖의 app jump용도의 first bootloader로 state machine 내의 기능적인 역할로서 존재하는건가요?
public static void volumeUp(MusicPlayerData data) { data.volume++; System.out.println("음악 플레이어 볼륨: " + data.volume); } 반복되는 기능을 이후에 재사용하기 위하여 메서드를 추출할 때 매개변수에 (MusicPlayerData data)라고 적어주셨어요. 1) 이때 [MusicPlayerData]라는 것은 클래스(틀, 설계도, 붕어빵틀)인가요? 이게 맞다면,, 그럼 이건 매개변수(파라미터)안에 클래스를 넣은것이라 볼 수 있나요??? 2) MusicPlayerData 클래스 안에 있는 int 변수 [volume]이라는 것은 객체(붕어빵 틀에서 만들어진 붕어빵)라고 하는 것인가요? 용어 정리가 되지 않아 질문드립니다. 답변 감사합니다..
외부 클래스안에 정적 중첩 클래스가 있고, 중첩 클래스 안에 정적 멤버와 인스턴스 멤버들이 있다고 가정할때, 다른클래스의 메인함수에서 외부클래스의 인스턴스를 생성하면, 이 때, 외부클래스의 대한 정보와, static멤버에 대한 정보가 메서드 영역에 저장되는데, 이때 정적 중첩 클래스도 static이라 같이 메서드영역에 정보가 저장되나요? 그리고 별개로 정적 중첩 클래스의 인스턴스를 생성해야만 중첩 클래스의 인스턴스를 생성해야만 중첩 클래스의 인스턴스 멤버들을 사용할 수 있는거죠??
MyListEx 생성자에서 UserData 를 매개변수로 받도록 설계한 이유에 대해 궁금합니다. MyNode 라는 추상 자료형(ADT)을 정의해 두셨는데, 생성자에서 특정 구현체인 UserData 를 직접 받는 방식이 추상화의 장점을 제한할 수 있다고 생각합니다. 또한, onRemoveNode 메서드에서도 UserData 타입으로 변환하지 않고 MyNode 에 정의된 메서드만으로도 충분히 기능 구현이 가능해 보이는데, 혹시 MyListEx 는 UserData를 위한 전용 자료구조로 설계된 것인가요? 그렇지 않다면, MyNode 를 기반으로 유연성을 유지하도록 설계하는 것이 더 적합하지 않을까 하는 생각이 들어 질문드립니다.
안녕하세요. 14강에서 CharacterPlayer에서 SetDead 함수를 오버라이드 하여 추가적으로 코드를 작성하셨는데, PlayerController를 가져와서 입력을 비활성화를 한 게 만약 이걸(입력 비활성화) 하지 않으면 게임이 끝난 후에도 애니메이션 동작은 하기 때문에 하신 건가요? 공격을 한다던가 회전을 할 수 있기 때문에 하신건지 궁금합니다..!