묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 DB 2편 - 데이터 접근 활용 기술
임베디드모드는 H2에서만 가능할까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]오라클에서 하려고 하니까 안 되는 것 같습니다 ㅠㅠ 임베디드 DB 사용 방법이테스트 클래스에 @Transactional 넣기test/resources/schema.sql 파일 작성test/resouces/application.properties 파일 작성맞지않나요?!
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
안녕하세요 react협업에 관련해 질문드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]타임리프로 서버사이드렌더링 하는법은 김영한님께 배워서 알지만 프론트엔드 (리액트) 와 협업하는 강의는 따로 없을까요? @responsebody로 해야하는 것 같은데.. 어떻게 협업해야하는지 모르겠습니다. 따로 찾아봐야 하는걸까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
섹션6 스프링데이터 JPA에서 오류 질문
private final MemberRepository memberRepository; @Autowired public SpringConfig(MemberRepository memberRepository){ this.memberRepository = memberRepository; } 자동 주입을 할 수 없습니다. 'MemberRepository' 타입의 bean이 두 개 이상 있습니다.Beans:memoryMemberRepository (MemoryMemberRepository.java) springDataJpaMemberRepository (SpringDataJpaMemberRepository.java) 라는 오류가 발생합니다 어디를 고쳐야 하는 건가요
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
테스트시 @Transactional 붙이고, orphanRemoval = true
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]테스트시 @Transactional 을 붙이고 , 객체 A(1) - B(N)간 다대일 양방향 참조를 설정 (일쪽에 mappedby Casecade ALL, orphanRemoval = true) 한 상태에서 부모객체의 참조를 끊으면 자연스레, 자연스레 N쪽에서 데이터가 사라지는 코드를 구현했었는데, @Transactional 적용 테스트시에 변경감지나, orphanRemoval = true 같은 경우 트랜잭션이 롤백되어서 orphanRemoval = true 작동이 되지 않는 문제가 있습니다. 이럴경우 테스트는 어떻게 해야하나요?? 실제 구현은 잘동작하지만, 테스트시에 동작 X @Transactional로 인해 orphanRemoval = true가 작동 안해서 , 떼고 테스트 코드를 작성할경우 검증로직에서 N쪽에서 데이터가 잘 들어갔거나, 삭제되는걸 검증하는 경우에는, 이미 트랜잭션이 서비스로직에서 detached 된 에러로, no session 에러를 만나게 되었습니다. 이럴 경우 어떻게 테스트 하시는지 여쭙고 싶습니다. 1쪽만 테스트 해야하는지, 본 강의에서와 같이 @Commit으로 해결하나요??
-
미해결3. 웹개발 코스 [스프링 프레임워크+전자정부 표준프레임워크]
신규강의 요청드립니다.
안녕하세요 기존 강의인 스프링 + 전자정부 프레임워크 강의 수강생입니다.EA + 전자정부 프레임워크 무료 수강 쿠폰 요청드립니다.감사합니다!!
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
lazy loading 쿼리 문제
2024-06-15T19:47:56.267+09:00 DEBUG 12540 --- [jpa1] [nio-8080-exec-1] org.hibernate.SQL : select o1_0.order_id, o1_0.delivery_id, o1_0.member_id, o1_0.order_date, o1_0.status from orders o1_0 join member m1_0 on m1_0.member_id=o1_0.member_id limit ? 2024-06-15T19:47:56.270+09:00 TRACE 12540 --- [jpa1] [nio-8080-exec-1] org.hibernate.orm.jdbc.bind : binding parameter (1:INTEGER) <- [1000] 2024-06-15T19:47:56.285+09:00 DEBUG 12540 --- [jpa1] [nio-8080-exec-1] org.hibernate.SQL : select m1_0.member_id, m1_0.city, m1_0.street, m1_0.zipcode, m1_0.name from member m1_0 where m1_0.member_id=? 2024-06-15T19:47:56.285+09:00 TRACE 12540 --- [jpa1] [nio-8080-exec-1] org.hibernate.orm.jdbc.bind : binding parameter (1:BIGINT) <- [1] 2024-06-15T19:47:56.291+09:00 DEBUG 12540 --- [jpa1] [nio-8080-exec-1] org.hibernate.SQL : select d1_0.delivery_id, d1_0.city, d1_0.street, d1_0.zipcode, d1_0.status from delivery d1_0 where d1_0.delivery_id=? 2024-06-15T19:47:56.291+09:00 TRACE 12540 --- [jpa1] [nio-8080-exec-1] org.hibernate.orm.jdbc.bind : binding parameter (1:BIGINT) <- [1] 2024-06-15T19:47:56.295+09:00 DEBUG 12540 --- [jpa1] [nio-8080-exec-1] org.hibernate.SQL : select o1_0.order_id, o1_0.delivery_id, o1_0.member_id, o1_0.order_date, o1_0.status from orders o1_0 where o1_0.delivery_id=? 2024-06-15T19:47:56.296+09:00 TRACE 12540 --- [jpa1] [nio-8080-exec-1] org.hibernate.orm.jdbc.bind : binding parameter (1:BIGINT) <- [1] 2024-06-15T19:47:56.298+09:00 DEBUG 12540 --- [jpa1] [nio-8080-exec-1] org.hibernate.SQL : select m1_0.member_id, m1_0.city, m1_0.street, m1_0.zipcode, m1_0.name from member m1_0 where m1_0.member_id=? 2024-06-15T19:47:56.298+09:00 TRACE 12540 --- [jpa1] [nio-8080-exec-1] org.hibernate.orm.jdbc.bind : binding parameter (1:BIGINT) <- [2] 2024-06-15T19:47:56.300+09:00 DEBUG 12540 --- [jpa1] [nio-8080-exec-1] org.hibernate.SQL : select d1_0.delivery_id, d1_0.city, d1_0.street, d1_0.zipcode, d1_0.status from delivery d1_0 where d1_0.delivery_id=? 2024-06-15T19:47:56.300+09:00 TRACE 12540 --- [jpa1] [nio-8080-exec-1] org.hibernate.orm.jdbc.bind : binding parameter (1:BIGINT) <- [2] 2024-06-15T19:47:56.302+09:00 DEBUG 12540 --- [jpa1] [nio-8080-exec-1] org.hibernate.SQL : select o1_0.order_id, o1_0.delivery_id, o1_0.member_id, o1_0.order_date, o1_0.status from orders o1_0 where o1_0.delivery_id=? 2024-06-15T19:47:56.302+09:00 TRACE 12540 --- [jpa1] [nio-8080-exec-1] org.hibernate.orm.jdbc.bind : binding parameter (1:BIGINT) <- [2] @GetMapping("api/v2/simple-orders") public List<SimpleOrderDto> ordersV2() { List<Order> orders = orderRepository.findAllByString(new OrderSearch()); List<SimpleOrderDto> result = orders.stream().map(order -> new SimpleOrderDto(order)) .collect(Collectors.toList()); return result; } @Getter public static class SimpleOrderDto { private Long orderId; private String name; private LocalDateTime orderDate; private OrderStatus orderStatus; private Address address; public SimpleOrderDto(Order order) { orderId = order.getId(); name = order.getMember().getName(); orderDate = order.getOrderDate(); orderStatus = order.getStatus(); address = order.getDelivery().getAddress(); } }강의 자료와 같은 코드인 것 같은데 쿼리가 한 번씩 더 나가서 질문 드립니다.처음에 order와 member를 join하는 쿼리 하나 실행그 뒤로 member 조회 쿼리, delivery 조회 쿼리 하나씩 실행되는 건 이해가 됩니다.그런데 그 뒤로 order 테이블에서 특정 delivery_id에 해당하는 걸 조회하는 쿼리가 하나씩 또 나갑니다.이 부분이 왜 발생하는지 찾기가 힘들어서 질문을 남깁니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
MSA
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]4분경 보여주는 화면에서 server to server로 API를 통신한다고 되어있는데, 이런경우에 MSA로 구성되었다고 할 수 있는건가요??
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
CQS 패턴 질문
CQS 패턴에 대해 질문이 있습니다.커맨드(상태 변경)와 쿼리(조회)를 분리하는 패턴이라는 건 알겠습니다.커맨드는 상태 변경에 대한 책임이 있고 조회에 대한 결과 반환의 책임이 있지 않다. 따라서 반환값을 반환하지 않는다.쿼리는 조회에 대한 결과 반환의 책임이 있어서 조회 결과를 반환값으로 반환한다.이 정도로 이해했습니다.문제는 api인데, api도 커맨드 api, 쿼리 api 이런식으로 분리 하나요?/api/v2/members/{id} 경로의 updateMemberV2 라우트 핸들러는 상태를 변경하는 api니까 Member의 상태만 변경하고 response는 성공, 실패에 대한 HTTP 상태 응답값만 반환하나요?조회에 대한 api는 조회 결과를 response dto로 내려주는 데에 이상하게 생각하지는 않습니다.그런데 삭제, 등록, 업데이트 등의 커맨드 api..?는 보통 그냥 api 결과로 HTTP status code만 반환해주는 지가 궁금하네요. 지금도 삭제 api는 그냥 204 응답 코드로 반환해주도록 개발해왔었는데 이게 CQS 패턴인지 궁금하네요.지금까지 별 생각없이 업데이트 api도 엔티티에 대한 업데이트를 수행하고 업데이트 된 Entity를 가지고 dto를 만들어서 http response를 내려주었는데CQS 패턴을 생각하면 이런 api는 성공 실패만 반환하는게 맞는건가 싶어서요
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
예외처리
안녕하세요 예외처리에 대한 질문이생겨 글 적습니다 !MemberServiceV3_2에서 bizLogic()을 호출해서 메서드에서 던져진 SQLException을 잡습니다 그런데 MemberServiceV3_1에서 트랜잭션 매니저로 처리하는 try catch문에서는 Exception으로 예외를 잡는데 Exception이 모든 예외의 조상이라서 모든 예외를 잡는건 알고있습니다 !그런데 헷갈리는 부분이 SQLException이 commit을 하면 사라지나요 ?아니면이때 SQLException이 잡히나요 ? 잡히지만 이미 커밋을 해버려서 롤백할 데이터가 없기 때문에 SQLException을 IllegalStateException으로 바꿔주기만 하고 try catch문을 빠져나오는 걸까요 ??
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
한글깨짐 현상
username에 한글을 사용해서 보냈을 때, log나 println에서 깨짐현상이 일어나서 setCharacterEncoding에서 UTF-8로 설정해도 깨지길래 postman content-type에 charset=utf-8로 설정도 해봤는데 계속 깨진 상태입니다... 어디에서 발생한 문제인가요?
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
"서블릿 필터 - 인증 체크" 강의에서 질문있습니다.
강사님께서 설명해주신대로 LoginCheckFilter를 만들어서 적용해서 Chrome에서 실행해봤는데 localhost:8080/items를 입력해도 자동으로 localhost:8080 으로 이동합니다... 그래서 혹시나 싶어서 LoginCheckFilter를 적용하기 전으로 하고 다시 localhost:8080/items 를 입력했더니, 그래도 localhost:8080 으로 이동이 됩니다.제가 코드를 잘못 입력한건가 싶었는데 Chrome이 아니라 Safari로 들어가서 localhost:8080/items를 입력하면 Filter적용전에는 localhost:8080/items 에 접근이 가능하고, Filter 적용시에는 http://localhost:8080/login?redirectURL=/items 로 redirect가 이루어집니다.Chrome에서 어떤 설정을 만져야 제대로 동작하게 될까요....?Safari에서는 제대로 동작하는데 왜 Chrome만 동작이 안되는지 모르겠습니다...
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
h2 데이터베이스
[질문 내용]여기에 질문 내용을 남겨주세요.안녕하세요. 스프링 3.0 이상으로 프로젝트를 만들어서 h2 데이터베이스도 그에 맞는 최신 버전으로 다운 받아 설치하였는데요.jdbc:h2:~/jpashop로 최초 한번 연결 후 (여기까진 성공) 끊고,jdbc:h2:tcp://localhost/~/jpashop 으로 연결하면이 오류가 뜹니다. h2 데이터베이스는 켜둔 상태입니다. spring: datasource: url: jdbc:h2:tcp://localhost/~/jpashop username: sa password: driver-class-name: org.h2.Driver
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
MemberServiceIntegrationTest 시 Failed to obtain JDBC Connection 오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]다른 오류들은 차근차근 해결했는데 h2도 정상 작동하고 다른 코드들도 다 확인하고 소스 코드 복붙도 해보고(오타 방지) 했으나 다음과 같이 오류가 발생합니다. 이 테스트 말고는 다 정상적으로 테스트가 돌아가는데 DB랑 연결이 안되는건지 문의드립니다.java.lang.IllegalStateException: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection at rrrrm._rrrr_m.repository.JdbcMemberRepository.findByName(JdbcMemberRepository.java:107) at rrrrm._rrrr_m.service.MemberService.validateDuplicateMember(MemberService.java:31) at rrrrm._rrrr_m.service.MemberService.join(MemberService.java:25) at rrrrm._rrrr_m.service.MemberServiceIntegrationTest.중복_회원_예외(MemberServiceIntegrationTest.java:46) 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)Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:84) at rrrrm._rrrr_m.repository.JdbcMemberRepository.getConnection(JdbcMemberRepository.java:113) at rrrrm._rrrr_m.repository.JdbcMemberRepository.findByName(JdbcMemberRepository.java:95) ... 6 moreCaused by: org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database may be already in use: "C:/Users/computer/test.mv.db". Possible solutions: close all other connection(s); use the server mode [90020-224] at org.h2.message.DbException.getJdbcSQLException(DbException.java:690) at org.h2.message.DbException.getJdbcSQLException(DbException.java:489) at org.h2.message.DbException.get(DbException.java:212) at org.h2.mvstore.db.Store.convertMVStoreException(Store.java:165) at org.h2.mvstore.db.Store.<init>(Store.java:142) at org.h2.engine.Database.<init>(Database.java:326) at org.h2.engine.Engine.openSession(Engine.java:92) at org.h2.engine.Engine.openSession(Engine.java:222) at org.h2.engine.Engine.createSession(Engine.java:201) at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:343) at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:125) at org.h2.Driver.connect(Driver.java:59) at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:137) at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:360) at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:202) at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:461) at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:550) at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:98) at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:111) at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:160) at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:118) at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:81) ... 8 moreCaused by: org.h2.mvstore.MVStoreException: The file is locked: C:/Users/computer/test.mv.db [2.2.224/7] at org.h2.mvstore.DataUtils.newMVStoreException(DataUtils.java:996) at org.h2.mvstore.SingleFileStore.lockFileChannel(SingleFileStore.java:143) at org.h2.mvstore.SingleFileStore.open(SingleFileStore.java:117) at org.h2.mvstore.SingleFileStore.open(SingleFileStore.java:81) at org.h2.mvstore.MVStore.<init>(MVStore.java:286) at org.h2.mvstore.MVStore$Builder.open(MVStore.java:2035) at org.h2.mvstore.db.Store.<init>(Store.java:133) ... 25 more2024-06-14T23:13:01.731+09:00 INFO 18164 --- [9rrrr_m] [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...java.lang.IllegalStateException: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection at rrrrm._rrrr_m.repository.JdbcMemberRepository.findByName(JdbcMemberRepository.java:107) at rrrrm._rrrr_m.service.MemberService.validateDuplicateMember(MemberService.java:31) at rrrrm._rrrr_m.service.MemberService.join(MemberService.java:25) at rrrrm._rrrr_m.service.MemberServiceIntegrationTest.회원가입(MemberServiceIntegrationTest.java:29) 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)Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:84) at rrrrm._rrrr_m.repository.JdbcMemberRepository.getConnection(JdbcMemberRepository.java:113) at rrrrm._rrrr_m.repository.JdbcMemberRepository.findByName(JdbcMemberRepository.java:95) ... 6 moreCaused by: org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database may be already in use: "C:/Users/computer/test.mv.db". Possible solutions: close all other connection(s); use the server mode [90020-224] at org.h2.message.DbException.getJdbcSQLException(DbException.java:690) at org.h2.message.DbException.getJdbcSQLException(DbException.java:489) at org.h2.message.DbException.get(DbException.java:212) at org.h2.mvstore.db.Store.convertMVStoreException(Store.java:165) at org.h2.mvstore.db.Store.<init>(Store.java:142) at org.h2.engine.Database.<init>(Database.java:326) at org.h2.engine.Engine.openSession(Engine.java:92) at org.h2.engine.Engine.openSession(Engine.java:222) at org.h2.engine.Engine.createSession(Engine.java:201) at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:343) at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:125) at org.h2.Driver.connect(Driver.java:59) at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:137) at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:360) at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:202) at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:461) at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:550) at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:98) at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:111) at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:160) at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:118) at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:81) ... 8 moreCaused by: org.h2.mvstore.MVStoreException: The file is locked: C:/Users/computer/test.mv.db [2.2.224/7] at org.h2.mvstore.DataUtils.newMVStoreException(DataUtils.java:996) at org.h2.mvstore.SingleFileStore.lockFileChannel(SingleFileStore.java:143) at org.h2.mvstore.SingleFileStore.open(SingleFileStore.java:117) at org.h2.mvstore.SingleFileStore.open(SingleFileStore.java:81) at org.h2.mvstore.MVStore.<init>(MVStore.java:286) at org.h2.mvstore.MVStore$Builder.open(MVStore.java:2035) at org.h2.mvstore.db.Store.<init>(Store.java:133) ... 25 moreProcess finished with exit code -1
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
폼 전달 객체를 별도로 만드는 것의 장점
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]실무에선 groups보단 폼 데이터 전달을 위해 별도의 객체를 만드는 걸 선호한다고 이해했습니다.그런데 pdf에 있는 다음 내용에 대해 더 궁금한 점이 있습니다. "Item 도메인 객체를 폼 전달 데이터로 사용하고, 그대로 쭉 넘기면 편리하겠지만, 앞에서 설명한 것과 같이 실무에서 는 Item 의 데이터만 넘어오는 것이 아니라 무수한 추가 데이터가 넘어온다. 그리고 더 나아가서 Item 을 생성하는데 필요한 추가 데이터를 데이터베이스나 다른 곳에서 찾아와야 할 수도 있다." Item을 생성하는 데에 필요한 추가 데이터를 데이터베이스나 다른 곳에서 찾아와야 할 수 있기 때문에 폼 전달을 위한 별도의 객체를 만드는 방법이 좋다는 의미로 써져 있는 거 맞나요? 그런데 Item을 생성할 때 필요한 데이터들을 데이터베이스나 다른 곳에서 찾아와야 한다고 하면, 폼 전달 객체를 별도로 만들더라도 컨트롤러에선 Item 객체를 만들어야 하니, DB에서 추가 데이터를 가져와야 하는 건 마찬가지처럼 느껴지는데, DB에서 추가 데이터를 가져오는 것 때문에 폼 전달 객체를 별도로 만드는 게 더 좋다는 이유가 아직 잘 이해가 안 됩니다.(등록 폼과 수정 폼이 다르다는 측면에서는 폼 전달 객체를 만드는 것의 장점이 충분하다고 이해하고 있습니다.) 이 부분 제가 이해를 제대로 못 하고 있는 것 같습니다. 이 부분에 대해 조금만 더 자세히 알려주실 수 있나요?
-
미해결스프링 핵심 원리 - 기본편
스프링돌릴떄 디버그 로깅뜨는부분
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]실행은 잘되는데 이런개 너무 많이뜨는데 제가 뭐 잘못만진건가요 ?
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
질문있습니다
안녕하세요, 좋은 강의 제공해주셔서 감사합니다.FilterChainProxy 타입의 빈을 등록했는데 왜 CompositeFilterChainProxy 타입의 빈이 나오는 궁금합니다.2. FilterChainProxy 도 여러 개가 존재할 수 있는 걸로 알고, SecurityFilterChain 도 여러 개 존재할 수 있는 것을 배웠습니다.요청에 따라 FilterChainProxy 와 SecurityFilterChain 을 선택하는 부분에 대한 설명이 없는 것 같은데 맞나요? 이것까지 이해하는건 어렵긴 합니다..
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
섹션 3. 서블릿, JSP, MVC 패턴 질문 3
@WebServlet(name = "mvcMemberFormServlet", urlPatterns = "/servlet-mvc/members/new-form") public class MvcMemberFormServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String viewPath = "/WEB-INF/views/new-form.jsp"; RequestDispatcher dispatcher = request.getRequestDispatcher(viewPath); dispatcher.forward(request, response); } }<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <!-- 상대경로 사용, [현재 URL이 속한 계층 경로 + /save] --> <form action="save" method="post"> username: <input type="text" name="username" /> age: <input type="text" name="age" /> <button type="submit">전송</button> </form> </body> </html> 강의 따라가면서 했는데 선생님께서는 페이지 오류없이 잘 돌아가는데 제가 했을 때는 404오류가 뜹니다...그리고 localhost:8080에 들어가거나, 서블릿 MVC 회원가입을 눌러도 인텔리제이 콘솔창에는 아무것도 뜨지 않습니다..해결방안 주실 수 있나요ㅠㅠ
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
프로젝트 생성 오류 Unable to set prepareKotlinBuildScriptModel sync task
검색하니깐 tasks.register("prepareKotlinBuildScriptModel"){} 추가 작성하면 된다던데그렇게 써도 또 오류가 뜹니다.프로젝트 생성했을땐 저 오류가 뜨는데 main 이랑 빌드 실행 했을때는 별다른 오류는 안뜨는데 무시하고 계속 진행해도 될까요..?아니면 해결을 해야하나요?
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
자동 로그인 말고 아이디만 저장하는 기능을 구현하고 싶어요
rememberMe 의 흐름상 자동 로그인을 하는 것으로 보이는데강의 들으면서 나름 커스텀하여 로그인 창이 뜰때 아이디만 저장하기 기능을 추가하고 싶은데 어떻게 해야할까요? 1. 로그인창 a. 처음에는 세션, 쿠키도 없으니 빈칸 로그인 성공이후로그인 정보의 아이디값을 쿠키 에 넣는다. 로그아웃이후쿠키가 남아있으면 아이디 란에 아이디를 넣는다. 를 하고 싶어용
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
빌드 오류 정정 방법
현재 java11 사용중이고스프링부트는 최신버전에 맞춰서 3.3.0 과 java17로 선택해서 생성했습니다.오류가 발생했고 라고 떴습니다. 라고 권장하는 것 같은데그럼 제가 java17을 받아야하는건가요?아니면 프로젝트 java를 11로 변경하고 스프링부트 버전도 변경하면 되는 것인가요?앞으로 더 길게 봤을때를 위해서 그냥 java17을 받는게 나을까요?프로젝트 생성할 때 항상 자바버전으로 오류가 발생하는 것 같은데 뭐가 더 나은건지 기준을 아직 잘 모르겠어서 항상 고민이 되는 것 같습니다.