1. 강의 내용과 관련된 질문인가요?네 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 아니오 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 네 프로젝트 파일 https://drive.google.com/file/d/1CzJgYLZqQ724aJMnYqODWUG6MK9h1K72/view?usp=sharing 로그에 테이블 생성 쿼리와 insert 쿼리까지 나갔는데도 불구하고 h2 데이터 베이스에 테이블이 보이지 않습니다. [질문 내용] 여기에 질문 내용을 남겨주세요.
public interface AppInit { void onStartup(ServletContext servletContext); } /** * 서블릿 컨테이너 모방 * 프로그래밍 방식을 서블릿 컨테이너에 등록 */ public class AppInitV1Servlet implements AppInit { @Override public void onStartup(ServletContext servletContext) { System.out.println("AppInitV1Servlet.onStartup"); // 순수 서블릿 코드 등록 ServletRegistration.Dynamic helloServlet = servletContext.addServlet("helloServlet", new HelloServlet()); helloServlet.addMapping("/hello-servlet"); } } /** * 서블릿 그 자체 * 애플리케이션 초기화 */ public class HelloServlet extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("HelloServlet.service"); resp.getWriter().println("hello servlet!"); } } hello.container.MyContainerInitV1 hello.container.MyContainerInitV2 이런식으로 강의를 따라 서블릿에 매핑 정보를 등록했는데, http://localhost:8080/hello-servlet 을 하게 되면 404 에러가 발생합니다. 어디서 문제가 생긴걸까요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. MemberService에서 try/finally및 변수만 설정 해줬을 뿐인데 왜 실행은 test->MemberServiceIntegration이 아니라 HelloSpringApplication으로 실행을 해야 결과가 나타나게 되나요? 굳이 차이를 못느끼겠는데 왜 그런지 이해가 안가네요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요 IntelliJ에서 프로젝트 파일들을 다루는 부분이 아직 미숙하여 질문드립니다. 1강을 들으면서 실행했을 때는 강의에서 생성한 hello-spring 프로젝트를 상위 폴더인 spring에 담고 spring 폴더로 IntelliJ를 열어서 실행했습니다. 이때는 정상적으로 실행이 되었는데, 다시 실행하려고 보니 실행이 안 됩니다. 다시 다운로드 받고 검색을 해봤지만, 설정에서 idk와 grade관련된 설정만 나왔습니다. 그런데 상위 폴더인 spring이 아닌 spring 프로젝트로 생성한 hello-spring으로 IntelliJ를 실행시키니 정상적으로 폴더들(패키지들)을 인식하고 실행이 됩니다. 원래 이렇게 작동하는 것이 맞는건지 제가 설정 부분을 잘못 건드려서 발생한 문제인지 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] member 1, 2가 spring으로 동일한데 해당 코드를 실행하면 초록색 표시로 test가 통과하는데 이렇게되면 중복 문제 확인은 어떻게 하나요? 강의를 잘못 이해한 걸까요,,,
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. gradlew build가 제대로 되지 않습니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] ItemService 테스트 코드입니다. @RunWith(SpringRunner.class) @SpringBootTest @Transactional public class ItemServiceTest { @Autowired ItemRepository itemRepository; @Autowired ItemService itemService; @Test public void 상품저장() throws Exception { //given Item item = getItem("JPA book", 10000, 100); itemService.save(item); //when Item findItem = itemService.findById(item.getId()); //then // assertThat(item).isEqualTo(findItem); assertEquals(item, findItem); } @Test public void 상품조회() throws Exception { //given Item item1 = getItem("JPA book1", 10000, 100); Item item2 = getItem("JPA book2", 20000, 100); itemService.save(item1); itemService.save(item2); //when List<Item> findAll = itemService.findAll(); Item findItem1 = itemService.findById(item1.getId()); //then assertThat(findAll.size()).isEqualTo(2); //전체조회 assertThat(item1).isEqualTo(findItem1); //단건조회 } @Test public void 상품변경() throws Exception { //given //when //then } private static Item getItem(String name, int price, int stockQuantity) { Item item = new Book(); item.setName(name); item.setPrice(price); item.setStockQuantity(stockQuantity); return item; } } 상품 저장과 조회에 대한 테스트 코드를 작성해보았는데 혹시 수정해야 할 부분이 있는지 궁금합니다. 상품 저장 시 item.getId() == null 이 아닐 때 merge 하도록 되어있는 부분에 대해서도 테스트를 해야할 것 같은데, 어떻게 테스트할지에 대해 방향성을 알려주시면 감사하겠습니다.
회원 기능 테스트에서 계속 막혀서 전부 다 복붙하고 해봐도 오류가 납니다 이거 왜이런걸까요? 우선 프로젝트 전체 구글 드라이브에 공유해뒀습니다. https://drive.google.com/file/d/1jEOFgnIZ2fRBWTDKmYaA3lnrid-0i10E/view?usp=drive_link
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) //get()추가하면 optional 깔 수 있음, 에러뜸 [질문 내용] test케이스에서 findByName 테스트할때 Optional에서 까기 위해 get메소드를 한번 더 써주신다고 하셨는데 get()대신 optional로 테스트하면 에러가 발생됩니다. 값에 optional[]이 붙어서 그런거같은데 이 경우는 get() 추가 사용 대신 optional로는 테스트 못하는건가요?
안녕하세요 제목 그대로 궁금한 점 있는데, 예를 들어 a라는 service가 b와 c라는 service를 주입 받는 상태이고 여기서 c는 또 d라는 service를 주입 받는 구조가 있다면 이건 정상적인 부분일까요? service가 service를 주입 받는 것이 괜찮은지, 괜찮다면 그것의 depth가 늘어나서 a <- b, c <- d 이런식이 돼도 괜찮은지 궁금합니다!
같은 질문아 밑에 있긴한데 답변이 이해가 안가서 다시 질문을 올립니다.공격자가 서버로부터 세션 쿠키를 얻었다는 건 공격자가 로그인을 했다는 거 아닌가요?이 세션 쿠키를 다른 피해자에게 강제로 사용하도록 하는 걸 세션 고정 공격이라고 하는 것 맞나요?이게 맞다면 피해자의 활동을 서버에서는 공격자의 활동으로 인식하게 되는거고, 피해자는이미 공격자의 세션쿠키를 갖고 있으니까 별다른 인증이 필요 없은 것 아닌가요?피해다가 또 로그인을 한다는 부분이 잘 이해가 안 됩니다.아니면, 피해자가 공격자의 세션 쿠키를 들고있음에도 로그인 페이지로 접속하여 로그인을 하게됐을 때, 서버에서 새로운 세션을 생성해서 세션쿠키를 내려주지 않는다면, 공격자도 같은 세션쿠키를 사용해서 사용자 정보 페이지등에 접근이 가능하게 되는 위험을 말한다고 생각하면 될까요?
프론트딴에서 어떻게 데이터를 쓰는건가요? 원래 실습할떄 @Controller 어노테이션이면 모델에 담아서 뷰에 전송하고 타임리프로 사용하는건데 REST API는 어떻게 화면에 데이터를 보여지고 진행되는지 궁금합니다.. 그리고 이렇게 개발하면 백앤드에서 기능 구현하고 그 다음에 프론트개발자들이 작업하는건가요? 아니면 프론트가 먼저 개발하고 그 다음에 백앤드가 구현하는건가요?
안녕하세요 우선 저는 파라미터는 메소드의 매개변수로 넘겨지는 값을 의미한다고 알고 있습니다 그리고 api 개발에서 보통 파라미터를 dto로 넘긴다고 알고 있습니다. 근데 실무에서 파라미터라고 하면 대게 요청, 응답값만 이용되고 개발자들끼리 파라미터 뭐로 설정했냐 등 얘기가 나올때의 파라미터로는 필수값을 의미한다 라고 얘기를 들었습니다. 그러니까 선택적으로 넘기는 경우도 있겠고, 메소드 내부에서 다른 메소드로 넘기는 파라미터도 있겠지만 다른 개발자랑 대화하는 과정에서 파라미터 뭐로 설정했냐 등 얘기가 나오게 될 경우 요청 중 필수값(not null)에 대한 얘기인거다. 선택값도 있겠지만 보통 파라미터로 선택값이 넘어가는 경우는 많지 않다 메소드 내에서 넘겨지는 값은 어차피 나 혼자 확인하는거라 다른 개발자한테 말할 필요가 없다 라고 말 해주셨는데 진짜 인가요? 그러니까 이론 상의 파라미터 정의와 실무에서의 파라미터 정의가 다른 것 같다고 하더라고요.. 저는 강의를 보고 controller 에서 dto를 파라미터로 넘기고, 그 dto에는 설계에 따라 다르겠지만 필수, 선택값들이 혼용된 채 사용 될 수 있다고 이해했는데 실무에서는 파라미터의 정의가 다르게 사용되고 있는건지 궁금합니다..