inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

Jar 파일로 서버 실행 시키키 VS IDE에서 서버 실행시키기

미해결

스프링 부트 - 핵심 원리와 활용

안녕하세요. 지금까지 영한님의 강의를 잘 들어온 수강생입니다. 지금까지 들었던 강의들을 기반으로 현재 프로젝트를 진행하고 있는데, 프로젝트를 진행하던 중 도저히 이유를 알수가 없는 문제가 생겨서 해당 질문이 강의의 내용과 무관함에도 불구하고, 질문을 올리게 되었습니다. 문제 상황은 다음과 같습니다. 프로젝트를 IntelliJ 상에서 실행하는 경우에 특정 HTTP 요청이 정상적으로 처리가 되는데, 동일한 소스코드를 기반으로 IntelliJ에 있는 Gradle의 bootJar로 Jar 파일을 생성한 뒤, 터미널에서 "java -jar 파일이름.jar" 커맨드를 통해 서버를 실행시키면 위에서 보낸 요청과 동일한 요청이 정상적으로 처리가 되지 않습니다. 동일한 소스 코드에 단지 IDE 상에서 실행시키느냐, bootJar로 Jar 파일을 만들어 실행시키느냐 그 차이만 존재하는데, 한쪽은 제대로 동작하고, 다른 한쪽은 제대로 동작하지 않으니 도대체 무슨 이유로 동작하지 않는건지 모르겠습니다. 혹시 의심해볼만한 부분이 있다면 알려주시면 감사하겠습니다.

  • spring
  • spring-boot
  • prometheus
  • grafana
세승 댓글 1 좋아요 0 조회수 552

JWT secretKey ECDSA error

해결됨

Spring Boot JWT Tutorial

[코드](https://github.com/YuYoHan/JWT) ECDSA signing keys must be PrivateKey instances.이런 오류가 뜨는데 JwtProvider입니다. @Slf4j @Component public class JwtProvider implements InitializingBean { private static final String AUTHORITIES_KEY = "auth"; private final String secret; private final long tokenValidityInMilliseconds; private Key key; public JwtProvider(@Value("${jwt.secret_key}") String secret, @Value("${jwt.access.expiration}") long tokenValidityInMilliseconds ) { this.secret = secret; this.tokenValidityInMilliseconds = tokenValidityInMilliseconds * 1000; } // 여기서 InitializingBean를 상속받고 이 메소드를 오버라이드한 이유는 // Bean이 생성이 되고 생성자를 통해서 secret 값을 Base64 Decode해서 key 변수에 할당하기 위함이다. @Override public void afterPropertiesSet() throws Exception { byte[] keyBytes = Decoders.BASE64.decode(secret); this.key = Keys.hmacShaKeyFor(keyBytes); } // 유저 정보를 가지고 AccessToken, RefreshToken을 생성하는 메서드 public TokenDTO createToken(Authentication authentication) { // 권한 가져오기 String authorities = authentication.getAuthorities().stream() .map(GrantedAuthority::getAuthority) .collect(Collectors.joining(",")); long now = (new Date()).getTime(); // Access Token 생성 Date accessTokenExpire = new Date(now + this.tokenValidityInMilliseconds); String accessToken = Jwts.builder() .setSubject(authentication.getName()) .claim(AUTHORITIES_KEY, authorities) .setExpiration(accessTokenExpire) .signWith( key, SignatureAlgorithm.ES512) .compact(); // Refresh Token 생성 Date refreshTokenExpire = new Date(now + this.tokenValidityInMilliseconds + 86400); String refreshToken = Jwts.builder() .setSubject(authentication.getName()) .claim(AUTHORITIES_KEY, authorities) .setExpiration(refreshTokenExpire) .signWith(key, SignatureAlgorithm.ES512) .compact(); return TokenDTO.builder() .grantType("Bearer") .accessToken(accessToken) .refreshToken(refreshToken) .build(); } // JWT 토큰을 복호화하여 토큰에 들어있는 정보를 꺼내는 코드 // 토큰으로 클레임을 만들고 이를 이용해 유저 객체를 만들어서 최종적으로 authentication 객체를 리턴 // 인증 정보 조회 public Authentication getAuthentication(String token) { // 토큰 복호화 메소드 Claims claims = parseClaims(token); if(claims.get("auth") == null) { throw new RuntimeException("권한 정보가 없는 토큰입니다."); } // 클레임 권한 정보 가져오기 Collection<? extends GrantedAuthority> authorities = Arrays.stream(claims.get(AUTHORITIES_KEY).toString().split(",")) .map(SimpleGrantedAuthority::new) .collect(Collectors.toList()); // UserDetails 객체를 만들어서 Authentication 리턴 User principal = new User(claims.getSubject(), "", authorities); return new UsernamePasswordAuthenticationToken(principal, token, authorities); } private Claims parseClaims(String token) { try { return Jwts.parserBuilder() .setSigningKey(key) .build() .parseClaimsJws(token) .getBody(); } catch (ExpiredJwtException e) { return e.getClaims(); } } // 토큰의 유효성 검증을 수행 public boolean validateToken(String token) { try { Jwts.parserBuilder().setSigningKey(key).build().parseClaimsJws(token); return true; } catch (io.jsonwebtoken.security.SecurityException | MalformedJwtException e) { log.info("잘못된 JWT 서명입니다."); } catch (ExpiredJwtException e) { log.info("만료된 JWT 토큰입니다."); } catch (UnsupportedJwtException e) { log.info("지원되지 않는 JWT 토큰입니다."); } catch (IllegalArgumentException e) { log.info("JWT 토큰이 잘못되었습니다."); } return false; } } 강의랑 같은데 오류가 발생하네요 ㅠㅠ

  • spring-boot
  • jwt
유요한 댓글 2 좋아요 0 조회수 586

Authorization required for Client Registration Id

미해결

스프링 시큐리티 OAuth2

안녕하세요. 강의를 보다가 한 가지 궁금한게 있는데요! springsecurityconfig 클래스에서 어노테이션을 @Configuration @EnableWebSecurity 2개를 붙이게 되면 Authorization required for Client Registration Id: keycloak 에러가 발생하고 있는데, 이때는 yml파일에 설정해놓은 부분들을 다시 다 bean으로 등록을 해야하는걸까요..?

  • java
  • spring
  • spring-boot
  • oauth
jj__yi 댓글 2 좋아요 0 조회수 606

빌드 이후에 libs가 생기지 않아요..

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

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

  • java
  • spring
  • mvc
  • spring-boot
connell 댓글 2 좋아요 0 조회수 932

JdbcMemberRepository와JdbcTemplateMemberRepository 오류

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. build.gradle입니다 찾아보니 https://www.inflearn.com/questions/589975/jdbcmemberrepository-%EC%97%90%EB%9F%AC 해당 결과와 똑같은 증상인 것 같은데 해결방안을 찾지 못했습니다.

  • java
  • spring
  • mvc
  • spring-boot
서정원 댓글 2 좋아요 0 조회수 759

DTO에 관해서 질문드립니다!

해결됨

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] DTO를 만들때 강의에서는 하나의 클래스에서 inner 클래스로 DTO를 만드셨는데 실제 실무에서도 이러한 방식으로 하는지 궁금합니다. 그리고 컨트롤러에서 람다와 스트림을 통해서 데이터 정제 하는 로직은 컨트롤러에서 처리해도 상관이 없는지 궁금합니다.

  • java
  • spring
  • spring-boot
  • jpa
maurizio 댓글 1 좋아요 2 조회수 660

질문

미해결

[초급] 맛보자! 코틀린과 스프링으로 API 호출하기

3.0.6 버전이 spring initializer에 현재 없는데 같은 버전으로 어떻게 설치할 수 있을까요?

  • spring
  • kotlin
  • spring-boot
jjang9 댓글 1 좋아요 0 조회수 357

spring 설치 오류

해결됨

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

jdk는 11.0.18로 사용중이고 sdk install springboot로 최신버전을 설치하는 것은 가능한데 버전을 지정하면 오류가 발생합니다. 최신 버전(3.1.0)으로 진행해도 될까요?

  • spring
  • spring-boot
  • spring-jdbc
편협한시간 댓글 1 좋아요 2 조회수 832

19:04 초 where in 쿼리 대신 where array_conatins 쿼리가 나왔습니다. (스프링 부트 3.1)

해결됨

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 현재 스프링 부트 3.1 로 강의를 따라가고 있습니다. default_batch_fetch_size:10 을 설정해서 나가는 쿼리가 줄어드는 것을 확인했습니다만, 쿼리가 두 개가 아니고 총 세 개가 나왔습니다. 023-06-13T23:24:02.666+09:00 DEBUG 68750 --- [nio-8080-exec-5] org.hibernate.SQL : select o1_0.order_id, d1_0.delivery_id, d1_0.city, d1_0.street, d1_0.zipcode, d1_0.status, m1_0.memeber_id, m1_0.city, m1_0.street, m1_0.zipcode, m1_0.name, o1_0.order_date, o1_0.status from orders o1_0 join member m1_0 on m1_0.memeber_id=o1_0.member_id join delivery d1_0 on d1_0.delivery_id=o1_0.delivery_id offset ? rows fetch first ? rows only 2023-06-13T23:24:02.676+09:00 INFO 68750 --- [nio-8080-exec-5] p6spy : #1686666242676 | took 2ms | statement | connection 8| url jdbc:h2:tcp://localhost/~/springbootjpa select o1_0.order_id,d1_0.delivery_id,d1_0.city,d1_0.street,d1_0.zipcode,d1_0.status,m1_0.memeber_id,m1_0.city,m1_0.street,m1_0.zipcode,m1_0.name,o1_0.order_date,o1_0.status from orders o1_0 join member m1_0 on m1_0.memeber_id=o1_0.member_id join delivery d1_0 on d1_0.delivery_id=o1_0.delivery_id offset ? rows fetch first ? rows only select o1_0.order_id,d1_0.delivery_id,d1_0.city,d1_0.street,d1_0.zipcode,d1_0.status,m1_0.memeber_id,m1_0.city,m1_0.street,m1_0.zipcode,m1_0.name,o1_0.order_date,o1_0.status from orders o1_0 join member m1_0 on m1_0.memeber_id=o1_0.member_id join delivery d1_0 on d1_0.delivery_id=o1_0.delivery_id offset 0 rows fetch first 100 rows only; 2023-06-13T23:24:02.681+09:00 DEBUG 68750 --- [nio-8080-exec-5] org.hibernate.SQL : select o1_0.order_id, o1_0.order_item_id, o1_0.count, o1_0.item_id, o1_0.order_price from order_item o1_0 where array_contains(?,o1_0.order_id) 2023-06-13T23:24:02.689+09:00 INFO 68750 --- [nio-8080-exec-5] p6spy : #1686666242689 | took 0ms | statement | connection 8| url jdbc:h2:tcp://localhost/~/springbootjpa select o1_0.order_id,o1_0.order_item_id,o1_0.count,o1_0.item_id,o1_0.order_price from order_item o1_0 where array_contains(?,o1_0.order_id) select o1_0.order_id,o1_0.order_item_id,o1_0.count,o1_0.item_id,o1_0.order_price from order_item o1_0 where array_contains('ar2: ARRAY [CAST(1 AS BIGINT), CAST(2 AS BIGINT), NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL]',o1_0.order_id); 2023-06-13T23:24:02.690+09:00 DEBUG 68750 --- [nio-8080-exec-5] org.hibernate.SQL : select i1_0.item_id, i1_0.dtype, i1_0.category_item_id, i1_0.name, i1_0.price, i1_0.stock_quantity, i1_0.author, i1_0.isbn, i1_0.artist, i1_0.etc from item i1_0 where array_contains(?,i1_0.item_id) 2023-06-13T23:24:02.691+09:00 INFO 68750 --- [nio-8080-exec-5] p6spy : #1686666242691 | took 0ms | statement | connection 8| url jdbc:h2:tcp://localhost/~/springbootjpa select i1_0.item_id,i1_0.dtype,i1_0.category_item_id,i1_0.name,i1_0.price,i1_0.stock_quantity,i1_0.author,i1_0.isbn,i1_0.artist,i1_0.etc from item i1_0 where array_contains(?,i1_0.item_id) select i1_0.item_id,i1_0.dtype,i1_0.category_item_id,i1_0.name,i1_0.price,i1_0.stock_quantity,i1_0.author,i1_0.isbn,i1_0.artist,i1_0.etc from item i1_0 where array_contains('ar3: ARRAY [CAST(1 AS BIGINT), CAST(2 AS BIGINT), CAST(3 AS BIGINT), CAST(4 AS BIGINT), NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL]',i1_0.item_id); 수강 중에 제가 따라 작성한 코드를 스프링부트 2.4.1에 그대로 옮겨보니 강의 내용대로 where in 쿼리가 나오는 것을 확인했습니다. 스프링부트 버전 차이에서 나오는 쿼리가 달라진 것 같은데, 제 생각이 맞을까요? 답변 확인 : 빠르게 답변해주셔서 감사합니다!! 덕분에 array_contains 로 최적화된 이유를 쉽게 이해할 수 있었습니다. (Hibernate에서 최적화를 했었었군요!) 아 그리고 강의 내용에서 쿼리 세 개 나온다는 것을 확인했습니다(잘못 본 것에 대해 질문글에서 수정을 해놨어야 했는데 빼놓지 않았었네요 ㅠㅠ) 다시 한번 상세한 답변 정말 감사드립니다.

  • java
  • spring
  • spring-boot
  • jpa
말랑한참깨 댓글 1 좋아요 1 조회수 1940

스프링부트 버전에 따른 SQL 문이 다른 점 (Alias 유무)

해결됨

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

안녕하세요, 스프링부트 3.1로 강의를 듣고 있는 학생입니다. 3.1.0 버전에서는 Select 쿼리를 생성할 때 별칭(alias) 없이 생성되었는데 JPA hibernate 버전 차이가 원인인 것인가요? 문서를 찾아보려고 해도 어떻게 찾아야 할지 감이 오지 않아서 질문드립니다. 아래는 MemberServiceTest 회원가입 test 의 로그입니다. 3.1.0 2023-06-13T22:26:00.567+09:00 DEBUG 64058 --- [ Test worker] org.hibernate.SQL : select m1_0.member_id, m1_0.city, m1_0.street, m1_0.zipcode, m1_0.name from member m1_0 where m1_0.name=? 2023-06-13T22:26:00.571+09:00 DEBUG 64058 --- [ Test worker] org.hibernate.SQL : select next value for member_seq 2.4.1 2023-06-13 22:23:43.684 DEBUG 63945 --- [ Test worker] org.hibernate.SQL : select member0_.member_id as member_i1_0_, member0_.city as city2_0_, member0_.street as street3_0_, member0_.zipcode as zipcode4_0_, member0_.name as name5_0_ from member member0_ where member0_.name=? 2023-06-13 22:23:43.691 DEBUG 63945 --- [ Test worker] org.hibernate.SQL : call next value for hibernate_sequence 아래는 각 로그가 출력할 때 사용한 파일입니다. 2.4 버전 https://drive.google.com/file/d/1BhS1ZjixkOKzQxrEaSLGu0o6tWGhRLr_/view?usp=sharing 3.1 버전 https://drive.google.com/file/d/1SN6W0iq6X2ALHPNJDUgXuG-ep3-D4UyU/view?usp=sharing

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
말랑한참깨 댓글 1 좋아요 0 조회수 335

Class to import 창을 어떻게 띄우나요?

해결됨

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

안녕하세요, 강의를 듣다가 타 패키지의 클래스를 import시킬 때 단축키를 이용하셔서 저렇게 창을 띄워 바로 import시키시는 걸 보았는데요! 윈도우라 해당 단축키가 어떤 단축키인지 나름대로 찾아봐서 따라해도 나오지 않아 질문드립니다 ㅠㅠ 컨트롤 알트 O / 알트 엔터 등등 따라해보았는데 윈도우 단축키는 어떻게 되나요...? 알트 + 엔터를 누르면 이렇게 나옵니다! Auto Import 설정도 검색해서 나온대로 따라해보았는데 Class to Import 창은 여전히 나오지 않네요ㅠ-ㅠ 패키지와 클래스는 이렇게 들어가 있습니다

  • java
  • spring
  • mvc
  • spring-boot
모캉이 댓글 1 좋아요 1 조회수 363

3개의 서비스 실행 시 데이터베이스 에러 발생

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

영상에서 실제 실행할 떄 3개의 서비스인 User, Catalog, Order 서비스를 정상적으로 실행하는 것을 보았습니다. 그런데 저는 하나의 서비스를 실행한 후 다른 서비스를 실행하면 Unable to open JDBC Connection for DDL execution [Database may be already in use: "C:/경로/ecommerce.mv.db". Possible solutions: close all other connection(s); use the server mode [90020-214]] [n/a] 이미 데이터베이스가 연결 중이니 다른 커넥션을 닫거나 서버모드를 사용하라는 에러가 발생합니다. 서버모드로 해결했는데 혹시 다음 강의에서 충돌이 발생할 가능성이 있을까요?? 필자의 정보 h2 버전 : 2.1.214 h2 데이터베이스 엔진을 다운받아 임베디드 모드로 데이터베이스 생성했습니다.

  • spring-boot
  • jpa
  • spring-cloud
  • msa
  • h2
yyqsssww 댓글 1 좋아요 0 조회수 485

gradlew build

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 네 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 네 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 네 [질문 내용] bin도 없애보고 환경변수 설정도 다시 해보고 했는데도 안되네요.. 어떻게 해야되나요..??

  • java
  • spring
  • mvc
  • spring-boot
영민 최 댓글 1 좋아요 0 조회수 710

setter 대신 Builder를 사용하여 구성했는데 꼬임에 대해서

해결됨

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

setter 사용을 지양하기 위해 setter를 사용하지 않고 Builder 패턴으로 구현하여 코드를 작성하던중 OrderService의 order() 메서드를 테스트 하는데 NullPointerException이 발생했습니다. 어디서부터 꼬인지를 모르겠어서 어디부터 물어봐야할지를 모르겠네요... 그래서 이후 강의에서는 setter를 사용하지않고 정석대로 생성자를 이용하는 방식을 사용하는 강의가 있는지 궁금합니다.

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
HH 댓글 1 좋아요 2 조회수 1030

hello 클릭시, 에러가 계속 뜹니다.

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

문제 : localhost:8080 접속 -> hello 버튼 클릭 -> 에러가 여전히 뜬다 제 생각에는 강사님 화면의 ${data}와 다르게 제 화면의 $(data)가 string으로 인식돼서 생긴 문제 같습니다. 왜 다르게 인식되는걸까요? 스프링 부트 2.7.12 ver 입니다 강사님 화면 제 화면

  • java
  • spring
  • mvc
  • spring-boot
톨게이트 댓글 1 좋아요 0 조회수 270

cannot resolve class or package 'h2' 에러가 발생합니다.

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 이번 강의 전까지는 작동이 잘 되던 상황입니다. 2분대 쯤 부터 진행이 안됩니다. 오른쪽 gradle 탭에서 리프래시, 종료 후 build.gradle 프로젝트로 새로 열기 해도 안됩니다. 인텔리제이 : 얼티밋 버전 자바 :17 h2 : 2.1.214 구글드라이브 : https://drive.google.com/file/d/1Fakk0qOmqM6INsKNXd7ofzdPS4WU0kzV/view?usp=sharing

  • java
  • spring
  • mvc
  • spring-boot
한석규 댓글 2 좋아요 0 조회수 790

회원, 주문 엔티티

해결됨

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

질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 현재 JPA에 대해 공부하고 있는 학생입니다!! 강의를 듣다 궁금한 것이 생겨 질문합니다!! 강의에서 Member 테이블과 Order테이블이 다대일 양방향관계로 만들었습니다. 양방향으로 만들었기 때문에 member에서 order을 참조하여 해당 member가 order들을 찾을 수 있는데(member.getOrder()), 수업 자료에 "실무에서는 회원이 주문을 참조하지 않고, 주문이 회원을 참조하는 것으로 충분 하다."라는 말이 있어서 궁금증이 생겼습니다. 실무에서는 해당 테이블들을 다대일 단방향으로 연관관계를 매핑한다는 것인데, 그러면 member가 자신이 주문한 것들을 찾고싶을땐 어떤 방식으로 찾나요?

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
yhw0104 댓글 1 좋아요 0 조회수 435

프로젝트 생성시

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예 [질문 내용] 여기에 질문 내용을 남겨주세요. https://start.spring.io 에서 프로젝트 생성시 지금은 project에 gradel project 가 아닌 gradle-groovy, gardle-kotlin 인데 어떤걸 선택해야하나요?

  • java
  • spring
  • mvc
  • spring-boot
최윤서 댓글 1 좋아요 2 조회수 1124

06:25~07:05 강의 내용 관련 디버깅 하다가 질문 있습니다

미해결

실전! 스프링 데이터 JPA

========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요! 강의 잘 듣고 있습니다. 06:25~ 07:05 에서 설명하신 내용을 좀 더 파보기 위해서, 코드를 디버깅 하는 과정에서, 질문이 있습니다. (질문하고자 한 배경이 길어서, 질문의 내용은 맨 마지막에 있습니다!) => 설명해주신 내용을 제가 이해한 대로 적자면, "스프링 데이터 jpa는 NoResultException을 try-catch로 처리해서 null로 반환한다" 라고 이해했습니다. => 그래서, 위 사진에서 breakPoint를 걸어서 F7로 저 메서드 내부를 파니까, 아래의 결과에서 해답이 있음을 유추했습니다 => 사진에서 retVal이 결국 null 값이며, 따라서 breakPoint인 retVal = invocation.proceed(); 에서, 강사님이 말씀해주신 "예외 처리 코드"가 있을 것이라고 생각했습니다. (질문) 그런데 제가 위 breakPoint의 메서드를 F7로 들어가서 확인했는데 예외처리 코드 관련 부분이 어느 부분인지 잘 몰라서... 해당 부분을 어떻게 debugging으로 잡아낼 수 있을 지 문의드립니다.

  • java
  • spring
  • spring-boot
  • jpa
mapth2357 댓글 1 좋아요 0 조회수 340

바꾼 port 번호가 gradle build 후 적용되지 않는 문제

해결됨

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

안녕하세요. 다름이 아니라 제가 port 번호 8080을 쓰고 있었던 상태라, unauthorized라고 떠서 edit configuration 에서 환경변수를 추가하여 포트 번호를 8090으로 변경했습니다. 문제는 gradle build를 완료했을 때 포트 번호가 8080으로 뜬다는 것입니다. 이 부분은 제가 인텔리제이를 실행해서 에러가 뜬 건데 8080으로 표시된다는 걸 보여주려고 첨부합니다. localhost :8090으로 들어가면 당연히 연결할 수 없다고 뜨고요. (인텔리제이에서 실행하고 8090으로 들어가면 잘 들어가집니다.) 부디 빠른 답변 부탁드립니다!

  • java
  • spring
  • mvc
  • spring-boot
  • build
  • port
dldwnl 댓글 1 좋아요 0 조회수 659

인기 태그

인프런 TOP Writers

주간 인기글