묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트
테스트 코드에서 @BeforeEach가 아니라 sql 사용하시는 이유 문의드립니다.
안녕하세요!실무에서 테스트 코드 적용을 위해 강의를 열심히 듣고 있는 중 궁금한 부분이 있습니다. 테스트코드 사용 시 @BeforeEach를 사용하는 경우도 있는데, sql로 초기 데이터 추가를 사용하시는 이유가 궁금합니다. 작은 서비스가 아니고 복잡한 서비스의 경우 sql로 넣는게 편할것 같기는 한데, 상태에 따라 id값이 필요한 경우도 있고, sql로 작성 시 테스트 마다 데이터가 적용이 동일하지 않을 것 같기도 해서 실제 복잡한 프로젝트에서 어떻게 사용하시는지 궁금해서 문의드립니다.@BeforeEach가 한눈에 들어오지 않아서 잘 사용하지 않으신다고 설명해 주시기는 했지만, SQL로 사용 시 조회 등의 테스트에서는 특정 상태의 데이터 id를 알아야 하고, 그럼 SQL에서 해당 데이터의 id값과 상태값을 다시 확인해야 하는 형태는 동일하게 한눈에 안 들어올 것 같아서 고민이 되더라고요. 저도 SQL로 초기 데이터를 추가하는 형태로 사용하다가 이후에 테스트 코드의 유지보수가 쉽지 않은 경험이 있어서 강사님께서는 복잡한 비즈니스의 실무에서는 어떻게 사용하시는 궁금합니다. 감사합니다.
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
빈 등록
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]기본적인건데 애매해서 질문드립니다. test코드에서 RepositoryV3와 ServiceV3_3를 @Bean으로 등록하지 말고 실제 RepositoryV3클래스와 ServiceV3_3클래스에 @RequiredArgsConstructor와 각각 @Repository, @Service를 추가해서 빈으로 등록을 해도 똑같이 내부에서 작동하는 것으로 봐도 괜찮을까요? test를 실행했을 때 오류가 발생하지 않아서 질문드립니다.
-
미해결
서비스 계층에서 응답 객체 생성 관련 커뮤니티의 생각이 궁금합니다
안녕하세요.Spring Boot를 사용하여 REST API를 구축하는 과정에서 응답 객체의 생성 위치에 대한 베스트 프랙티스에 대해 커뮤니티의 의견을 듣고자 합니다.일반적으로, 컨트롤러는 HTTP 요청을 처리하고 HTTP 응답을 반환하는 역할을 수행하며, 서비스 계층은 비즈니스 로직과 데이터의 처리를 담당합니다. 그러나 서비스 계층에서 직접 HTTP 응답 객체를 생성하고 이를 컨트롤러를 통해 반환하는 방식에 대해 고민 중입니다.이 방법은 서비스 계층과 컨트롤러 계층 사이의 경계를 모호하게 만들 수 있으며, 서비스 계층의 재사용성과 테스트 용이성에 영향을 미칠 수 있습니다. 반면, 일부 개발자는 이러한 접근 방식이 효율적이라고 주장하기도 합니다.저는 다음과 같은 질문을 가지고 토론을 시작하고자 합니다:여러분의 프로젝트에서는 서비스 계층에서 응답 객체를 생성하나요, 아니면 컨트롤러에서만 생성하나요?각 방식의 장단점에 대해 어떻게 생각하시나요?응답 객체를 생성하는 위치에 대한 결정 기준은 무엇인가요?개발 프로세스의 투명성과 효율성을 높이는 것이 목표입니다. 여러분의 경험과 지식을 공유해 주신다면, 이를 바탕으로 더 나은 아키텍처 설계 결정을 내릴 수 있을 것 같습니다.감사합니다. github discussions (https://github.com/soobinJung/JCK-World/discussions/27 )
-
해결됨Practical Testing: 실용적인 테스트 가이드
혹시 @AllArgsConstructor 를 지양하시는 이유가 빌더 패턴을 사용하기 위함인가요?
private @Builder 를 통해서 객체 생성을 주로 하시는 이유가 Builder 패턴의 장점을 위해서 사용하시는 건지 궁금합니다!
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
ObjectMapper 지원안함....
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.ObjectMapper는 자바8에서만 지원하고 이제 스프링부트 3.0으로 넘어오면서 자바17버전을 사용하고 있어서 ObjectMapper 가 사용이 안됩니다... ObjectMapper를 대채할 메소드가 있나요 ??
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
synchronized 사용 시 쓰레드 질문
synchronized를 사용하면 1개의 쓰레드만 이용한다고 말씀해주셨는데startTransaction(); stockService.decrease(id, quantity); endTransation();에서 왜 다른 쓰레드가 먼저 호출되는 상황이 발생하는건가요?이 부분이 이해가 잘 안됩니다
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
cascade, 연관관계 사용 기준 질문.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 강의 잘 듣고 있습니다.cascade,연관 관계를 사용하는 기준이 궁금해서 질문 글을 작성합니다.1.cascade 질문제가 이해한 바로는 엔티티를 영속성 컨텍스트 관리를 받기 위해 persist 등록하는 것이며 각 엔티티는 따로따로 persist를 해야 되는데 cascade를 사용하면 하나의 엔티티를 persist할 때 그와 연관된 엔티티를 같이 해주는 것으로 이해했습니다. Order 코드에서 OrderItem과 Delivery에 cascade가 적용됐는데 Member에는 적용을 안 하는 것 같더라고요. 왜 Member는 안 하는지 궁금합니다. 연관 관계 질문order와 연관된 엔티티 간에 연관관계 메소드를 통해 한쪽에서 서로 등록해주는 것은 이해가 가는데 Item과 Category간에는 어느 쪽에도 연관 관계 메소드가 없는 이유가 궁금합니다. Item과 Category 이 둘은 약간 상수? 느낌이라서 연관 관계를 지을 필요가 없는 것일까요? 답변 주시면 정말 감사하겠습니다.
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
34강 orphanRemoval 관련 질문입니다!
orphanRemoval 을 걸지 않았을 경우책6을 삭제했으나, userLoanHistories를조회해보면 여전히 책6이 존재한다.orphanRemoval = true 을 걸었을 경우클린 코드를 삭제했더니조회시 사라졌다어째서 orphanRemoval을 걸어주지 않으면데이터베이스에 반영이 되지 않는건가요? @Transactional어노테이션으로 인해 트랜잭션이 시작될 때,영속성 컨텍스트가 시작되고,영속성 컨텍스트의 4대 특징 중 하나인생성/수정 감지로 인해user 객체의 userLoanHistories 의 값에변경사항(removeOneHistory)이 발생하여자동저장이 될거라고 생각했는데 말이죠.. 실제 데이터베이스상에선 userLoanHistories 는user테이블의 필드가 아니기 때문에,영속성 컨텍스트가 관리하는 field 에 포함이 되지않는데orphanRemoval = true 를 걸어주면비로소 자신이 관리하는 field로 인식하는걸까요?원리가 너무 궁금해요.. 내용추가1)바로 다음 강의인 책 대출 리팩토링에선orphanRemoval 같은 옵션을 주지 않고도new userLoanHistory를 add한 내용대로 저장이 되는데,어째서 userLoanHistory를 remove하는것은orphanRemoval 옵션이 없으면데이터의 변경이 일어나지않는지 궁금합니다.. 제 생각에는 User에서 userLoanHistories.add를 하든 userLoanHistories.remove 를 하든둘 다 User와 UserLoanHistory 와의 연관관계를 이용한데이터를 변경하기위한 접근같은데 ..add는 되는데 remove는 안되는게 살짝 이해하기 어렵습니다 ㅠ 내용추가2)returnBook과 loanBook , removeOneHistory의 차이점이 뭘까 고민해봤는데returnBook 과 loanBook 은UserLoanHistory라는 Entity에 접근하는 과정(loanBook은 Entity객체생성, returnBook은 Entity의 property 수정)이 존재하고, removeOneHistory는 Entity에 직접 접근하는게 아니라 단순히 List에 대한 변경일뿐이고, Entity에 대한 직접적인수정이나 생성이 이뤄진것이 아니므로 데이터베이스의 변경이 일어나지 않았다.이렇게 이해했는데 제가 이해한 내용이 맞을까요?생각을 정리하다보니 질문이 길어진 점 죄송합니다 ㅠ
-
미해결스프링 핵심 원리 - 기본편
CoreApplication 실행이 안돼요
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]CoreApplication 실행하는 단계부터 안돼요ㅠ3시간까지 기다려봤는데 안되고 build파일이랑 gradle 파일까지 삭제해봤는데도 안되네요..
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
버전 3.2.2 테스트 오류 - 해결은 했지만 궁금한 점
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용] id 'java' id 'org.springframework.boot' version '3.2.2' id 'io.spring.dependency-management' version '1.1.4'java { sourceCompatibility = '17'}현재 쓰는 버전입니다.애플리케이션 실행에는 문제가 없지만 테스트시에 아래와 같이 오류가 뜹니다.Execution failed for task ':test'.> There were failing tests. See the report at: file:///C:/Workspace/jpa_%EA%B0%95%EC%9D%98/jpashop/build/reports/tests/test/index.html* Try:> Run with --scan to get full insights.Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.For more on this, please refer to https://docs.gradle.org/8.5/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.BUILD FAILED in 1s4 actionable tasks: 1 executed, 3 up-to-date이에 대한 해결 방법을 찾아 보던 중파일 - 설정 - 빌드,실행,배포 - gradle - 다음을 사용하여 테스트 실행 - IntelliJ IDEA 로 변경을 하여 해결하였습니다.해결은 했지만 왜 이와같은 오류가 일어났었는지 IntelliJ IDEA 로 테스트를 실행하도록 했을 때 왜 동작하는지 앞으로 다른 문제가 발생하지는 않을지 궁금합니다.
-
해결됨스프링 DB 2편 - 데이터 접근 활용 기술
@Slf4j 위치
문제가 있거나 하는건 아니고 궁금해서 여쭤봅니다! @Slf4j @SpringBootTest public class TxBasicTest {TxBasicTest 클래스에 @Slf4j를 작성 후, @Slf4j static class BasicService { ... }Service에서도 다시 @Slf4j를 작성하신 이유가 있을까요?Service에 @Slf4j가 없어도 Service안의 log는 정상적으로 출력되는 걸로 보이는데다른 이유가 있는지 궁급합니다!!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
테스트를 실행해도 db에 반영이 안되는 것 같습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.처음에 db delete 안 해주고 실행했을 때도 체크 표시가 떴고 delete 해주고 실행, db에서 회원 목록 조회하니 목록에 아무도 없습니다. test가 db에 연결이 안된 걸까요?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
수정이라는 작업을 할 때 PUT을 더 사용하는 이유가 있을까요?
HTTP 메서드에 처음 공부할 때 수정의 경우에는 PUT과 PATCH를 사용한다고 배웠는데요. PUT의 경우에는 통째로 갈아끼우는 방식의 갱신이고PATCH의 경우에는 부분 수정이 가능하다고 배웠습니다.이 강의에서는 USER의 정보중에 이름만받고 있어서(PUT은 전체 필드를 명시해주어야 한다고 배웠습니다.) PATCH가 더 적당한 방식이 아닌가라는 생각이 들었습니다. PATCH가 아닌 PUTMapping을 사용하신 이유가 있으실까요? 그리고 이와 관련된 블로그 글들이 많은데 저마다 내리는 결론이 달라서 조금 혼란스럽습니다. 강사님의 생각을 듣고 싶습니다.좋은 강의 만들어주신 태현님을 존중하고 존경하며 이만 글 줄이겠습니다!
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
예외 처리 질문드립니다.
[질문 내용]안녕하세요 해당 강의에서 LoginCheckFilter 구현 중에 try - catch 코드에서 질문이 있어서 글을 남깁니다. catch (Exception e) { throw e; // 예외 로깅 가능하지만 , 톰캣까지 예외를 보내주어야 함.}부분이 이해가 가질 않습니다. 톰캣까지 예외를 보내줘야하는 이유를 모르겠네요. 그리고 try 구문 내에서 return으로 다음을 진행하지 않고 끝을 내는 부분도 잘 와닿지 않습니다.제가 예외 처리 부분 개념이 약한 거 같은데, 위에 질문 드린 내용들을 뭐라고 검색하고 공부하면 좋을까요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
[프로젝트 실행하는 법] for 스프링 부트 3.2 이상 자바 버전 17 이상
start.spring.io 가서 새로 만드시는 게 더 편합니다. Group : helloartifact item-servicepackage name : hello.itemservicepackaging : JarDependencies- Spring Web- Thymeleaf- Lombok그리고 form-start에서 main하고 test 폴더 그대로 복붙하시면 유일하게 한곳에서 에러 뜹니다. 아마 TestDataInit 에서 에러뜨는데 import javax.annotation.PostConstruct;-> import jakarta.annotation.PostConstruct;이렇게 변경하세요 그럼 끝
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
@ManyToOne 매핑 질문입니다.
게시글과 댓글을 매핑 하려고 하는데 게시글에 어떤 댓글이 달렸는지 조회 하기 위해 게시글 -> 댓글 OneToMany 단방향 매핑을 하려고 했더니, @OneToMany는 지양하라고 해서 댓글에 @ManyToOne 매핑을 하려고 했는데요. 이러면 댓글->게시글 단방향이 되는 것 아닌가요? 게시글에 어떤 댓글이 있는지 확인을 하고 싶을 뿐인데 ManyToOne을 지양하는 이럴 땐 어떻게 해야하는지 궁금합니다 .. 매핑이 아니라 차라리 int communitySeq 를 멤버 변수로 갖도록 하고 jpql에서 join문을 통해 데이터를 가져오는 것이 맞을까요??
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
OpenJDK 64-bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended경고가 뜹니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)A. 네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)A. 아니요3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)A. 네[질문 내용]테스트 코드 실행을 하면OpenJDK 64-bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended이 경고가 계속 뜹니다.https://www.inflearn.com/questions/917150/openjdk-64-bit-server-vm-warning찾아보면서 이 답변을 따라해도 로그가 뜨지 않고 경고가 뜨는데 어떻게 해야하나요?
-
미해결
인텔리제이 단축키
문장 중간에서 문장 끝으로 옮기는 단축키를 강의에서 알려주셨는데, 기억이 안 나 다시 아무리 찾아봐도 어디 있는지 찾을 수가 없네요 ㅜㅜ문장 끝으로 옮겨서 엔터 바로 치고 다음 문장으로 넘어갈 수 있게 하는 경우가 많았습니다.exApplicationContext ac = new AnnotationConfigApplicationContext(TestConfig.class);여기서 ApplicationContext 자동완성하고 나서 현재 위치가 ac에 있다고 한다면이 단축키를 누르면 ;뒤로 이동하고그 다음 엔터 쳐서 다음 문장 바로 칠 수 있게 했었습니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
paramMap과 model
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 둘 다 request 파라미터에 관한 변수들 아닌가요??근데 왜 두 변수로 나눠서 사용하는 건가요??
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
어떻게 MemberForm 클래스가 선택이 되는지 과정이 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 강의 잘 듣고 있습니다. 재밌게 강의를 듣던 중 궁금증이 생겨 이렇게 질문 드리게 되었습니다. 7분40초~7분50초 쯤 설명에 의하면 "우리가 웹에서 입력한 name값이 MemberForm의 name 필드로 전달이 된다"라는 식으로 말씀을 하셨는데, 어떻게 Member 클래스가 아닌 MemberForm 클래스의 name을 찾아가게 되는 건가요?? 제가 워낙에 초보라서 그런지, 코드 상에서 "Member의 name이 아닌 MemberForm의 name을 찾아가도록 하는" 코드도 발견을 못하겠습니다.. 또한 다른 분들의 말씀에 의해서 질문을 드리고 싶은데, MemberForm 클래스에서 setName() 메서드가 사용이 안되는 것 같은데, 7분55초~ 8분 쯤의 설명으로는 setName() 메서드를 사용하시는 것처럼 말씀하시더라구요. 이 역시도 제가 잘 몰라서 그러는데 실제로 setName() 메서드가 사용되는 건가요?? 자세한 설명 부탁드리겠습니다.감사합니다:-)