묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[UI3 업데이트] 피그마 배리어블을 활용한 디자인 시스템 구축하기
Component group 이름에 접두사로 part/를 붙이면 왜 검색이 안되나요 ?
이전 강의 자료에서 설명해주셨던 것 같은데 까먹었습니다.. 왜 검색이 안되고 어디에서 검색이 안되었던거였죠..?
-
미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
코드 편집기 확장 프로그램
코드편집기에 6, 12번째 줄에 회색 바탕에 context, event, listener로 표시되어있는 확장 프로그램 저도 쓰고싶은데 혹시 vs코드에도 비슷한 프로그램 있을까요?혹시 없다면, 웹스톰의 확장 프로그램은 무엇을 쓰시는지 알 수 있을까요?
-
미해결스프링 기반 REST API 개발
자바 빈 스펙을 준수하는지 체크하는 테스트
안녕하세요.07.30 시간에 강사님께서 자바빈 스펙을 준수하게끔 테스트를 진행하십니다. 이 과정이 왜 필요한건지 궁금합니다~builder패턴으로 테스트로만 잘 진행하면 충분하다는 생각이 들었기 때문입니다.생성자로 객체를 만들어야 상태안전하게 만들 수 있고setter를 사용하게 되는 것은 되도록 지양하는 것이라 생각했습니다.
-
해결됨Slack 클론 코딩[백엔드 with NestJS + TypeORM]
(질문)비밀 저장소에 접근하기 위한 인증 정보는 로컬 .env에 저장하는지?
만약 환경변수를 비밀저장소를 통해 받아온다면, 비밀 저장소 인증에 대한 환경변수는 어떤 방식으로 가져오는지 궁금합니다.(비밀저장소에 접근하기 위한 인증 정보는 로컬.env 파일에 저장해야 하는건가요?)
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
SSR로 구현 시 스켈레톤 UI를 적용하지 않아도 될까요?
메인화면에서 SSR로 데이터를 받아오도록 구현한 상태입니다. (page router)데이터가 많아서인지 페이지 접속 시 빈 화면이 출력되는데,스켈레톤 UI를 적용해봐도 스켈레톤 UI가 표시되지 않습니다.스켈레톤 UI는 CSR 환경에서만 사용할 수 있는 걸까요?이런 경우에는 데이터를 CSR로 받아오고, 스켈레톤 UI를 적용하는 게 나을까요?
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
컴파일 오류가 왜 뜨는지 이해가 안되네요
Switch코딩처럼 간단하게 하려고 public static void main(String[] args){ int score = 100; String a; if (score >= 90) { a = "A"; } System.out.println("등급 = " + a); 이런 식으로 풀어봤는데 마지막 sout 부분 a에만 컴파일 오류가 뜹니다. public static void main(String[] args) { String a; if (true){a = "s";} System.out.println("a" + a);근데 이건 실행이 되는 게 이해가 안되네요 결국 같은 거 아닌가요??
-
미해결견고한 결제 시스템 구축
recovery 동시성 처리 관련 문의
recovery() 를 스케줄로 구현한 부분에 있어서 궁금증이 있습니다.설명에도 언급 되었듯이 k8s 환경과 같이 scale-out 형태로 서비스를 제공하면 동시성 이슈가 발생될 것으로 예상되는데요.단순하게 하나의 unknown order 만 생성해서 테스트로 갈음하기에는 검증이 부족하다고 느껴지는데, 동시성 검증은 어떻게 진행하셨을까요?
-
해결됨Slack 클론 코딩[백엔드 with NestJS + TypeORM]
(질문)외부 저장소를 통한 환경변수 불러오기 비동기 질문
const getEnv = async ()=>{ const response = await axios.get(’/비밀키요청’) return response.data } 강의에서 위 코드를 통해 비밀키를 받아오는 예시를 작성해 주셨는데 ConfigModule.forRoot({isGlobal:true, load: [getEnv]})과정에서getEnv와 같은 비동기 함수를 등록한 경우 forRoot 내부적으로 await을 통해 메서드가 동작을 완료할때까지 기다리는지 궁금합니다.(비동기 함수를 등록해도 forRoot의 내부 동작으로 처리되는지?)
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
외래키를 사용하지 않아도 되는지 궁금합니다
이렇게 연관관계가 있는 키들은 외래키로 참조하고 있다는 표시를 하지 않아도 되는지 궁금합니다.
-
미해결[MD/마케터] 포토샵 파일 수정법과 썸네일/기획전 제작하기
인스타그램 사이즈
안녕하세요 인스타그램이 최근에 4대 3으로 바뀌었는데원래는 1080 1080 정사각형 사이즈였다면현재는 가로 810 세로 1080 사이즈로 작업하면 되나요?
-
미해결비전공자도 이해할 수 있는 쿠버네티스 입문/실전
파드오류
아직도 crashloopback off 가 뜹니다.어떤식으로 명령어를 써야될지 모르겠어요..
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
Usage Limit 관련해서 질문이 있습니다!
만약에 openai api를 사용해서 챗봇 서비스를 프로덕션 환경에서 배포해서 사용자들이 사용할 수 있도록 한 경우, 만약 많은 사용자로 인해 Usage Limit이 초과 되면 어떻게 해야할까요? Usage Tier 1 기준 gpt-4o-mini 모델의 한도:RPM(분당 요청): 500RPD(일당 요청): 10000TPM(분당 토큰): 200000gpt-4o-mini 모델을 사용한 챗봇을 배포했다고 가정했을 때 많은 사용자로 인해 요청 횟수를 넘어가게 되면 어떻게 해야할까요?사용자 별로 제한을 둬야하는 걸까요? 분당 몇 번, 하루에 몇 번 질문 가능 이런식으로..?
-
미해결
짐코딩 뷰 수업중에 상태저장유지 내용이 있나요?
커리큘럼에 봐도 딱히 모르겠어서 문의드립니다. 그부분 내용을 꼭 보고 싶은데 확실하지 않아서요ㅠㅠ로컬스토리지에 담고 그런거요!
-
미해결스프링 핵심 원리 - 기본편
assertj랑 junit이랑 뭔가 충돌하는 것 같습니다.
=========================================[질문 템플릿]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에서 의존성도 건드렸었는데 효과가 없네요
-
미해결설계독학맛비's 실전 Verilog HDL Season 2 (AMBA AXI4 완전정복)
KV260으로 실습하는 방법
안녕하세요 🙂신규 보드로 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 bootkv260의 기본 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에서 connecttargetsource .. boot_jtag.tcl파일 위치boot_jtag를 순서대로 입력하면 jtag boot로 변합니다. 이 두가지만 해결하시면 kv260으로도 충분히 수강 가능하다고 생각합니다. 또 kv260에는 100mhz clock이 정확히 안돠고 99000001 이런식으로 클록이 나오는데 이는 에러 코드에 나오는 클록을 그대로 복사 붙여넣기 하시면 해결이 됩니다.DDR3 메모리가 점차 단종 수순을 밟으면서 zybo z7-20도 단종될 것 같습니다. KV260을 사고 싶었는데 자료가 없어서 망설이시는 분을 위한 좋은 길잡이가 되었으면 좋겠습니다.
-
해결됨소프트웨어 업데이트 : Re-Programming 과정에 대한 이해
Application -> Bootloader jump
application에서 bootloader로 jump할 때, 혹시 이 부분은 MCU의 soft reset같은 기능을 의미할까요? 그래서 상위 제어기가 하위 제어기에게 reset해서 bootloader로 진입해. 이런 방식일까요?
-
해결됨소프트웨어 업데이트 : Re-Programming 과정에 대한 이해
Secondary Bootloader와 first bootloader
reprogramming 기능의 여부에 따라 secondary bootloader와 first bootloader가 나뉜 다면, MCU에는 first 아니면 secondary bootloader 중 하나를 보유하고 있는 것인가요? 아니면 bootloader의 state machine에 따라 각 기능 secondary bootloader의 역할인 reprogramming과 그 밖의 app jump용도의 first bootloader로 state machine 내의 기능적인 역할로서 존재하는건가요?
-
해결됨쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
MAC 빠른 설치와 무게감 있는 설치 차이점
안녕하세요 강사님MAC 빠른설치의 4-1. 자료를 보고 설치한 후무게감 있게 설치하는 방법의 강의 자료를 보니 같은 내용으로 생각이 되어 질문드립니다.4-1을 보고 설치했다면 무게감 있는 설치가 되었다고 생각하면 될까요?
-
미해결[게임 프로그래머 도약반] DirectX11 입문
'C\ .... ......lib'은 올바른 win32에플리케이션이 아닙니다.
'C\.... ......lib'프로그램을 시작할 수 없습니다.'C\ .... ......lib'은 올바른 win32에플리케이션이 아닙니다. 뭐 때문에 그러는 건가요
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
채팅 클라이언트 문의
안녕하세요. 채팅 클라이언트 실습전에 먼저 구현을 해보았는데요.클라이언트 메인에서 스레드를 스타트 하면 그 즉시 소켓이 닫히면서 프로그램이 종료되는 오류를 겪었습니다.이는 클라이언트 메인에서 sender 스레드를 join하면서 해결하긴 했는데요.영한님의 예제에서는 start() 만 하여도 프로그램이 종료되지 않는데, 왜 저의 코드는 종료될까.... try with resources 가 문제인가 싶다가도 그건 아닐거 같은 모호한 상황에 놓여서....제가 볼 땐 도무지 보이지 않아서, 코드 리뷰와 원인 파악을 부탁드리려고 질문을 남깁니다. MessageHandler.javapackage com.hoonjin.study.java.ionetwork.network.chat.client; import lombok.RequiredArgsConstructor; import java.io.DataInputStream; import java.io.IOException; import java.net.Socket; import static com.hoonjin.study.java.util.MyLogger.log; @RequiredArgsConstructor public class MessageHandler implements Runnable { private final Socket socket; @Override public void run() { try (DataInputStream dis = new DataInputStream(socket.getInputStream())) { while (true) { String msg = dis.readUTF(); log(msg); } } catch (IOException e) { e.printStackTrace(); } } } MessageSender.javapackage com.hoonjin.study.java.ionetwork.network.chat.client; import com.hoonjin.study.java.ionetwork.network.chat.Command; import lombok.RequiredArgsConstructor; import java.io.DataOutputStream; import java.io.IOException; import java.net.Socket; import java.util.Arrays; import java.util.Scanner; import static com.hoonjin.study.java.util.MyLogger.log; @RequiredArgsConstructor public class MessageSender implements Runnable { private static final String DELIMITER = "\\|"; private final Socket socket; private boolean joined = false; @Override public void run() { Scanner scanner = new Scanner(System.in); try (DataOutputStream dos = new DataOutputStream(socket.getOutputStream())) { while (true) { log("input message with cmd: "); String msg = scanner.nextLine(); if (msg.isEmpty()) { continue; } String[] split = msg.split(DELIMITER); String cmd = split[0]; if (Arrays.stream(Command.values()).noneMatch(c -> c.value().equals(cmd))) { log("wrong command"); continue; } if (cmd.equals(Command.EXIT.value())) { dos.writeUTF(msg); joined = false; break; } else if (cmd.equals(Command.JOIN.value())) { joined = true; } if (joined) { dos.writeUTF(msg); } } } catch (IOException e) { e.printStackTrace(); } } } ChatClient.javapackage com.hoonjin.study.java.ionetwork.network.chat.client; import java.io.IOException; import java.net.Socket; public class ChatClient { private static final String SERVER = "localhost"; private static final int PORT = 23456; public static void main(String[] args) throws IOException, InterruptedException { try (Socket socket = new Socket(SERVER, PORT)) { Thread messageHandler = new Thread(new MessageHandler(socket)); Thread messageSender = new Thread(new MessageSender(socket)); messageHandler.start(); messageSender.start(); messageSender.join(); // 이 부분이 없으면 시작하자마자 즉시 종료됨 } catch (IOException e) { e.printStackTrace(); } } } Command.javapackage com.hoonjin.study.java.ionetwork.network.chat; import lombok.RequiredArgsConstructor; @RequiredArgsConstructor public enum Command { JOIN("/join"), MESSAGE("/message"), CHANGE("/change"), USERS("/users"), EXIT("/exit") ; private final String value; public String value() { return value; } } 이상입니다.확인해주시면 감사하겠습니다.새해복 많이 받으세요!