묻고 답해요
130만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Kafka 테스트.. 오류
D:\코딩\kafka_demo\kafka_2.13-3.7.0> .\bin\windows\zookeeper-server-start.bat .\config\zookeeper.properties The input line is too long. The syntax of the command is incorrect. D:\코딩\kafka_demo\kafka_2.13-3.7.0>입력 명령어가 너무 길다고 계속 오류가 나는데 버전을 낮춰야할까요..?
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
Rest 예외 처리 - RestAuthenticationEntryPoint / RestAccessDeniedHandler 스프링빈 등록 질문
안녕하세요 선생님 Rest 예외처리 편에서 선생님께서는 RestAuthenticationEntryPoint 와 RestAccessDeniedHandler을 따로 스프링 빈으로 등록하지 않고 객체를 생성하는식으로 하셨는데 제가 따로 스프링빈으로 등록하고 해도 잘 동작하던대 따로 빈으로 등록하지 않고 하신 이유가있을까요?해당 코드는 제가 빈으로 따로 등록하고 테스트 했던 코드입니다.
-
미해결견고한 결제 시스템 구축
@WebAdapter 어노테이션에 @Compnent를 다는 이유
@Target(AnnotationTarget.CLASS) @Component annotation class WebAdapter()PaymentController에 @Controller 안에는 @Component가 존재하는데 왜 WebAdapter 어노테이션 클래스에도 @Component를 다는지 궁금합니다!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
./gradlew build 후 에러가 났습니다.
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]이렇게 에러가 났는데, 초심자라 전혀 해석을 못하겠습니다.JDK17, Gradle8.7, SpringBoot 3.1.11 로 실행하고 있습니다. 처음 JAVA8을 사용하고 있다가, springboot가 3.0만이 지원되고 있다고 하여, JAVA17을 설치하여 환경변수 등 모두 잘 설정하였습니다. 이외에 수강 내용대로 잘 따라가서, 인텔리제이에서 실행할 때에는 잘 되고 있었는데, wsl에서 build를 하니 에러가 났네요. 어떤 점이 잘못된 걸까요?
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
양방향 연관관계 메서드에서 순서
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요. 강사님 덕분에 JPA를 이해하며 공부중입니다. 항상 양질의 강의와 사례를 들어 설명해주셔서 감사합니다. 다름이 아니라 제가 양방향 연관관계에 있어 이해한것이 맞는지, 그리고 연관관계 메서드 설정 시 코드원리에 있어 궁금한 점이 있어 질문남깁니다.<이해한 내용>양방향 연관관계는 RDBMS에서는 표현가능하나, 자바 객체에서는 직접적으로 표현이 어려워 단방향 2개를 사용하여 표현한다.그렇기에 서로를 참조하는 형태이기 때문에 데이터 변경을 양쪽에서하면 무한루프, 데이터 불일치,성능 문제가 발생한다.그렇기에 연관관계의 주인(테이블에서의 N)으로 설정해주어 주인에서만 데이터 반영이가능하고 다른 1쪽에서는 mappedBy를 이용해 읽기 전용으로만 설정하여준다. 그렇기에 member.setTeam(team);연관관계 편의 메서드를 통해 참조를 넣어주고, 영속성에 의해 관리되는 즉 1차 캐시에서의 객체내에서 조회될 수 있도록 한다.(객체지향적임) 물론 em.flush();em.clear();를 사용하면 자바에서 우리가만든 객체가아닌 JPA에서의 객체를 반환하여 조회되서 상관없긴하다. 근데 넣어주자.연관관계 편의메서드는 비즈니스 로직상 컨트롤하는 부분이 많은쪽에 만드는것이 좋다.<질문>이 연관관계 메서드에서는 orderItem내의 order가 주입되지않은상태로 List에 저장된 후 order를 주입해주는데 결과는 똑같은것같은데위와같이 주입시켜주고 그것을 List에 저장시키는게 더 좋은것아닌지 궁금해서 질문드립니다. 어차피 조회할때는 Order객체를 통하기때문에 순서는 상관이없나요? 사소한것일수도있고 제 자바에 대한 부족함이 커서그런것같지만 너무 궁금해서 질문드립니다.. 장문이라 죄송합니다ㅜㅜ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
섹션 6. 순수 jbdc
이 부분이 임포트가 아예 안 됩니다ㅠㅠimport org.springframework.jdbc.datasource.DataSourceUtils; 그래서DataSourceUtils.getConnection(dataSource);이렇게 인텔리제이에서 빨간 불이 들어오구요ㅠㅠ DataSourceUtils에만 빨간 불이 들어옵니다!!어떻게 해결해야 할까요!!private Connection getConnection() { return DataSourceUtils.getConnection(dataSource); } private void close(Connection conn, PreparedStatement pstmt, ResultSet rs) { try { if (rs != null) { rs.close(); } } catch (SQLException e) { e.printStackTrace(); } try { if (pstmt != null) { pstmt.close(); } } catch (SQLException e) { e.printStackTrace(); } try { if (conn != null) { close(conn); } } catch (SQLException e) { e.printStackTrace(); } } private void close(Connection conn) throws SQLException { DataSourceUtils.releaseConnection(conn, dataSource); }
-
미해결백엔드 개발자 성능 개선 초석 다지기
인텔리제이 EditConfiguration 옵션 추가하는 방법 [ 공유O 질문X ]
혹시나 저처럼 약간 헤매는 분들 계실까 싶어 남깁니다.스카우트 모니터링 TOOL 설치(2)에서 옵션 추가하는 방법이 Editconfiguration 들어간 다음에modify options 클릭 하고 나오는 리스트에서 Add VM Options 누르시면 옵션 추가할 수 있는 칸이 하나 나옵니다.그 곳에 노션에 있는 아래 옵션 추가해주시면 됩니다.-javaagent:/Users/..생략../study/util/scouter/agent.java/scouter.agent.jar -Dscouter.config/Users/jo-eunho/Documents/eunho/study/util/scouter/server/conf/scouter.conf -Dobj_name=demoTomcat --add-opens java.base/java.lang=ALL-UNNAMED
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링jpa 질문이 있습니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요 package hello.hellospring.repository; import hello.hellospring.domain.Member; import org.springframework.data.jpa.repository.JpaRepository; import java.util.Optional; public interface SpringDataJpaMemberRepository extends JpaRepository<Member, Long>, MemberRepository { @Override Optional<Member> findByName(String name); }이 스프링jpa 에서 저기 findByName 부분은 없어도 되는 걸까요? 이미 MemberRepository 인터페이스를 상속 받으니까? 만약에 MemberRepository 에서 메만약에 MemberRepository 에서 메소드명을 schByName 이라 SpringDataJpaMemberRepository 에서소드명을 schByName 이라고 짓는다면 어떡해야 SpringDataJpaMemberRepository 에서 어떡해야하나요?..스프링jpa를 염두해두고 미리 메소드명들을 만들어야 하나요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
도메인에 대해
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]도메인과 dto와 vo는 각자 어떨 때 사용하는지 알 수 있을까요? 지금은 도메인만으로 db와 비즈니스 모두 사용되는데 검색해보면 vo는 불변일 때 도메인은 비즈니스 로직을 사용할 때 dto는 데이터를 전송할 때라고 나오는데 정확히 각ㄱ각 어느 상황에 사용되는건지 잘 모르겠어서요...!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
코드 생성과 처리구조
[질문 내용]여기에 질문 내용을 남겨주세요.조금 의아한 부분이 있어서요 @beforeEach 안에서 Repository 생성이 되었는데 윗줄에서 다시 선언이 되어서 클래스에 적용되는 건가요?? 기본적으로 코드는 위에서 아래로 처리되는 걸로 아는데요 위에서 선언이 먼저 되고 beforeEach 안에서 new 로 생성된 부분이 계속 버벅거립니다
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
코드 수정 후 자동으로 변경
안녕하세요, 강의 잘 보고 있습니다.코드 수정 후에 rerun 할때마다 너무 불편한데, 혹시 rerun 안해도 localhost:8080이 켜져있는 상태에서 자동으로 화면이 변경되는걸 볼 수 있을까요? 예를 들어서 리액트 같은경우는 싱글페이지의 장점을 가지고 있어서 코드 수정 후 저장만 하면 바로 바로 변경되는걸 볼 수 있는데 인텔리제이에서도 비슷한 내용이 있나 싶어서 문의드립니다.
-
미해결스프링 부트 - 핵심 원리와 활용
Smart Tomcat 에러 : Error starting child
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]Tomcat runner로 방법이 안된다는 것을 알게되어 메뉴얼에 있는 smart tomcat 방법을 그대로 실행을 했습니다. 실행 결과 java.lang.IllegalStateException: Error starting child 와 같은 에러가 뜹니다. 어떻게 해결해야할까요
-
미해결인프라공방 - 그럴듯한 서비스 만들기
서버 구성하기 미션에서 서버 실행후 요청 실패
서버 구성하기 미션을 진행중입니다.서버 실행을 하고 curl http://localhost:8080 명령어에 의해서 응답까지는 옵니다. 외부망 보안그룹에서 다음과 같이 설정했습니다.브라우저에서 요청이 가는지 확인하고https의 443 포트는 tls 설정을 하지 않으면 접속이 안되는걸로 알고 있어서브라우저에서 요청하기 위해서 80포트를 전체대역대에 대해서 열어줬습니다.인터넷 게이트웨이도 생성이 되어있고, 외부망의 라우팅 테이블에서 인터넷게이트에 대해서 전체대역대로 설정이 되어있습니다.curl명령어를 통해서 요청을 보내봤는데 connection refuesed 가 뜹니다.브라우저에서 http://3.36.115.136:80 으로 보내봤는데도사이트에 연결할 수 없음3.36.115.136에서 연결을 거부했습니다.와 같은 오류가 뜹니다.ping 체크 잘 되고port 체크에서도 telnet: Unable to connect to remote host: Connection refused 와 같은 오류가 발생합니다.어떤점을 더 체크해봐야할까요?3tier 구성하기 강의를 들으면서 진행하다가 미션을 하지 않을것을 확인하고 중간에 미션을 진행하고 있는데혹시 이점에서 문제가 있었을까요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
섹션 5
private final MemberRepository memberRepository; public MemberService(MemberRepository memberRepository) { this.memberRepository = memberRepository; } /** * 회원 가입 */ public Long join(Member member) { // 같은 이름이 있는 중복 회원X validateDuplicateMember(member);// 중복 회원 검증 memberRepository.save(member); return member.getId(); }MemberRepository는 인터페이스인데, 아래 join에서 memberRepository.save(member)을 어떻게 사용하는 건가요? 인터페이스는 객체를 만들지 못하고 구현체를 만들어야하는데 그러면 필드에서 MemberRepository의 구현체인 MemoryMemberRepository를 받아야 되는게 아닌가 했습니다.이해가 잘 되지않아서 질문드립니다ㅠㅠ
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
MSA 환경에서 Prometheus 궁금한 점이 있습니다.
강의 잘보고 있습니다.다름이 아니라 MSA 환경에서는 한 서비스가 여러 인스턴스로 올라가있는 경우가 있는데, prometheus.yml에서 해당 인스턴스를 다 지정해주지 않아도 괜찮을까요? 또한 spring cloud gateway에서 lb://ORDER-SERVICE 형태로 로드밸런싱 처리가 되어있는데, 그렇다면 프로메테우스에서 actuator로 가져오는 데이터가 여러 인스턴스 각각 가져오는게 아닌 로드밸런싱되는데로 데이터를 가져오게 되지않나요? 호기심에 질문해봅니다.
-
미해결스프링 배치
배치 메타 데이터 사용
안녕하세요. 강의 잘 듣고 있습니다. 다름이 아니라 현업에서 배치 업무에 배정되어 급하게 강의를 수강중인데 메타 데이터를 꼭 설정해야 한다고 들었습니다. 현재 디비는 pom.xml 의존성으로 티베로 디비를 사용하고 있습니다.그리고 스프링 배치의 버전은 4.1.4 RELEASE 버전을 사용중입니다. 또한 강의와 다르게 Job 구성을 XML로 하고 있습니다. 궁금한 사항은 아래와 같습니다.배치 잡을 디버깅으로 찍어보면 Job이 수행된 후 JobExcution에 id, version, start, end, status 등이 찍히긴 하는데 데이터베이스에는 메타 데이터 테이블이 따로 존재하지 않습니다. 그리고 같은 파라미터와 xml id 값으로(찾아보니 job_name을 의미하는 것 같음) 중복 실행이 가능합니다. 이럴경우 현재 프로젝트에서는 DB 테이블에서 메타 데이터를 쓰고 있지 않는게 맞나요? 쓰고 있지 않다면 어떻게 실행이 가능한 것 인가요? 강의에서는 무조건 써야한다고 들었습니다.배치 프로그램이 Spring 사용 없이 그냥 자바 자체로만 실행이 가능한가요? 원래 Spring이 뜰 때 Spring 배너가 보여야 하는데 Spring 배너가 보이지 않습니다. 또한 @EnableBatchProcess(?) 어노테이션도 사용하지 않고 특정 클래스에 Main 함수에서 실행하게 됩니다. (Springboot의 run도 없음) 이럴 경우 Spring을 사용하지 않는 것인가요? pom.xml 의존성에는 스프링 부트 의존성이 있긴합니다.(추가) 확인해보니 Java 어플리케이션으로 그냥 돌아가는 것 같습니다. 근데 스프링 부트를 사용한 이유는 스프링에서 제공하는 @Bean, @Component 등 스프링의 편의 기능을 사용하기 위해서 스프링을 사용했다고 봐도 무방할까요??, 물론 소스코드 없이 이렇게 말씀드리는게 판단이 어려우실 것 같긴합니다만 아무래도 회사 소스라 공개하기는 어려울 것 같아서요 ㅠㅠ)배치를 XML로 구성하는 것의 용어는 배치 네임스페이스가 맞나요?
-
해결됨코드로 배우는 React with 스프링부트 API서버
JWT 체크 필터 적용 후 상품 목록 조회 시 동일한 객체를 묶어 불러오는 문제
체크 필터 적용 후http://localhost:8080/api/products/list?경로로 요청 해보니 동일한 정보를 2번 보내 주는거 같은데 정상적인 상태인지 궁금해 문의 드려요. 백엔드 로그를 보면 query문이 2번 실행이 되고 있습니다.2024-05-08T14:30:30.805+09:00 DEBUG 4545 --- [security-prj2-practice-back2] [nio-8080-exec-2] o.s.security.web.FilterChainProxy : Secured GET /api/products/list? Hibernate: select p1_0.pno, p1_0.del_flag, p1_0.pdesc, p1_0.pname, p1_0.price, il1_0.file_name, il1_0.ord from tbl_product p1_0 left join product_image_list il1_0 on p1_0.pno=il1_0.product_pno where il1_0.ord=0 and p1_0.del_flag=0 order by p1_0.pno desc limit ?, ? Hibernate: select count(p1_0.pno) from tbl_product p1_0 left join product_image_list il1_0 on p1_0.pno=il1_0.product_pno where il1_0.ord=0 and p1_0.del_flag=0 2024-05-08T14:30:30.874+09:00 TRACE 4545 --- [security-prj2-practice-back2] [nio-8080-exec-2] o.s.s.w.header.writers.HstsHeaderWriter : Not injecting HSTS header since it did not match request to [Is Secure] 2024-05-08T14:30:30.875+09:00 DEBUG 4545 --- [security-prj2-practice-back2] [nio-8080-exec-2] o.s.security.web.FilterChainProxy : Secured GET /api/products/list? Hibernate: select p1_0.pno, p1_0.del_flag, p1_0.pdesc, p1_0.pname, p1_0.price, il1_0.file_name, il1_0.ord from tbl_product p1_0 left join product_image_list il1_0 on p1_0.pno=il1_0.product_pno where il1_0.ord=0 and p1_0.del_flag=0 order by p1_0.pno desc limit ?, ? Hibernate: select count(p1_0.pno) from tbl_product p1_0 left join product_image_list il1_0 on p1_0.pno=il1_0.product_pno where il1_0.ord=0 and p1_0.del_flag=0 해결 해서 해결 내역 첨부 합니다.강의 에서는 JWTCheckFilter 내부에 제일 아랫줄 filterChain.doFilter(request, response);코드 줄을 살린채 진행 해주셔서 발생 했던 문제 인거 같습니다. 동일한 문제 겪으신 분들은 해당 코드 지우시면 1번만 호출 합니다.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
단순 주문조회 1편 질문있습니다.
에러상황: 포스트맨으로 요청시http://localhost:8080/api/v1/simple-orders "timestamp": "2024-05-08T03:14:28.812+00:00", "status": 500, "error": "Internal Server Error", "path": "/api/v1/simple-orders"}에러가 납니다.에러코드:Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.springframework.http.converter.HttpMessageConversionException: Type definition error: [simple type, class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor]] with root cause전체코드:https://drive.google.com/file/d/1dmrZQpe2BMk8jNkKn2t6fjINWC6LRPiX/view?usp=drive_link강의와 다른 부분은 @GetMapping("/api/v1/simple-orders") public List<Order> ordersV1() { List<Order> all = orderRepository.findAllByString(new OrderSearch()); return all; }findAllByString->findAllByCriteria 로 변경했으나 매개변수는 똑같기 때문에 잘 작동되어야 한다는 생각을 했는데 작동이 잘 안됩니다. 이유가 뭔가요? 코드에러가 컨버터 에러가 나와서 에러를 못잡아서 [dispatcherServlet]까지 넘어간건가요?주문목록에서는 데이터가 잘조회됩니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
타임리프 화면 출력 오류(entity-> dto 변환후)
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)https://drive.google.com/file/d/1G3OvEzKlffIJB8WkcuULPE7xN_A0s4KB/view 강의 중간에 controller 에서 @PostMapping 으로 폼 데이터를 받을경우 entitiy 그대로 뿌리는것이아닌 dto로 변환하여 뿌리는 게 좋다고 하셔서 한번 그 방식대로 해보았는데 화면에 데이터가 뿌려지지 않아요 ㅜ 뭐가 잘못된건지 모르겠는데 한번 확인 부탁드립니다 ..
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
final 과 this
[질문 내용]여기에 질문 내용을 남겨주세요. service 에서 repository 호출 시 final 쓰는 이유 좀 설명해주세요 ㅠ 그리고 this의 의미가 setName(String name){.....} 에서 매개변수로 넘어온 (String name)을 지칭하는 것인가요??