묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Claude + IntelliJ로 TodoList 개발하기 - MCP 완전 정복
질문
비활성화라고 뜹니다. 당연히 인텔리제이에서 MCP server, AI assistant 다 설치했어요. 뭐가 문제일까요?
-
해결됨Claude + IntelliJ로 TodoList 개발하기 - MCP 완전 정복
도와주세요
이렇게 연결이 되어 있는데, MCP tools 이 안뜨고 인텔리제이에 구조를 알려줘 하면 다르게 떠요. 전 이렇게 뜹니다. 어떤 걸 제가 잘못한걸까요 ?
-
해결됨Claude + IntelliJ로 TodoList 개발하기 - MCP 완전 정복
[긴급질문] 도와주세요 세팅
말씀해주신대로 json 파일에서 복붙하고 Claude 재 실행하면 이렇게 뜨는데 왜 그러는걸까요 ?
-
해결됨Claude + IntelliJ로 TodoList 개발하기 - MCP 완전 정복
MCP 툴이 안보이네요...
안녕하세요. 이미 나와 있는 글들을 참고는 했습니다. 따라서 해 보았지만 딱히 변경이 안되네요.제 경우 지금 mcp 부분이 안보이네요.이부분이 제일 시작 부분 같은데요.일단 강의 내용대로 설정은 다 한 상태인데요이상히 변경이 안되네요.강의를 완강 할수 있도록 부디 도와 주십시요. 감사합니다.
-
해결됨실시간 채팅 서버 구축: 분산 처리부터 성능 최적화까지
그레이스풀 셧다운과 데몬 스레드의 관계 질문
안녕하세요 강사님 좋은 강의 잘 듣고 있습니다강의에서 말씀하신 그레이스풀 셧다운과 데몬스레드의 관계까 제가 이해한 의미와 조금 달라서 여쭤봅니다.저는 그레이스풀 셧다운을 진행 중인 작업을 마무리하고 안전하게 종료하는 것으로 이해하고 있는데 데몬 스레드는 JVM 종료 시 작업이 중간에 끊길 수도 있다고 알고 있습니다. 그래서 “레디스 이벤트 처리 과정이 백그라운드에서 알아서 들어가기 때문에 데몬 스레드를 사용하면 자연스럽게 그레이스풀 셧다운이 된다”라는 설명에서 레디스의 백그라운드 이벤트 처리 방식과 데몬 스레드 사용이 어떤 식으로 연결되는지를 조금 더 구체적으로 알고 싶습니다. 또, 메시지를 소비하는 도중에 애플리케이션이 종료된다면 메시지 손실 가능성은 없는지도 궁금합니다. 그리고 실무 환경에서도 보통 이런 방식(데몬 스레드 기반)으로 Redis Pub/Sub 리스너를 구성하는지 아니면 다른 종료 처리 방식을 더 선호하는지도 알고 싶습니다.좋은 강의 잘 듣고있습니다! 감사합니다.
-
해결됨카카오 면접관이 알려주며 가장 쉽게 배우는 Kafka
일부 영상들에 스크립트가 누락되었어요 ㅠㅠ
강사님 안녕하세요!스크립트가 2분부터 약 10분간 누락되었네요 ㅠ이번 영상 말고도 다른 영상들에도 누락된게 있는 것 같아요.개인적으로 영상을 2번 시청하는데 두번째는 스크립트로 보면서 하는 편이라 인프런 측에 요청 부탁드려도 될까요?
-
해결됨코틀린 코루틴 완전 정복
CoroutineDispatcher에 대한 질문
안녕하세요.CoroutineDispatcher강의를 들다보니 제가 이해한게 맞는지 궁금하여 질문드립니다. 말씀하시기론 CoroutineDispatcher가 코루틴을 스레드로 보내 실행시키는 객체라고 하셨습니다. 하지만 예제에서 singleThreadDispatcher나 multiThreadDispatcher로 선언했던 객체들이 실제로는 Dispatcher라기보단 Dispatcher에 의해 작업이 수행될 스레드인것 같더라고요. 저는 다른 스레드풀에 그저 Dispatch만 하는줄 알았는데 아닌것 같아 뭐가 맞는지 궁금하여 질문남깁니다.
-
해결됨실전 jOOQ! Type Safe SQL with Java
generate dao 를 통한 삽입 시 pk auto-increment 가 적용되지 않습니다
Kotlin, Groovy gradle, PostrgreSQL 기반으로 프로젝트 세팅이 되어 있습니다 @Repository class ActorRepository( private val dsl: DSLContext, configuration: Configuration ) { private val actorDao = ActorDao(configuration) companion object { private val ACTOR = JActor.ACTOR } fun save(actor: Actor): Unit = actorDao.insert(actor) }이러한 방식으로 Repository 가 구현되어 있을 때, @SpringBootTest class ActorRepositoryTest( private val actorRepository: ActorRepository, ): StringSpec({ "insert test" { val actor = Actor().apply { firstName = "John" lastName = "Doe" } println("Actor before insert: $actor") val insertedActor = actorRepository.save(actor) } }) { override fun extensions() = listOf(SpringExtension) } 위 쿼리가 실행됩니다제가 예상했던 insert into "actor" ("first_name", "last_name") values(?, ?) 과는 다르게 id 값이 0으로 고정되어 생성되더라구요generate dao 를 생성하는 방법이 잘못된 걸까요?
-
해결됨Claude + IntelliJ로 TodoList 개발하기 - MCP 완전 정복
claude code 의 커넥터 관리 설정 미표시!
안녕하세요 강의를 구매 후 클로드코드와 intelliJ ultimate 버전을 연동하려고 하는데요. Mcp server 를 인텔리제이 플러그인으로 설치하고 클로드 코드에의 개발자 설정에서 jetbrains running이라고 뜨는걸 확인했는데요.강의에서 설명하신것처럼 채팅창의 하단의 커넥터에서는 저는 이렇게만 뜨고 제가 설정한 연동내용들이 뜨지 않습니다. 그래서인지 질문을 해도 연동이 안됐다고 뜨고요! 도와주십쇼 !혹시 확장프로그램의 문제인건가 해서 그 화면도 캡쳐했습니다.
-
해결됨은행 서버 프로젝트 실습을 통해 배우는 코틀린 마스터 클래스
TransactionMessage 질문
안녕하세요.TransactionMessage 부분에서time을 기본값 LocalDateTime.now()로 설정하실 때 val -> var로 변경하시는 것을 봤습니다.실무에서 코틀린에서 기본값을 선언할때 관례적으로 var로 하는지 궁금합니다.(코틀린으로 서버를 개발해본적이 없어서 기초적인 질문 드려서 죄송합니다..)감사합니다.
-
해결됨은행 서버 프로젝트 실습을 통해 배우는 코틀린 마스터 클래스
CompletableFuture 질문
안녕하세요.KafkaProducer future.whenComplete에서throw 하는 코드를 보고 질문 드립니다.코드를 보니까 CompletableFuture로 구현되어 있던데transactional.run 안에서 예외를 잡을 수가 있는지 궁금합니다.코드만 보기로는 whenComplete가 비동기로 동작해서 저기서 예외를 던진다고 누가 받는지 잘 모르겠습니다.제가 스프링 비동기를 구현해보지 않아서 질문드립니다.감사합니다.
-
해결됨은행 서버 프로젝트 실습을 통해 배우는 코틀린 마스터 클래스
스프링 빈 질문
안녕하세요.궁금한 점이 있어 질문드립니다.코드를 보면 @Component private class Advice: Runner ...이렇게 내부 클래스가 Private으로 되어 있는데 private으로 선언된 클래스도 component scan 대상이 되나요? 만약 1번에서 안된다면 인자로 받은 Runner가 프록시 빈으로 생성이 안될 것 같은데, 그렇다면 프록시가 제대로 동작하는게 맞는지 궁금합니다. private val advice : Runner = Advice()코드를 보면 만약 빈으로 생성된 인자를 넣지 않는다면 기본 Advice() 를 생성해서 넣는다고 보이는데 이렇게 된다면 Advice 프록시가 자동으로 생성되지 않는다고 생각되고 그렇다면 aop가 작동되지 않을것 같은데 맞는지 궁금합니다.(그래서 기본값을 넣지 않는게 맞지 않나 궁금합니다.) 감사합니다.
-
해결됨코틀린 코루틴 완전 정복
코루틴과 JVM이 끝나는 조건에 대해 문의 드립니다.
- 학습 관련 질문을 남겨주세요. 질문을 상세히 작성하면 더 좋습니다.- 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 어렵게 느껴졌던 Structured Concurrency에 대해 강의를 듣고 많이 이해하고 배워 갑니다. 자바에서는 데몬이 아닌 자식 쓰레드가 끝나지 않으면 메인 쓰레드가 끝났더라도 JVM이 종료가 되지 않는 걸로 알고 있습니다. 따라서 아래 자바 코드는 th01을 join()으로 기다리지 않더라도 JVM은 끝나지 않습니다.public class scratch02 { public static void main(String[] args) throws Exception { Thread th01 = new Thread(()-> { while(true) { System.out.println("I'm working"); try { Thread.sleep(1000); } catch (InterruptedException e) { throw new RuntimeException(e); } } }); th01.start(); System.out.println("End of the main thread"); } } 그런데 코루틴의 경우 Main Job과 별도의 Root Job으로 수행되는 코루틴의 경우에 아무리 동작 중이더라도 Main Job이 끝나 버리면 JVM이 종료 되어버리죠. 자바나 코틀린이나 같은 JVM에서 동작할 텐데 이런 차이는 왜 발생하는 걸까요? 즉, 같은 질문이긴 한데 코루틴은 어떻게 Main Thread가 종료 될 때 다른 코루틴이나 쓰레드의 종료를 기다리지 않고 JVM을 종료 할수 있게 되는 것인가요?
-
해결됨코틀린 코루틴 완전 정복
Job() 생성후 complete을 불러 주어야 하는 경우가 헷깔립니다.
- 학습 관련 질문을 남겨주세요. 질문을 상세히 작성하면 더 좋습니다.- 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요.Job() 생성시에 어떤 경우는 compete을 호출해 주어야 하고 어떤 경우는 아닌 것 같은데 그 상황이 헷깔려서 문의 드립니다. 강의에서는 다음과 같이 설명 합니다.launch나 async 함수를 통해 생성한 job객체는 모든 코드가 실행 되면 자동 완료 되지만 job 생성 함수를 통해 생성한 job 객체는 자동으로 실행 완료 되지 않습니다. 아래 코드에서는 launch 안에서 생성함수를 통해 생성한 job 객체는 자동 완료 되지 않는 것으로 보입니다.fun main() = runBlocking<Unit> { launch(CoroutineName("Coroutine1")) { launch(CoroutineName("Coroutine2") + Job(parent = this.coroutineContext[Job])) { delay(100L) println("[${Thread.currentThread().name}] 코루틴 실행") } } } 하지만 아래 코드에서는 똑같이 생성함수를 통해 생성된 job 객체인데도 자동 완료 되는 이유는 무엇인가요? fun main() = runBlocking<Unit> { launch(CoroutineName("Coroutine1")) { val newJob = Job() launch(CoroutineName("Coroutine2") + newJob) { delay(100L) println("[${Thread.currentThread().name}] 코루틴 실행") } } }
-
미해결KotlinConf 2025 발표 세션
오류) Kotlin과 Spring: 모던 서버 사이드 스택
초반에 소리가 안 나옵니다.
-
미해결코틀린 고급편
SuperTypeSafeCage에 대해 질문드립니다
val superTypeToken = object:SuperTypeToken<List<GoldFish>>(){} val superTypeSafeCage = SuperTypeSafeCage(); superTypeSafeCage.putOne(superTypeToken,listOf(GoldFish("금붕어1"),Carp("새"))) superTypeSafeCage.getOne(superTypeToken).forEach(::println)superTypeToken은 List<GoldFish> 전용토큰인데 실제 Carp를 putOne 하여도 데이터가 삽입이 됩니다. 또한 superTypeSafeCage.getOne(superTypeToken) 입력 시 Carp까지 조회되네요.해당 부분에 대한 유효성 검사를 각각 진행해야 되는건가요?
-
미해결KotlinConf 2025 발표 세션
강의 자료 받을 수 있을까요?
강의 자료 받을 수 있을까요?
-
해결됨실시간 채팅 서버 구축: 분산 처리부터 성능 최적화까지
api모듈에대해 문의드립니다.
안녕하세요, 선생님! 좋은 강의 감사합니다.사이드 프로젝트를 진행하기 위해 이 강의를 신청해서 열심히 듣고 있습니다.강의를 들으면서 궁금한 점이 생겨서 질문 드립니다.제가 예매 시스템을 개발하려고 하는데, 다음과 같은 여러 기능들을 구현해야 합니다:채팅 기능 (강의에서 다루신 Chat API)AI 추천 기능 (Spring AI에서 제공하는 API)데이터 수집 기능 (크롤링 API)기타 예매 관련 API들이런 상황에서 모듈 구조 설계에 대해 고민이 됩니다.방법 1: 모든 API 기능들을 하나의 API 모듈에서 관리 방법 2: 기능별로 모듈을 나누고, 각 모듈 내에서 해당 기능의 API들을 그룹화어떤 방식이 더 적절한 설계일까요?혹시 이런 다중 기능을 가진 시스템에서의 모듈 설계에 대한 조언을 해주실 수 있을까요?감사합니다!
-
미해결예제로 뿌수는 코틀린 Kotlin 76제
Null 안정성 관련 질문
Null 을 다루는 방법에 대해서 말씀하신 예제에서는 자바에서도 동일하게 실행할 수 있는데 이 코드가 왜 코틀린에서 우아하게 대처할 수 있는 기능이라고 말씀하셨는지가 궁금합니다.
-
해결됨자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
널 아님 단언 관련 질문
태현님! 안녕하세요, 먼저 이런 좋은 강의를 만들어 주셔서 감사드립니다 🙂다만, 듣다가 또 하나의 질문이 있어서 말씀드리고 싶습니다! 바로 널 아님 단언 관련입니다!예제 코드에서는 아래와 같이 작성을 해주셨는데요!fun startsWith(str: String?): Boolean { return str!!.startsWith("A") }이런 경우 str 파라미터가 null이 들어올 가능성이 있지만 해당 코드를 실행할때 null이 절대 아니야라고 명시적으로 표현하기 위하여 !!를 붙여준다고 이해했습니다!다만, 이런 경우는 굳이 널 아님 단언을 사용하는게 아니라 파라미터의 String?타입을 String으로 두면 어떨까 싶은 생각이 들어서요! 이렇게 된다면 굳이 널 아님 단언을 사용할 필요가 없어 보이는데 다른 곳에서 사용하는 예시가 따로 있는지 궁금하여 질문을 드리게 되었습니다!