묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨제미니의 개발실무 - 커머스 백엔드 기본편
다양한 관점의 코드 경험을 위해 개선하지 않은 코드
안녕하세요. 제미니님 유튜브 부터 인프런까지 참여하며 굉장히 많은 인사이트를 얻고있어 무한한 감사 인사를 올립니다. 질문강의를 수강하며 제미니님이 던져준 키워드를 어떻게 곱씹어야하지? 라는 생각을 하며 두 가지 정도 질문을 드리게 되었습니다. Q1. "저같은 경우는 뭐 컴포넌트 같은 걸 좀 쪼개서 만들고 싶은데, 일단은 여러분들이 좀 혼합된 걸 느끼게 하려고 제가 풀어 놨어요" - 결제 코드 느끼기 13:17이렇게 제미니님이 생각했던 코드를 보고 싶은데, 이 코드는 신규 강의였던 "레거시 다루기" 에서 개선 작업을 하나요? 아니면 저희에게 열린 사고를 던져주고 넘어가는걸까요? Q2. "success 메서드에 트랜잭셔널을 사용하는 것도 할 말이 많은데 기본적인 로직에서는 문제는 없다." - 결제 코드 느끼기 13:58이 내용에서도 혹시 개선하는 부분도 질문 1번과 같이 레거시 다루기 강의에서 개선 하시나요?개인적으로 success 에서 트랜잭션 어노테이션을 빼고, 저장하는 로직을 한 군데 모아서 거기 사용할 것 같은데 제미니님은 어떻게 하시는지 궁금하네요!
-
해결됨은행 서버 프로젝트 실습을 통해 배우는 코틀린 마스터 클래스
강의가 검은 화면으로 나옵니다.
섹션 2 강의 4 5 6 전부 검은 화면으로 나옵니다. 나머지 강의들은 제대로 영상이 틀어지고요. Inflearn 에서 제공해주는 영상 FAQ의 조치를 다따라 해봤는데도 되지않습니다.
-
해결됨제미니의 개발실무 - 커머스 백엔드 기본편
histories() 응답에 PointHistory.id를 포함한 이유가 궁금합니다/
안녕하세요.histories() 응답에 PointHistory.id가 포함되어 있던데, 이 값을 내려주신 의도가 궁금합니다.FE에서 이 id를 직접 활용해야 하는 지점이 있는지 궁금해서요.예를 들어 포인트 이력 상세 조회나 특정 이력을 식별해야 하는 기능을 염두에 두신 걸까요?현재로서는 다른 필드들만으로도 충분하지 않나 생각되어, id를 포함하신 이유가 궁금합니다!
-
해결됨실제 프로젝트 실습을 통해 배우는 코틀린 마스터 클래스
DI시 eager과 lazy
authService를 주입받을때 get을 사용해서 eager로 가져오는 것으로 보이는데 by inject<>으로 lazy로 가져오는 것이랑 어떤 차이가 있는지 알고 싶습니다. 또 실무에서는 보통 어느 상황에서 eager혹은 lazy를 사용하는지 알고 싶습니다.
-
미해결제로부터 Kotlin으로 Claude Code 만들기
타입스크립트
타입스크립트도 듣고 싶습니다.혹시 이전 할인 가격으로 구매할 수 있을까요? ㅠ
-
해결됨Springboot 모니터링 시스템 구축 (프로메테우스 + 그라파나)
actuator에서 health 외의 다른 URL은 404 Notfound 에러가 발생합니다.
Spring boot java를 사용하고있고, 현재 1. Spring Actuator 셋팅중입니다.actuator에서 health 외의 다른 URL은 404 Notfound 에러가 발생합니다.application.yml을 사용하여 include에서도 "*"로 전체허용 해놨는데도 안되네요
-
해결됨제미니의 개발실무 - 커머스 백엔드 기본편
SettlementTargetRepository Jquery 질문
@Query( """ SELECT new io.dodn.commerce.storage.db.core.SettlementTargetSummary( settlement.merchantId, settlement.settlementDate, SUM(settlement.targetAmount), COUNT(settlement.id), COUNT(DISTINCT settlement.orderId) ) FROM SettlementTargetEntity settlement WHERE settlement.settlementDate = :settlementDate GROUP BY settlement.merchantId, settlement.settlementDate """, ) fun findSummary(settlementDate: LocalDate): List<SettlementTargetSummary>이부분에서 where절에서 이미 settlementDate를 필터링하고 있는데 group by에서 settlementDate가 필요한 이유가 따로 있을까요? 어차피 parameter로 넘어온 settlementDate만 조회가 되는 로직이라 Group By에서는 필요가 없어보여 질문 남깁니다.
-
해결됨제미니의 개발실무 - 커머스 백엔드 기본편
부가 기능을 이벤트 핸들러로 분리하는 기준이 있을까요?
addReview()를 보면 리뷰 저장 이후에 포인트를 지급하는 로직이 함께 들어가 있는데, 제 기준에서는 포인트 지급이 리뷰 작성의 핵심 기능이라기보다 부가 기능처럼 느껴졌습니다.그래서 이런 부분은 서비스 내부에서 직접 호출하기보다 이벤트를 발행하고, 별도의 핸들러에서 처리하는 방식으로 분리해도 괜찮지 않을까 궁금했습니다.(다만 제가 이걸 정말 "부가적인 책임"으로 봐도 되는지 조금 헷갈리기도 합니다.)만약 실무에서는 이런 부가적인 로직을 서비스 메서드 안에 함께 둘지, 아니면 이벤트/이벤트 핸들러 형태로 분리할지를 어떤 기준으로 판단하시는지 궁금합니다.또는 이런 경우 이벤트 외에 다른 방식으로 설계하시는 경우도 있는지 궁금합니다.
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
주사위앱 소개 및 레이아웃 설정 문제
Bold체 및 검은색 배경 설정과 흰색 글꼴 적용이 되지 않습니다. <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="#008000" tools:context=".MainActivity"> <LinearLayout android:layout_width="match_parent" android:layout_height="200dp" android:layout_marginTop="100dp"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="30sp" android:textColor="@color/black" android:gravity="center" android:layout_margin="20dp" android:textStyle="bold" android:text="인생은 주사위 한방에 가는거 아니겠습니까?"/> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="200dp" android:weightSum="2"> <ImageView android:src="@drawable/dice_1" android:layout_width="120dp" android:layout_height="120dp" android:layout_weight="1"/> <ImageView android:src="@drawable/dice_2" android:layout_width="120dp" android:layout_height="120dp" android:layout_weight="1"/> </LinearLayout> <Button android:text="인생 고고" android:layout_width="match_parent" android:layout_height="50dp" android:background="@color/black" android:textColor="@color/white" android:layout_margin="50dp"/> </LinearLayout>
-
해결됨제미니의 개발실무 - 커머스 백엔드 기본편
엔티티의 pk 를 0으로 초기화하시는 이유가 있을까요??
자바에서 클래스 필드 타입을 참조타입과 원시타입의 차이를 공부하던 중에둘의 차이가 null 값이 필요하냐 필요하지 않냐로 배웠습니다..그런데 엔티티 pk의 경우에는jpa에서 새 객체와 저장된객체를 구분할 때 null 을 본다고 들었습니다.그래서 참조형 Long을 쓰는 구나 라고 생각을 정리했어요!! 헌데 코틀린으로 쓰신 코드에서는 Long타입을 선언하시고 0으로 초기화해주시는 이유가 궁금합니다!코틀린에서는 nullable하게 할순있지만 기본적으로 null이 불가능하다고 들었긴한데.. 조금 헷갈립니다!언어적인 부분에서 jpa가 다르게 동작하는것인지 아니면 제가 좀 미숙하게 이해한건지 궁금합니다!
-
해결됨제미니의 개발실무 - 커머스 백엔드 기본편
제미니님 안녕하세요!
제미니님 이커머스 강의와 프로젝트 코드들을 참고하면서 게시판을 만들어보고 있는 중입니다!현재는 게시물 정보만 페이징 방식으로 구현해놓았습니다.근데 게시글 목록을 보여줄 때 한 게시글 당조회수, 좋아요수, 댓글 수, 유저닉네임 등.. 표시가 되야해서 좀 헷갈립니다. 한 API에서 전부 조합해서 내려준다고하면페이징된 게시글 10개를 먼저 조회하고조회한 게시글의 ID를 기반으로 조회수와 좋아요를 따로 조회한 뒤에 같이 내려주는 방식이 좋을까요?
-
해결됨Claude + IntelliJ로 TodoList 개발하기 - MCP 완전 정복
MCP 연동 인텔리제이 2.6.1
지금 클로드 데스크탑연동에 계속 실패하고 있습니다. 설정파일을 건들면 클로드가 아예 실행되지 않고있고있어요...윈도우 10 환경에서 인텔리제이 2025.2.6.1사용중이고, npx, npm 등 필요한것들은 설치완료했습니다. 우선 변경된 설정처럼 아예 목록에 표시되지 않고있는데, 윈도우버전 사용자들도 연동하는 가이드내용을 좀 상세하게 알려주실수있을까요?
-
해결됨제미니의 개발실무 - 커머스 백엔드 기본편
개념 간 격벽 분리와 목록 조회 시 발생하는 참조 구조
제미니님 안녕하세요. 강의를 통해 각 개념 간의 응집성을 높이고, 불필요한 의존성을 줄여 격벽을 세우는 설계를 깊이 있게 연습하고 있습니다.강의에서 배운 원칙을 적용하여 '리뷰'나 '찜' 같은 개념들이 '상품' 개념을 단방향으로 참조하도록 구조를 잡고 있습니다. 하지만 실제 상품 목록 조회 기능을 구현하다 보니, 설계의 일관성을 유지하기 어려운 상황을 마주하게 되어 조언을 구하고자 합니다.개념 간 의존성의 역전: 목록 화면에서 '리뷰 수'나 '찜 수'를 함께 보여주거나, 이를 기준으로 상품을 정렬해야 하는 요구사항이 생겼습니다. 이 경우 상품 개념이 본래 몰라야 할 하위 개념(리뷰, 찜 등)의 상태를 알아야만 하는 상황이 발생합니다.API 구성의 어려움: 상세 페이지는 API를 잘게 나누어 클라이언트에서 합성함으로써 개념 간의 독립성을 지킬 수 있지만, 목록의 경우 수십 개의 상품에 대해 매번 각각의 리뷰 수 API를 호출하여 클라이언트가 매핑하는 방식은 어딘가 어색하고 성능과 구현 효율 면에서 의문이 듭니다.결국 조회를 위해 상품이 다시 리뷰나 찜을 알게 되면, 처음 설계한 개념 간의 단방향 참조 구조가 깨지거나 서로를 참조하는 순환 참조가 발생할 것 같아 우려됩니다.이처럼 개념 간의 격벽을 유지하려는 설계 원칙과, 여러 개념의 데이터가 한꺼번에 필요한 조회 요구사항이 충돌할 때 어떤 식으로 접근하는 것이 현명할까요? 원칙을 고수하며 우회할 방법이 있을지, 혹은 이런 조회 상황에서는 설계적 타협이 필요한 것인지 견해를 듣고 싶습니다.
-
해결됨누구보다 빠르게 배우는 Nginx + Docker + Springboot 서버 무중단 배포
무중단 배포 / 컨테이너 이미지 관리에 주로 어떤 인프라를 활용하시나요?
강의에선 컨테이너 이미지를 DockerHub에 등록해서 사용하셨고,리버스 프록시를 위해 EC2에 Nginx를 띄워서 사용하셨는데요! AWS 인프라를 활용하는 환경이라면 AWS ALB나 AWS ECR을 쓰고, Terraform 같은 IaC 기술을 활용하면 인프라 구축에 필요한 비용을 많이 줄일 수 있을 것 같다는 생각이 들었습니다. 그럼에도 Docker Hub나 Nginx 인프라를 추가하여 사용한다면 어떤 장점이 있는지 궁금합니다.실무에선 주로 인프라 구성을 어떻게 하는지도 궁금합니다!
-
해결됨자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
수업노트
수업노트에 뭐라고 작성하신건가요? 파일이 깨진건지 핵심 문장이 안보여요
-
해결됨제미니의 개발실무 - 커머스 백엔드 기본편
프로덕트와 프로덕트카테고리 사이의 삭제 정책
안녕하세요, 선생님!좋은 강의 제공해주셔서 감사합니다. 덕분에 단순히 구현에만 집중하기보다, 설계와 개념에 대해 더 고민하면서 코드를 작성하게 되었습니다.섹션 2의 ‘개념 느끼기’ 부분에서 Product가 Product Category보다 더 상위의 개념이라고 말씀해주셨던 것으로 기억합니다. 저도 그렇게 이해했습니다.그런데 코드 구현 파트에서 Product와 Product Category 사이의 삭제 정책을 두 가지 예시로 설명해주셨는데, 그 부분에서 한 가지 궁금증이 생겼습니다.제 생각에는 개념적으로 Product가 더 상위 개념이라면, Product가 삭제될 때 Product Category도 함께 삭제되는 정책이 조금 더 자연스러운 흐름처럼 느껴졌습니다.이 부분에 대해 제가 개념을 잘못 이해한 것인지, 아니면 실무적인 관점에서 추가로 고려해야 할 부분이 있는지 궁금합니다.혹시 제가 놓치고 있는 관점이 있다면 조언 부탁드립니다!
-
해결됨Claude + IntelliJ로 TodoList 개발하기 - MCP 완전 정복
MCP 연동관련
CLAUDE 에서 json 파일 수정하였고, { "mcpServers": { "jetbrains": { "command": "npx", "args": ["-y", "@jetbrains/mcp-proxy"] } }}인텔리제이는 2025.2.6.1 버전 다운로드 후, MCP 서버 활성화 해둔 상태입니다.하지만 계속 프로그램 재실행 하여도, Claude 부분이 활성화되지 않네요. 윈도우 10 사용중입니다. 추가로 어디를 확인하면 될까요?
-
해결됨Claude + IntelliJ로 TodoList 개발하기 - MCP 완전 정복
클로드 개발자 구성편집 설정시 문제점
{"mcpServers":{"jetbrains":{"command":"npx","args":["-y","@jetbrains/mcp-proxy"]}}}이거설정하면 클로드 앱 화면자체가 안나오네요. ㄷㄷ
-
해결됨Claude + IntelliJ로 TodoList 개발하기 - MCP 완전 정복
2025.3.3 인텔리제이 버전에서 MCP설정하는 방법
정보가 조각조각 되어있어서 처음 시작 부터 어렵네요. 윈도우11 환경입니다.인텔리제이 MCP서버 클라이언트 자동구성 쪽에 claude가 안뜹니다.현재 강의에서 claude설치후 구성편집 들어가서 노션에 있는거 복사후 claude종료 후 재실행한 상태입니다.
-
해결됨실시간 채팅 서버 구축: 분산 처리부터 성능 최적화까지
service 를 interface 로 두는 이유
안녕하세요 강사님.서비스 계층을 설계할 때 인터페이스를 두고 구현체를 만드는 패턴을 사용하는 이유가 궁금합니다.현재 프로젝트에서는 구현체가 하나뿐인데, 이런 상황에서도 인터페이스를 분리하는 것이 가지는 실질적인 이점이 무엇인지 알고 싶습니다.특히 구현이 하나로 고정되어 있다면, 바로 구현 클래스를 빈으로 등록해도 되지 않을지 고민이 되었는데요.설계 관점에서 인터페이스를 미리 분리해두는 이유와, 실무에서 어떤 장점이 있는지 설명해주시면 감사하겠습니다