학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] HomeController에서 로그인을 했을경우에는 무조건 세션에 회원데이터를 넣어서 homeController로 리다이렉트를 하고 homeController에서 처음에 세션을 조회해서 null일경우에 home.html로 보내는데 loginMember가 null일 경우가 있을까요?? 로그아웃을 했을 경우에도 세션자체를 없애기때문에 처음 세션을 조회하는 부분에서 분기처리가 될거같은데 제가 잘못이해하고 있는지 잘 이해가 되지않아 질문드립니다!
drop table member if exists cascade; ',', CASCADE or RESTRICT expected, got 'if' 인텔리제이에서 에러가 나서 찾아보니 h2 디비 문법 오류 이더군요 실행은 되는데 if exists 순서를 변경해주니까 인텔리에서 에러가 없어졌습니다 혹시나 해서 기록남깁니다 drop table if exists member cascade;
안녕하세요~ mvc에 도입된 ModelView클래스에 질문있습니다. 위 코드처럼 필드에 바로 HashMap 구현객체를 할당한 것을 보실 수 있는데요. MVC model v3 을 설명하는 강의자료에 나온 소스입니다. 생성자로 초기화하는 아래 코드처럼 작성해주실 것이라 기대했는데 @Data @AllArgsConstructor public class ModelView { private String viewName; private Map<String, Object> model; public ModelView(String viewName) { this.viewName = viewName; this.model = new HashMap<>(); } } 그렇지 않은 이유가 궁금합니다~!
@GetMapping("hello-api") @ResponseBody public Hello helloApi(@RequestParam("name") String name){ Hello hello = new Hello(); hello.setName(name); return hello; } static class Hello{ private String name; public void setName(String name) { this.name = name; } public String getName() { return name; } } 위처럼 APi사용하려는데 이렇게 한국어로 입력 시 문자가 깨지는 현상이 발생합니다 설정은 다음과 같습니다
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요 선생님! HttpRequestHandler에 대해 공부하던 중 궁금한 점이 있어 질문 드립니다. HttpRequestHandler는 서블릿과 가장 유사한 형태의 핸들러라고 자료에 나와있는데 서블릿과 가장 유사하다는 것이 어떤 의미인지 잘 모르겠습니다. HttpRequestHandler의 Adapter인 HttpRequestHandlerAdapter를 들어가 보았는데 public class HttpRequestHandlerAdapter implements HandlerAdapter{ //... @Nullable public ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object Handler) throws Exception{ ((HttpRequestHandler)handler).handleRequest(request,response); return null;} //... } 와 같이 ModelAndView를 반환하지 않고 null을 반환하고 있습니다. 이 그림에서는 MVC의 구조에서 ModelAndView를 반환한다고 되어있는데 null을 반환하여 질문드려봅니다
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] @Autowired PlatformTransactionManager transactionManager; TransactionStatus status; 이 코드와 @Autowired PlatformTransactionManager transactionManager; @Autowired TransactionStatus status; 이 코드는 다르게 동작하나요? 제가 실수로 두 번째 코드로 썼다가 오류가 났었는데 첫 번째 코드로 하니 정상 동작이 되었습니다. +) 아 잠시 헷갈렸습니다..
강의 14:14 관련 질문입니다. WAS 제품중 하나인 톰캣이 있습니다. WAS (Web Application Server) 는 정적리소스를 처리하는 WebServer 기능과 동적리소스를 처리하는 Servlet컨테이너를 동시에 가지고 있는 것으로 알고있는데요. 위 처럼 큰 개념으로 이해하고 있었는데 강의자료에서는 '웹서버'로 알고 있는 영역에 '웹애플리케이션서버' 라는 용어로 표현하신 걸 보고 혼동이 왔습니다. 어떻게 정리하는 것이 좋은지 조언부탁드립니다.
ASP.NET Core MVC +ASP.NET Core +REST API +.NET 8.0
웹폼도 써보고, 다른 언어도 해봤는데 비동기를 쓰지는 않았었는데요. 강의하는 내용보면, 대부분 비동기로 처리하더라고요. 그런데 만약 게시판 글쓰기 같은 경우 리스트나 조회페이지로 이동을 시키는데요. 비동기로 처리하면 나의 글이 저장이 안된 상태에서도 이동이 가능한데, 그러면 내 글이 없는 상태로 나타나게 될텐데요. 혹시 어떤 이유때문에 비동기로 처리하는 건지 아니면 단순히 사용법 알려주시려고 그렇게 한건지 궁금합니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] JPA 사용시 중간계층으로 JpaItemRepositovy 를 거쳐서 SpringDataJpaItem의 인터페이스를 구현함으로써 구조가 복잡해지기때문에 중간단계인 JpaItemRepositovy 없이 직접 SpringDataJpaItem를 주입해줌으로써 좀더 간단한 구조가 된다고설명해주셨는데, 단점으로는 DI 와 OCP를 지키지 못한다라고 하셨는데 아래 스크린샷처럼 수업을 듣다가 헷갈려서 찾아봤습니다. DI 와 DIP의 차이를 알아보고 SOLID원칙을 지킨다라는건 DI를 어긴다보단 DIP를 어긴다가 맞는거 같아 이부분에 대한 설명을 DIP를 DI로 추상적으로 설명했다고 이해해야할까요? 정확히는 DIP를 지키기위해 DI를 넣는건데 SpringDataJpaItem를 주입한다고할때 솔직히 이것도 DI로 넣는것도 같고 DIP도 인터페이스(추상화)에 의존하기때문에 지킨거고 오히려 OCP만 어기는 구조가 아닌가해서요 정리하자면 DI를 어긴다는말보단 DIP를 어긴다 라고해야되는게 맞는지 해당 코드 트레이드오프 설명시 DIP는 지키되 OCP를 지키지 못하는게 아닌지
@RequestParam 개념을 공부중인데 제가 이해한게 맞는지 여쭤보고 싶어서요 메서드의 파라미터 자리에 작성하는 애노테이션이다. 파라미터의 이름과 같읕 메서드를 찾아 값을 바인딩 한다. void String event(@RequestParam (value= “abc” ) String abc ){ ~ } 이라는 코드가 있을 때 abc 의 값을 파라미터 abc 의 값으로 저장해준다. 이름이 같을 경우에는 void String event(@RequestParam String abc ){ ~ } 으로 생략 가능하다. 이게 맞을까요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 스프링 데이터 JPA 적용1 강의에서 findByItemNameLikeAndPriceLessThanEqual 라는 쿼리메서드는 'select i from Item where i.price<= ?' 라는 JPQL이 실행된다 라고했는데 'select i from Item i where i.itemName like :itemName and i.price <= :price' 가 맞는거 아닌가해서요 LikeAnd가 붙었는데 기존과 동일하다고 설명되어있길래 질문드려요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] ItemMapper.xml에 <insert> 코드가 강사님 코드하고 한 자도 안 틀리고 똑같은데 테스트에서 sql syntax 에러가 나서 강사님 코드를 붙여넣었는데 테스트가 정상으로 작동했습니다. 이상해서 코드를 한 줄씩 Ctrl + C, V 해가면서 테스트가 제대로 작동하는지 확인했는데 그래도 계속 syntax 에러가 났습니다. 코드 전체를 복사하고 붙였더니 테스트가 정상 작동했구요. 이런 경우가 가끔식 있는지 이건 어떤 경우인지 궁금해서 질문 남깁니다.
안녕하세요. 모든 필드가 final인 클래스에 BeanPropertyRowMapper는 사용 못하는건가요?? 빈 생성자는 생성하지 못해서 각 필드의 기본값으로 초기화 해주는 생성자를 만들었는데 모든 필드가 final이라서 값이 변경이 되지 않아서 그런지 기본값으로 나오더라고요 코드는 아래와 같이 작성했습니다 그냥 RowMapper를 직접 만들어서 사용하는게 최선일까요??
ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation. 라고 뜨는데 따로 인텔리제이 설치하며 자바는 따로 설치 안했어요 어떻게 하면 좋을까요??
이렇게 @GroupSequence 를 사용해서 검증의 순서를 정하고싶은데 예를 들자면 클라이언트에서 이메일을 작성할때 "ㅇㅇ" 이런 식으로 작성을 하면 @NotBlank 가 통과가 되고 @Email 이 실행이 되어야 하는거 같은데 실행이 되지 않습니다 그리고 실행이 안되는줄 알았지만 아래 아이디 비밀번호를 입력 하게되면 이때 형식에 맞지 않다는 오류 메시지가 나오게 됩니다, 어떻게 해야 할까요.. package hello.instar.validation; import jakarta.validation.GroupSequence; import jakarta.validation.groups.Default; @GroupSequence({Default.class,ValidationGroups.NotBlankGroup.class, ValidationGroups.EmailGroup.class,ValidationGroups.SizeGroup.class, }) public interface ValidationSequence { } @NotBlank(groups = ValidationGroups.NotBlankGroup.class) @Email(groups = ValidationGroups.EmailGroup.class) private String email; spring mvc
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 8080도 뜨지않고 메인 코드를 실행한후 사이트에 들어가도 에러메세지가 나오지 않습니다. 아래 다르게 나오는 출력문입니다. 오후 7:46:36: 실행 중... > Task :help Welcome to Gradle 8.10.2. To run a build, run gradle <task> ... To see a list of available tasks, run gradle tasks To see more detail about a task, run gradle help --task <task> To see a list of command-line options, run gradle --help For more detail on using Gradle, see https://docs.gradle.org/8.10.2/userguide/command_line_interface.html For troubleshooting, visit https://help.gradle.org BUILD SUCCESSFUL in 122ms 1 actionable task: 1 executed 오후 7:46:37: 실행이 완료되었습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] The object is already closed [90007-224] org.h2.jdbc.JdbcSQLNonTransientException: The object is already closed [90007-224] at org.h2.message.DbException.getJdbcSQLException( DbException.java:566 ) at org.h2.message.DbException.getJdbcSQLException( DbException.java:489 ) at org.h2.message.DbException.get( DbException.java:223 ) at org.h2.message.DbException.get( DbException.java:199 ) at org.h2.message.DbException.get( DbException.java:188 ) at org.h2.jdbc.JdbcConnection.checkClosed( JdbcConnection.java:1422 ) at org.h2.jdbc.JdbcConnection.rollback( JdbcConnection.java:511 ) at hello.jdbc.service.MemberServiceV2.accountTransfer( MemberServiceV2.java:34 ) at hello.jdbc.service.MemberServiceV2Test.accountTransfer( MemberServiceV2Test.java:65 ) at java.base/java.lang.reflect.Method.invoke( Method.java:568 ) at java.base/java.util.ArrayList.forEach( ArrayList.java:1511 ) at java.base/java.util.ArrayList.forEach( ArrayList.java:1511 ) > Task :test FAILED MemberServiceV2Test > 정상 이체 FAILED org.h2.jdbc.JdbcSQLNonTransientException at MemberServiceV2Test.java:65 1 test completed, 1 failed FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':test'. > There were failing tests. See the report at: file:///C:/Users/user/Desktop/jdbc/jdbc/build/reports/tests/test/index.html * Try: > Run with --scan to get full insights. BUILD FAILED in 1s 4 actionable tasks: 1 executed, 3 up-to-date 이런식으로 오류가 나는데 구글링해도 도저히 원인을 못찾겠네요ㅠㅠ 도와주세요 ㅠㅠ