묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
hello 에서 404 에러 뜹니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
미해결
스프링 시큐리티 HttpSeurity.apply() derpeciated 도움 부탁드려요!
안녕하세요! 최근 스프링 시큐리티가 패치되면서, 기존 메서드 체이닝 방식이 아닌 람다식을 통해 함수형으로 설정하도록 바뀌었는데요. 다른 설정 부분은 새롭게 바뀐 방식을 찾았으나.... 아래 사진의 마지막 apply() 는 도저히 찾을 수가 없더라고요...ㅠ 혹시 아시는 분계실까요?('apply(C)' is deprecated since version 6.2 and marked for removal )
-
미해결스프링 부트 - 핵심 원리와 활용
오타 수정
외부설정과 프로필 2 pdf 파일 17 page에서 max-conneciton -> max-connection 오타 수정 필요해 보입니다 :)
-
미해결실전! 스프링 데이터 JPA
연관관계 설정에 대해서 질문이 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]예제 도메인 모델과 동작확인 강의에서 8:55분에 보면 연관 관계를 위해서 changeTeam이라는 메소드를 생성하시는데 해당 코드에서 team.getMembers().add(this)라는 코드가 있는데 해당 코드가 없어도 동작에 아무 이상이 없고 또한 Member에서 getMembers를 출력해보거나 DB를 보아도 달라진게 하나도 없는데 해당 라인의 코드를 적는 이유를 모르겠습니다. 만약 이유가 있다면 확인할만한 방법이 뭐가 있을까요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
제가 작성한 강의 노트 링크를 블로그 등에 올려도 되나요?
공유해도 된다고는 알고는 있는데제가 이후의 유료 강의들은 메모 작성할 때 이미지도 거의 첨부 안 하고, pdf에 없는 내용만 소량 작성했는데,무료 강의 들을 땐 처음이라 그런지 의욕이 너무 앞서서 이미지도 많이 첨부하고 좀 자세히 작성했었거든요.https://www.inflearn.com/notes/49423 분량이 좀 많은데 공유하지 않는 게 나을까요? 위처럼 링크만 올리려고 합니다. 인프런 고객센터에 문의하는 게 나을까요?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
java.lang.IllegalArgumentException: null
먼저 대출 기능 만들기 강의를 듣다가 문제를 2개 발견하였습니다. 유저 등록부터 'java.lang.IllegalArgumentException: null' 가 생깁니다.... 진짜 전에 잘 되던 것이 갑자기 왜 안되는지 막막합니다....그리고 대출 기능도 'java.lang.IllegalArgumentException: null' 가 생깁니다....이건 혹시 유저 부분에서 등록이 안되는 부분 때문에 생기는 오류인건지...부탁드립니다.. 똑같이 대출 기능 만들기 부분에서 생기는 건데, 위의 오류 문제를 해결하려고 형변환을 없애다 보니 아래와 같이 빨간줄이 나옵니다.. 왜 이러는 걸까요...ㅠㅠ구글 링크로 파일 업로드 했으니, 혹시나 참고해서 말씀하실 부분 있으시면 말씀 부탁드립니다.https://drive.google.com/file/d/1X9s-VjcAeBurdxOYrIOzwa0yZNNoue54/view?usp=sharinghttps://drive.google.com/drive/folders/1vB-XwaSlIKfY2Diq66g6JnQ8vyKVWQvn?usp=sharing
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
시퀀스 생성이 안되는거같아요
테스트 코드를 실행시키면 org.springframework.dao.InvalidDataAccessResourceUsageException: could not prepare statement [Sequence "MEMBER_SEQ" not found; SQL statement:select next value for member_seq [90036-224]] [select next value for member_seq]; SQL [select next value for member_seq]오류가 발생합니다.H2 에서 직접 CREATE SEQUENCE 쿼리로 직접 생성하고 나니까 테스트가 동작하네요 .. ddl-auto: create 확인했고 띄어쓰기 두칸 아닌것도 확인 했는데요 ,, 왜 안되는거죠?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
jakarta.persistence가 import 되지 않습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]제목 그대로 import가 되지 않습니다. import문을 지우고 나서 자동 임포트를 하려고 @Entity를 직접 타이핑 하여 해봐도 cannot resolve symbol이라는 메시지만 나오는데 어떡해야 할까요?
-
해결됨실전! 스프링 데이터 JPA
@RepositoryDefinition 실무에서 사용하나요?
JpaRepository나 PageRepository 등불필요한 쿼리도 자동으로 만들어주더라구요 그래서 해당 레포지토리에서 직접 정의한 메소드 말고는 막고 생성하고 싶지 않다면 어떤 방법을 사용하시나요? 디버깅하다보니 Repository.class 인터페이스와 어노테이션인 RepositoryDefinition.class를 필터로 스캔하는 걸 확인했습니다. RepositoryDefinition를 사용하는 것보다 직접 정의해서 사용할 생각이면 Repository.class만 상속해서 사용하시나요 ?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
v5의 쿼리 횟수에 대 질문이 있습니다.
public List<OrderQueryDto> findAllByDto_optimization() { List<OrderQueryDto> result = findOrders(); List<Long> orderIds = result.stream() .map(o -> o.getOrderId()) .collect(Collectors.toList()); List<OrderItemQueryDto> orderItems = em.createQuery( "select new jpabook.jpashop.repository.order.query.OrderItemQueryDto(oi.order.id, i.name, oi.orderPrice, oi.count)" + " from OrderItem oi" + " join oi.item i" + " where oi.order.id in :orderIds", OrderItemQueryDto.class) .setParameter("orderIds", orderIds) .getResultList(); //최적화(Lambda사용) Map<Long, List<OrderItemQueryDto>> orderItemMap = orderItems.stream() .collect(Collectors.groupingBy(orderItemQueryDto -> orderItemQueryDto.getOrderId())); result.forEach(o -> o.setOrderItems(orderItemMap.get(o.getOrderId()))); return result; } 여기서 map을 사용하는 코드가 있는 경우에는 쿼리를 한 번 날리고 map으로 가져와서 값을 세팅하기 때문에 쿼리가 총 2번 나가는 거고 그 부분이 없으면 어떤 방식으로 쿼리가 나가는 건가요?
-
해결됨스프링 시큐리티
RoleHierarchy 강의 내용에서 계층 권한 설정에 대해 몇 가지 질문드립니다.
안녕하세요, 우선 좋은 내용의 강의 감사드립니다. 이어 Spring Security 계층 권한 설정 방법에 대해 아래와 같이 몇 가지 질문을 드리고자합니다. [질문 항목]DB를 사용해서 계층 권한 테이블을 선언하고 부모, 자식 관계의 권한 데이터(row)를 등록해 놓은 상황에서 프로그램을 실행시키게 되면 현재 이 계층 권한 테이블에 있는 데이터에 한해서만 Security 권할 설정이 이루어지는 것인가요? 만약, 추후 DB에 직접 새로운 계층 권한 정보가 등록된다면 해당 프로그램이 재시작되어야만 변경된 계층 권한 정보가 동기화되는 것인가요?1번 항목과 비슷한 맥락으로 한 회원이 서비스 이용중 자신의 권한이 사이트 관리자에 의해 변경되었다면 변경된 권한이 적용되는 시점에 대해서도 궁금합니다.Spring Security 기본 정책(?)상 계층 권한을 나타낼 때에는 문자열 형태로 권한 관계를 > 를 사용하여 표기하는 것을 볼 수 있었는데요. 이렇게 문자열 형태가 아닌 다른 형태(예를 들어 Map 등)로도 표기가 가능한가요? 만약, 이런 설정 방법이 존재한다면 가이드를 제공해주실 수 있을까요?아직 강의를 완강한 것이 아니기에 질문 내용이 부족한점 양해드리며, 미리 답변 감사드립니다.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
트랜잭션의 시작을 모르겠습니다
강의를 듣다보니 Api를 사용하기 위해 만든 Controller에서는 @Transactional 어노테이션이 포함된 Service를 아예 사용 안해서 트랜잭션의 시작을 어디로 봐야 될지 모르겠어서요1.@Transactional 어노테이션을 달고있는 메서드의 시작이 트랜잭션의 시작이고,또한 em를 통해서 createQuery나 persist를 하는 것은 em코드가 포함된 메서드가 트랜잭션의 시작인건가요?2.그리고 컨트롤러는 컨트롤러에 남겨두고 내부 로직이 있으면 빼내서 클래스로 만들어서 @Transactional(readOnly = true)로 설정해서 컨트롤러에서 쓰면컨트롤러는 그대로 있고, 내부의 로직을 트랜잭션 어노테이션으로 묶는건가요? 3.2번이 맞게 이해한거면 ApiController에 있는 컨트롤러에 바로 @Transactional을 붙이면 OSIV를 꺼도 작동되는데이렇게 컨트롤러에 바로 붙이면 OSIV를 킨거와 같은 경우가 되는거 아닌가요?
-
해결됨스프링 부트 - 핵심 원리와 활용
프로메테우스가 요청을 보내고 서버에서 406에러를 반환합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================실습을 위해서 영상을 따라해서 프로메테우스를 실행시켰는데status가 down으로 뜨고 406을 반환한다는 내용이 잇었습니다. 로그를 확인해 보니resolved [org.springframework.web.httpmediatypenotacceptableexception: no acceptable representation]이렇게 뜨는데 왜 그러는 건가요 ㅠㅠ/actuactor/prometheus url로 접속시 데이터는 잘 반환하는데 프로메테우스에서 해석할 수 없는 형태로 포멧되고 있는 걸까요..? 영한님 영상과 비교했을 때 크게 다른 부분은 보이지 않았던 것 같습니다. 요청은 1초마다 잘 가는데 뭔가 문제가 있는 것 같습니다. yml은 내용 그대로 복사해서 아래처럼 작성했습니다..!global: scrape_interval: 15s evaluation_interval: 15salerting: alertmanagers: - static_configs: - targets: # - alertmanager:9093rule_files:scrape_configs: - job_name: "prometheus" static_configs: - targets: [ "localhost:9090" ] #추가 - job_name: "spring-actuator" metrics_path: '/actuator/prometheus' scrape_interval: 1s static_configs: - targets: [ 'localhost:8080']
-
해결됨실전! 스프링 데이터 JPA
Spring Data Jpa Optional
jpashop 프로젝트를 spring data jpa를 사용해 변경해보고 있는데Service 로직에서 spring data jpa에 기본으로 findOne이 있다고 들어 작성하였는데Optional 때문인지 저렇게 나오는데 어떻게 작성해야 해결이 되나요??
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
섹션 2.API Gateway Service 중 Spring Cloud Gateway-프로젝트 생성 부분 중 수행이 안됩니다.
강의와 똑같이 수행했다고 생각은 하는데, http://localhost:8081/first-service/welcome과 localhost:8082/second-service/welcome 를 개별적으로 호출했을 떄는 문제 없이 호출됩니다.그런데 http://localhost:8000/first-service/welcome을 호출하면 404로 문구가 나오네요.강의를 계속 봤는데 다른 부분 찾기가 어렵네요. 어느 부분에서 오류가 났는지 확인이 가능할까요? firstController.java import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/first-service") public class FirstServiceController { /* RequestMapping과 GetMapping이 조합이 되어서 호출됨 */ @GetMapping("/welcome") public String welcome(){ return "Welcome to the First service"; } } secondController.java@RestController @RequestMapping("/second-service") public class SecondServiceController { /* RequestMapping과 GetMapping이 조합이 되어서 호출됨 */ @GetMapping("/welcome") public String welcome(){ return "Welcome to the Second service"; } } apigateway-service 프로젝트의 pom.xml<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.4.2</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>apigateway-service</artifactId> <version>0.0.1-SNAPSHOT</version> <name>apigateway-service</name> <description>Demo project for Spring Boot</description> <properties> <java.version>17</java.version> <spring-cloud.version>2023.0.0</spring-cloud.version> </properties> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway-mvc</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <excludes> <exclude> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </exclude> </excludes> </configuration> </plugin> </plugins> </build> </project> apigateway-service 프로젝트의 application.ymlserver: port: 8000 eureka: client: register-with-eureka: false fetch-registry: false service-url: defaultZone : http://localhost:8761/eureka Spring: application: name: apigateway-service cloud: gateway: routes: - id: first-service url: http://localhost:8081/ predicates: - Path=/first-service/** - id: second-service url: http://localhost:8082/ predicates: - Path=/second-service/**
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
DB
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]이전 강의인 Jdbc강의는 따라하지 않아도 된다고 하셔서 h2 데이터베이스 관련 라이브러리 추가와 연결 설정 추가만 따라하고 이 강의로 넘어왔습니다. 이번 강의 전까지는 문제없이 실습을 따라했는데 이번 강의부터 따라하던 중 막힌 부분이 생겨서 질문 남깁니다!5:53 쯤에 회원가입만 테스트 돌렸을 때 h2 데이터베이스에 남아있어야하는데 저는 아무것도 남아있지 않습니다. Jdbc를 따라하고 넘어왔어야하는걸까요?ㅠㅠ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
localhost 8080 Whitelable Error Page 에러발셍
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. View 환경설정 강의 따라하고 있는데 localhost:8080은 잘 동작 하지만 localhost:8080/hello 는 오류 발생하네요.동일 오류 발생한 사람들의 사례를 찾아봤지만,도저히 해결방법을 모르겠어서 올립니다ㅜㅜ
-
미해결실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
혹시라도 @DiplayName 어노테이션이 동작하지 않으신다면
위에 처럼[Build, Execution, Deployment > Build Tools > Gradle]의 Run tests using 설정을 '인텔리제이'로 변경하고,인텔리제이를 재시작하시면 정상동작됩니다.
-
미해결스프링 부트 - 핵심 원리와 활용
promethus가 추가 작성한 spring-actuator를 인식 못해요
몇 일 전에 인식 안된다고 했었던 수강생입니다.다름이 아니라 당시, 회사일로 확인 못하다가 방금 확인했는데도 spring-actuator라는 job-name을 인식을 못하네요. 다시 한번 코드 첨부 드립니다. application.yml management: server: port: 8081 info: java: enabled: true os: enabled: true env: enabled: true endpoint: shutdown: enabled: true health: show-details: always endpoints: web: exposure: include: prometheus info: app: name: hello-actuator company: house server: tomcat: mbeanregistry: enabled: true servlet: encoding: charset: UTF-8 enabled: true force: true port: 8081 logging: level: web: debug prometheus.ymlglobal: scrape_interval: 15s evaluation_interval: 15s alerting: alertmanagers: - static_configs: - targets: rule_files: scrape_configs: - job_name: "prometheus" static_configs: - targets: [ "localhost:9090" ] - job_name: "spring-actuator" metrics_path: '/actuator/prometheus' scrape_interval: 1s static_configs: - targets: [ 'localhost:8081' ] build.gradledependencies { implementation 'org.springframework.boot:spring-boot-starter-actuator' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' runtimeOnly 'com.h2database:h2' runtimeOnly 'io.micrometer:micrometer-registry-prometheus' testImplementation 'org.springframework.boot:spring-boot-starter-test' } 현재는 window 환경에서 실행 중인데도 안되네요..ㅠㅠㅠ prometheus 버전 2.48.1 버전과 혹시 싶어 2.45 버전 둘 다 써봤는데도 안돼요.. 이런거에 경험해보신 분 있을까요? 더 이상 진도를 못나가고 있어요.. 😭😭
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
### 강사님 꼭 좀 답변 부탁드립니다. ###
몇주전에 MSA 후속 강의에 대해 문의드렸습니다. 이벤트 소싱, 보상 트랜잭션 등 후속 강의 계획이 있으신건가요?계획이 있고, 로드맵을 알려주시면 기다릴텐데.. 아무 소식이 없이 계속 미루어지고 있습니다. 저와 같이 해당 강의를 이미 들으셨던 분, 새로 들으시는 분들 모두가 궁금해하고 듣고싶은 강의라고 생각됩니다.후속 강의가 없다면, 해당 강의의 내용만으로는 사실 실무에서는 사용하기 어렵다고 생각됩니다.axon framework 를 별도로 공부해서 어떻게 할지 감은 오지만, 그래도 강사님이 실무에서 사용했던 방법을 공유받고 싶은 마음입니다. 꼭 좀 계획을 공유부탁드립니다.혹시라도 후속 강의에 대한 계획이 없는거여도 말씀 좀 부탁드립니다.