묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결
Service 계층과 Repository 계층 사이의 Cache 레이어
안녕하세요 개발 하다 고민이 생겨서 질문 남깁니다예를 들어, Player 도메인에 대한 서비스를 개발하는 상황입니다. 기존에는 PlayerService가 PlayerCache, PlayerRepository 를 의존하여 updatePlayerName 메소드가 호출되었을 때, PlayerRepository에서 update 해주고, PlayerCache에서 캐시를 갱신해 주었습니다. 그런데 여기서 예를 들어, NicknameCouponService 라는 서비스에서 Player 도메인에 대한 update를 발생시키고 싶을 때, PlayerRepository와 PlayerCache 를 동시에 의존해야 한다는 것을 항상 기억하고 수행해 주어야 하는 문제가 발생하였습니다. 이 문제 때문에 캡슐화가 되지 않아 프로젝트 복잡성이 증가하는 것 같고, 그렇다고 update를 항상 PlayerService를 통해만 진행하게 된다면, PlayerRepository의 재사용성이 떨어지게 되는 것 같습니다. 그러면 결국 Service 계층과 Repository 계층 사이에 Cache기능이 있는 Repository역할을 수행하는 계층이 필요하다고 느끼게 되었는데, Cache가 트랜잭션에 영향을 또 주지 않아야 하니까 트랜잭션을 처리하는 서비스 레이어의 영역을 또 침범하게 되는 것 같고... Coroutines + Webflux 환경이라 Aop로 캐시추상화 또한 사용하지 못하고 있습니다. 실무에서는 어떻게 해결하는지 궁금합니다!
-
미해결강화학습 올인원: 기초, 최신 알고리즘, 실무 활용까지
소스코드 없어요
3-1 강화학습 기본 알고리즘-마르코프 결정과정 8. 마르코프 결정과정 상태 가치 함수 ---> 소스코드 없음
-
해결됨LangGraph를 활용한 AI Agent 개발 (feat. MCP)
schema 질문
안녕하세요 강사님, 강의 잘 듣고 있습니다.개발 병행하면서 강의 수강 중인데, 끝까지 다 듣지 못한 점 미리 양해드립니다. LangGraph 공식 문서를 보면, Graph의 상태 스키마를 정의할 때 Pydantic의 BaseModel보다 TypedDict나 dataclass를 사용하는 걸 더 권장하는 것처럼 보입니다.강사님께서도 강의에서 주로 TypedDict를 쓰시는 걸 확인했습니다.그런데 개발을 하다 보니, TypedDict는 런타임 유효성 검사나 구조화 파싱 기능이 없어서LLM 응답이 해당 스키마에 맞게 출력되었는지 보장할 수 없는 점이 불편하게 느껴졌습니다.예를 들어, PydanticOutputParser(pydantic_object=MyModel)처럼 출력 형식을 강제할 수 있는 기능은TypedDict에는 없어서, 결국 출력 파싱이 명확하지 않거나 "```json ... ```"처럼 마크다운이 붙는 문제도 자주 발생합니다.물론 TypedDict는 속도 면에서 이점이 있고 LangGraph state로는 잘 어울린다는 것도 알고 있지만,이런 이유 때문에 결국 스키마를 TypedDict와 Pydantic 두 번 정의해야 하는 상황이 종종 생깁니다. 그래서 질문드리고 싶은 건 다음과 같습니다:하나의 스키마 정의만으로 상태 관리와 LLM 출력 파싱까지 모두 깔끔하게 처리하는 더 좋은 방법은 없을까요?혹은 실무에서는 이런 문제를 보통 어떻게 해결하고 계신지도 궁금합니다.감사합니다!
-
미해결처음하는 컴퓨터공학(CS 지식) 부트캠프 | 컴퓨터구조, 운영체제, 네트워크
16 x 1 RAM array / 1-to-2 Decoder와 8x1 RAM의 연결
- 강의 영상에 대한 질문이 있으시면, 상세히 문의를 작성해주시면, 주말/휴일 제외, 2~3일 내에 답변드립니다 (이외의 문의는 평생 강의이므로 양해를 부탁드립니다.)- 강의 답변이 도움이 안되셨다면, dream@fun-coding.org 로 메일 주시면 재검토하겠습니다. - 괜찮으시면 질문전에 챗GPT 와 구글 검색을 꼭 활용해보세요~- 잠깐! 인프런 서비스 운영(다운로드 방법포함) 관련 문의는 1:1 문의하기를 이용해주세요. 강의: 섹션 5. 컴퓨터 구조 파트: 메모리 구조와 동작 이해 - 12. 64K 메모리 동작 구성 이해주제: 16x1 RAM array질문: 1-to-2 Decoder와 Write의 연결에 오류가 있지 않나 싶습니다.1-to-2 decoder 출력이 두 8x1 RAM의 DI에 연결되어 Write가 1일때 DataIn의 값에 따라 (0, 1) 또는 (1, 0) 2개 비트가 저장되는 모양으로 이해됩니다.DataIn은 두 8x1 RAM의 DI로 직연결되고, Write가 1-to-2 Decoder를 통해 두 8x1 RAM의 W로 연결되어야 할 것 같습니다.
-
미해결유니티 머신러닝 에이전트 완전정복 (기초편)
DQN을 위한 파라메터값 세팅에서 goal-plus, goal-ex
state_size에서 [3, 64,84]면은 아 알쥐비하고 해상도를 이용해 스테이트사이즈를 세팅했구나를 알겠는데goal-plus하고goal-ex하고나뉘어져 있는 이유를 모르겠습니다.각각goal-plusgoal-ex는 어떤 의미의 집합인가요?
-
해결됨한 번에 끝내는 자바스크립트: 바닐라 자바스크립트로 SPA 개발까지
자바스크립트 첫걸음 교재 질문..
자바스크립트 첫걸음 교재 책을 구매했는데이 교재로 웹 프론트엔드를 위한 자바스크립트 첫걸음, 한 번에 끝내는 자바스크립트: 바닐라 자바스크립트로 SPA 개발까지교재로 이 두개 강의 같이 공부할수 있나요? 아니면 별도로 정리를 해야할가요
-
해결됨[2025 리뉴얼]플러터플로우로 코딩 없이 한달 안에 앱 만들기
이미지 로딩 오류
UpdateProfile 에서이미지 버튼 클릭 후 파일 선택 이후ImageCodecException: Failed to detect image file format using the file header.File Header was [0x3c 0x21 ...가 나오는데요.
-
미해결
배드민턴 동아리 '민턴로그(MINTONLOG)' 신규 부원 추가 모집
안녕하세요!서울 지역 대학생 배드민턴 동아리 민턴로그(MINTONLOG)에서 2기 신규 부원을 모집합니다.민턴로그에서는 실력보다는 함께 운동을 즐기고 싶은 마음을 더 중요하게 생각하는 동아리입니다!바쁜 일상 속에서 새로운 사람들과 건강하게 리프레쉬 해보아요! 🏸 모집 정보- 모집 대상: 서울 거주 중인 대학생, 졸업생- 지원 가능 연령: 1999년생 ~ 2006년생- 모집 인원: 총 5~10명 (성비 1:1로 선발 예정)- 모집 기간: 상시모집- 활동 기간: 7월 1일 ~ 8월 31일- 입회비: 5,000원 (회계 내역 투명 공개) 🏸 민턴로그는 이런 활동을 해요- 정기 모임: 격주 1회(일정에 따라 편하게 참여)- 활동 장소: 서울 시내 체육관(주마다 투표로 결정)(ex. 망원나들목체육관, 구로누리배드민턴장, 미성체육관)신규 부원 추가 모집 - 주요 활동:▪ 팀 매치 & 미니 토너먼트 (경품 있음!)▪ 자유 연습 및 간단한 친목 게임▪ 운동 후 뒷풀이 or 맛집 탐방 🏸 지원하러가기!- 지원 링크:https://forms.gle/jH644ZLAqSRhtmLu5 - 문의 오픈채팅:https://open.kakao.com/o/se0y5nnh
-
해결됨[최신] Vue 강의 끝판왕 : Nuxt 3 완벽 마스터
pageContainerStyle 이름을 찾을 수 없습니다 에러
Quasar UI Framework 설치 에서 4:41초 지점에 강사님처럼 코드 복붙했는데 제목과 같이 이름을 찾을 수 없습니다 라고 에러가 발생합니다.화면상에는 스타일은 잘 적용 되고 있는데 코드상에서만 에러가 발생해서 이것저것 시도를 해봤는데 뭐가 문제인지 계속 저런 문구가 발생해서요 이런 상황 겪어보신적 있으신가요;;
-
해결됨[2025] 비전공자도 한 번에 합격하는 SQLD 올인원
window , docker
안녕하세요 강사님, SQL을 처음 입문하여 강의 수강중입니다. Docker 기반과 windows 기반 중 windows 기반으로 설치해서 해도 되는걸까요 ? 강의에서 docker 기반으로 진행하신 사유가 궁금합니다.
-
해결됨아날로그 회로설계 실무 : Analog IP 설계와 성능 개선하기
챕터 4 강의안 62페이지. AC simulation돌릴때 SINE(1.2 10m 1k 0.5m) 파라미터 삭제해도 차이가 없는지에 대해서
위의 사진은 삼코치님이 시뮬레이션 돌렸을 때의 결과입니다. 동영상강의에서 36:40 쯤에 코치님이 AC simulation을 돌린다고하셨죠? 그런데 지금 현재 transient가 아닌 AC simulation이 잖아요 그렇다면 transient에서 쓰이는 VINN에 달린 SINE(1.2 10m 1k 0.5m)라는 parameter와 VINP에 달린 SINE(1.2 10m 1k)라는 parameter를 제거해도 "AC simulation"에서는 결과가 같아야한다고 생각했는데 다음 사진과 같이결과가 조금 다르게 나오는데 이게 도대체 왜 그런지 이해가 안갑니다... 두번째 질문추가로 삼코치님이 VINN에는 AC성분을 제거하고 VINP에만 AC 1성분을 넣어줬는데 그냥 differential input이 AC 1로 들어갔다고 생각하면 되는건가요? 확인해보니 한쪽 AC 0.5 한쪽 -0.5 넣었더니 그냥 한쪽만 AC 1한거랑 결과가 같게 나오긴하네요 그냥 제 이해가 맞는지 궁금해서 여쭈어봅니다. 친절한 답변 항상 감사합니다!
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
day17과제중 Context 객체생성 오류발생했습니다.
day17과제하던중에, Context 객체 생성하는데 오류가 발생했습니다.export를 붙여서 진행하면 화면과 같이 오류가 발생하고, export를 제외하면 랜더링할때 빈화면이 나옵니다. 다른컴퍼넌트에는 useContext이용해서 함수 공급받는거 작성했습니다.import "./App.css" import Header from "./components/Header" import ContactEditor from "./components/ContactEditor" import List from "./components/List" import {useState, useRef, useCallback, createContext, useMemo} from 'react' const mockData = [ //임시데이터라는 뜻(mockData) { id: 0, name: "이정환", email: "king32@gmail.com" }, { id: 1, name: "김정환", email: "queen25@gmail.com" }, { id: 2, name: "하정환", email: "prince13@gmail.com" }, ] export const ContactStateContext = createContext(); export const ContactDispatchContext = createContext(); function App() { const [contact, setContact] = useState(mockData); const idRef = useRef(3) const onCreate = useCallback((name,email)=>{ const newContact = { id: idRef.current++, name: name, email: email, }; setContact([newContact, ...contact ]); },[]); const onDelete = useCallback((targetId) => { setContact(contact.filter((it) => it.id!== targetId)); },[]) const memoizedDispatch = useMemo( ()=>({onCreate, onDelete}),[] ); return( <div className="App"> <Header /> <ContactStateContext.Provider value={contact}> <ContactDispatchContext.Provider value={memoizedDispatch}> <ContactEditor /> <List /> </ContactDispatchContext.Provider> </ContactStateContext.Provider> </div> ) } export default App;
-
미해결
FCSS_SDW_AR-7.4 시험에 합격하고 싶으신가요? 최신 문제는 어디에서 찾을 수 있을까요?
FCSS_SDW_AR-7.4 시험은 SD-WAN 아키텍처, 보안 라우팅 및 고급 문제 해결에 중점을 둔 Fortinet의 고급 인증입니다. 이 시험에 합격하려면 단순한 이론 지식만으로는 부족합니다. SD-WAN 배포, 라우팅 프로토콜 및 링크 모니터링에 대한 실습이 필수적입니다. 실제 시나리오를 이해하고 구성 변경을 구현하면 이 어려운 인증 시험에서 성공하는 데 필요한 자신감을 높일 수 있습니다.FCSS_SDW_AR-7.4 인증을 준비할 때 덤프는 사용하지 마십시오. 덤프는 지름길을 제공하지만 진정한 이해를 쌓는 데 실패합니다. 대신, 공식 가이드, 대화형 실습 및 업데이트됨FCSS_SDW_AR-7.4 Exam Questions PDF와 같은 신뢰할 수 있는 학습 자료를 선택하세요. 이러한 검증된 문제는 실제 시험 패턴을 시뮬레이션하여 약점을 조기에 식별하고, 실제 시험 전에 시간 관리 및 문제 해결 정확도를 향상시키는 데 도움이 됩니다.마지막으로, 모의 시험과 성과 추적이 포함된 체계적인 학습 일정을 작성하세요. 토론 포럼 및 학습 그룹에 참여하여 다른 학습자의 통찰력을 얻으세요. Pass4Success와 같은 플랫폼은 신뢰할 수 있는 자료를 제공하여 학습 효율성을 높입니다. 실습 경험, 인증된 연습 문제 및 지속적인 복습을 결합하면 지름길에 의존하지 않고 자신 있게 FCSS_SDW_AR-7.4 시험을 통과하고, 인증 성공뿐 아니라 강력한 기술 역량도 보장할 수 있습니다.연습 문제Q1: Fortinet 기능 중 SD-WAN 환경에서 안정적인 링크 선택을 보장하는 것은 무엇입니까? A) 링크 상태 모니터링 B) 패킷 필터링 C) 애플리케이션 오버라이드 D) IPsec 터널링정답: AQ2: FCSS_SDW_AR-7.4에서 성능 기반 트래픽 조정을 위해 일반적으로 사용되는 라우팅 방식은 무엇입니까? A) 정적 라우팅 B) BGP C) OSPF D) 정책 기반 라우팅정답: D
-
해결됨[코드캠프] 시작은 프리캠프
싸이월드3
<!DOCTYPE html> <html lang="ko"> <head> <title>Game</title> <link href="./styles/game.css" rel="stylesheet"> </head> <body> <div class="wrapper"> <div class="wrapper__header"> <div class="header__title"> <div class="title">GAME</div> <div class="subtitle">TODAY CHOICE</div> </div> <div class="divideLine"></div> </div> <div class="game__container"> <img src="./images/word.png"> <div class="game__title">끝말잇기</div> <div class="game__subtitle">제시어 : <span id="word">코드캠프</span></div> <div class="word__text"> <input class="textbox" id="myword" placeholder="단어를 입력하세요"> <button class="search">입력</button> </div> <div id="result" class="word__result">결과!</div> </div> <div class="game__container"> <img src="./images/lotto.png"> <div class="game__title">LOTTO</div> <div class="game__subtitle">버튼을 누르세요.</div> <div class="lotto__box" id="lottobox"> <span id="lotto1">3</span> <span id="lotto2">5</span> <span id="lotto3">10</span> <span id="lotto4">24</span> <span id="lotto5">30</span> <span id="lotto6">34</span> </div> <button class="button">Button</button> </div> </div> </div> </body> </html>* { box-sizing: border-box; margin: 0px; } html, body{ width: 100%; height: 100%; } .wrapper{ width: 100%; height: 100%; padding: 20px; display: flex; flex-direction: column; align-items: center; justify-content: space-between; } .wrapper__header{ width: 100%; display: flex; flex-direction: column; } .header__title{ display: flex; flex-direction: row; align-items: center; } .title { color: #55b2e4; font-size: 13px; font-weight: 700; } .subtitle{ font-size: 8px; padding-left: 5px; } .divideLine{ width: 100%; border-top: 1px solid gray; } .game__container{ width: 222px; height: 168px; border: 1px solid gray; border-radius: 15px; display: flex; flex-direction: column; align-items: center; justify-content: space-between; padding: 20px; background-color: #f6f6f6; } .game__title{ font-size: 15px; font-weight: 900; } .game__subtitle{ font-size: 11px; color: #999999; } .word__result{ font-size: 11px; font-weight: 700; } .word__text{ width: 100%; display: flex; flex-direction: row; justify-content: space-between; } .textbox{ width: 130px; height: 24px; border-radius: 5px; } .search{ font-size: 11px; font-weight: 700; width: 38px; height: 24px; } .lotto__box { width: 130px; height: 21px; border: 1px solid #000000; border-radius: 8px; display: flex; flex-direction: row; justify-content: space-between; align-items: center; padding: 8px; font-size: 10px; font-weight: 700; font-family: Malgun Gothic; background-color: #ffe400; } .button { width: 62px; height: 24px; border-radius: 5px; font-size: 11px; font-weight: 700; }질문 1. game__container 에서 display 하고 align-items center 로 했는데 왜 끝말잇기 칸은 사이사이에 공백이 잘 들어가 있는데 lotto 부분은 button 부분이 이상하게 붙어있습니다.ㅠ똑같은 game__container 적용 받는데 왜 lotto button 칸만 이럴까요ㅠㅠ?혹시 div 설정 안해서 그런가 해서<div class="button"><button>Button</button></div>로 해도 똑같습니다..왜 이런 현상이 발생할까요ㅠㅠ?
-
해결됨[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스
tailwinde-css
궁금한 점 : @apply 핑크로 변하지 않아도 실행은 됩니다! 상관 없는걸까요??styles.module.csstailwind.config
-
미해결업무가 100배 빨라지는 엑셀 데이터 활용과 분석 노하우
표 데이터 편집하여 바로 피벗으로 분석하기 문의
안녕하세요. 쿼리로 피벗을 만든 후 새로고침 관련 질문드립니다. 첨부한 이미지처럼 고등 정보를 원본표에 추가 후 다시 피벗으로 돌아와서 새로고침을 할 때 표-우클릭-새로고침 이 아닌 우측 통합문서쿼리창에서는 새로고침이 불가능한가요?또 화면에는 몇 개의 행이 업로드 되었는지 확인이 가능한데 제 화면에서는 생략한 걸로 나와서 행의 업로드 개수 확인을 하려면 어떻게 변경해야 할까요?
-
미해결스프링 핵심 원리 - 기본편
강의 수강 난이도 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]제가 방학동안, 백엔드 공부를 위해 필수적인 강좌들만 빠르게 들으려고 하는데, 자바 기본편만 듣고 지금 이 핵심 강의를 수강하고 있는데, 모르는 메서드 들도 나오고, 조금 이해하는데 진도가 빠른 것 같은데, 그냥 몇 몇 메서드들은 스스로 구글링하면서 공부하면서 쭉 따라갈 수 있는 내용들인가요? 아니면 다른 강의가 더 선행됐어야하나요??
-
미해결풀스택을 위한 탄탄한 프런트엔드 부트캠프 (HTML, CSS, 바닐라 자바스크립트 + ES6) [풀스택 Part2]
part1을 수강하지 않아도 지장이 없다 하셨는데
part1 및 전반적인 IT배경지식이 없으면 진도를 따라가기 상당히 어렵게 강의가 구성되어 있습니다.
-
미해결인프런 클론 바이브코딩 with Windsurf, Cursor, Claude Code, Rails
10강 파일업로드와 서버 호스팅 관련 문의
10강 파일업로드에서 당장은 로컬업로드 방식으로 쓰다가 사용자가 많아졌을 때aws S3, cdn 방식으로 옮기라 하셨습니다. 이 때 로컬업로드를 사용하기위해서는 digital ocea에서 원할하게 하기위한 방식은 6$플랜+일일백업 으로 충분한지요?그리고 aws S3, cdn방식으로 옮겨야할 만한 사용자(일간사용자)혹은 가입자수는 얼마정도가 될런지요?
-
해결됨[백문이불여일타] 데이터 분석을 위한 중급 SQL
HACKER RANK에서 문제찾기
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.문제를 빨리 찾기 위해 써치윈도우를 사용했을때 문제명이 잘려서 문제를 찾는데 어려움이 있습니다. 문제명이 다 나오게 할수있는 설정방법은 없는지요.알려주시면 감사하겠습니다.