inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

CloudFlare 설정 질문

해결됨

(2025) MBTI 테스트 기반 수익형 웹사이트 만들기 - <코딩 배워 사업하자>

안녕하세요 잘 보고 있습니다. 사이트 어느정도 만들긴 했는데요. 가비아를 통해 도메인 만들고 클라우드 플레어에 연결해서 쓰고 있는데 https://www.사이트명은 되는데 https://사이트명 은 안되더라고요. 문제가 구글 애드센스에서는 사이트명만 적도록 되어 있어서 어떻게 설정해야 하는지 알려주실 수 있으신가요?

  • react
  • aws
  • Google-Analytics
  • cloudflare
  • adsense
  • 수익화
jaehyun jo 댓글 2 좋아요 0 조회수 460

버그

미해결

고성능 JPA & Hibernate (High-Performance Java Persistence)

4강 초반 자막싱크가 맞지 않습니다. 음성더빙도 속도가 안맞아요.

  • java
  • jpa
  • hibernate
이재일 댓글 1 좋아요 0 조회수 100

SNS 공유버튼 그룹 만들기 6:30~7:30 질문있습니다.

해결됨

(2025) MBTI 테스트 기반 수익형 웹사이트 만들기 - <코딩 배워 사업하자>

해쉬태그를 만들기 위해 TestResult.jsx에서 아래 useState를 작성하셨는데, useEffect(() => { const testInfo = TESTS?.find((test) => test.info.mainUrl === testParam); if (!testInfo) { alert('존재하지 않는 테스트입니다.'); navigate('/'); } setRenderTestInfo(testInfo); const resultInfo = testInfo?.results?.find( (result) => result.query === resultParam ); if (!resultInfo) { alert('존재하지 않는 결과값입니다.'); navigate(`/${testInfo?.info?.mainUrl}`); } setRenderResultInfo(resultInfo); }, [testParam, resultParam, navigate]); 처음에 testParam, resultParam을 가지고 와 리렌더링이 되면, useEffect 내 코드가 실행되고 testInfo 변수에 값이 저장되겠죠 그리고 setRenderTestInfo(testInfo)를 통해 renderTestInfo에 저장되는 것까지 알겠습니다. <ShareButtonGroup testParam={testParam} resultParam={resultParam} renderTestInfo={renderTestInfo} /> props로 넘기고 const ShareButtonGroup = ({ testParam, resultParam, renderTestInfo }) => { // console.log('renderTestInfo', renderTestInfo.info.mainUrl); return ( <div> <h3>친구에게 공유하기</h3> <div> <FacebookShareButton url={`${baseUrl}/${testParam}/result/${resultParam}`} hashtag={`#${renderTestInfo?.info.mainTitle}`} > <FacebookIcon round={true} size={48} /> </FacebookShareButton> </div> </div> ); }; export default ShareButtonGroup; 해쉬태그에서 받아오면 undefined 오류로 넘어가지 않습니다. 강사님 영상은 별다른 오류가 없는데, 저는 계속 빈객체로 넘어가서 흐름을 생각해본건데, 제가 잘못 생각하고 있는 부분이 있는지 궁금합니다.

  • react
  • aws
  • Google-Analytics
  • cloudflare
  • adsense
  • 수익화
photographarmacist 댓글 3 좋아요 0 조회수 181

9:06초에서 이해가 안가는 부분 (unlock)

미해결

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

비공정 모드에서는 스레드 경쟁 상태가 되어 어떤 스레드가 락을 획득 할 지 보장이 안되는건 이해가 됐습니다. 다만 교안에는 이미지 처럼 하나 깨운다 라고 되어있는데, 그러면 경쟁 상태가 의미가 있는지요? 한번에 여러 스레드가 unpark되는게 아니라면 왜 레이스 컨디션 문제가 발생하는지 궁금합니다.

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
트릴 댓글 2 좋아요 1 조회수 119

CRUD test시, localhost:9000 에러가 뜹니다

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

package kdy.board.article.api; import MSA.board.article.service.response.ArticleResponse; import lombok.AllArgsConstructor; import lombok.Getter; import org.junit.jupiter.api.Test; import org.springframework.web.client.RestClient; public class ArticleApiTest { RestClient restClient = RestClient.create("http://localhost:9000"); @Test void createTest() { ArticleResponse response = create(new ArticleCreateRequest( "hi", "my content", 1L, 1L )); System.out.println("response = " + response); } ArticleResponse create(ArticleCreateRequest request) { return restClient.post() .uri("/v1/articles") .body(request) .retrieve() .body(ArticleResponse.class); } @Getter @AllArgsConstructor static class ArticleCreateRequest { private String title; private String content; private Long writerId; private Long boardId; } @Getter @AllArgsConstructor static class ArticleUpdateRequest { private String title; private String content; } } 위와 같이 코드 쓰고 Test를 진행하면 아래와 같은 에러가 뜹니다. cmd창에서 검색해봐도 현재 9000을 쓰고 있는 서버는 없다고 뜨는데 어느 부분이 문제인 건가요? > Task :common:snowflake:compileJava UP-TO-DATE > Task :common:snowflake:processResources NO-SOURCE > Task :common:snowflake:classes UP-TO-DATE > Task :common:snowflake:jar UP-TO-DATE > Task :service:article:compileJava UP-TO-DATE > Task :service:article:processResources UP-TO-DATE > Task :service:article:classes UP-TO-DATE > Task :service:article:compileTestJava > Task :service:article:processTestResources NO-SOURCE > Task :service:article:testClasses org.springframework.web.client.ResourceAccessException: I/O error on POST request for "http://localhost:9000/v1/articles": null at org.springframework.web.client.DefaultRestClient$DefaultRequestBodyUriSpec.createResourceAccessException(DefaultRestClient.java:575) at org.springframework.web.client.DefaultRestClient$DefaultRequestBodyUriSpec.exchangeInternal(DefaultRestClient.java:498) at org.springframework.web.client.DefaultRestClient$DefaultRequestBodyUriSpec.retrieve(DefaultRestClient.java:460) at kdy.board.article.api.ArticleApiTest.create(ArticleApiTest.java:24) at kdy.board.article.api.ArticleApiTest.createTest(ArticleApiTest.java:14) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) Caused by: java.net.ConnectException at java.net.http/jdk.internal.net.http.HttpClientImpl.send(HttpClientImpl.java:951) at java.net.http/jdk.internal.net.http.HttpClientFacade.send(HttpClientFacade.java:133) at org.springframework.http.client.JdkClientHttpRequest.executeInternal(JdkClientHttpRequest.java:102) at org.springframework.http.client.AbstractStreamingClientHttpRequest.executeInternal(AbstractStreamingClientHttpRequest.java:70) at org.springframework.http.client.AbstractClientHttpRequest.execute(AbstractClientHttpRequest.java:66) at org.springframework.web.client.DefaultRestClient$DefaultRequestBodyUriSpec.exchangeInternal(DefaultRestClient.java:492) ... 6 more Caused by: java.net.ConnectException at java.net.http/jdk.internal.net.http.common.Utils.toConnectException(Utils.java:1041) at java.net.http/jdk.internal.net.http.PlainHttpConnection.connectAsync(PlainHttpConnection.java:227) at java.net.http/jdk.internal.net.http.PlainHttpConnection.checkRetryConnect(PlainHttpConnection.java:280) at java.net.http/jdk.internal.net.http.PlainHttpConnection.lambda$connectAsync$2(PlainHttpConnection.java:238) at java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:934) at java.base/java.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java:911) at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1773) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) at java.base/java.lang.Thread.run(Thread.java:1583) Caused by: java.nio.channels.ClosedChannelException at java.base/sun.nio.ch.SocketChannelImpl.ensureOpen(SocketChannelImpl.java:202) at java.base/sun.nio.ch.SocketChannelImpl.beginConnect(SocketChannelImpl.java:786) at java.base/sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:874) at java.net.http/jdk.internal.net.http.PlainHttpConnection.lambda$connectAsync$1(PlainHttpConnection.java:210) at java.base/java.security.AccessController.doPrivileged(AccessController.java:571) at java.net.http/jdk.internal.net.http.PlainHttpConnection.connectAsync(PlainHttpConnection.java:212) ... 9 more java.net.ConnectException at java.net.http/jdk.internal.net.http.HttpClientImpl.send(HttpClientImpl.java:951) at java.net.http/jdk.internal.net.http.HttpClientFacade.send(HttpClientFacade.java:133) at org.springframework.http.client.JdkClientHttpRequest.executeInternal(JdkClientHttpRequest.java:102) at org.springframework.http.client.AbstractStreamingClientHttpRequest.executeInternal(AbstractStreamingClientHttpRequest.java:70) at org.springframework.http.client.AbstractClientHttpRequest.execute(AbstractClientHttpRequest.java:66) at org.springframework.web.client.DefaultRestClient$DefaultRequestBodyUriSpec.exchangeInternal(DefaultRestClient.java:492) at org.springframework.web.client.DefaultRestClient$DefaultRequestBodyUriSpec.retrieve(DefaultRestClient.java:460) at kdy.board.article.api.ArticleApiTest.create(ArticleApiTest.java:24) at kdy.board.article.api.ArticleApiTest.createTest(ArticleApiTest.java:14) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) Caused by: java.net.ConnectException at java.net.http/jdk.internal.net.http.common.Utils.toConnectException(Utils.java:1041) at java.net.http/jdk.internal.net.http.PlainHttpConnection.connectAsync(PlainHttpConnection.java:227) at java.net.http/jdk.internal.net.http.PlainHttpConnection.checkRetryConnect(PlainHttpConnection.java:280) at java.net.http/jdk.internal.net.http.PlainHttpConnection.lambda$connectAsync$2(PlainHttpConnection.java:238) at java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:934) at java.base/java.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java:911) at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1773) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) at java.base/java.lang.Thread.run(Thread.java:1583) Caused by: java.nio.channels.ClosedChannelException at java.base/sun.nio.ch.SocketChannelImpl.ensureOpen(SocketChannelImpl.java:202) at java.base/sun.nio.ch.SocketChannelImpl.beginConnect(SocketChannelImpl.java:786) at java.base/sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:874) at java.net.http/jdk.internal.net.http.PlainHttpConnection.lambda$connectAsync$1(PlainHttpConnection.java:210) at java.base/java.security.AccessController.doPrivileged(AccessController.java:571) at java.net.http/jdk.internal.net.http.PlainHttpConnection.connectAsync(PlainHttpConnection.java:212) ... 9 more > Task :service:article:test ArticleApiTest > createTest() FAILED org.springframework.web.client.ResourceAccessException at ArticleApiTest.java:24 Caused by: java.net.ConnectException at ArticleApiTest.java:24 Caused by: java.net.ConnectException at Utils.java:1041 Caused by: java.nio.channels.ClosedChannelException at SocketChannelImpl.java:202 1 test completed, 1 failed > Task :service:article:test FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':service:article:test'. > There were failing tests. See the report at: file:///D:/projects/MSA-board/service/article/build/reports/tests/test/index.html * Try: > Run with --scan to get full insights. BUILD FAILED in 9s 6 actionable tasks: 2 executed, 4 up-to-date

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
learningkimkim 댓글 3 좋아요 1 조회수 177

로드밸런서의 DNS로 들어가면 통신이 되는데 ip를 검색하면 안되는 경우는 어떤경우가 있을까요?

해결됨

비전공자도 이해할 수 있는 AWS 중급/실전 (보안, 가용성편)

완강했습니다!! 처음 올린 질문이 해결이 되어서 질문을 수정했습니다! 위 사진은 제가 만드려고 하는 아키텍쳐입니다 사진에는 빠졌지만 alb도 있고 프론트서버에 연결되어있습니다 현재까지는 프론트서버만 만든상태입니다. 퍼블릭 서브넷에서 인터넷 게이트웨이 설치하고 접속이 되는건 확인했습니다. alb는 80,443 허용하였고 프론트는 22,80,443,3000허용하였습니다. (22는 나중에 배스천호스트로 옮길 생각입니다) 대상그룹은 프론트 ec2로 설정하였고 http 3000으로 설정해서 healty 연결된걸 확인하였습니다. 1. 로드밸런서의 dns로 들어가면 접속이 됩니다 2. ec2내에서 로컬호스트로 들어가면 접속이 됩니다 3. 도메인이나 ip를 검색하면 접속이 안됩니다 4. 로컬에서 nslookup하면 제 서버 ip를 찾지 못합니다. 어떤부분에서 빠뜨린게 있을까요? 이것저것 찾아보고 고민해도 해결이안되어서 4시간동안 찾다가 질문 드려봅니다 ㅠㅠ 조금 걸리는 점은 제가 도메인사고 인증서받고나서 모든 ec2와 보안그룹들을 다 지워서 비용이 안 나가게한 적이 있습니다. 그 이후에 다시 vpc, ec2 등등 만들고 기존 도메인과 인증서를 연결했는데 인증서를 새로 발급받지 않고 기존 것을 쓴 것이 혹시 문제되지 않았을까? 라는 것이 약간 걸립니다 그런데 도메인뿐만아니라 ec2의 ip로도 접근이 안되기 때문에 관련이 없다고 생각하여 그 부분은 건들지는 않았습니다 ㅠ

  • aws
  • 아키텍처
  • devops
  • vpc
  • infrastructure
정재익 댓글 3 좋아요 0 조회수 266

안녕하세요.

미해결

토비의 스프링 6 - 이해와 원리

아래 코드에서 계속해서 테스트 오류가 뜹니다.. 이유가 무엇일까요? 오히려 isequalto 를 사용했을때 테스트가 성공해버려요 @Test void Clock() { Clock clock = Clock.systemDefaultZone(); LocalDateTime dt1 = LocalDateTime.now(clock); LocalDateTime dt2 = LocalDateTime.now(clock); Assertions.assertThat(dt2).isAfter(dt1); } // 오류 메세지 java.lang.AssertionError: Expecting actual: 2025-05-09T16:54:49.066025800 (java.time.LocalDateTime) to be strictly after: 2025-05-09T16:54:49.066025800 (java.time.LocalDateTime) when comparing values using 'ChronoLocalDateTime.timeLineOrder()'

  • java
  • spring
밍구 댓글 2 좋아요 0 조회수 165

Error: Process completed with exit code 126.

미해결

비전공자도 이해할 수 있는 CI/CD 입문·실전

Run ./gradlew clean build 2 ./gradlew clean build 3 shell: /usr/bin/bash -e {0} 4 env: 5 JAVA_HOME: /opt/hostedtoolcache/Java_Temurin-Hotspot_jdk/21.0.7-6/x64 6 JAVA_HOME_21_X64: /opt/hostedtoolcache/Java_Temurin-Hotspot_jdk/21.0.7-6/x64 7 /home/runner/work/_temp/ 24e2a6f8-136d-471b-b2ea-6203042af791.sh : line 1: ./gradlew: Permission denied Error: Process completed with exit code 126. 찾아보니깐 실행 권한이 없어서 ./gradlew 스크립트를 실행하지 못했다는 뜻이라고 하는데 즉, Gradle Wrapper 파일에 실행 권한이 없어서 생긴 문제가 맞을까요? - name: gradlew 실행 권한 부여 run: chmod +x ./gradlew 이렇게 붙여줬더니 되긴 하더라고요. 맞는 방법이 몰라서 여쭤봅니다.

  • aws
  • docker
  • ci/cd
  • github-actions
  • aws-code-deploy
  • infrastructure
  • aws-ec2
이준엽 댓글 2 좋아요 0 조회수 177

DLQ 관련 질문

해결됨

RabbitMQ를 이용한 비동기 아키텍처 한방에 해결하기

위와 같이 로그가 찍혔으면, DLQ에서 ack 상태가 되어야하는것 아닐까요? @RabbitListener(queues = RabbitMQConfig.DLQ) public void process(String message) { System.out.println("DLQ Message Received: " + message); try { String fixMessage = "success"; rabbitTemplate.convertAndSend( RabbitMQConfig.ORDER_EXCHANGE, "order.completed.shipping", fixMessage ); System.out.println("DLQ Message Sent: " + fixMessage); } catch (Exception e) { System.err.println("### [DLQ Consumer Error] " + e.getMessage()); } } 위의 코드인 경우 AUTO 모드로 동작해서 자동으로 DLQ에서 처리가 되면 ACK 을 받을 것이라 생각했는데, DLQ에서 unack 상태로 남아있어서 여쭤봅니다! 이후에 애플리케이션을 종료하면 DLQ에서는 다시 ready 상태가 되고, 애플리케이션을 실행하면 이를 실행하고 와 같이 로그가 찍힌 다음에 다시 unack 상태가 됩니다. 좋은 강의 감사드립니다 :)

  • java
  • spring-boot
  • jpa
  • msa
  • websocket
  • rabbitmq
Jerry 댓글 2 좋아요 0 조회수 162

댓글 최대 2 depth - 목록 API 구현 조회 테스트 부분

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

아래코드 첨부 하였구요, readAllInfiniteScroll 부분 secondPage 출력 부분에 getParentCommentId 조건 체크 부분에 진입이 되서 그런지, 부모, 하위 댓글 위치가 다르게 출력 됩니다. 강의자료에 있는걸로 이식 해봐도 동일한 증상 나옵니다. 출력 부분은 각 함수마다 하단에 기입 해놨습니다 음 그니까, readAll() 부분은 부모, 자식 구분되서 잘나오는데 무한스크롤 부분에서는 기대값은 아래처럼 첫번째 첨부한 기대값과 같아야 하는데 실제 로직에서 출력되는 부분은 다르게 출력 되는거같습니다. 어떤 부분을 확인 해봐야 할가요?? firstPage comment.getCommentId() = 179060865682051072 comment.getCommentId() = 179060867179417600 comment.getCommentId() = 179060867334606848 comment.getCommentId() = 179061928581599232 comment.getCommentId() = 179061929433042944 comment.getCommentId() = 179061929709867008 secondPage comment.getCommentId() = 179065967874379776 comment.getCommentId() = 179065968025374733 comment.getCommentId() = 179065967874379777 comment.getCommentId() = 179065968008597505 @Test void readAll() { CommentPageResponse response = restClient.get() .uri("/v1/comments?articleId=1&page=1&pageSize=10") .retrieve() .body(CommentPageResponse.class); System.out.println("response.getCommentCount() = " + response.getCommentCount()); for (CommentResponse comment : response.getComments()) { if (!comment.getCommentId().equals(comment.getParentCommentId())) { System.out.print("\t"); } System.out.println("comment.getCommentId() = " + comment.getCommentId()); } /** * 1번 페이지 수행 결과 comment.getCommentId() = 179060865682051072 comment.getCommentId() = 179060867179417600 comment.getCommentId() = 179060867334606848 comment.getCommentId() = 179061928581599232 comment.getCommentId() = 179061929433042944 comment.getCommentId() = 179061929709867008 comment.getCommentId() = 179065967874379776 comment.getCommentId() = 179065968025374733 comment.getCommentId() = 179065967874379777 comment.getCommentId() = 179065968008597505 */ } @Test void readAllInfiniteScroll() { List<CommentResponse> responses1 = restClient.get() .uri("/v1/comments/infinite-scroll?articleId=1&pageSize=5") .retrieve() .body(new ParameterizedTypeReference<List<CommentResponse>>() { }); System.out.println("firstPage"); for (CommentResponse comment : responses1) { if (!comment.getCommentId().equals(comment.getParentCommentId())) { System.out.print("\t"); } System.out.println("comment.getCommentId() = " + comment.getCommentId()); } Long lastParentCommentId = responses1.getLast().getParentCommentId(); Long lastCommentId = responses1.getLast().getCommentId(); List<CommentResponse> responses2 = restClient.get() .uri("/v1/comments/infinite-scroll?articleId=1&pageSize=6&lastParentCommentId=%s&lastCommentId=%s" .formatted(lastParentCommentId, lastCommentId)) .retrieve() .body(new ParameterizedTypeReference<List<CommentResponse>>() { }); System.out.println("secondPage"); for (CommentResponse comment : responses2) { if (!comment.getCommentId().equals(comment.getParentCommentId())) { System.out.print("\t"); } System.out.println("comment.getCommentId() = " + comment.getCommentId()); } /** firstPage comment.getCommentId() = 179060865682051072 comment.getCommentId() = 179060867179417600 comment.getCommentId() = 179060867334606848 comment.getCommentId() = 179061928581599232 comment.getCommentId() = 179061929433042944 secondPage comment.getCommentId() = 179061929709867008 comment.getCommentId() = 179065967874379776 comment.getCommentId() = 179065968025374733 comment.getCommentId() = 179065967874379777 comment.getCommentId() = 179065968008597505 comment.getCommentId() = 179065967874379778 */ }

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
MinKyu Song 댓글 2 좋아요 0 조회수 196

iterator.next() 질문드립니다 !

미해결

김영한의 실전 자바 - 중급 2편

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 4:47초에서 iterator.next()가 '현재 데이터를 반환하고 다음으로 이동'한다고 하셨고, 그것이 '다음 데이터를 반환한다' 라는 말씀이라 하셨습니다. 제가 이해가 잘 안되는데, 현재 데이터를 반환하고 다음으로 이동하는 것은 리턴값이 현재 값 이라는 것일테고 다음 데이터를 반환하는 것은 리턴값이 다음 데이터라는 말일텐데, 혹시 어느 것이 맞을까요 ..?

  • java
  • 객체지향
  • 코딩-테스트
  • 알고리즘
wonderwall09in 댓글 1 좋아요 0 조회수 88

scr이 사라져요

미해결

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 여기에 질문 내용을 남겨주세요. src가 안떠요 src복사해서 옮겨도 조금 있다가 사라져요 왜 그럴까요

  • java
  • 객체지향
김ㅇㅇ 댓글 2 좋아요 0 조회수 115

테스트코드 실행

해결됨

6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법

2-10 강의에서 테스트코드? 실행하시는데 실행할 버튼이 없습니다.. 어떻게 하죠..?

  • java
  • spring
  • mysql
  • redis
  • 이력서
kongminoo 댓글 2 좋아요 0 조회수 211

변경감지 로직이 실행되려면 @Transactional 이 필수인가요?

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] @Transactional public void updateItem(Long id, String name, int price, int stockQuantity) { Item item = itemRepository.findOne(id); item.setName(name); item.setPrice(price); item.setStockQuantity(stockQuantity); } 여기서 @Transactional 이 없으면 변경감지 로직이 발생하지 않나요? @Transactional 은 두개이상의 쿼리를 하나의 논리적인 단위로 묶어줄때 사용하는 것으로 알고 있는데 이 상황에서도 변경감지를 실행하기 위해 반드시 호출해주어야하나요?

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
바나나 댓글 1 좋아요 0 조회수 92

어떤 상태를 준영속이라하는지 , 준영속 역할이 무엇인지 궁금합니다!

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 준영속이란 한번은 영속상태였지만, 현재는 영속성 컨텍스트의 관리 대상이 아닌 엔티티인데 db 에 저장될떄 pk 가 생기기 떄문에 객체에 식별자가 있으면 무조건 준영속 엔티티인가요? 엔티티매니저에서 꺼내서 Detached되어 식별자가 셋팅되거나 아니면 새로운 객체에 id 값만 셋팅되어 있으면 준영속 상태볼 수 있나요? 왜 준영속 상태는 따로 있나요? 비영속만 있어도 되지않나요? 무슨 이점이 있나요?

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
바나나 댓글 2 좋아요 0 조회수 108

DataOutputStream 의 writeUTF도 블로킹 메서드 인가요?

해결됨

김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 복습 중에 질문이 생겼습니다 콘솔 입력 / DataInputStream의 readUTF는 입력을 받은 데이터로 호출한 쓰레드에서 작업을 수행하기 때문에 블로킹 메서드 인 것이 이해가 쉽게 됩니다. 반면 DataOutputStream 의 writeUTF() 메서드는 반환 타입도 void이고(호출한 쓰레드에서 뭘 처리하지 않음), 서버에 메세지를 보내기만 하면 되기 때문에 블로킹 메서드가 아니라고 생각했는데, 막상 검색해보니 블로킹 메서드라고 나와서 이해가 잘 안됩니다. 블로킹 메서드가 맞는 걸까요? 맞다면 왜 블로킹 메서드로 설계된 걸까요

  • java
  • 네트워크
  • 객체지향
ssshhh 댓글 1 좋아요 0 조회수 112

PayStore 예제문제 구체적 설명

미해결

김영한의 실전 자바 - 기본편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 예제문제에 작성한 PayStore 코드에서 1. public abstract class PayStore 에서 abstract를 사용한 구체적인 이유 다른질문답변을 봤는데도 이해가 잘 안갑니다 더 구체적으로 설명해주세요 예시답변>정적 메서드(static method) 사용 이유: static 메서드는 클래스 레벨에서 작동하며, 객체의 인스턴스를 생성하지 않고도 사용할 수 있습니다. 이는 공통적으로 사용되는 유틸리티 메서드나 인스턴스 상태와 무관하게 작동하는 메서드에 적합합니다. PayStore 의 경우 결제 수단을 찾는 공통 기능을 제공하며, 인스턴스 상태와 무관하므로 static 으로 선언하는 것이 적절합니다. 2. public static Pay findPay(String option) 에서 static을 사용한 구체적인 이유 을 알고싶습니다.

  • java
  • 객체지향
Hyunju Lee 댓글 3 좋아요 0 조회수 170

변수 캡쳐 질문

해결됨

김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요 궁금증이 생겨서 질문을 드립니다. 람다 vs 익명 클래스1 을 공부하다가, 변수지역 캡쳐, 부분이 기억이 안 나서 다시 듣게 되었는데요.(지역 클래스 - 지역 변수 캡쳐3) 공부를 하고 다시 듣다 보니 localVar를 변경할수 있는 방법이 생각이 나더라고요. 그래서 변경이 가능한지 테스트를 해보고, 바꾸어 보았습니다. 바꾸어 보니, 값이 변경 할 수 있다는 사실을 알수 있었습니다.(사진 참조) d 여기서 질문이 생깁니다. 이런식 으로 바꿀 수 있는데, 현업 에서도 이렇게 바꾸는 경우가 있냐요? 답변 부탁 드립니다.

  • java
  • 함수형-프로그래밍
  • lambda
  • optional
생각하는자 댓글 1 좋아요 0 조회수 98

EC2 와 CodeDeploy 연결 에러

해결됨

비전공자도 이해할 수 있는 CI/CD 입문·실전

The overall deployment failed because too many individual instances failed deployment, too few healthy instances are available for deployment, or some instances in your deployment group are experiencing problems. CodeDeploy Agent는 EC2에서 active 상태이고, S3에 업로드도 잘 되었으며, IAM 역할도 다음과 같이 설정했습니다: - EC2 인스턴스 역할: code-deploy-ec2-role (정책: code-deploy-ec2-policy 세부 S3 ) - CodeDeploy 서비스 역할: AWSCodeDeployRole 포함 하지만 배포 시 아래와 같은 에러가 납니다: > The overall deployment failed because too many individual instances failed deployment, or too few healthy instances... 추가로 EC2 내에서 /var/log/aws/codedeploy-agent/ 로그 폴더가 존재하지 않습니다. appspec.yml 및 start.sh 도 정상 포함했고, S3에 .tar.gz 도 업로드 확인했습니다.

  • aws
  • docker
  • ci/cd
  • github-actions
  • aws-code-deploy
  • infrastructure
  • aws-ec2
이준엽 댓글 2 좋아요 0 조회수 135

책과 관련하여 궁금한 게 있습니다.

해결됨

자바 ORM 표준 JPA 프로그래밍 - 기본편

기본편 강의 수강을 다 하고 복습 및 좀 더 깊은 이해를 위해 JPA 프로그래밍 책을 구매하였습니다 JPA 로드맵의 각 강의가 책의 어떤 부분과 매핑 되는지 알 수 있을까요? - 기본편 : 책 1~10장 - 활용1 : 책 11장 - 활용2, 스프링 데이터 JPA, Querydsl : ??? 기본편과 활용1 두 강의는 1~11장에 딱 매핑 되는 거 같은데 나머지 강의들은 뭔가 순서가 섞여있는 거 같아서요 "어떤 강의는 책의 어느 장을 봐야 한다" 등의 가이드가 혹시 따로 있을까요?

  • java
  • jpa
조태준 댓글 2 좋아요 0 조회수 96

인기 태그

인프런 TOP Writers

주간 인기글