학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/) [질문 내용] @GetMapping(“/api/default-handler-ex”) public String defaultException(@RequestParam Integer data) { return “ok”; } 위 코드로 테스트해보면 Name for argument of type [java.lang.Integer] not specified, and parameter name information not found in class file either.에러가 발생합니다. 구글링해보니 스프링 부트 3.2버전 이상부터는 @RequestParam(name = ) 을 필수로 적용해줘야 한다고 해서 적용해줘 테스트 진행했습니다. 또 구글링해보니 name과 같은 속성을 생략한 코드를 적용하고 싶으면 compile 방식을 intellij에서 gradle로 변경하면 된다하여 gradle로 변경해 강의코드로 테스트 잘 되는것 확인했습니다. gradle과 intellij를 비교해보니 build 방식과 기동 시간의차이가 있어 보이는데 이 외에는 상관 없는지 궁금해 여쭤봅니다!!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 기본적인 Lock설정시에 해당 레코드의 update 쿼리나 혹은 수정쿼리가 발생할경우에는 commit되기전까지는 접근이 안된다고하셨는데 그러면 만약에 update set money= (select money from member where member_id='memberA')-3000 where member_id='memberA' 아예 update내부의 select문도 실행되지않는 상태로 존재하는건가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] curosr부분에 대해서 궁금한점이 있습니다 해당 부분에서 커서를 이동시키면서 데이터를 가지고온다고 이해하였는데 데이터베이스에서 웹애플리케이션서버로 데이터를 가지고올때 전체 결과 집합을 웹어플리케이션서버에서 가지고온뒤 웹어플리케이션서버에서 커서를 사용해서 데이터를 하나씩 뽑아오는 방식인가요? 아니면 커서하나를 내릴때마다 네트워크 요청을 통해서 데이터베이스서버와 통신하여 한줄씩 데이터를 받아오는건가요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] https://drive.google.com/file/d/1Z_rdsH2x1n9SW7aaFnK1holSxUclj0rk/view?usp=sharing 제 파일 압축한 겁니다! localhost:8080 들어가면 회원가입 만들었습니다. 테이블은 jpa로 생성이 잘 됐는데, 회원가입시 데이터가 DB로 안 들어갑니다. 테이블은 잘 만들어진 걸 보니 mysql과 스프링은 잘 연동이 된 거 같은데 이 때 어떤걸 고려해야하나요 ??
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] Connection 객체의 경우에는 해당 커넥션이 만들어지고 close하지않으면 네트워크 리소스 소모때문에 close를 해야하는것으로 이해했습니다. 그렇다면 preparedStatement와 ResultSet객체의 경우에는 해당 데이터베이스로 SQL문을 전송및 전달받는 객체인걸로 보이는데 왜 close로 명시적으로 닫아야하는건가요?
안녕하세요~~ 루비네 코딩 입니다 ^^ 최근 앱을 런칭할 때 다음과 같은 오류가 발생하고 있습니다. ModuleNotFoundError: No module named 'altair.vegalite.v4' 이런경우, 다음과 같이 altair 패키지의 버전을 바꾸어 설치해 주세요 ^^ 감사합니다~ pip uninstall altair pip install altair==4.2.2
(스프링부트 3.0 이상인 상태에서) @Controller 에노테이션을 붙이면 (스프링부트 서버 가동시!) 스프링컨테이너에 싱글톤빈으로 미리 등록 이 되고 클라이언트로부터 예) @RequestMapping("get-form") 의 요청이 들어온다면 1.디스패처 서블릿은 모든 요청을 받을 수 있으므로 요청을 받는다. 디스패처서블릿은 @RequestMapping("~~")으로 (스프링 컨테이너에서 스프링빈으로 등록된 컨트롤러중 ) 에서 url 정보와 일치하는 컨트롤러의 메소드 정보를 조회한다. 디스패처 서블릿은 조회한 메소드정보를 호출할수 있는 RequestMappingHandlerAdapter 을 조회한다. 2번에서 핸들러 매핑을 통해 조회한 메소드정보를 RequestMappingHandlerAdapter 을 호출하면서 파라미터로 넘겨주어 핸들러 메소드가 실행하게 한다. 궁금한점은, 등록이 되어있다면 초반에 매핑정보를 조회할때 스프링에 이미 등록되어있는 핸들러 목록(아래 캡처본)에서 1. BeanNameUrlHandkerMapping : "빈 이름으로 컨트롤러 조회" 를 먼저 거친 후 0=RequestMappingHandlerMapping("") 으로 1번으로 필터링이 된 컨트롤러안의 메소드가 실행되는것일까요? 초반에 스프링빈으로 등록된 컨트롤러를 먼저 찾아야 하니까 0번도 포함이라고 생각했습니다.!!
(스프링부트 3.0 이상인 상태에서) @Controller 에노테이션을 붙이면 (스프링부트 서버 가동시!) 스프링컨테이너에 싱글톤빈으로 미리 등록 이 되고 클라이언트로부터 예) @RequestMapping("get-form") 의 요청이 들어온다면 1.디스패처 서블릿은 모든 요청을 받을 수 있으므로 요청을 받는다. 디스패처서블릿은 @RequestMapping("~~")으로 (스프링 컨테이너에서 스프링빈으로 등록된 컨트롤러중 ) 에서 url 정보와 일치하는 컨트롤러의 메소드 정보를 조회한다. 디스패처 서블릿은 조회한 메소드정보를 호출할수 있는 RequestMappingHandlerAdapter 을 조회한다. 2번에서 핸들러 매핑을 통해 조회한 메소드정보를 RequestMappingHandlerAdapter 을 호출하면서 파라미터로 넘겨주어 핸들러 메소드가 실행하게 한다. 여기서 궁금한점은 핸들러 매핑정보를 확인할때 일단 컨트롤러가 스프링 빈(싱글톤 빈)으로 등록되어있어야 한다고 이해한 상태입니다. 등록이 되어있다면 초반에 매핑정보를 조회할때 스프링에 이미 등록되어있는 핸들러 목록(아래 캡처본)에서 1. BeanNameUrlHandkerMapping : "빈 이름으로 컨트롤러 조회" 를 먼저 거친 후 0=RequestMappingHandlerMapping("") 으로 1번으로 필터링이 된 컨트롤러안의 메소드가 실행되는것일까요? 1~5번 각각 답변 주시면 제 궁금중이 시원하게 풀릴것같습니다. 감사합니다. 초반에 스프링빈으로 등록된 컨트롤러를 먼저 찾아야 하니까 0번도 포함이라고 생각했습니다.!!
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] errors.properties 의 {0}, {1} 등에 숫자가 들어간 형태로 출력되는 것 같은데 숫자 출력 포맷이 기본적으로 #,###인가요? 따로 어떠한 작업 없이 숫자만 들어간 것 같은데 아래처럼 #,###로 숫자가 출력이 되길래 궁금해서 질문드립니다. 만약 그렇다면 숫자 구분자 없이 기본 형태로 숫자를 출력하고 싶으면 어떻게 해야하나요 아래는 addItemV3를 만든 후 출력된 결과입니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] jar파일까지 정상적으로 만들어졌는데 마지막에 실행하는게 안되네요.. 뭐가문제일까요?ㅠㅠ
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 강제로 중복 회원가입을 시켜서 에러를 발생시켜서 익셉션에 담긴 메세지랑 assertThat으로 비교하는 코드인데 잘 동작되던 코드가 JdbcTemplate 강의를 듣던 중에 테스트를 돌리니 에러가 발생하였습니다. @Test public void 중복_회원_예외() { //given Members members1 = new Members(); members1.setName("spring"); Members members2 = new Members(); members2.setName("spring"); //when membersService.join(members1); IllegalStateException e = assertThrows(IllegalStateException.class, () -> membersService.join(members2)); assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다."); //then } public Long join(Members members) { validateDuplicateMember(members); membersRepository.save(members); return members.getId(); } public class MembersService { private final MembersRepository membersRepository; @Autowired public MembersService(MembersRepository membersRepository) { this.membersRepository = membersRepository; } private void validateDuplicateMember(Members members) { membersRepository.findByName(members.getName()).ifPresent(members1 -> { throw new IllegalStateException("이미 존재하는 회원입니다."); }); } }
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 1.필터와 인터셉트의 선능차이 관련 로그인 체크해서, 로그인 페이지로 날려버리는 기능을 추가할때 필터의 경우는 디스패치서블릿 이전에 실행되고, 차단할 수 있으니까 인터셉터보다는 서버 비용을 조금이라도 더 절감할 수 있는건가요?? 아니면 그냥 무시할정도의 미비한차이니까 인터셉터를 사용하든 상관 없나요? afterCompletion()로 로그처리 afterCompletion의 경우는 핸들러에서 예외가 발생할때에도 실행이 되니까, 모~든 핸들러의 예외를 로그 메세지로 관리하고 싶은 경우에는 "/*"로 필터를 걸고 afterCompletion에 예외관련된 로그 메세지를 출력되게 하면 되나요? 실무에서도 이런식으로, 시스템 전체의 예외 메세지를 남기기위해서 사용하나요?
안녕하세요, 강의 실습을 따라서 진행하는 중에 화면이 잘 안나오는 문제가 있어서 질문 드립니다. 지난번에 MVC01에서 화면이 로드되지 않는 문제에 대해 maven clean, install을 알려주셔서 이후에는 화면 부분을 생성할 때마다 maven clean, install을 진행했습니다ㅜㅜ 하지만 이번에는 maven clean,install을 실행하거나 프로그램을 껐다가 다시 해봐도 List가 나오지 않습니다. 브라우저의 결과는 아래와 같습니다. List 출력 전 json 알림까지도 잘 나왔고 http://localhost:8080/controller/boardList.do에서도 아래 이미지처럼 나왔습니다. main.jsp 파일입니다. 제가 보기에는 오타 없는 것 같아요. 32번줄 table부분은 var listHtml="<table class='table table-boardered'>";로도 바꿔봤는데 결과는 같습니다. controller 부분입니다. 또한 pom.xml dependency도 추가했습니다. 서버도 문제 없이 작동되고 있습니다. 어디가 문제일까요... 강의를 너무 잘 듣고 있는데 환경 설정 때문인지 자꾸 실행되지 않는 부분이 생겨서 질문 남깁니다ㅜㅜ egov 4.0으로 초기 셋팅은 강사님과 동일합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] Controller 인터페이스 HttpRequestHandler 인터페이스를 상속받은클래스를 OverRide한 메소드를 사용하는경우에는 해당 클래스의 객체 단위로 Mapping이 등록되는것으로 아는데 @RequestMapping를 사용하면 기존과는 다르게 HandlerMapping부분에는 메소드 단위로 Mapping에 등록이 되는건가요?
java -jar hello-spring-0.0.1-SNAPSHOT.jar 오류: 기본 클래스 org.springframework.boot.loader.launch.JarLauncher을(를) 로드하는 중 LinkageError가 발생했습니다. java.lang.UnsupportedClassVersionError: org/springframework/boot/loader/launch/JarLauncher has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0 Java 17, 스프링부트 3.2.0 입니다 이런 에러가 뜨는데 어떻게 해결해야하나요??
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 맥 터미널에서 권한 부여까지 한후 실행을 했는데 ./bin/ h2.sh : line 3: 3667 Trace/BPT trap: 5 java -cp "$dir/h2-2.2.224.jar:$H2DRIVERS:$CLASSPATH" org.h2.tools .Console "$@" 이와 같은 메세지가 뜨면서 아예 화면도 안뜨네요ㅜㅜ