묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원 가입 시 화이트 라벨
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]선생님과 동일하게 소스 입력하고, 셋팅도 제대로 했는데 'http://localhost:8080/members/new' 에서 등록버튼 누르면 화이트라벨이 뜹니다ㅠ 다른 사람들거 보고 동일한 위치에 확인해봤는데 오타도 없는거 같아요! 한번 확인 부탁드립니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
테스트입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
index.html 질문
제가 thymeleaf를 복습하려고 타임리프 기본 기능 만들어 놓은 것을 실행시켰는데 왜 자꾸 index페이지가 다른 게 뜰까요..ㅜㅜ
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
form태그 url과 button태그 url
th:onclick="|location.href='@{/basic/items/{itemId}(itemId=${item.id})}'|"이 button 태그를 form태그가 더 큰 범위에서 둘러싸고 있습니다. <form action="item.html" th:action method="post">th:action으로 현재 페이지로 url이 설정돼있고 http 메서드 방식은 post 방식인데 1. editForm에서 취소 버튼을 누르면 <button> 태그에서 지정한 url로 이동하는 이유가 세부적으로 지정해줬기 때문인가요??? 취소 버튼을 눌렀을 때 post 방식으로 이동하는 것인가요?2번이 맞다면 보내는 데이터가 없으니까 Get방식이어야 하는 것 아닌가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
hello-String api 실행화면 소스 코드
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]localhost:8080/hello-String?name=spring!! hello-String api 부분 실행 페이지에서 소스코드를 열어보면 html 코드가 나오는데 body 부분에 hellspring이 들어가긴 하는데 제가 window를 써서 이렇게 화면이 뜨는게 맞는건지 모르겠네요
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
실무에서도 id를 따로 두나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.강의에서는 사용자가 입력하는 아이디와 서버에서 직접 생성하는 아이디가 있는데 실무에서도 서버에서 생성하는 아이디를 같이 두나요? 데이터베이스에 저장도 같이 하는지 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
clearStore cannot find symbol
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.코드를 정상적으로 작성했음에도 불구하고 오류가 납니다. file-invalidate caches 후 다시 실행하여도 같은 오류가 발생됩니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
[스프링 MVC2편 : 스프링 인터셉터 - 요청 로그 ]강의에서 2분 10초쯤에 uuid 관련해서 궁금한 점이 있습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]uuid를 prehandle()에서 aftercompletion() 로 넘겨주기 위해서 LogInterceptor 클래스 안이면서, prehandle()와aftercompletion() 밖에다 선언해주면 안된다고 하셨는데, 그 이유가 혹시 싱글턴으로 인터셉터를 관리하는데, 한개의 인스턴스를 공유해서 쓰므로, 트랜잭션 끼리 uuid가 겹치는 문제가 발생하기 때문인가요?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
MVC1, MVC2, Front Controller의 이론적 구분이 궁금합니다.
안녕하세요. 강의 잘 듣고 있습니다.제가 이전에 JSP 강의를 다른 곳에서 수강한 적이 있었는데, 그때 배운 MVC의 이론적 내용을 확인하고 싶어서 질문 드립니다. MVC model 1은 JSP가 Controller와 View의 역할을 모두 수행한다는 특징이 있습니다. MVC model 2는 Controller와 View를 분리하고, Front Controller를 두어서 공통 처리를 수행한다는 특징이 있습니다. 위의 2가지가 제가 배운 내용을 요약한 것인데요.그렇다면 Front Controller를 도입한다면 MVC2에 해당한다고 확실하게 말할 수 있을까요?인터넷에서 검색했을 때는 MVC model 2에 Front Controller를 도입하지 않고, 모두 개별 Controller를 사용하는 것처럼 이야기하는 블로그가 많아서 확실하게 하고자 질문을 드립니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
필터 제한의 장점에 대한 질문입니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]- 필터 제한에서 필터에서 적절하지 않은 요청이라고 판단하면, 거기에서 끝을 낼 수 있다고 하셨는데, 이로 인한 장점이 서버 부하를 줄일 수 있는 걸로 이해해도 괜찮을까요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
필터 유즈케이스 관련해서 질문있습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요?예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]- 강의 7분 정도에서 모든 고객의 요청 로그를 남기는 요구사항이 있다면 필터를 사용하라고 하셨는데, 위 요구사항의 예시로, 1개의 url 요청을 어떤 클라이언트가 1초에 수십번 요청하는 걸 감지하는 경우로 생각해도 괜찮을까요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
BindingResult typemismatch, ExceptionResolver TypeMismatchException
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]BindingResult에서 처리된 typemismatch와 ExceptionResolver강의에서 처리하는 TypeMismatchException의차이가 궁금해요.
-
해결됨스프링 프레임워크는 내 손에 [스프2탄]
pageStart 생성시점이 궁금합니다.
BoardMapper.xml의 pageStart가 어디서 생성이 되는지 헷갈려서요 ㅠㅠ...Criteria.java에서 getPageStart()로 만들어준것 같은데.통상 VO에서 getter setter를 만들때 private int pageStart; <-- 이런식으로 선언하고 아래에서 getter, setter를 만들어주는데 여기서는 지금 바로 getPageStart만 만들어주고 있는것 같습니다.근데도 pageStart라는 변수에 값이 들어가는것 같은데 lombok.Data에 의해서 getPageStart()가 자동으로 pageStart를 만들어주는것인가요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
ModelAndView 파라미터
강의 수강중 제가 이해한것이 맞는지 궁금해 질문드립니다..여러 컨트롤러에서 Model 이나 ModelAndView를 생성하지 않아도 되게끔 프론트 컨트롤러 (Dispatcher servlet) 에서 비어있는 Model 이나 ModelAndView를 생성해서컨트롤러의 파라미터로 사용 할수 있게 하는것 이라고 이해했는데 맞는건가요..??
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
LoginController - loginV3() 에서 response객체에 쿠키를 안 담는데요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]p29 에 보시면createSession()이 있는데 여기선, 세션에 저장 + response에 쿠키담기 가 이루어 지는데요p35에는 session.setAttribute()로 객체에 값을 저장만하는데요. response에는 쿠키 담기 행위가 없는데요. 그래서 혹시 질문 게시판을 훑어서 찾아봤는데 https://www.inflearn.com/questions/586796/httpsession-setattribute-%EA%B0%80-response%EC%97%90-jsessionid-%EA%B0%92%EC%9D%84-%EC%A0%84%EB%8B%AC%ED%95%B4%EC%A3%BC%EB%8A%94-%EC%97%AD%ED%95%A0%EB%8F%84-%ED%95%98%EB%82%98%EC%9A%94를 봤는데도 제가 이해가 안가더라구요.서버에서 클라이언트로 먼저 쿠키를 보내줘야 하는데, response에 담는 행위가 없어요.response에 담는걸 톰캣이 해준다는 건가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
빌드 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.스프링부트 3.0 와 java 17을 사용하였습니다. cmd에서 gradlew를 실행하자다음과 같은 오류가 계속 뜹니다. A problem occurred configuring root project 'hello-spring'.> Could not resolve all files for configuration ':classpath'.> Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.0.6.Required by:project : > org.springframework.boot:org.springframework.boot.gradle.plugin:3.0.6> No matching variant of org.springframework.boot:spring-boot-gradle-plugin:3.0.6 was found. The consumer was configured to find a runtime of a library compatible with Java 8, packaged as a jar, and its dependencies declared externally, as well as attribute 'org.gradle.plugin.api-version' with value '7.6.1' but:- Variant 'apiElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.0.6 declares a library, packaged as a jar, and its dependencies declared externally:- Incompatible because this component declares an API of a component compatible with Java 17 and the consumer needed a runtime of a component compatible with Java 8- Other compatible attribute:- Doesn't say anything about org.gradle.plugin.api-version (required '7.6.1')- Variant 'javadocElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.0.6 declares a runtime of a component, and its dependencies declared externally:- Incompatible because this component declares documentation and the consumer needed a library- Other compatible attributes:- Doesn't say anything about its target Java version (required compatibility with Java 8)- Doesn't say anything about its elements (required them packaged as a jar)- Doesn't say anything about org.gradle.plugin.api-version (required '7.6.1')- Variant 'mavenOptionalApiElements' capability org.springframework.boot:spring-boot-gradle-plugin-maven-optional:3.0.6 declares a library, packaged as a jar, and its dependencies declared externally:- Incompatible because this component declares an API of a component compatible with Java 17 and the consumer needed a runtime of a component compatible with Java 8- Other compatible attribute:- Doesn't say anything about org.gradle.plugin.api-version (required '7.6.1')- Variant 'mavenOptionalRuntimeElements' capability org.springframework.boot:spring-boot-gradle-plugin-maven-optional:3.0.6 declares a runtime of a library, packaged as a jar, and its dependencies declared externally:- Incompatible because this component declares a component compatible with Java 17 and the consumer needed a component compatible with Java 8- Other compatible attribute:- Doesn't say anything about org.gradle.plugin.api-version (required '7.6.1')- Variant 'runtimeElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.0.6 declares a runtime of a library, packaged as a jar, and its dependencies declared externally:- Incompatible because this component declares a component compatible with Java 17 and the consumer needed a component compatible with Java 8- Other compatible attribute:- Doesn't say anything about org.gradle.plugin.api-version (required '7.6.1')- Variant 'sourcesElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.0.6 declares a runtime of a component, and its dependencies declared externally:- Incompatible because this component declares documentation and the consumer needed a library- Other compatible attributes:- Doesn't say anything about its target Java version (required compatibility with Java 8)- Doesn't say anything about its elements (required them packaged as a jar)- Doesn't say anything about org.gradle.plugin.api-version (required '7.6.1') setting 과 project structure 에서 모두 17로 설정했는데도 같은 오류가 반복됩니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원 리포지토리 테스크 케이스 findByName NoValue 에러 관련 질문입니다
package repository; import hello.hellospring.domain.Member; import hello.hellospring.repository.MemoryMemberRepository; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; import java.util.List; import java.util.Optional; import static org.assertj.core.api.Assertions.*; class MemoryMemberRepositoryTest { MemoryMemberRepository repository = new MemoryMemberRepository(); @AfterEach public void afterEach() { repository.clearStore(); } @Test public void save() { //given Member member = new Member(); member.setName("spring"); //when repository.save(member); //then Member result = repository.findById(member.getId()).get(); assertThat(result).isEqualTo(member); } @Test public void findByName() { //given Member member1 = new Member(); member1.setName("spring1"); repository.save(member1); Member member2 = new Member(); member2.setName("spring2"); repository.save(member2); //when Member result = repository.findByName("spring1").get(); assertThat(result).isEqualTo(member1); //then } @Test public void findAll() { //given Member member1 = new Member(); member1.setName("spring1"); repository.save(member1); Member member2 = new Member(); member2.setName("spring2"); repository.save(member2); //when List<Member> result = repository.findAll(); //then assertThat(result.size()).isEqualTo(2); } } package hello.hellospring.repository; import hello.hellospring.domain.Member; import java.util.List; import java.util.Optional; public interface MemberRepository { Member save(Member member); Optional<Member> findById(Long id); Optional<Member> findByName(String name); List<Member> findAll(); }package hello.hellospring.repository; import hello.hellospring.domain.Member; import java.util.*; public class MemoryMemberRepository implements MemberRepository { private static Map<Long, Member> store = new HashMap<>(); private static long sequence = 0L; @Override public Member save(Member member) { member.setId(++sequence); store.put(member.getId(), member); return member; } @Override public Optional<Member> findById(Long id) { return Optional.ofNullable(store.get(id)); } @Override public List<Member> findAll() { return new ArrayList<>(store.values()); } @Override public Optional<Member> findByName(String name) { return store.values().stream() .filter(member -> member.getName().equals(name)) .findAny(); } public void clearStore() { store.clear(); } }이렇게 오류가 발생하는데 이유가 뭘까요? 아래와 같이 코드를 수정해보기도 하였습니다만, findAll 과 같이 노란색이 될뿐 초록색 마크가 나오지는 않습니다.@Test public void findByName() { // given Member member1 = new Member(); member1.setName("spring1"); repository.save(member1); Member member2 = new Member(); member2.setName("spring2"); repository.save(member2); // when Optional<Member> result = repository.findByName("spring1"); // then assertThat(result.isPresent()).isTrue(); assertThat(result.get()).isEqualTo(member1); }
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
JSP 회원 전체 조회가 안되네요.
질문 내용]여기에 질문 내용을 남겨주세요. 일단 두 사진 보시면, 예외 처리를 해주면 예외 처리가 try 내부 코드가 예외를 안던지니까 catch 빼라고 하고,예외 처리를 안해주면, IOException이 예외처리가 안됐다고 하네요..뭐가 문제죠..?람다를 사용했다고 해서 안될리가 없어보이는데 ㅠㅠ 추가로 out.write();가 Writer 추상 클래스의 write(); 메서드고 checked예외를 던지던데, try-catch로 안잡아줘도 되는 이유가 뭔가요??
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
postman 응답 결과에 대한 질문입니다.
안녕하세요!선생님 강의를 재밌고 유익하게 수강하고 있는 학생입니다.스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 강의의 bean validation - HTTP 메시지 컨버터 부분을 수강하던 중 강의 내용과 제 결과 케이스의 다른 부분이 있어 다른 결과가 나오게 된 원인이 궁금하여 질문 드립니다!강의와 결과가 달랐던 부분은 postman으로 실패 요청을 send했을 때의 응답 결과 입니다.강의의 결과입니다.{ "timestamp": "2021-04-20T00:00:00.000+00:00", "status": 400, "error": "Bad Request", "message": "", "path": "/validation/api/items/add" }제가 실행한 결과입니다.{ "timestamp": "2021-04-20T00:00:00.000+00:00", "status": 400, "error": "Bad Request", "path": "/validation/api/items/add" }보이는 바와 같이, 제가 실행한 결과에서는 message에 대한 json 객체가 존재하지 않습니다. 혹시 스프링 부트의 버전과 관련된 부분에 있어서 차이가 있을까요?현재 사용 중인 스프링 부트 버전은 2.7.11 버전입니다.
-
미해결스프링 부트 웹 개발 입문 - 따라하며 배우기
logback-spring.xml 을 그대로 구현해봤는데요
저는 로그가 하나도 안찍히고 그냥 재생만 되네요.그리고 디버깅 버튼을 눌러도 저런식으로 로그가 아예 안나와요. 혹시 다른 추가적인 부분을 건드려야하나요?