묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
h2 시퀀스 JDBCRepository 변경 오류
안녕하세요 선생님의 강의를 수강하며 잘 따라가며 학습 중입니다.DB연결도 잘되고, insert도 잘되는데 시퀀스 값이 이상하게 나옵니다.ㅠㅠ3이 자꾸 고정적으로 뜨고 3,4,5,6.. 증가하는데.. 원인이 뭘까요??ㅠㅠ도와주세요
-
미해결스프링 부트 - 핵심 원리와 활용
톰캣에 배포 후 test가 안떠요
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (아니오)[질문 내용]톰캣에 배포 후 test가 안떠요 index.html은 이렇게 뜨는데 /test했너니 404가 떠요 코드에서 오류가 있는걸까요..?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
@Bean과 컴포넌트 스캔 차이에 대해
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]1. 강의 내용과 관련된 질문인가요? 네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 네3. 질문 잘하기 메뉴얼을 읽어보셨나요? 네 SpringConfig 클래스에 bean 주입하고 관리하면 추상화의 장점을 살릴 수 있다고 하면 Service단이나 repository 단에 @Service와 @Repository로 컴포넌트 스캔을 하는 것보다 SpringConfig 클래스에서 @Bean으로 클래스들 관리하는게 더 좋은가요?? 실무에서는 @Bean을 통해서 스프링 빈에 직접 주입하고 관리하나요?
-
미해결Practical Testing: 실용적인 테스트 가이드
현업에서도 TDD를 적극 활용하시는지 궁금합니다.
우빈님 강의에서 말씀해주신 것 처럼 TDD를 활용하면 테스트 코드를 먼저 작성하기 때문에 테스트에 대한 강제(?)할 수 있으며, 엣지 케이스에 대한 식별을 빨리 할 수 있어 많은 장점이 있다고 생각합니다. 제가 생각했을 때는 TDD를 활용하지 못하는 상황은 시간적 여유가 없을 때라고 생각되는데 이 외 다른 이유도 있을까요? 또한, 우빈님께선 평소 TDD를 활용하여 프로덕션 코드를 작성하는지도 궁금합니다.(개발 기간이 부족할 때도 테스트 코드를 무조건 작성하는지도 궁금합니다😀)
-
미해결코틀린 문법부터 실무까지 (실전 자바->코틀린 변환)
IntelliJ IDEA 문의
안녕하세요. 강의전 IntelliJ IDEA Ultimate 학생 라이센스 가능하다고 해서 수강신청을 하게 되었는데요. 해당 툴에 대한 설치 가이드가 보이지 않습니다. 학생신분이 아니기에 웹메일 인증이 어려울꺼 같은데요. 무료라이센스 사용가능한 방법을 알려주시면 감사하겠습니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
영한님께서 버전을 올려가며 가르쳐주시는데
그 버전들을 모두 꿰뚫고 있어야 할까요, 이런 과정이 있었다 정도로만 알고있으면 될까요? 어느정도의 학습이 필요할지 궁금합니다.
-
미해결스프링 프레임워크는 내 손에 [스프1탄]
Oracle을 연결하고 싶은데, sql파일을 만들고나면...
Oracle을 연결하고 싶은데, sql파일을 만들고나면... 상단창에 Type을 Oracle로 지정해도 Name과 Database가 뜨지 않습니다. lib 폴더 만들어서 ojdbc6.jar 드라이버도 넣어 놨고, tnsnames.ora에 XE = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = 127.0.0.1) (PORT = 1521) ) (CONNECT_DATA = (SERVER = dedicated) (SERVICE_NAME = orcl) ) )도 추가해두었습니다.pom.xml에는 다음과 같이 dependency도 추가하였습니다.<!-- Servlet --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>javax.servlet.jsp-api</artifactId> <version>2.3.1</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.0.2.RELEASE</version> </dependency> <dependency> <groupId>com.zaxxer</groupId> <artifactId>HikariCP</artifactId> <version>3.4.1</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.6</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.3.2</version> </dependency> 뭐가 문제일까요 선생님?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
메서드 구현부 이동
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 컴포넌트 스캔과 자동 의존관계 설정 영상 학습중 강사님은 메서드에 파란 밑줄이 그어져 클릭하면 구현부로 바로 이동 하는 걸 봤는데 제 인텔리제이 코드에는 밑줄이 그어지지 않아 클릭을 해도 이동이 안됩니다. 저는 command + b 단축키로 이동하는데 혹시 저렇게 뜨게 할려면 어떻게 해야 하는지 알 수 있을까요저는 ultimate 버전을 사용중인데도 안 뜨네요
-
해결됨Practical Testing: 실용적인 테스트 가이드
@SQLRestriction으로 논리적 삭제 필드에 대한 tearDown에 대해 궁금합니다.
안녕하세요.강의를 들은 후 테스트 코드 작성을 연습하고 있습니다.엔티티에서 Soft delete를 위한 필드(isDeleted)가 정의되어 있습니다.Soft delete가 된 데이터는 조회할 필요가 없기 때문에 엔티티에 @SQLRestriction("is_deleted = false")를 정의했습니다.테스트 코드에서 해당 어노테이션 때문에 tearDown() 메서드 동작시 문제가 발생했습니다..deleteAllInBatch()가 실행될 때, where 조건이 포함되기 때문에 데이터가 삭제되지 않습니다. 상품 목록 조회에 대한 테스트 코드를 작성할 때, soft delete 된 데이터는 빠지고 정상적인 데이터만 조회되는지 보려고 isDeleted = true 값을 준 테스트 데이터도 생성해서 테스트 코드를 작성했습니다. 해당 경우에는 어떤식으로 테스트 코드를 작성해야 할까요? isDeleted = true 테스트 데이터를 만들지 않는다.@SQLRestriction("is_deleted = false") 를 사용하지 않고, 쿼리 조회 시 IsDeletedTrue 조건을 주도록 한다.위 방법이 아닌 Best Practice가 있는지 궁금합니다. 아래는 테스트 코드 예시 입니다.@SQLRestriction("is_deleted = false") 적용된 엔티티 예시입니다.@Entity @SQLRestriction("is_deleted = false") @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Product extends BaseDateTimeEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "product_id") private Long id; @Column(length = 50) private String name; private Boolean isDeleted; @OneToMany(mappedBy = "product", cascade = CascadeType.ALL) private List<ProductOption> productOptions = new ArrayList<>(); // ... 중략 }@Entity @SQLRestriction("is_deleted = false") @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class ProductOption extends BaseDateTimeEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "product_option_id") private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "product_id") private Product product; @Column(length = 30) private String name; private Boolean isDeleted; // ... 중략 } isDeleted = true 테스트 데이터를 포함한 테스트 코드 예시입니다.class ProductServiceTest extends ServiceTestSupport { @Autowired private ProductRepository productRepository; @AfterEach void tearDown() { productOptionRepository.deleteAllInBatch(); productRepository.deleteAllInBatch(); } @Test @DisplayName("상품 목록을 조회한다.") void getSellingProducts() throws Exception { // given ProductOption productOption1 = createProductOption("옵션1", false); ProductOption productOption2 = createProductOption("옵션2", false); ProductOption productOption3 = createProductOption("옵션3", false); ProductOption productOption4 = createProductOption("옵션4", true); // isDeleted = true ProductOption productOption5 = createProductOption("옵션5", false); ProductOption productOption6 = createProductOption("옵션6", true); // isDeleted = true Product product1 = createProduct("상품1", false, List.of(productOption1, productOption2)); Product product2 = createProduct("상품2", false, List.of(productOption3, productOption4)); Product product3 = createProduct("상품3", true, List.of(productOption5, productOption6)); // isDeleted = true productRepository.saveAll(List.of(product1, product2, product3)); // ... 중략 // when List<product> products = productService.getSellingProducts(); // then // ... 중략 } // ... 중략 } deleteAllInBatch() 메서드가 실행된 후 로그 입니다.Hibernate: delete from product_option where ( product_option.is_deleted = false ) Hibernate: delete from product where ( product.is_deleted = false ) org.springframework.dao.DataIntegrityViolationException: JDBC exception executing SQL [delete from product where (product.is_deleted = false)] [Referential integrity constraint violation: "FKN4HMM6EX1VGN60C6UIQTE400F: PUBLIC.PRODUCT_OPTION FOREIGN KEY(PRODUCT_ID) REFERENCES PUBLIC.PRODUCT(PRODUCT_ID) (CAST(3 AS BIGINT))"; SQL statement: delete from product where (product.is_deleted = false) [23503-224]] [n/a]; SQL [n/a]; constraint ["FKN4HMM6EX1VGN60C6UIQTE400F: PUBLIC.PRODUCT_OPTION FOREIGN KEY(PRODUCT_ID) REFERENCES PUBLIC.PRODUCT(PRODUCT_ID) (CAST(3 AS BIGINT))"; SQL statement: delete from product where (product.is_deleted = false) [23503-224]] 감사합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
logging.level.org.apache.coyote.http11=debug 설정 적용이 안되는 것 같습니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.강의 내용대로 logging.level.org.apache.coyote.http11=debug 설정을 적용하였는데 콘솔에 관련 로그가 출력이 안됩니다. 스프링부트 버전업 이후에 더이상 해당 설정을 지원 안하는걸까요?스프링부트 버전 : 3.2.3패키징 : War자바 버전 : 17의존성 : 강의에 나온대로 추가했습니다빌드 및 실행, 테스트 : 인텔리제이요청 url : http://localhost:8080/hello?username=김아래는 설정 적용 후 로그 출력 사진입니다
-
미해결스프링 핵심 원리 - 기본편
인텔리제이 코드창 및 core패키지 초기화 오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]첫 번째 사진의 화면에서 강의에 나와있는대로 CoreApplication 클래스의 코드를 실행 할 겨우 밑에 있는 사진 처럼 콘솔창은 정상적으로 작동하는거 같지만 코드 창이 초기화면 으로 돌아가는 오류가 발생합니다. 또한 command+tab을 하여 다른 창을 보고 다시 인텔리제이로 돌아 올 경우 밑에 사진처럼 core 패키지가 사라졌다 조금 기다려야 다시 나옵니다.인텔리제이를 삭제 후 재설치 해보기도 하였고 인텔리제이 파일 창에서 캐시삭제와 설정 초기화도 해보았지만 해결되지가 않습니다 ㅠㅠ 제발 해결방법 좀 알려주시면 감사하겠습니다.추가로 그냥 코드창을 띄어놓고 알트탭하여 인터넷창을 보고 돌아와도 코드창이 위 화면처럼 사라지며 core패키지가 사라졌다 다시 생깁니다. 참고로 스프링은 Gradle-groovy 프로젝트spring boot : 3.2.3 버전packaging : jarjava : 21로 ppt 와 강의 내용 그대로 설정하였습니다.제발 부탁드리겠습니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
연관관계 편의메서드 개인질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 있긴한데 좀 다릅니다3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]연관관계 편의메서드와 관련된 질문입니다.public void setMember(Member member) { this.member = member; member.getOrders().add(this);}public void addOrderItem(OrderItem orderItem) { orderItems.add(orderItem); orderItem.setOrder(this);}public void setDelivery(Delivery delivery) { this.delivery = delivery; delivery.setOrder(this);}공부하던 도중 일대다, 다대일, 일대일 연관관계 매서드가 모두 다른 것을 발견했습니다. 제 궁금증은 다대일에서는 왜 meber.getOrders().add(this)로 세팅하고 일대일이나 다대일에서는 orderItem.setOrder(this)로 세팅하는지 궁금한 것 입니다.커뮤니티에 관련 질문을 찾던 도중 jpa 기본편을 보시라고 하셨는데 위치를 못 찾겠습니다. 알려주시면 감사하겠습니다.추가로 제가 자바의 List의 메소드에 대한 이해가 부족해서 모르는가 싶기도 한데 그게 맞을까요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
html의 name을 보고 어떻게 member.java가 아닌memberform.java의 name으로 연결을 시켜주는건가요??
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]어떻게 creatememberform.html의 name만 보고 스프링이 controller의 memberform name필드에 넣어줄수 있는것인지 궁금합니다. domain의 member.java에도 같은 이름의 name 필드가 있는데 이것도 같은 private 변수여서요.. package hello.hellospring.domain; public class Member { private Long id; private String name; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
-
해결됨스프링 핵심 원리 - 기본편
예제의 라이프사이클 질문있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]LifeCycleTest에서 networkClient가 빈으로 등록되는 순서가1. new NetworkClient()로 NetworkClient 인스턴스 생성 (ulr=null)2. setUrl을 통해 1에서 생성된 인스턴스의 url 설정3. 스프링 컨테이너에 빈 등록이 순서로 이해했습니다. 스프링 빈의 라이프사이클이스프링 빈 생성 -> 의존관계 주입 -> 초기화 콜백 -> 사용 -> 소멸전 콜백 이 순서인데 이 강의의 예제에서 의존관계 주입은 없으니까 바로 초기화 콜백인 init()이 실행되고, 사용 또한 하지 않으니 바로 소멸전 콜백인 close()가 실행 되는 것으로 이해하면 될까요? 정리하면 networkClient 빈 생성 -> x -> init() -> x -> close()이 순서가 맞는지 확인 부탁드립니다!
-
미해결스프링부트 시큐리티 & JWT 강의
로그인 성공 이후의 경로
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 1.postman에서 /login경로로 로그인 시도를 하여 성공하였는데, 로그인 성공 이후에는 어떤 경로로 이동하게 되는건가요?만약 리액트와 협업을 하여 로그인 기능을 구현한다면 로그인 화면에서 아이디와 비밀번호를 치고 로그인을 시도해야하는데 그 경우에는 경로를@PostMapping("/login")public void login(User user) {}이런식으로 해야하는건가요?
-
미해결Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트
Util성 클래스와의 비교
안녕하세요 좋은 강의 만들어 주셔서 감사합니다. 많은 분들이 비슷한 질문을 해주신 것으로 생각되는데, Util성 클래스와 Holder인터페이스를 구현한 구체클래스의 의존주입의 사용 기준에 대해 여쭤보려고 합니다. 강의에서 예로 들어주신 SystemClockHolder의 경우 많은 예제에서 Util클래스로 만들어 사용할 것이라고 생각됩니다.하지만 이렇게 되면 강의에서 말씀해주신 것처럼 메소드 내부에 사용자가 예측할 수 없는 값이 들어가게 되어 테스트하기 어려워지는 신호가 될 수 있다고 생각합니다. 반면 이러한 Holder가 너무 많아질 경우 서비스 계층에서 의존주입 받아야할 Holder가 너무 많아지지는 않을까 하는 고민도 되었습니다. 강사님께서는 어떤 기준으로 Util클래스와 인터페이스 기반의 의존주입 클래스를 구분하시는지 궁금합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
h2 org.hibernate.orm.jdbc.bind: trace관련 질문
강의 보았을때 org.hibernate.orm.jdbc.bind: trace을 추가하면 insert 구문을 트레이스에서 볼 수 있었는데 제가 하니까 다른 형태로 나와서 질문 남깁니다.이것은 왜 그런 것일까요?혹시모르니 yml파일 내용도 첨부해 봅니다.spring: datasource: url: jdbc:h2:~/jpashop username: sa password: driver-class-name: org.h2.Driver jpa: hibernate: ddl-auto: create properties: hibernate: # show-sql: true format_sql: true logging: level: org.hibernate.orm.jdbc.bind: trace org.hibernate.SQL: debug
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
강의 자료 코드 질문
11:45초에 나오는 코드인데요.이 html 코드랑 강의 자료 코드랑 다른 것 같아 질문드립니다. 강의자료에는 다음과 같네요.<div class="col"> <form th:action="@{/logout}" method="post"> <button class="w-100 btn btn-dark btn-lg" type="submit"> 로그아웃 </button> </form> </div>
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
터미널에서 spring 프로젝트 실행 관련 질문입니다.
tomcat 설치 후 spring 프로젝트를 터미널에서 "mvn tomcat:run" 명령어로 실행하는데,프로그램 자체는 실행되지만 웹에 접속되진 않습니다.intellij에서 tomcat server 환경에서 접속할땐 잘 실행이 되었는데,터미널에서 실행하려니 잘 되지가 않습니다.다음이 spring 웹서버 링크에 접속했을때의 에러인데, 찾아보니 "javax.servlet-api의 버전이 맞지 않아서 발생한다." 라고 하면서 <dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version><scope>provided</scope></dependency>를 <dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency>로 바꾸어주라는 내용을 보고 시도해보았지만 잘 되지 않았습니다.'혹시 tomcat를 켜두고 "mvn tomcat:run" 명령어로 서버를 시작해야하나?' 라는 생각을 하고선 이또한 진행해봤지만 이미 8080서버가 열려있다는 문구가 뜨면서 오히려 실행 도중에 멈추더라구요. intellij 외의 환경에서도 빌드가 가능해야할것같은데 고민입니다. Intellij에서 해당 프로젝트를 실행할때 이용한 Tomcat server의 설정을 함께 첨부합니다.
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
h2 에 저장이 안 되는 거 같은데 문제가 무엇일까요??
안녕하세요! 강의를 수강하고 있는 수강생입니다. 홈페이지는 정상 작동이 되는데, h2에 mbmer가 저장이 되지 않습니다. 뭐가 문제인지 알 수 있을까요?<MemberFormController>