묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 기본편
@Test @DisplayName 안됨
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]위 두개를 임포트해도 오류가 뜹니다
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
H2 데이터베이스 member 테이블 생성이 안 돼요
테스트 코드는 오류 없이 초록불이 뜨는데 DB 내 테이블 생성이 안 됩니다. 강사님의 다른 강의와, 응용 프로젝트를 만들어 볼 땐 잘 됐어서 자주 묻는 질문들을 참고해도 어느 곳이 문제인지 잘 모르겠네요ㅠㅠ.. 일단 올려두고 계속 방법을 찾아보겠습니다! package jpabook.jpashop; import org.assertj.core.api.Assertions; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.annotation.Rollback; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.transaction.annotation.Transactional; import static org.junit.Assert.*; @RunWith(SpringRunner.class) @SpringBootTest public class MemberRepositoryTest { @Autowired MemberRepository memberRepository; @Test @Transactional @Rollback(false) public void testMember() throws Exception{ //given Member member = new Member(); member.setUsername("memberA"); //when //ctrl+alt+v 변수 뽑기 Long saveId = memberRepository.save(member); Member findMember = memberRepository.find(saveId); //then Assertions.assertThat(findMember.getId()).isEqualTo(member.getId()); Assertions.assertThat(findMember.getUsername()).isEqualTo(member.getUsername()); Assertions.assertThat(findMember).isEqualTo(member); //JPA 엔티티 동일성 보장 } }spring: application: name: jpashop #port번호 설정 server: port: 8050 #DB datasource: url: jdbc:h2:tcp://localhost/~/jpashop username: sa password: driver-class-name: org.h2.Driver #JPA jpa: hibernate: ddl-auto: create properties: hibernate: show_sql: true format_sql: true logging: level: org.hibernate.SQL: debug org.hibernate.orm.jdbc.bind: trace
-
미해결토비의 스프링 부트 - 이해와 원리
강의 자료 레퍼지토리에 업로드
안녕하세요, 강사님.저는 강사님의 스프링 부트 강의를 수강하며 학습하고 있는 학생입니다. 학습한 내용을 정리하고 코드와 함께 깃허브에 업로드하여 관리하고 있습니다.제가 학습의 편의를 위해, 강의에서 제공해주신 자료도 함께 깃허브 레포지토리에 올려서 관리하고자 하는데, 이를 public으로 설정해도 괜찮을지 여쭤보고 싶습니다. 만약 문제가 된다면, 레포지토리를 private으로 설정하고 학습 자료를 개인적으로만 참고하겠습니다.답변 주시면 감사하겠습니다!감사합니다.
-
해결됨Practical Testing: 실용적인 테스트 가이드
데이터 일관성유지를 어떻게 하면서 테스트하는지 궁금합니다.
안녕하세요. 인강 너무 잘 들었습니다. 궁금한 게 몇 가지 있어 질문드리게 되었습니다.현재 H2 데이터로 테스트 코드를 작성해 주셨는데요. 개발 환경의 DB 서버를 My-sql DB로 생성하고 테스트 코드를 구현하게 되면, 다른 개발자로 인해 DB의 데이터가 인입되면서 테스트 코드의 일관성이 깨지는 경우가 많이 발생되었습니다. 그렇다고 H2 데이터로 로컬환경을 붙이려고 하니 Mysql과 H2의 엔티티의 컬럼 선언이 다른경우가 존재해서 JPA의 자체 auto-ddl: create가 안먹히는 경우가 발생이되었습니다. [요약]개발 환경을 MY-SQL DB로 구현하면 같이 개발하면서 데이터가 인입되면서 테스트 코드의 일관성이 깨짐그렇다고 H2 DB로 진행하려고 하니, 엔티티의 칼럼 설정하는 것이 달라서 스프링 부트가 실행되지 않음Service Layer에서 일관성 있게 테스트 환경을 설정하려면 H2와 Mysql을 같이 돌릴 수 있게 프로젝트를 변경해 줘야 되는지 궁금합니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
윈도우 빌드 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.gradlew build를 하면 계속 오류가 떠서 게시판 글들을 살펴보았는데요. V3 실시간 검사를 해제하면 된다는 이야기가 있길래 해보려고 했는데, 비밀번호가 걸려있어서 실시간 검사 해제가 안 됩니다..인터넷 검색을 해도 비밀번호를 찾는 방법은 안 나오네요. 이거 때문에 지금 이틀 동안 진도가 안 나가는데 어떻게 해야 할까요?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
컨트롤러를 사용하지 않고 단순 html 버튼으로 상품 수정 취소 후 화면 랜더링
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]상품 수정 화면에서 수정 취소를 할 때, 컨트롤러를 사용하지 않고 단순 html 에서 버튼으로 경로를 지정해 주어서 상품 화면으로 이동합니다.이 때 상품 화면을 랜더링할 때 model에 담거나 할 필요가 없는 이유가이미 이전에 아래의 컨트롤러@GetMapping("/{itemId}") public String item(@PathVariable Long itemId, Model model) { Item item = itemRepository.findById(itemId); model.addAttribute("item", item); return "basic/item"; }를 통해서 해당 경로에 값이 다 담긴 상태가 저장되기 때문 이라고 생각하면 될까요?저장된다면 어디에 저장되는 걸까요
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
CSR 에 대한 질문입니다.
강의 9:34 쯤의 CSR 설명 부분에서 자바스크립트 링크가 어떤 정보를 내포하고 있는지 궁금합니다!2번 과정에서는 그 자바스크립트 링크를 바탕으로 요청을 해서 자바스크립트 및 클라이언트 로직, HTML 렌더링 코드를 서버로부터 받는 건가요..?
-
미해결스프링 핵심 원리 - 기본편
애노테이션 기반 빈 자동 등록 / OCP 위반에 대해
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]학습을 통해애노테이션 기반 빈 등록에서1. @Configuration 을 통한 수동 등록@Conponent 와 @ComponentScan 을 통한 등록 방법이 있다는 것은 알았습니다.자동 등록의 경우, 결국 클라이언트 코드를 수정할 일이 발생하니 OCP 위반이고, 편의성을 위한 트레이드 오프라는 것도 표면적으론 알겠는데요..실무에서는 두개 섞어서 쓰게 되나요?아님 불편해도 객체지향 원칙에 부합하는 수동 등록하게 되나요? 특정 버전 이후부턴 자동 vs 수동 = 수동 win 에서자동 vs 수동 = 오류! 라니까 뭐가 더 적합한지 헷갈립니다.
-
미해결스프링 핵심 원리 - 고급편
로그구분을 위한 traceId에 질문이 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]제가 생각한 로그는 사용자 별로 어떤 행위를 하였는지 추적하기위해서 로그를 사용하는걸로 알고 있었습니다.현재 강의에서 설명해주신 로그는 사용자를 특정하지 않고 요청에대한 로그만 uuid로 구분하여서 어떤 행위를 하였고 어떤 예외가 발생하였는지 파악하기 위한 로그인거 같습니다. 만약 사용자의 행위를 추적하기 위한 로그를 남기려면 traceId를 uuid가 아닌 사용자의 ip나 pk를 id로 사용하여 로그를 남기게 하면 되는건가요? 그리고 로그는 따로 보관하여 관리해야 할거 같은데 그럴때는 데이터베이스를 사용하나요 아니면 파일입력을 통해 디렉터리에 보관하나요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
강의 7:16 그림 나오는 부분에서 질문입니다!
WAS에서 request, response 객체를 만들어서 서블릿의 파라미터로 넘기는건 이해했는데 여기서 request 객체엔 요청 정보가 담겨있고 response 객체는 빈 객체인 상태인가요? 한 마디로 응답 메세지는 서블릿 컨테이너나 혹은 종료 후 다시 WAS 서버에 response 객체가 도달했을 때 정보가 들어간다고 보면 될까요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
MessageSourceTest 실행시 오류 발생
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]MessageSourceTest 파일을 실행했을 때 오류가 발생합니다.Expecting: <"??">to be equal to: <"안녕">but was not.Expected :"안녕"Actual :"??"<Click to see difference>org.opentest4j.AssertionFailedError: Expecting: <"??">to be equal to: <"안녕">but was not.at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)at hello.itemservice.message.MessageSourceTest.helloMessage(MessageSourceTest.java:20)at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)2024-08-16 16:42:56.803 INFO 7205 --- [extShutdownHook] o.s.s.concurrent.ThreadPoolTaskExecutor : Shutting down ExecutorService 'applicationTaskExecutor'MessageSourceTest > helloMessage() FAILED org.opentest4j.AssertionFailedError at MessageSourceTest.java:202 tests completed, 1 failed> Task :test FAILEDFAILURE: Build failed with an exception.* What went wrong:Execution failed for task ':test'.> There were failing tests. See the report at: file:///Users/yujihun/Desktop/message-start/build/reports/tests/test/index.html* Try:Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.* Get more help at https://help.gradle.orgBUILD FAILED in 3s4 actionable tasks: 2 executed, 2 up-to-date도저히 원인을 모르겠어요
-
해결됨스프링 시큐리티 완전 정복 [6.x 개정판]
강사님 15분 17초 쯤 질문있습니다
인증된 사용자는 세션에 저장했다면 세션으로 부터 가져와서 시큐리티 컨텍스트에 저장한다라고 말씀해주셨는데요제가 이해한게 맞는건가싶어서요=> 인증된 사용자는 세션에 (시큐리티 컨텍스트를) 저장했다면 세션으로 부터 (시큐리티 컨테스트를) 가져와서 시큐리티 컨텍스트(홀더에) 저장한다이렇게 이해했는데 맞는건가요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
서블릿,서블릿 객체
@WebServlet(name = "helloServlet", urlPatterns = "/hello") public class HelloServlet extends HttpServlet {} HelloServlet 가 서블릿이고, 스프링부트 실행시 서블릿의 객체가 생성되는것 같은데name = "helloServlet" 가 의미하는것은 무엇인가요?? 서블릿 객체 이름을 의미하는건가요?아니면 그냥 서블릿 식별자 정도 인가요??
-
미해결스프링 핵심 원리 - 기본편
프로젝트 생성 오류
강의 내용 그대로 따라했는데 강사님은 다운로드 하고 build.gradle 을 누르면 바로 인텔리제이로 이동되는것같은데 저는 인텔리제이로 열어지지가 않고 자꾸 비주얼스튜디오코드로 열립니다. 제가 인텔리제이에서 따로 들어가서 설치를 하거나 설정을 해야할것이 있는걸까요? 강의 처음부터 놓치지 않고 따라하고 있는데 안되니까 몇시간째 너무 스트레스를 받고있는 상황입니다.
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
다중 포트 실행시 계정 로그인 질문
안녕하세요 현재 실전 프로젝트 restApi 쪽을 공부하고 있습니다! 여기서 한가지 의문점이 든게 있다면, 제가 port 8080 과 port 9001 두개를 열어두고, :8080 에는 /login (From로그인) , >> User..Filter 토큰:9001 에는 /api/login (Rest로그인), >> Rest..Filter 토큰이렇게 열어둔 뒤 같은 admin 계정으로 로그인 시도 결과 >> 로그인이 풀리는 것을 확인하였습니다. 저는 토큰이 두가지가 되어있어서 각각 다른 계정으로 인식 하는 줄 알았는데 이 경우 선생님의 강의에 있던 [세션5] 동시 세션 관리 부분을 따로 설정을 해줘야 하는 것인가요??
-
미해결코드로 배우는 스프링 웹 프로젝트 - Basic
Failed to load ApplicationContext 해결 방법 부탁드립니다.
안녕하세요. 의존성 주입 연습하기 강의 중 10:30 쯤에서 test 하는 중 java.lang.IllegalStateException: Failed to load ApplicationContext예외가 발생했습니다.여러 가지 자료들을 검색해 보고 시도해봤으나 안 됩니다.어떻게 하면 되는지요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
질문드립니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. public class ItemController여기에서@GetMapping("/items/new") public String newItem(@ModelAttribute ItemForm form) { return "item-form"; } 여기서 ItemForm을 @ModelAttribute로 받은거 오타아닌가요? GetMapping인데 어떻게 받아올수있죠? 그리고 메서드에서 itemForm을 쓰지도않는데
-
해결됨스프링 시큐리티 완전 정복 [6.x 개정판]
SecurityContextHolderFilter 흐름도 질문있습니다
한번 인증을 완료 했다면 세션에 컨텍스트를 저장하기 때문에 컨텍스트 홀더에 있는 컨텍스트를 삭제해도 클라이언트가 요청시 SecurityContext 존재하는가? 에 대한 대답이 Y인 걸까요?
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
MemberService 관련 질문드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.안녕하세요! 항상 좋은 강의 감사드립니다. v2 버전의 경우 Controller에서 request를 받아서 Member 로 변환 후 service에 넘겨주셨는데 memberService.join(member)memberService.join(request) 처럼 request를 바로 넘기기고 서비스에서 엔티티로 변환시켜도 상관 없을까요?보통 실무에서는 어떤식으로 진행되는지 질문드립니다!
-
미해결스프링 시큐리티 OAuth2
AuthorizationEndpoint 커스텀 질문
안녕하세요.AuthorizationEndpoint.baseUri(”~~”) 는 OAuth2 로그인 단계중에서 1단계에 해당하는 code, state 값 등을 받아서 처리하는 부분의 uri를 변경하는게 맞을까요?아니면, 클라이언트가 로그인할때 인가서버로 요청을 보낼때 이를 처리할 인가서버의 경로로 사용되어지는 경로일까요?