묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
localhost:8080이 다른 프로젝트에서 사용 중인 것같아요
안녕하세요~localhost:8080이 사용중인 것 같습니다.처음 테스트로 실행시키고 초기화까지 된 것 같은데해당 localhost로 들어가면 로그인 화면이 뜨네요...일전에 다른 강의 보다가 다른 프로젝트를 실행시켜서 그런 것 같네요어떻게 해결해야 할까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
h2 DB 연결시 Table not found
[질문 내용]섹션 6 JDBC 연결 과정h2 DB 연결 과정에서 h2 환경 구축, memebr 테이블 생성까지 에러없이 잘 됐구요. h2 콘솔에서도 테이블 확인 해 보면 잘 보입니다.근데 이제 강사님이 알려주신 방법대로 DB를 MemoryMemberRepository -> JdbcMemberRepository로 변경하는 과정에서 JdbcMemberRepository 클래스 파일과 SpringConfig 파일 코드 복붙 해왔는데 실행시키면 회원가입과 회원 목록 조회시 자꾸 member라는 테이블을 못찾는 오류가 뜹니다...ㅠ 왜 그런걸까요ㅠㅠ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
h2.bat해도 실행이 안돼요 ..
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]자바 배치파일이 아니라고 뜨는데 왜이러는걸까요 ㅠㅠ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
테스트시 DB 사용
안녕하세요, 강의를 듣고 있는 학생입니다. 강사님께서 강의 중에 언급해주신 거 같은데 제가 이해를 잘 못해서 다시 질문드립니다. 통합 테스트 시 이전 강의에서 쌓아 둔 데이터를 DELETE query를 통해서 없애고 진행을 했는데, 그렇다면 테스트 코드와 실제 코드가 같은 DB를 공유하고 있다고 봐도 되나요? 만약 같은 DB를 공유하게 된다면, 원래 있던 데이터를 항상 날려야 되는데 문제가 생긴다고 생각이 들어 제가 잘못 이해한 부분을 찾고 싶어 질문을 드렸습니다. 글 읽어주셔서 감사합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
세션 로직 질문입니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]세션 생성 로직은 UUID로 랜덤한 값 만들어서 sessionStore.put(sessionId, value);하고 new Cookie(SESSION_COOKIE_NAME, sessionId);해서 mySessionId인 SESSION_COOKIE_NAME과 sessionId를 응답할 때 담아서 보내는 것까지는 이해했는데 조회와 만료하는 로직, findCookie메서드에서 request로 넘어온 쿠키 이름과 cookieName(SESSION_COOKIE_NAME)이 일치하면 findAny()로 반환된 값이 sessionCookie에 담기고 sessionCookie.getValue()로 값을 꺼내서 sessionStore에서 .get()으로 조회하고 .remove()로 삭제하는 로직이 맞는건지 제가 제대로 이해한게 맞는지 궁긍합니다. 항상 친절하게 답변해주셔서 감사합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
빈 연결 에러
Could not autowire. There is more than one bean of 'MemberRepository' type.Beans:memoryMemberRepository (MemoryMemberRepository.java) springDataJpaMemberRepository (SpringDataJpaMemberRepository.java)<스프링 데이터 JPA> 강의에서 테스트 코드를 실행 했을때 동일한 에러가 뜨는데 해결 방법을 찾지 못하고 있습니다. 도와주세요 ..동일한 타입의 빈이 중복 등록되어 발생한 문제임을 알고 있습니다. 어디서 중복 등록이 된 건지 찾지 못하고 있어요
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
application.properties
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]org.h2.Driver에서 오류가 발생하는데 이는 어떻게 수정해야하나요?
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
REQUIRES_NEW인데 rollback되는 이유가 궁금합니다.
@Service @RequiredArgsConstructor @Transactional public class UserService { public void createUser(CreateUserRequest request) { Users users = firebaseUsersRepository.findUsersByFirebaseUid(request.getFirebaseUid()) .orElseThrow(() -> new BusinessException("Not Found User", HttpStatus.INTERNAL_SERVER_ERROR)); User user = User.builder() .name(users.getDisplay_name()) .firebaseUid(request.getFirebaseUid()) .build(); userRepository.save(user); } } @Component @RequiredArgsConstructor @Transactional(propagation = Propagation.REQUIRES_NEW) public class BaseEntityAuditAware implements AuditorAware<User> { private final UserRepository userRepository; @Override public Optional<User> getCurrentAuditor() { try { return userRepository.findById(ApiLogger.getRequestCallerId()); } catch (Exception e) { return Optional.empty(); } } }createUser에서 userRepository.save(user)를 호출할때,JpaAudit기능을 이용하기 위해 구현해놓은 BaseEntityAuditAware에서 유저정보를 가져온 후, 실제 쿼리를 날립니다.이때, 전파속성이 REQUIRE_NEW이며, 발생한 모든 예외를 catch했으므로이 함수를 호출한 부모 함수로 해당 예외가 전달되지 않을 것이기때문에 rollback이 되지 않으리라 기대했지만실제로는 unexpectedrollbackexception이 발생하며 롤백이 되었습니다.null을 반환하는건 문제가 아닌것이,실제로 예외를 발생시키지 않으려고 위 코드를 아래와같이 변경하였더니 null값으로 정상적으로 insert쿼리가 날라갔습니다. @Override public Optional<User> getCurrentAuditor() { Long callerId = ApiLogger.getRequestCallerId(); if (callerId == null) return Optional.empty(); return userRepository.findById(ApiLogger.getRequestCallerId()); }어느부분이 잘못된것이며 제가 오개념을 잡고있는 부분이 어디일까요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
Spring Security는 왜 필터를 사용할까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]인터셉터는 필터에 비해 다양한 기능을 제공한다고 하였는데 왜 Spring Security는 필터로 구현되었을까요?Spring Security가 MVC 뿐 아니라 다른 애플리케이션에도 활용되기 때문에 의존성을 줄이기 위함일까요?그 외에도 인터셉터가 필터에 비해 갖는 이점이 궁금합니다!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
<p th:text="'안녕하세요.ddd ' + ${data}" >안녕하세요. 손님</p>
<p th:text="'안녕하세요.ddd ' + ${data}" >안녕하세요. 손님</p> 이 부분에서, 정작 p태그의 사이 공간에 들어가는 내용 즉, "안녕하세요. 손님" 이 부분은 아예 화면에는 렌더링이 안 되는 걸로 보이는데 이 부분은 그러면 개발자 입장에서는 주석처럼 사용하는 건가요? 타임리프에서 p 태그의 사이공간은 어떻게 활용되는지 궁금합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
이해확인 질문
두 가지 방법 (groups, 폼 객체 분리)에 대해 groups는 조건문 처럼 느껴졌고, 그래서 Item 클래스 하나만 이용해서 조건적 로직을 통해 각 컨트롤러에 입맛에 맞게 Item 객체에 검증을 수행하는 것 처럼 느껴졌습니다.이러한 조건문 적인 특징은 Item에 무언가 추가될 경우 수 많은 조건문들을 수정해야하는 느낌을 받았습니다. 또한 Item이 계속해서 바뀔 수 있겠다는 생각이 들었습니다. 이러한 과정에서 인터페이스로 연결된 수많은 컨트롤러에서 에러가 발생할 가능성이 있지 않을까 생각했습니다.반면 폼 객체 분리는 상황마다 Item과 비슷하지만 더욱 규제가 추가된, 입맛에 맞는 새로운 클래스를 구성해서 활용하는 . 데 있어서 더 확장적이라고 생각했습니다.제 이해가 맞을까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
localhost에 안
HelloSpringApplication 예하에 있는 main 함수를 run 했고, 첨부한 사진처럼 tomcat이 8080에 띄워졌다고 뜨는데, localhost에 들어가보면 거부했다고 뜨네요. 와이파이 이슈인가요...?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
static 폴더 인식이 안됨
강의 내용 대로 코드를 짰는데 localhost::8080으로 연결하면 static 폴더에 있는 html이 아닌 template 폴더에 있는 html이 뜹니다. static 폴더에 있는 html을 실행시키면 localhost::63342로 정적 페이지가 뜹니다. thymeleaf를 이용한 template 폴더에 있는 파일은 localhost::8080/hello를 하면 제대로 뜹니다. 무엇이 문제인걸까요
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
File not found:
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]순수 jdbc 강의 16분내용으로 코드실행하는데 매핑한 주소 모두 file not found가 뜹니다..Identify and stop the process that's listening on port 8082 or configure this application to listen on another port.라고 콘솔에는 뜨는데 톰캣포트랑 h2포트랑 같아서 생기는 문제일까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
MemberServiceIntegrationTest 실행시 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]MemberServiceIntegrationTest 에서 회원가입 코드를 실행하면 MemberController 에서 오류가 발생합니다.이유가 무엇일까요?
-
미해결스프링 프레임워크는 내 손에 [스프1탄]
MVC06에 회원정보수정, 이미지등록수정 강의 영상이 없습니다
영상을 보면서 진행을 했는데이미지 등록 부분에서 에러가 발생하길래확인해 보니 깃허브에 수정된 코드들은 있지만수정과 관련된 영상들은 누락되었네요 깃허브 코드 복붙해서 혼자 해보긴 했는데업로드가 오래된 강의이긴 하지만 분명 검수 과정이 있었을텐데인식을 못하셨다는게 아쉽네요 다른 부분들은 보면서 많이 도움이 되었습니다
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
build이후 파일생성안됨?
빌드가 된 후에 파일 생성이 안될수가 있나요?ㅜㅜ 경로를 계속 못찾느다고 하네요 들어가봐도 build라는 파일은 없는데요 +비슷한 질문 찾아서 gradlew build로 실행해 보니 빌드오류가 뜹니다 어떤 경우인가요? devtools 지우고 다시 해봐도 동일한 오류가 뜨네요
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링 빈
[질문 내용] MemoryMemberRepository가 MemberRepository인터페이스를 구현하기 때문에 스피링 빈(객체)는 MemoryMemberRepository클래스의 객체여야한다고 생각하는데강의안은 이렇게 되어있는데 부모 인터페이스가 자식을 품을수 있기 때문에 그림이 이렇게 된건가요??
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
findCookie()메서드 관련 질문입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]findCookie() 메서드에서 String cookieName으로SESSION_COOKIE_NAME = "mySessionId";위의 상수를 받고있는 상황으로써 모든 사용자의 cookieName은 전부 "mySessionId"이 됩니다.return Arrays.stream(cookies).filter (cookie -> cookie.getName().equals(cookieName)).findAny().orElse(null);위 코드에서 cookie.getName().equals(cookieName)).findAny() 이 부분을 보게되면 쿠키의 이름과 cookiename이 동일한 것중에서 무작위로 하나를 return하게 됩니다.앞서 cookieName은 전부 mySessionId인 것을 알 수 있습니다. 이럴경우 서로다른 무작위의 사용자가 쿠키를 통해 세션 로그인을 하였을 때 sessionStore.get(sessionCookie.getValue()위 코드로 member 객체를 특정 짓게 되므로, 반드시 나의 회원 정보를 찾는 것이 아닌 타인의 회원정보를 반환할 수 있는 것이 아닌가 의문이 듭니다.인턴AI가 아닌 사람이 직접 답해주시길 바랍니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
결제 보류로 넘겨야 하는 결제 예외 상황에서
서비스단에서 호출한결제 시스템(api 호출)에서 결제 금액 부족 런타임 에러로 던진 걸잡아서 다시 체크예외로 던지고 전역 예외 처리기 (@ControllerAdvice)를 사용해 처리하나요?