묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
REST API 프로젝트에서도 HttpSession 으로 많이 구현하나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.안녕하세요. 스프링 MVC 프로젝트 말고도 REST API 에서도 JWT말고도 HttpSession 으로도 많이 구현하나요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
테스트 코드 질문입니다
@AfterEach를 주석처리해서 @Test가 끝날 때 마다 초기화를 안하도록 코드를 바꾸고 20번 가량 테스트를 돌려봤는데요왜 실패할 때가 없는 건가요 ?? 영한님 말대로 save() 메서드가 먼저 호출되고 findAll 메서드가 호출되면 result.size()는 3이 되기 때문에 실패하는 테스트 케이스가 있어야하지 않나요 ?
-
해결됨[NarP Series] MVC 프레임워크는 내 손에 [나프1탄]
War 파일 Intellij Import
war 파일을 Intellij에 import 해 다시 배포하고 싶은데 어떻게 해야 하나요?그리고 war 파일을 import하면 다시 수정 후 배포가 가능한가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
section1 막힘
main 런 하라는데 옆에 세모가 안떠요.... 다른 질문글 보고 File - Settings 에서 Java17로 세팅도 다 했는데 여기만 아무것도 안떠요. Add new 눌러봐도 말씀하시는 항목이 없어요ㅠ shift 빠르게 2번 눌러서 All 되어있는지도 확인했고 Show excluded files도 ON 되어있는거 확인했습니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
clearStore에 빨간 줄 생성
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]clearStore에 왜 빨간 줄이 생기는건가요?package hello.hellospring.service; import hello.hellospring.domain.Member; import hello.hellospring.repository.MemoryMemberRepository; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.fail; import static org.junit.jupiter.api.Assertions.assertThrows; class MemberServiceTest { MemberService memberService = new MemberService(); MemoryMemberRepository memberRepository = new MemoryMemberRepository(); @AfterEach public void afterEach(){ memberRepository.clearStore(); } @Test void 회원가입() { //given Member member = new Member(); member.setName("hello"); //when Long saveId = memberService.join(member); //then Member findMember = memberService.findOne(saveId).get(); assertThat(member.getName()).isEqualTo(findMember.getName()); } @Test public void 중복_회원_예외() { // given Member member1 = new Member(); member1.setName("spring"); Member member2 = new Member(); member2.setName("spring"); // when memberService.join(member1); IllegalStateException e = assertThrows(IllegalStateException.class, () -> memberService.join(member2)); assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다"); /*memberService.join(member1); try{ memberService.join(member2); fail("실패"); } catch (IllegalStateException e){ assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다.123123"); }*/ // then } @Test void findOne() { } @Test void testJoin() { } @Test void testFindMembers() { } @Test void testFindOne() { } }
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
에러가 나서 해결은 하긴했는데 이유가 궁금해요(서버구동시 생성자 매개변수 bean 2개주입으로 인한 에러)
안녕하세요.제가 aop를 프로젝트 다 만들고나서 서버를 구동하니 에러가 좀나더라구요.우선 상황은MemoryMemberRepository 클래스파일에 @Repository 어노테이션이 추가되어 있는 상태였으며, TimeTraceAop 클래스 생성 후 강의보면서 강사님의 코드를 입력해서 추가, 이후 서버를 구동하니 에러가 나더라구요.아래는 에러메세지 입니다.Parameter 0 of constructor in hello.hellospring.SpringConfig required a single bean, but 2 were found:- memoryMemberRepository: defined in file [(생략)\hello\hellospring\repository\MemoryMemberRepository.class]- springDataJpaMemberRepository: defined in hello.hellospring.repository.SpringDataJpaMemberRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration 해당 에러문을 보고 MemoryMemberRepository클래서파일에 추가되어있는 @Repository 어노테이션을 제거 후 서버를 재구동하니 에러없이 정상적으로 프로젝트가 잘 돌아갔습니다. 제 SpringConfig파일에는 @Configurationpublic class SpringConfig {/** 2. 스프링 데이터 JPA 사용후 추가한 부분*/private final MemberRepository memberRepository; public SpringConfig(MemberRepository memberRepository) {this.memberRepository = memberRepository;} @Beanpublic MemberService memberService() {return new MemberService(memberRepository);}}이렇게만 코딩되어 있는데요.여기서 궁금한게 왜 SpringConfig생성자가 호출될때 매개변수로 2개가 들어간건지가 궁금합니다.원래는 SpringDataJpaMemberRepository 하나만 들어가야 하는거 같은데 어떻게 SpringDataJpaMemberRepository와 MemoryMemberRepository가 동시에 생성자의 매개변수로 들어가려 했는지.. @Repository가 어떤 영향을 주는걸까요?이전 jpa 강의를 들을때는 MemberRepository로 사용할 매개변수를 직접설정했는데 그 코드도 주석처리가 되어있습니다. 그래서 이해가 되지 않아 게시판이 질문남깁니다
-
미해결스프링 부트 웹 개발 입문 - 따라하며 배우기
DB Table 생성, 데이터 입력 문의
테이블 구조에 관해 몇가지 문의드립니다.coffee_menu_log 쿼리문이 없어 기존 테이블을 삭제(학습하면서 테스트한다고 무작위로 들어간 데이터도 삭제할 겸)했습니다. 그런데 테이블을 작성하면서 좀 아리송한 부분이 있어 문의드립니다. cust_info 테이블의 cust_id 컬럼 구조가 유니크한 큐로 유지되는 구조가 맞나요?그리고 order_list의 외래 키의 이름이 조금 달라 문의드립니다.이러한 질문을 드리는 이유는 sql 파일에 존재하는 테이블 수정의ALTER TABLE order_listADD CONSTRAINT fk_cust_idFOREIGN KEY(cust_id)REFERENCES cust_info(cust_id)에서키가 유니크한 키가 아닌 포린키로 지정되어 있어. 문의드립니다. 유니크한 키에서 이후 포린 키로 변경해야 하나요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
@SpringBootApplication 문제
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]저 @SpringBootApplication 가 문제로 뜨는데 들어가보니 저런 상태인데 뭐가 문제일까요?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
웹서버,was 그리고 멀티쓰레드
안녕하세요, 열심히 강의 따라가고있는 학생입니다. 웹서버 was강의 보고 해당 강의보면서 궁금한게 생겼습니다.웹서버,was 강의에서 그림으로 표현해 주시기를 여러개씩 그려주셨는데요. 그때는 서버가 여러개씩 있을 수 있구나 하면서 넘어갔는데 더 혼동이 와서요..사용자가 웹페이지에 접속했을때여러 서버가 있으면 어떤 서버에 있는 웹서버에 접속되는 건가요? 그럼 나머지 웹서버들은 어떻게 되는건가요?그리고 여러 서버 중 접속 당한 서버는 비즈니스 로직을 처리할 때 어떤 was를 선택하는 건가요?기준이 있는건가요?그리고 멀티쓰레드 강의에서 was에서 이 멀티 쓰레드를 지원한다고했는데만약 여러 웹서버와 was가 있고 제공되는 서비스는 쇼핑몰이라는 가정하에 두 명의 사용자가 각자 접속된 웹서버와 was가 다를때 한 개의 재고가 있는 제품을 구매하려고 한다면 어떻게 되는건가요? 이런것도 다 막아주는 어떤 서비스따로 있는건가요??
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
javax.persistence가 import되지 않습니다
jpa강의를 듣던 도중 강의내용대로 따라했는데 오류가 발생하여 질문드립니다. build.gradle 의존성에 jpa 추가한 뒤 새로고침 했는데 javax.persistence.entity가 import 되지 않습니다. jakarta.persistence.entity는 가능하길래 import하여 진행해봤는데 오류가 나타납니다. https://drive.google.com/file/d/1p2qPm_9abHOmEqKz2oariH7S8iWla_k-/view?usp=sharing
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
세션 삭제 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]메모리에 세션이 쌓이는것을 방지하고자 세션 만료시간을 사용하여 만료시간이 지난 세션들을 삭제한다고 이해했는데요.세션 삭제가 서버에서 주기적으로 만료시간이 지난 세션들을 삭제 하는건지 아니면 사용자가 요청을 보냈을때 만료시간을 체크하고 만료시간이 지나면 삭제를 하는건지 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
localhost:8080 로그인 Unauthorized
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]localhost:8080 접속시 로그인창이 나오고 취소시 Unauthorized이런 오류가 나오네요 build.gradleapplicaton.properties 해결책을 알려주시면 감사하겠습니다 우선 프로젝트를 다시 생성해보겠습니다
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
SpringConfig import문제
강의영상에서는 MemberService가 제대로 import 되고MemberService의 메서드도 불이 잘들어가있는데왜 import가 안되는지 모르겠습니다.앱실행하면 구동은 잘됩니다
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
2분 23초 단축키 보는 방법에 대해 질문드립니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]여기에 질문 내용을 남겨주세요.안녕하세요강의 중간 중간에 아래에 단축키를 보여주시는 것으로 이해하고 있습니다.1번째 질문입니다.2분 23초 화면 아래에Extend Selection via 와 문자들이 여러가지 있는데읽는 법을 모르겠습니다구글링해도 알 수 없어서 질문드립니다https://www.google.com/search?q=extend+selection+via&sxsrf=AJOqlzUlb-H_5m0gOhEFarRhon8t-0fufw%3A1679410552822&ei=eMUZZM_fMcGRseMPmJm38Ag&ved=0ahUKEwjP-7rro-39AhXBSGwGHZjMDY4Q4dUDCA8&uact=5&oq=extend+selection+via&gs_lcp=Cgxnd3Mtd2l6LXNlcnAQAzIICCEQoAEQwwQ6CAgAEAcQHhATOhAIABCABBAUEIcCELEDEIMBOgoIABCABBAUEIcCOgsIABCABBCxAxCDAToECAAQAzoUCC4QgAQQsQMQgwEQxwEQ0QMQ1AI6EQguEIAEELEDEIMBEMcBENEDOgUIABCABDoGCAAQBxAeOgcIABANEIAEOggIABAHEB4QCjoICAAQBxAeEA86CAgAEAgQBxAeOgUIABCiBDoKCCEQoAEQwwQQCkoECEEYAFAAWMAbYPseaABwAHgAgAHLAYgBhBOSAQYwLjE3LjGYAQCgAQHAAQE&sclient=gws-wiz-serp 2번째 질문입니다3분 47초에서 화면 아래에 Save All via 라고 적혀있고 그 다음에 특수문자가 적혀있는데, 해석 방법에 대해 질문드립니다
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
서블릿 컨테이너에 대하여
[질문 내용]이전 시간에 들었던 강의를 제대로 이해한 건지 궁금해서 질문드립니다!컴파일시 서블릿 컨테이너 안에 작성한 메서드들이 자리하게 됩니다. 그 후, 호스트로 부터 요청이 들어오면 WAS가 request, response 객체를 생성합니다. 마지막으로, service에 작성한 함수를 스레드 풀안에 스레드가 동작하여 response에 전달해 호스트에게 반환되는 것이 맞나요??
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
로드맵에 몇번째 강의까지 들어야지 개인 프로젝트를 할 수 있을까요?
안녕하세요파이썬으로 알고리즘만 공부하다가, 백엔드 개발자가 되기 위해 스프링을 배워보고 싶어서 영한님 로드맵을 시작했습니다.기본적인 자바 공부를 하고 첫번째 로드맵 강의를 다 끝냈는데, 혹시 간단한 개인 or 협업 프로젝트를 할정도의 실력을 갖추려면 몇번째 강의까지 듣고 시작하는게 좋을까요? 강의를 들으면서 프로젝트도 해보고 싶은 욕구가 강하게 들어서 꼭 해보고 싶습니다.그런데 무작정 프로젝트를 시작하기에는, 첫번째 강의를 다 들었음에도 불구하고 아무것도 모른다는 느낌이 들어서 선뜻 손을 대기가 어렵네요..막상 게시판 하나 만들어 보려고 구글링을 하면서 봐도 config controller service repository를 어떻게 작성해야 할지도 모르겠구요답변 주시면 감사하겠습니다..!
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
업로드에대한 질문이 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용] 1. 업로드 강의를 듣고 이해하지 못한 부분이 있는데 지금 강의에서 나온 부분이 메모리에 넣고 map에 넣는 방식이고 만약 서버에 넣고 db에 주소값만 넣어서 사용하려고 하면 AWS의 S3를 사용해서 외부 서버에 넣고 사용하는 건가요? 혹시 jpa에 적용하는 것은 실전 jpa때 한번더 나오나요? 업로드는 이대로 끝인가요? 여기서 db에 넣는 방식으로 바꾸려고 하면 repository 부분을 빼고 mybatis는 마이바티스 jpa는 jpa방식으로 하는 건가요? 2번 질문이 끝이면 어떤식으로 구조를 짜야하나요? Item과 ItemForm 클래스의 차이는 뭔가요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
controller에서 redirect처리 하는 경우 왜 이렇게 되는지 궁금합니다!
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요! 스프링 인터셉터 작동 순서에 대해 공부하다 의문이 생겨 문의 드립니다~ 일부 생략해서 말씀드리면, 대충 이런 흐름으로 인터셉터내의 메서드가 작동한다고 알고 있는데요.preHandle -> 컨트롤러 -> postHandle -> afterCompletion 이때 컨트롤러에서 redirect 처리를 하는 경우, postHandle과 afterCompletion까지 모두 작동하고 나서 새로운 URL로 preHandle가 호출되기 시작하더라구요. 단순히 생각했을 땐 redirect 처리가 되는 경우 postHandle은 실행되지 않고 afterCompletion만 실행될 줄 알았는데.. 아니더라구요! 밑에는 제가 테스트 해본 나온 로그입니다. (실제 로그는 아니고 조금 생략했어요!) [uri : /test1] preHandle [uri : /test1] controller , redirect [uri : /test1] postHandle , response status : 200, modelAndView.getViewName : redirect:/test2 [uri : /test1] afterCompletion , response status : 302 [uri : /test2] preHandle [uri : /test2] postHandle , response status : 200, modelAndView.getViewName : test2 [uri : /test2] afterCompletion , response status : 200 아무튼 질문은 다음과 같습니다!redirect 처리에도 postHandle이 호출되는 이유가 궁금합니다.postHandle은 컨트롤러 이후에 호출되는 메서드라 response status code가 302이어야 할 것 같은데, afterCompletion이 되서야 302로 나오는 이유가 궁금합니다.redirect시에는 postHandle이 호출되지 않게 하는 방법은 없을까요? 단순히 생각하면 modelAndView의 viewName으로 거를 수 있을 것 같은데.. 다른 방법은 없나 해서요!
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
SpringMemberFormControllerV1 부분 질문입니다.
@Controller public class SpringMemberFormControllerV1 { @RequestMapping("/spring/v1/members/new-form") public ModelAndView process(){ return new ModelAndView("new-form"); } }위의 식을 풀이하면(1) @Controller에 의해 SpringMemberFormControllerV1(핸들러)가 스프링빈에 등록됩니다.(2) 클라이언트가 "/spring/v1/members/new-form"를 요청하면 @RequestMapping에 의해 요청 정보를 매핑하는데 @Controller때문에 애노테이션 기반 컨트롤러로 인식되기 때문에 Requestmappinghandlermapping가 핸들러를 조회합니다.(3) 이 조회한 핸들러를 처리할수 있는 어뎁터인RequestMappingHandlerAdapter가 핸들러를 호출(process()를 호출)합니다.먼저 이 과정이 맞는 궁금합니다.그리고 ModelAndView의 정확한 역할(?)이 궁금합니다.반환값으로 return new ModelAndView("new-form");을 하게 된다면 스프링에서 알아서 뷰 렌더링해서 new-form.jsp로 보내준다는 건가요??
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
test.mv.db가 생성되지 않음
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]