[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] Spring Data JPA에 있는 인터페이스를 사용하는 경우가 많이 보이는데 강의에서는 EntityManager를 주입받아서 직접 구현하는 방식으로 설명해주신 이유가 궁금합니다.
회사 규모상 프로젝트를 혼자서 개발하는 경우, 강의의 내용을 적용해서 도메인 문서를 만드는 것이 개발에 대한 정리나 추후 다른 사람이 봤을 때 도움이 될 수는 있으나, 당장 시간에 쫓기기도 하고 다른 사람의 피드백 없이 혼자서 정리하다 보면 잘 정리하기 힘들다는 생각이 되는데요. 이런 상황에서의 정리는 오히려 도움이 안될 수도 있다는 생각이 드는데, 토비님께서는 어떻게 생각하시는지 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] JPA 공부 중 프록시 객체부분에서 혼란이 있습니다. em.getReference()로 가져온 객체는 실제 엔티티가 아니고 프록시라는데, == 비교 시 언제 같고 언제 다른가요? 프록시 객체는 언제 실제 엔티티로 초기화되나요? (예: 필드 접근 시점? 트랜잭션 종료 시점?) 만약 영속성 컨텍스트에 이미 로드된 엔티티가 있을 때, em.getReference()를 호출하면 어떤 객체를 반환하나요?
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요! 먼저 유사한 질문이 있었는지 검색해 보세요. 서로 예의를 지키며 존중하는 문화를 만들어가요. 안녕하세요. 좋은 강의 재밌게 수강하고 있습니다! 강의를 들으면서 의식적으로 테스트 코드를 작성하기 위해 노력하고 있습니다. 학습하다 보니 테스트 코드에 대한 부분을 정량적인 지표로 활용할 수 있는 커버리지라는 지표가 있다는 것을 알게 되었는데요. 제가 개발하는 부분은 도메인이 복잡한 프로젝트는 아니다 보니, 주로 Service Layer와 Presentation Layer 위주로 작성하게 되더라구요. queryDSL이나 native query를 이용해 복잡한 쿼리를 작성하게 되면, 가끔 Persistence Layer까지 작성하게 되는 것 같습니다. 그러다 보니, 도메인 패키지가 아닌 Config 등 global 패키지에 존재하는 코드나 Persistence Layer의 테스트 코드가 커버리지가 낮고, Persistence Layer의 커버리지도 낮아서 그런지 보통 프로젝트의 라인 커버리지가 60% 전후를 기록하고 있는 것 같습니다. 우빈님께서는 커버리지를 어떤 식으로 활용하시는지 궁금합니다! 커버리지 자체를 신경쓰기 보다는 말씀해주신 대로 미래를 위해 의미가 있는 테스트 코드를 작성하고 싶은데, 커버리지도 활용하는 방법이 있는지? 그리고 주로 어떤 레이어 위주로 테스트 코드를 작성하시는지 궁금합니다! 읽어주셔서 감사합니다.
안녕하세요. 현재 공식 Querydsl이 활발히 관리되는 것 같지 않아 OpenFeign에서 포크한 6.x 버전을 사용해 진도를 따라가고 있습니다. 당장은 Jakarta/Hibernate 최신 버전과 지원 문제도 있는 것 같고, orderBy 관련 SQL/HQL 인젝션 계열 취약점이 있는것 같아서 5.x 버전을 쓰고 있는데요.(물론 order by 관련해서 사용자에게 입력 받는 상황은 정말 드문 케이스 같긴 하네요) 장기적으로는 포크 버전의 유지·보수나 향후 호환성 측면이 조금 걱정됩니다. 이 상태로 6.x 포크 버전을 계속 따라가도 괜찮을지, 아니면 안정적인 5.10 계열(공식 안정 버전)로 머무르거나 돌아가는 게 나을지 의견 부탁드립니다!
application.properties 파일에 spring.devtools.restart.enabled=true spring.thymeleaf.cache=false 각각 자바코드, 타임리프코드 수정 시에 서버를 재시작 안해도 수정사항이 자동 적용시키는 거라고 이해를 했는데 실제 해보니까 자동 적용이 안되는데 추가적으로 설정을 해야하는 부분이 있을까요?? 그리고 혹시 강의 듣고 제 나름대로 정리해서 내용을 블로그나 노션에 올리거나 강의 들으면서 친 코드를 깃허브 private 레퍼지토리에 올리는게 가능할지 문의드립니다.
안녕하세요 토비님. 강의에서 말씀하신 공부할 때는 AI 관련 도구를 끄고 지식을 습득 해야 한다는 부분이 인상 깊었습니다. 이전에도 공부와 실무 사이에는 늘 간극이 있었고, 이번 강의는 그 간극을 인지하고 실무적인 관점에서 방향을 잡을 수 있도록 도와주신다고 느꼈습니다. 그런데 요즘은 AI가 빠르게 보편화되면서, 공부와 실무의 관계가 또 다른 형태로 변화하고 있는 것 같습니다. 실제로 신규 업무나 개인 프로젝트에서 AI의 활용 방식과, 기존 시스템을 지속적으로 개선하거나 확장하는 과정에서의 AI의 활용 방식이 다르게 느껴집니다. 이런 변화 속에서 AI를 새로운 학습 형태이자, 학습과 실무를 잇는 새로운 도구로 봐야 할지, 아니면 보조적인 수단으로 바라봐야 할지 고민됩니다. 토비님은 실무에서 AI를 어떤 방식으로 활용하고 계신지, 그리고 이 시대의 개발자가 어떤 균형점을 가져야 한다고 보시는지 궁금합니다.
5년차 백엔드 개발자 이며 현재 섹션5. 헥사고날 아키텍처의 사실과 오해를 학습하고 있습니다. 현업에서 신규 프로젝트를 준비 하면서 어떤 아키텍처를 가져가는 것이 좋을지 고민중에 강의를 접하게 되었습니다. 부동산 관련 데이터를 기반으로 한 서비스를 개발 및 설계 단계에 있습니다. 제가 전부 리드하는 것은 아니지만 프로젝트 전반적인 부분을 개발 리드분에게 권한을 받고 저와 팀원 둘이서 백엔드 구조를 설계 하고 있습니다. 수천만건 그 이상이 될 수 있는 데이터를 기반으로한 서비스를 계획 및 설계하고 있는데, 자바 스프링으로 서버를 구축 하려고 하는데 헥사고날 아키텍처를 저와 팀원은 경험 하지 못하였는데, 확장성 있는 서비스를 만들기 위해 헥사고날 아키텍처 기반으로 어떤 구조 설계를 하는 것이 좋을지 ,,, 조언 부탁드립니다.
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요! 먼저 유사한 질문이 있었는지 검색해 보세요. 서로 예의를 지키며 존중하는 문화를 만들어가요. BDD 설명하시면서 개발자가 아닌 사람이 봐도 이해할 수 있을 정도의 추상화 수준을 권장한다고 하셨는데요 작성한 테스트를 따로 문서화 하기도 하시는지 궁금합니다!
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요! 먼저 유사한 질문이 있었는지 검색해 보세요. 서로 예의를 지키며 존중하는 문화를 만들어가요. 단위테스트할때 항상 궁금했던 점이 단순한 CRUD도 테스트코드를 구현해주는 게 맞는걸까요? JPA 기능을 그대로 적는? 느낌이 나서 굳이 필요한 테스트코드인가 하는 생각이 항상 드는데 왜 구현했는지에 대한 시나리오를 @DisplayName 적곤 하지만 뭔가 불필요하다는 생각이 가끔 들기도 하는데 다 적는 게 맞는거겠죠??
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 여기에 질문 내용을 남겨주세요. 대부분을 jpa로 작성하고(jpql, QueryDSL), 극 소수의 안되는 것들에만 JDBC Templates, MyBatis를 이용하는 것으로 이해했습니다. 1) 그렇다면 가급적 Native Query는 사용을 지양하는게 좋을까요? Native Query를 사용해야할 정도라면 사실 JDBC Templates나 MyBatis를 이용하는게 나을테니까요. 2) 만약 그렇다면 MyBatis 등을 처리하기 위한 패키지를 따로 구분해서 처리를 하게 되나요? 이 경우에 .flush()를 처리하기 위해서 entityManager 인스턴스도 가져와서 따로 해줘야할 것 같은데, 구조가 조금 복잡해지지 않을까? 걱정 됩니다.
강의에서는 H2 인메모리 DB를 이용해 테스트를 진행하셨는데, 실무에서는 테스트 환경에서 실제 MySQL이나 PostgreSQL 같은 실제 운영 DB와 동일한 컨테이너 기반 테스트 DB를 사용하는 경우도 많은 것 같습니다. 실무에서는 인메모리 DB와 컨테이너 DB 중 어떤 상황에서 어떤 것을 선택하시는지, 선택 기준이나 장단점에 대해 조언을 받을수 있을까요?
안녕하세요. 빈약한 도메인 모델에 관하여 질문이 있습니다. 현재 개인적으로 진행하는 프로젝트에서 데이터 홀더 역할정도만 하는 빈약한 도메인 모델이 있습니다. repository에는 테이블의 상태 컬럼을 업데이트하는 메소드가 존재하는데 이를 도메인 모델 내부에 메소드를 만들어 업데이트하고 repository의 save를 통해 엔티티의 상태를 update하는 것이 강의에서 의도한 내용으로 이해했는데 맞을까요? 추가로 이런 경우(비즈니스 로직이 복잡하지 않은)에 꼭 도메인 모델이 없어도 될지 궁금합니다.