묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
플랫폼 타입 설명 문의
안녕하세요. 플랫폼 타입 설명 중에서 라이브러리를 가져다 쓴 지점을 래핑해서 단일 지점으로 만듦으로써 이슈를 쉽게 대응한다는 게 어떤 말씀이신지 잘 이해나 상황이 그려지지 않아서.. 이게 어떤건지 예시를 통해 알려주실 수 있는지 궁금해서 질문을 남깁니다. '래핑해서 단일 지점으로 만든다'라는 개념과, 이렇게 만들면 이슈를 어떻게 왜 쉽게 대응할 수 있다는건지 이런 부분을 잘 모르겠습니다 ㅠㅠ
-
해결됨Claude + IntelliJ로 TodoList 개발하기 - MCP 완전 정복
커서 AI 와 클로드 비교에 대한 질문
안녕하세요. 우선 Claude 가 되지 않는데 영상 시청으로 마무리하였습니다.양질의 컨텐츠를 제공해주셔서 감사합니다.강의를 듣고 제가 질문드리고 싶은 몇가지가 있습니다. 저는 비전공자로서 어플을 개발해보고 싶습니다. 이 경우 제가 프롬프트를 복붙할 수는 있지만 하나도 이해를 못했는데, 이 프롬프트는 비전공자는 어떻게 어디에서 가져올 수 있나요 ? 예를 들어서 제 요구사항을 Gemini 에 부탁하고 그걸 Gemini 가 Claude 에 맞게 변형해주면 그걸 그대로 복붙만 하면 되는건가요? 강의에서는 GPT 를 사용한다고 하셨는데, GPT 랑 Gemini 둘중 무엇을 이용해도 상관이 없을까요 ? 그리고비전공자가 어플을 개발한다고 해도 간단한 어플만 개발이 가능할까요? 아니면 나름 정말 배포해도 될만한 어플도 비전공자가 프롬프트만을 이용해서도 충분히 가능할까요 ? 몇몇 제 친구는 비전공자한테는 Cursor AI 가 더 나을 수 있다고 하는데, 어떻게 생각하시는지 궁금합니다. 요즘 개발자분들 이야기들어보면 클로드가 커서를 잡아먹을 정도로 성장했다는 이야기를 볼 수 있었습니다. 4. 강의를 듣고 느낀 점은 제가 프롬프트를 정교하게 잘 쓸 수 있고, 만약에 개발 과정에서 발생하는 틀리거나 해결해야하는 부분들을 이해할 수 있을까 라는 생각을 하고 있는데, 충분히 비전공자도 해결 가능한지 궁금합니다. 예를 들어 저는 Thymeleaf 나 signup.html 이런 용어 조차 친숙하지 않습니다.
-
해결됨카카오 면접관이 알려주며 가장 쉽게 배우는 Kafka
다이어그램 저장소 파일 오류
다이어그램 저장소 파일을 다운받고 압축해제 시 해당 오류가 발생하는데 파일이 문제인걸까요?
-
미해결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 부분이 안보이네요.이부분이 제일 시작 부분 같은데요.일단 강의 내용대로 설정은 다 한 상태인데요이상히 변경이 안되네요.강의를 완강 할수 있도록 부디 도와 주십시요. 감사합니다.
-
해결됨프로덕션 레벨 실시간 채팅 서버 구축: 분산 처리부터 성능 최적화까지 (Kotlin & Spring)
그레이스풀 셧다운과 데몬 스레드의 관계 질문
안녕하세요 강사님 좋은 강의 잘 듣고 있습니다강의에서 말씀하신 그레이스풀 셧다운과 데몬스레드의 관계까 제가 이해한 의미와 조금 달라서 여쭤봅니다.저는 그레이스풀 셧다운을 진행 중인 작업을 마무리하고 안전하게 종료하는 것으로 이해하고 있는데 데몬 스레드는 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 발표 세션
강의 자료 받을 수 있을까요?
강의 자료 받을 수 있을까요?