inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

도메인에 대한 개인적인 경험이 다음 설계에 영향을 주는 경우가 많습니다. 토비님께서는 설계를 하실 때, 이전 경험에서 비롯된 도메인을 어느 정도까지 설계에 반영하시나요?

미해결

토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1

안녕하세요, 토비님. 주니어로서 아직 부족한 점이 많지만, 궁금한 점이 있어 또 이렇게 질문드립니다. Section 3에서 소개된 splearn 도메인 강의를 듣기 전에, 스스로 먼저 도메인 모델링을 해보는 시간을 가졌습니다. 그 과정에서 회원 , 수강 , 강의 등의 개념 외에 수강신청 이라는 도메인을 도출했는데요, 그 이유는 “수강은 수강신청 후 결제가 완료되어야 성립된다” 는 제 안의 암묵적인 경험에 의한 도메인 해석 때문이었습니다. 그런데 사실 강의에서 제시된 사용자 스토리에는 결제 라는 개념이 존재하지 않았습니다. 그럼에도 불구하고, 과거 경험에서 비롯된 도메인이 자연스럽게 설계에 스며들었고, 결과적으로 오버엔지니어링으로 이어졌다 는 생각이 들었습니다. 이런 식의 ‘의도되지 않았지만 그럴듯한 도메인’ 을 설계에 넣고 싶은 유혹은 실제 회사에서 설계할 때도 자주 느끼는 부분입니다. 그래서 토비님께서는 이런 상황에서 어떤 기준으로 도메인을 포함하거나 배제하시는지, 그리고 본인의 경험을 어떤 방식으로 설계에 녹이시는지 가 궁금해졌습니다. 바쁘시겠지만, 짧은 의견이라도 들려주시면 큰 도움이 될 것 같습니다. 감사합니다!

  • java
  • spring
  • spring-boot
  • jpa
  • 리팩토링
  • ddd
종운 댓글 2 좋아요 1 조회수 236

anaconda 설치 중 아래와 같이 나옵니다. 이유가 뭘까요?

해결됨

챗GPT와 파이썬으로 주식 자동매매 앱 및 웹 투자 리포트 만들기

(base) C:\Users\DD_soft> python Python 3.12.7 | packaged by Anaconda, Inc. | (main, Oct 4 2024, 13:17:27) [MSC v.1929 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. 이때문에 64bit가 유지됩니다 ㅠㅠ

  • python
  • 재테크
  • streamlit
  • chatgpt
  • 프롬프트엔지니어링
boardmyth 댓글 4 좋아요 0 조회수 264

인터페이스 위치를 결정하는 기준에 관해

미해결

토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1

안녕하세요 토비님, 강의 너무 재미있게 듣고 있습니다. 인터페이스를 도메인 계층에 둘지, required 포트에 둘지 결정하는 기준이 있을까요? Splearn의 코드를 예로 들어보면, 도메인 서비스 인터페이스인 passwordEncoder 는 어댑터 계층에서 구체적인 기술로 구현된다는 점에서 EmailSender , MemberRepository 같은 required 포트의 인터페이스와 유사하게 느껴집니다. 이들 모두 외부 세계(또는 특정 기술)와 애플리케이션을 분리하는 역할을 하기 때문입니다. 만약 애플리케이션 서비스에서 passwordEncoder 를 사용해 비밀번호를 암호화한 후, 암호화된 비밀번호( passwordHash )를 Member.register 메서드에 인자로 직접 넘겨준다면, passwordEncoder 역시 required 포트에 위치할 수 있지 않을까요? 도메인 계층도 애플리케이션 서비스에 의존하지 않게 되고요. 그런데도 불구하고 passwordEncoder 를 도메인 계층의 인터페이스로 두신 이유가 궁금합니다. 감사합니다.

  • java
  • spring
  • spring-boot
  • jpa
  • 리팩토링
  • ddd
Speedwagon 댓글 2 좋아요 1 조회수 314

build 폴더 생성 관련 문의

미해결

옆집 개발자와 같이 진짜 이해하며 만들어보는 첫 Spring Boot 프로젝트

폴더 똑같이 생성하고, build.gradle 파일로 프로젝트 오픈 후 build successful 되었는데도 build 폴더만 생성되지 않았습니다. 이 경우 그냥 진행해도 될까요?

  • java
  • spring
  • rest-api
  • spring-boot
  • dbms/rdbms
댓글 1 좋아요 2 조회수 87

10회차 작업형2 라벨 인코딩 관련

미해결

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

라벨 인코딩 하는 과정에서 le.fit_transform(train[col])을 한 뒤에 le.fit_transform(test[col]) test에 fit_을 같이 붙여버렸습니다. col인 상권유형의 개수(unique)가 train과 test 차이가 둘다 a b c d e f 6개로 같았으면 성능평가에 지장 없을까요? 지장이 있다면 감점이 크게 될지 궁금합니다.

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
진현석 댓글 3 좋아요 0 조회수 147

record 생성 시 휴먼 에러 발생 가능성

미해결

토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1

안녕하세요, 토비님. 메서드 파라미터가 많아질 경우 record 타입의 parameter object를 사용하여 가독성을 높일 수 있는 방법을 소개해주셨는데요, 이 방법으로도 parameter object 인스턴스 생성 시 argument를 잘못 전달한다거나 등의 휴먼 에러는 여전히 발생 가능하지 않나 생각이 듭니다. java record도 kotlin의 named parameter와 같은 기능을 제공하면 좋겠지만 검색해봤을땐 아직 제공하지 않는 것 같더라구요. 이처럼 argument 전달 버그는 예방할 방법이 없을까요? 혹은 강의 뒷부분에서 이러한 점을 개선해주실까요? record에 builder를 사용해야 하나 생각이 들긴 하는데, 괜찮은 방법인지는 물음표네요.

  • java
  • spring
  • spring-boot
  • jpa
  • 리팩토링
  • ddd
대흉근 댓글 3 좋아요 1 조회수 258

실행파일 에러 문의입니다.

미해결

[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)

실행파일 만들고 실행할때 Failed to start embedded python interpreter! 메세지가 뜹니다.ㅜㅜ 챗gpt에서 --onedir로 한번 해보라고 해서 해도 파일은 생성되는데 똑같은 에러가 뜹니다;;; 어떻게 해야 하나요?ㅜㅜ

  • python
  • 웹-크롤링
김정호 댓글 2 좋아요 0 조회수 256

섹션 6. 페이지 캐싱 - 동일한 fetch 요청을 다른 cache 옵션으로 데이터 패칭 하는 경우

해결됨

한 입 크기로 잘라먹는 Next.js

안녕하세요 ! 섹션 6. 페이지 캐싱 강의를 듣고 루트(/) 페이지를 static page 로 만들어 보기 위한 실습 과정에서 app/layout.tsx 파일 내부의 모든 도서를 패칭하는 fetch 함수의 option에는 아무 옵션도 설정하지 않고 (Next15 버전 기본값은 no-store ), 루트 페이지 내부의 동일한 데이터 패칭만 cache 옵션( force-cache )을 추가하여 데이터가 캐싱되도록 설정했습니다. 이러한 과정 후 npm run build 를 통해 빌드 하니 루트 페이지가 정적 페이지(static page)로 빌드 되었습니다. 정적 페이지가 되기 위해서는 동적 함수를 사용하지 않아야 하며, 데이터를 반드시 캐싱해야 되는데 동일한 url 로 데이터 패칭을 보냈을 때 서로 다른 옵션 을 사용하게 되면 request memoization으로 캐싱된 데이터 force-cache 로 설정된 데이터)를 우선적으로 사용해서 정적 페이지로 동작하는 건가요? 1번 과정에서 궁금한 점이 발생하여 이번에는 layout.tsx 페이지의 데이터 패칭 옵션을 강제로 cache : "no-store" 를 추가하여 빌드 를 진행했더니 빌드 가 정상적으로 완료되지 않고 오류가 발생하여 빌드가 완료되지 않는 문제가 발생했습니다. 동일한 url로 데이터 패치를 보낼 때 기본 값을 사용한 패치와 옵션을 추가한 패치가 있다면 옵션을 추가한 패치를 우선적으로 사용하고, 서로 다른 옵션은 추가할 수 없는건가요? (기존 build 파일인 .next 폴더를 제거하고 빌드하니 빌드가 성공적으로 동작했으며, 루트 페이지가 Dynamic page로 빌드되었네요.. 기존 빌드된 .next 폴더가 있을 때 2번 상황 처럼 동일한 fetch url에 옵션만 다르게 설정하여 빌드하니 오류가 발생한 이유를 모르겠네요..ㅎㅎ) dynamic page 에서 dynamic params 에 generateStaticParams 함수를 통해 params 값을 미리 전달하여 페이지를 만드는 경우, return 값으로 전달하지 않은 params 의 페이지를 사전 렌더링 할 때 page router의 getStaticPaths의 fallback 옵션 blocking 처럼 동작하는 건가요? 테스트 과정에서 발생한 문제들을 이해하고 싶은데 이해가 가지 않아서 질문 드립니다 ! app/layout.tsx import "./globals.css"; import Link from "next/link"; import style from "./layout.module.css"; import { BookData } from "@/types"; async function Footer() { const response = await fetch( `${process.env.NEXT_PUBLIC_API_SERVER_URL}/book`, { cache: "no-store", } ); if (!response.ok) { return <footer>제작 @rekoding</footer>; } const books: BookData[] = await response.json(); return ( <footer> <div>제작 @rekoding</div> <div>총{books.length}권</div> </footer> ); } export default function RootLayout({ children, }: Readonly<{ children: React.ReactNode; }>) { return ( <html lang="en"> <body> <div className={style.container}> <header> <Link href={"/"}>📚 ONEBITE BOOKS</Link> </header> <main>{children}</main> <Footer /> </div> </body> </html> ); } (with-searchbar)/page.tsx import BookItem from "@/components/book-item"; import style from "./page.module.css"; import { BookData } from "@/types"; const AllBooks = async () => { try { const response = await fetch( `${process.env.NEXT_PUBLIC_API_SERVER_URL}/book`, { cache: "force-cache", } ); if (!response.ok) { throw new Error(); } const allBooks: BookData[] = await response.json(); return allBooks.map((book) => <BookItem key={book.id} {...book} />); } catch (error) { console.error(error); return <div>예상치 않은 문제가 발생했습니다.</div>; } }; const RandomBooks = async () => { try { const response = await fetch( `${process.env.NEXT_PUBLIC_API_SERVER_URL}/book/random`, { next: { revalidate: 3 }, } ); if (!response.ok) { throw new Error(); } const randomBooks: BookData[] = await response.json(); return randomBooks.map((book) => <BookItem key={book.id} {...book} />); } catch (error) { console.error(error); return <div>예상치 않은 문제가 발생했습니다.</div>; } }; export default async function Home() { return ( <div className={style.container}> <section> <h3>지금 추천하는 도서</h3> <RandomBooks /> </section> <section> <h3>등록된 모든 도서</h3> <AllBooks /> </section> </div> ); }

  • react
  • typescript
  • next.js
ReKoding 댓글 1 좋아요 1 조회수 95

작업형 2 결측치...

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

어차피 지나간 시험이지만.. 여기저기 후기랑 카페를 둘러보니 논란이 많아서 물어볼수밖에 없네요.. 타겟값에 결측치를 0으로 제거했다고 되어있으면 결측치를 제거해야하는건가요.? 그냥 진행해도 무방한가요? 저는 원핫인코딩하고 렌덤포레스트만 해서 600대인가 500대 인가 기억은 잘 안나지만 딱 기본만 하고 제출했거든요... 딴짓님의 의견이 궁금합니다.

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
지원 댓글 2 좋아요 0 조회수 169

영한님, sleep(10) 이유가 궁금합니다.

미해결

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

안녕하세요. 영한님 궁금한 점이 있습니다. sleep(10) 를 하면 동시 실행을 더 촉진할 수 있다는 것이 이해가 안됩니다. 예를 들어, 아래를 가정한다면요! 각 시간은 별도로 가정한 것입니다. 1번 쓰레드가 1.0초에 먼저 실행이 된 후 0.1 초 쉬었다가 실행이 되면 1.1초에 실행 가정, 2번 쓰레드가 1.1초에 먼저 실행이 된 후 0.1 초 쉬었다가 실행이 되면 1.2초에 실행 가정, 3번 쓰레드가 1.2초에 먼저 실행이 된 후 0.1 초 쉬었다가 실행이 되면 1.3초에 실행 가정, ... 그렇다면 각 쓰레드가 0.1초씩 쉬었다고 하더라도 결국에는 실행시점이 1.1초, 1.2초, 1.3초 다 다르다고 봐도 되지 않나요? 뭔가, sleep(10) 을 빠지게 되면 대부분 쓰레들이 비슷한 시점에 10ms 를 자고, 거의 동시에 깨어나서 increment() 를 실행하는 것 같은데 맞나요? 맞다면 왜 그런가요? 감사합니다!

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
highjune 댓글 2 좋아요 0 조회수 124

i = 1 원자적 연산

미해결

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

안녕하세요. 좋은 강의 항상 감사합니다. for문으로 1부터 100부터 돌건데, 그 i 변수값(카운터)이 바깥의 공유 변수에 그대로 대입(이퀄 연산) 하는데. 이런 쓰레드가 있는데 100개가 있는데 동시에 같은 로직으로 동일한 공유 변수에 접근을 하는 상황이다. 더하기 연산을 하는 것이 아니다. 이 프로그램이 끝나면 이 공유변수에는 몇의 값 ? i = 1 처럼 원자적 연산일 경우, 멀티스레드 환경에서 문제가 되지 않는다고 하셨잖아요. 그러면 위의 상황에서도 무조건 100이 들어간다고 봐도 되죠? 실제로 테스트 해봤을 때도 100이 계속 들어가긴 합니다. 감사합니다.

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
highjune 댓글 1 좋아요 0 조회수 50

libs에 폴더에 war 밖에 없습니다.

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] -a---- 2025-06-22 오후 4:15 22515429 hello-spring-0.0.1-SNAPSHOT.war gradlew 실행하고 폴더를 이동했더니 war 파일 밖에 없습니다. jar 파일이 없는거면 처음부터 잘못된건가요?

  • java
  • spring
  • mvc
  • spring-boot
끌림 댓글 2 좋아요 0 조회수 89

가격이 영상과 다름

미해결

파이썬 알고리즘 트레이딩 파트1: 알고리즘 트레이딩을 위한 파이썬 데이터 분석

강의에서 나오는 AAPL의 1980-12-12 가격과 제가 데이터를 받아서 열었을 때의 1980-12-12 가격이 다르게 나오는데 이건 왜그런건가요?

  • python
  • 머신러닝
  • pandas
  • 객체지향
  • 퀀트
  • 병렬-처리
길상훈 댓글 1 좋아요 0 조회수 83

토비님이 생각하시는 복잡한 도메인은 무엇이라고 생각하시나요?

미해결

토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1

안녕하세요. 토비님 강의가 마치 의도하신 것 처럼 시니어 개발자님과 함께 개발하면서 의논하는 느낌으로 진행되어서 재밌게 잘 수강하고 있습니다. 강의 내용에서 DDD는 도메인이 복잡해진 순간에 택해야 한다. 라는 말씀을 해주셨는데요. 문득, "토비님이 생각하시는 도메인이 복잡해진 순간은 어떤 순간일까? 나름의 기준이 있으신걸까?" 하는 생각이 들었습니다. 개인적으로 저는 어떻게 생각할까 라고 고민을 해봤는데요. 1) 도메인을 설명하기 위해서 개발자가 코드를 살펴봐야 하는 순간 2) 각 도메인 간의 결합도가 고객의 유스케이스를 해결하기 위해 다양하게 결합되어야 하는 경우 이 두 가지가 떠올랐는데, 토비님의 견해가 궁금해서 질문드려봅니다! 늘 양질의 강의를 제공해주셔서 감사드립니다. (_ _)

  • java
  • spring
  • spring-boot
  • jpa
  • 리팩토링
  • ddd
종운 댓글 2 좋아요 5 조회수 1704

이즈리얼 성대모사

미해결

[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)

깜짝 놀랐습니다 진짠줄 ㅋㅋㅋㅋ 영상 멈추고 한 2분은 빵터졌네유 ㅋㅋㅋ 자르반은 듣고 2분간 정색했습니다...

  • python
  • 웹-크롤링
sakuraibbo 댓글 1 좋아요 0 조회수 88

[26강. Bomb 발사] 영상 잘림 문의

미해결

초초보도 할 수 있다! 파이썬으로 쓱 만드는 스페이스 인베이더

안녕하세요, [26. Bomb 발사] 강의가 16:49 길이의 영상으로 홈페이지에 표시되는데, 실제 강의 자체는 10:42분 영상이라 뒷 부분이 짤린 듯 합니다. 영상 확인 부탁드릴게요. 본 강좌를 통해서 Python 기본을 익혀가고 있네요. 좋은 강연 감사드립니다.

  • python
  • pygame
  • game-programming
다중언어GUI 댓글 3 좋아요 1 조회수 158

사업자 등록

미해결

제로베이스부터 배우는 웹개발의 개념과 바이브 코딩

토스페이먼츠에 실제로 결제를 달려면 사업자 등록을 하라고 하는데 유형 같은건 어떤걸 선택해야 할까요? 저는 결제 연동 방법은 이미 아는 상태에서 이런 구체적인 팁이 있을까 해서 수강했는데 없어서 여쭤봅니다.

  • react
  • 웹앱
  • next.js
  • cursor
  • 인공지능(ai)
Donghoon Song 댓글 2 좋아요 0 조회수 110

quey dsl 설정부분

미해결

실전! Querydsl

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/ 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예 [질문 내용] 강의 내용대로 설정했는데 qtype이 만들어지고 있지 않습니다 스프링부트 버전이 올라가고 나서 qtype설정이 바뀐거 같은데요 추가 내용을 올려주셨으면 좋겠어요 ㅠㅠㅠ

  • java
  • jpa
victoai 댓글 2 좋아요 0 조회수 195

ngrok 실행 안됨

미해결

Next.js 15로 완성하는 실전 YouTube 클론 개발

ngork http --domain ----- 3000 명령어 실행 시 해당 오류가 발생하면서 실행이 안됩니다 어떻게 해결하면 될까요?

  • react
  • postgresql
  • 클론코딩
  • next.js
  • tailwindcss
  • drizzle
임규리 댓글 1 좋아요 0 조회수 365

작업형 2 ..

미해결

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 아 뭔생각이었는지 인코딩깜박하고 모델돌렸다가 오브젝트 컬럼 오류 뜨길래 그냥 드랍하고 모델돌렷는데 .. 이러면 아예 40점 다 날라가나요..? ㅠㅠ 2유형 빼고 나머지 4문제맞췄는데 이거때메 떨어져야하나요 ..

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
동훈 댓글 4 좋아요 0 조회수 140

인기 태그

인프런 TOP Writers

주간 인기글