묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨FreeRTOS 프로그래밍
펌웨어 설계시 RTOS 적용 여부 질문
안녕하세요몇년전에 회사에서 진행중인 프로젝트에 RTOS를 적용하였다가 퍼포먼스를 만족시키지 못해서펌웨어로 다시 기능 똑같이 만들어서 해보니까 성능을 만족해서펌웨어로 변경해서 작업을 진행한적이 있었는데 메인 기능은 상위제어기로부터 1ms 주기로 패킷을 수신받으면 100us 내로 응답해야하는 조건에 CRC 체크도 해야하는 상황이었고 통신 기능 뿐만아니라 다른 기능에서 사용하고 있는 프리페럴이 많아서 통신 기능외에 주기적으로 us단위의 인터럽트가 많이 발생되는 상황이였구요.RTOS로 만들었던 SW에서는 기본적으로 각각 프리페럴을 담당하는 TASK를 두고 설계를 했었는데RTOS에서는 위에 나왔던 통신주기를 ISR에서 TASK로 이벤트 전달하는과정에서 리얼타임을 만족시킬수 없었습니다.그래서 RTOS를제거하고 그냥 펌웨어로 만들어서 구조는 똑같이하고멀티태스킹을 인터럽트 처리했는데 성능이 만족스럽게 나왔습니다. 제가 생각한 바로는RTOS가 올라간 시스템에서는 기본적으로 스케줄링하는 커널이 들어가서 기본적으로 자원점유도 하고거기에 인터럽트도 관여되면 컨택스트 스위칭이 자주일어나서 오버헤드가 더 심해질수있다.펌웨어는 그냥 풀로 돌면서 인터럽트로 인한 크리티컬 섹션만 신경쓰면 되기에 성능을 만족한게 아닐까 하는 생각이 듭니다.물론 제가 RTOS에 대해 아는게 없어서 SW가 요구사항을 만족시킬수 없었던것일수도 있지만컨택스트 스위칭으로 인한 오버헤드가 리얼타임에 영향을 미치는 가혹한환경이라면 베어메탈 펌웨어를 사용하는게 맞다고 느꼈습니다. 강의에서도 말씀하셨다시피 ISR로도 멀티태스킹이 된다면 RTOS를 적용하지 않아도 된다고 하셨는데SW가 복잡해진다면 FreeRTOS API를 사용할수있으니 유지보수 측면이나 TASK간 동기화에 있어서 편리하다고 생각이 듭니다. 제 질문은펌웨어를 설계할때 RTOS를 적용할지 아니면 베어메탈 펌웨어로 가냐 적용여부를 어떻게 판별해야할까요?일단 저는 인터럽트가 많이 일어나는 시스템에서는 RTOS가 성능에 영향이 있다고 느껴집니다.
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
캐싱 관련 강의 질문입니다!
안녕하세요, 먼저 좋은 Next.js 강의 해주셔서 정말 감사합니다. 덕분에 개념을 잘 이해할 수 있었습니다.Next.js에서 자체적으로 제공해주는, fetch 메소드의 다양한 캐싱 기능에 대해 매우 강력하다고 느꼈습니다. 실제로, 현재 리액트 생태계에서, 캐싱 기능을 제공해주는 Tanstack-Query를 상당히 많이 사용하는 것으로 알고 있는데, Next.js와 캐싱 기능이 겹쳐 잘 활용하지 않은지 궁금합니다.1. Tanstack Query를 만약 사용한다면, InfiniteScroll 이나, 자체적으로, 제공해주는 로딩, 에러처리 mutation과 같은 강력한 기능을 활용할 수 있다고 보는데, Next.js의 캐싱과, Tanstack Query의 캐싱 기능이 겹쳐, 이 경우에는 어떤 식으로 합리적으로, 판단하고 실제 현업에서는 둘이 같이 사용하는 경우가 많은지 궁금합니다!2. axios.create을 통해, 자체적으로 헤더나 baseUrl를 구성하거나, interceptor를 통해, refreshToken을 관리하는등 유용한 기능을 활용했는데, Next.js Fetch에도 이러한 기능을 제공하는지 궁금합니다!3. fetch와, tanstackQuery를 둘다 활용한다면, 어떠한 기준으로 구분하여, 활용하는지 상당히 궁금합니다, tanstack-query 하나로만, 활용하는게 더 좋은 방식인지도 궁금합니다!!!
-
해결됨RAG 마스터: 기초부터 고급기법까지 (feat. LangChain)
gradio를 사용하시는 이유에 대해 궁금합니다.
이 강의를 보며 공부하면서 따라하다가 궁금해졌습니다.streamlit을 사용하는 분도 있는데 gradio를 사용하시는 이유가 궁금합니다.그리고 streamlit과 gradio의 차이를 아신다면 알려주시겠습니까?
-
해결됨카카오 코테 6주 합격! 실전 파이썬 코딩테스트
연습문제 4번 재활용컵 모으기 설명이 조금 이상합니다.
설명에 50개 컵으로 시작할 경우 15잔이라고 하는데 16잔이 돼야 할 것 같습니다.
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
java언어 기출문제의 변형강의에서 질문있습니다
질문하기가 굉장히 어려운데 21분 45초경에Sum: as.sum(5) 를 출력하는 문제입니다..여기서 이미 Sum:은 출력되어 있는 상태에서 as.sum(5)를 출력해야하는 것 아닌가여..?예를 들어서Sum: Add 5Add4Add3Add2Add1Add015이런식으로여.. 어떤게 먼저 나와야하는지 헷갈리네요 ㅠㅠㅠ
-
해결됨(2024 9월 개정판) ChatGPT 활용법, 생성 AI 프롬프트 엔지니어링 A to Z - 인공지능의 이해와 활용
생성형 AI 기반 창작물 저작권 관련 질문
좋은 강의를 제공해주셔서 감사합니다. 생성형 AI 기반 창작물(이미지, 음악, 스크립트 등)은 저작권 관련 문제가 없는지 궁금합니다.예를 들어,- 픽사 이미지풍 창작 이미지 생성 => 블로그, 유튜브 등 업로드 시- Suno에서 음악 생성 => 유튜브, 클라우드 등 업로드 시감사합니다.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
암호
package Algorithm; import java.util.*; public class 암호 { public String solution(int n ,String s) { String answer = ""; for(int i=0; i<n; i++){ s = s.substring(0,7).replace('#','1').replace('*','0'); int num = Integer.parseInt(s,2); // 2 진수로 들어온 것을 10진수로 변경하는 방법 문자열 -> 숫자 answer += (char)num; s=s.substring(7); // 끝까지 나오기! // substring (인덱스 해당 , 인덱스 해당 안됨) } return answer; } public static void main(String[] args) { 암호 t = new 암호(); Scanner kb = new Scanner(System.in); int n = kb.nextInt(); String str = kb.next(); System.out.println(t.solution(n, str)); } } 혹시 이렇게 풀면 왜 틀리는 건가요...? 감사합니다! Exception in thread "main" java.util.InputMismatchException at java.base/java.util.Scanner.throwFor(Scanner.java:939) at java.base/java.util.Scanner.next(Scanner.java:1594) at java.base/java.util.Scanner.nextInt(Scanner.java:2258) at java.base/java.util.Scanner.nextInt(Scanner.java:2212) at Algorithm.암호.main(암호.java:23)
-
미해결대세는 쿠버네티스 (초급~중급편)
Authentication - 실습 > 5분 3초 > Cluster B가 어딨나요?
5분 3초에 보면 2-2 cluster B(192.168.0.50)이 어디에 있을까요? 여지껏 계속 192.168.0.30만 실습 진행해 왔는데 갑자기 *.50을 cluster B로 지정을 해서요...
-
미해결실무에 바로 적용하는 AWS 배포
2.6 Auto Scaling Group 실습
안녕하세요.2.6 Auto Scaling Group 실습에서 구성한 launch template는 특정한 Web 서비스가 없는 그냥 EC2만 만들고 Scaling 되는 것만 확인한것인가요?직전 실습에서 사용한 Nginx가 설치된 EC2를 Auto Scaling Group으로 구성하려면 어떻게 해야할까요?확인 부탁드립니다.감사합니다.
-
미해결실무에 바로 적용하는 AWS 배포
2.6 Auto Scaling 실습 질문
안녕하세요~2.6강 Auto Scaling 실습에서 만든 launch template는 직전 실습에 사용했던 Nginx 웹서비스가 동작하던 EC2랑은 별개의 인스턴스로 동작하는 건가요?launch template에 웹서비스 없이 그냥 시간에 맞춰서 Scaling-Out 되는 확인만 하는것이 맞는지요?만약 처음 Nginx 웹서버를 설치한 EC2인스턴스에 Auto Scaling을 적용한다면 어떻게 해야하는 건가요?확인 부탁드립니다.감사합니다.
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
23년 3회 쿼리문제 질문입니다!
12:43에서 나온 쿼리 문제의 답 4, 3, 1을 꼭 세로로 나열해야 되나요?
-
미해결Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트
CertificationServiceTest에서 MailSender 인터페이스가 아닌 FakeMailSender를 이용하는 것
현재 CertificationServiceTest를 할 때 MailSender를 주입받는 것이 아닌 FakeMailSender를 주입받아서 테스트를 진행하는데MailSender를 만든 이유가 의존성을 역전시키기 위해서 만든 것인데 FakeMailSender를 사용하게 되면 의존성 역전 원칙이 적용된 것이 아니지 않나요???FakeMailSender는 mock으로 사용하고 있지만 구현체이니까 MailSender를 사용해야 되는 것이 아닌가요??그냥 테스트 목적으로 필드 값들이 잘 전달되는지 확인하기 위해서 사용하기 때문에 상관이 없는 건지 궁금합니다. MailSender 인터페이스를 이용한다면 검증 부분에서 다운 캐스팅을 해줘야 하기 때문에 사용하지 않은 건가요???
-
미해결Readable Code: 읽기 좋은 코드를 작성하는 사고법
안녕하세요 private메소드에 대해서 질문 있습니다.
제가 헷갈려서 질문드려요!private 메소드를 만들게 된다면 무언가 책임이 이상하거나 설계가 잘못되었다는 신호로 알고 있는데요 private static void checkIfGameIsOver() { boolean isAllOpened = isAllCellOpened(); if (isAllOpened) { gameStatus = 1; }}만약 이런 메서드를 테스트 한다고 하면 어떻게 해야하는건가요?! private메소드를 현업에서도 사용하시는지 궁금합니다.그리고 제가 어디를 잘못알고 있는지도 궁금해요!
-
해결됨실전도커: 도커로 나만의 딥러닝 클라우드 컴퓨터 만들기
7-3 python을 위한 도커 강의에서 질문드립니다.
vscode에 select kernel을 누르면 아무 kernel도 뜨지 않습니다. 강의에는 Python Environments... 이 뜹니다.
-
미해결[2024 업데이트] UX/UI 시작하기 : Figma 입문 (Inflearn Original)
이번 피그마 업테이트로 인해 인터페이스가 달라진 듯 합니다.
특히, 컨포넌트 세부 설정 부분이 달라진 것과 상단에 있던 버튼들이 하단으로 나오면서, 바뀐 부분이 있는데요. 이 부분에 대한 업데이트는 언제 진행이 될 지 여쭤봅니다.
-
해결됨Windows 시스템 프로그래밍 - 기본
세마포어 예제중 형변환에 대한 질문
ThreadSemaphore의 매개변수는 LPVOID인데이것은 void*를 의미 한다고 알고 있습니다. 어떻게 int로 변환이 가능한 것인가요?? 추측은 데이터 값이 가지고 있는 비트 그 자체를 형식만 주소로 변경된 데이터 값을 다루는 것 같은데 맞게 이해 했는지 모르겠습니다!
-
해결됨실전도커: 도커로 나만의 딥러닝 클라우드 컴퓨터 만들기
kaggle gpu images 설치시 Error가 발생합니다.
kaggle gpu images 설치시 Error가 발생합니다. docker login -u username으로 login 후에도 동일하게 안됩니다.Error response from daemon: pull access denied for kaggle-gpu-images, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
compareAndSet()에 대해 질문 있습니다.
private static int incrementAndGet(AtomicInteger atomicInteger) { int getValue; boolean result; do { getValue = atomicInteger.get(); log("getValue: " + getValue); result = atomicInteger.compareAndSet(getValue, getValue + 1); log("result: " + result); } while (!result); return getValue + 1; }getValue = atomicInteger.get(); 에서 조회한 값이 compareAndSet() 연산을 할때 바뀌지 않아야 바꿀려고 한 값으로 바꾸고 true를 반환한다고 이해했습니다.궁금한 부분은 getValue = atomicInteger.get(); 여기서 값을 조회하거나 중간에 스레드가 바꾼 값을 조회 한다는걸 compareAndSet()에서 구분을 할 수 있나요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-C 질문있습니다 :)
안녕하세요 선생님 🙂 펜윅트리로 넘어가기 전에 그동안 풀어봤던 문제들을 전부 새롭게 풀어보고 넘어가는 것이 맞다고 판단하여 풀어보고 있습니다 ㅎㅎ 아래 링크의 25번째 줄의for (int j = temp1; j <= temp2; j++)가for (int j = temp1; j < temp2; j++)로 바뀌어야 하는 이유를 잘 모르겠습니다. 도식화해봤는데도 마지막 인덱스가 왜 빠져야 하는지 모르겠네요 ㅠㅠhttp://boj.kr/b919bf16cf104e609582bd04735b2f6a
-
미해결김영한의 실전 자바 - 중급 1편
[ PDF 수업 자료 오타 ] 예외 계층2 - 활용 수업자료 오타
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의 : 김영한의 실전 자바 - 중급 1편목차 : 예외 계층2 - 활용PDF : 10. 예외 처리2 - 실습.pdf오타 위치 : 23Page ( 예외 계층2 - 활용 : MainV3 -코드 변경 )내용 : throws 되는 예외는 NetworkClientExceptionV2 이 아닌 NetworkClientExceptionV3 으로 제공되어야 합니다.