이야기를 나눠요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
jpql 무차별 사용에 대해
jpa(spring data jpa)를 이용해 프로젝트를 구현중입니다.테이블 연관관계 때문에 다수의 테이블에 join을 해야하는데, n+1문제가 있고 성능상 jpaRepository를 상속받은 순수 jpa를 이용하기 어렵다고 판단되어 거의 대부분을 jpql을 사용해 구현하고 있습니다. 실제 실무에서도 jpa를 사용하는 프로젝트는 거의 대부분을 jpql을 사용하는지,만일 아니라면 어떤식으로 해결하는지 궁금해서 문의드립니다!
-
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
연관관계를 많이 가지는 엔티티의 테스트
안녕하세요 영한님영한님 강의들을 통해서 스프링이 무엇인지도 몰랐던 저는 이제 팀을 만들어 프로젝트를 하고 개발이라는 것에 즐거음을 느끼고 있는 개발 취준생입니다.최근 프로젝트를 진행하면서 JPA 사용하는 중에 테스트 코드에서 어려운 부분이 있어 너무 궁금하여 질문을 남깁니다. 저는 물류 관리 시스템의 주제로 프로젝트를 진행하고 있습니다.이 과정에서 엔티티과 연관관계를 복잡하게 가지고 있고 이로 인해서 서비스 테스트 코드 하나를 테스트하기 위해 많은 사전 데이터가 필요한 상태입니다.테스트 코드를 작성하기 위해서 많은 Mock 데이터가 필요한 문제점을 해결하기 위해서 실무에서는 어떤 식으로 이런 문제를 해결하는지 궁금합니다. 혹시나 이 글을 보신다면 답변 해주시면 정말 감사하겠습니다. ㅠㅠ👏👏
-
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
실제 개발할 때의 마음가짐에 대해 질문드립니다.
Q. 실제 개발시에는 메서드가 하나 추가될 때마다 테스트해줘야 하는 것 맞을까요?강의 상에서는 Order, OrderItem 코드 작성하시는 순서가 되게 유기적으로 매끄럽게 구성되어있는데요. 실제 코드 작성할 때는 실수도 나올 수 있고, 특정 메서드에 어느 클래스에 위치해야하는 게 좋을지에 대한 고민같은 것이 동반될 것 같다는 생각이 들 것 같다는 생각이 듭니다(실제로도 그래왔던 것 같구요).좋은 강의를 수강하다보니 새로운 상황을 혼자 맞이할 때 막막한 순간에 어떤 마음가짐을 가져야할 지 고민이 되어 질문드립니다.p.s) 지금은 열심히 완강을 향해 달려가고 있는 중이라 강의평을 남기지 못하고 있는데, 여유가 되면 감사 인사 꼭 드리도록 하겠습니다. 항상 고마워요 영햔님....
-
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
테스트 환경에서 h2 db 를 사용하는 경우 실용성에 대하여
테스트 환경에서 h2 메모리 db 를 사용하는 방식에 대한 실용성 관련 고민이 있습니다. 프로젝트를 진행하다보면 기본적으로 orm 기반으로 구현을 하지만 일부 예외적인 기능들은 특정 dbms 에 의존적인 쿼리를 직접 실행하는 경우가 불가피하게 발생하는 듯 합니다. 이 경우 특정 dbms(예를들어 mysql) 에 대한 의존성이 발생할 수 밖에 없는데요. 이때 운영 dbms 와 다른 메모리 db(h2) 를 사용하여 테스트를 작성하게 불가능해지고 결국엔 실환경과 동일한 테스트용 db 를 세팅하는식으로 다시 변경하게 되는 듯 합니다. (결국 메모리 db 를 이용한 간단한 테스트를 사용할 수 없는 상황) 실무적인 차원에서 이런 경우 보통 어떤 방식으로 해결하는게 최선일지 궁금합니다.
-
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
목록을 보는 회차에서 zipcode가 안불러와지는 이유가..?
앞선 수강생처럼 Whitelabel Error PageThis application has no explicit mapping for /error, so you are seeing this as a fallback.Mon Oct 30 21:40:32 KST 2023There was an unexpected error (type=Internal Server Error, status=500).An error happened during template parsing (template: "class path resource [templates/members/memberList.html]")org.thymeleaf.exceptions.TemplateInputException: An error happened during template parsing (template: "class path resource [templates/members/memberList.html]") 여기서 zipcode받는 부분을 html부분에서 빼고 받지 않으면 실행이 됩니다. 그런데 zipcode를 받는 부분이 문제가 없어보이는데... 계속 검토중이긴 합니다만..혹여나아시는게 있을까 싶어서..
-
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
연관관계질문
임녕하세여 질문잇습니다쌤이 밀하시길 단방향으로 설계를 하는게 좋다고랫는데 주문 과 주문아이템은 양방향으로 하신이유가잇을까요??
-
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
해당 강의 수강 후 spring mvc 프로젝트
안녕하세요 강사님 !spring boot를 사용해서 프로젝트를 만든 경험은 있지만 주변 실무자들이 제가 구현한 방식이 올드한 편이라는 피드백을 받고 강사님 spring 기본편과 jpa 해당 강의를 수강하고 있는 학생입니다 !저는 보통 냅다(?) 코드를 치면서 전체적인 흐름을 공부한 뒤 이해가 안 가는 부분을 찾아보는 편이라 스프링 강의를 순차적으로 다 듣는 대신 jpa 강의를 먼저 수강 중인데요.해당 강의를 다 수강한 뒤에 jpa를 활용한 spring 프로젝트 강의를 듣고 난 후 해당 강의를 다시 보고 이 다음 jpa활용 2편을 들으려 합니다.spring 로드맵에서 어떤 강의를 듣는게 좋을지 추천해주실 수 있을까요 ?
-
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
snapshot이 안 뜹니다...
20분 30초 쯤에 gradle clean build까지 잘 되고 libs까지 이동했는데 그 후에 snapshot은 없고 snapshot-plain만 생성돼있네요...snapshot이 생성되지 않는 이유가 뭔지 알 수 있을까요..?
-
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
데이터 베이스 설계
데이터 베이스 설계를 처음 접해봐서 설계 부분이 너무 어렵네요 ㅠㅠ db 설계 같은건 어떻게 공부할 수 있을까요??
-
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
안녕하세요 스프링부트 JPA 관련 질문드립니다!
JPA 강의에서 EntityManagerfactory를 하나 만들어서 EntityManager가 필요할때마다 만들고 close()하는 방식으로 해야한다고 들었는데 스프링 부트에서는 private final EntityManager em; 이렇게 등록된 Bean에 대해서 의존성을 주입해서 만들게되면 문제가 없나요?? 이렇게 private final EntityManager em;로 하는 방식도 해당 객체가 생길때마다 새로 em이 만들어지는건가요??
-
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Lombok으로 인한 jar build failed 발생하시는 분
test path에서 Lombok을 사용할 경우, jar Build 과정에서 Lombok으로 인한 Build Failed가 발생합니다.(CMD) Task :compileTestJava FAILED error: package lombok does not exist error: cannot find symbol @Getter, @Setter, ... ... 해당 경우, 아래와 같이 build.gradle에 의존성을 추가하면 해결 가능합니다. 참고하시면 좋을 것 같습니다.(build.gradle) dependencies { testCompileOnly 'org.projectlombok:lombok:1.18.22' //테스트 환경에서 주입 testAnnotationProcessor 'org.projectlombok:lombok:1.18.24' //테스트환경의 어노테이션 주입 }
-
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
h2연결이 안됩니다.
안녕하세요. 강의대로 h2 설치 및 실행, yml설정, 엔티티, 레파지토리, 테스트 실행했을 때, 쿼리가 날라가지 않습니다 ㅠㅠ실행은 잘되지만,콘솔에 테이블이 만들어지지 않습니다 ..application.yml은spring: datasource: url: jdbc:h2:tcp://localhost/~/test username: sa password: driver-class-name: org.h2.Driver jpa: hibernate: ddl-auto: create properties: hibernate: format_sql: true show_sql: true logging: level: org.hibernate.sql: debug이렇게 작성했습니다.build.gradle도 추가해주었습니다.왜 h2과 연동이 안되는지 아무리 찾아도 없습니다 ㅠㅠ
-
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
안녕하세요 해당 강의를 보고 토이프로젝트를 진행하다 궁금한 점이 생겨 질문드립니다.
안녕하세요 항상 강의 잘 보고 있습니다.다름이 아니라 영한님의 jpa강의를 토대로 제가 하는 토이프로젝트에 적용하는 과정에서 궁금한 점 몇가지가 생겨서 질문드립니다.application.yaml파일에서 ddl-auto: create-drop으로 했을때 콘솔창에서는 해당 테이블이 없다면서 자꾸 오류가 났었습니다(콘솔에서는 오류가 나오나 DB상으로는 적절하게 테이블이 생성되었음). 그러나 먼저 ddl-auto: create로 해당 테이블들은 생성해놓고 그 다음 update를 하니 오류없이 동작했습니다. 강의를 들을때는 그러지 않았던것 같았는데 원래 이런건가요? 영한님께서 강의 도중 다대다 관계는 1대다, 다대1 관계로 풀어서 진행하라고 하셨던 기억이 납니다. 그렇게 하는 이유에 대해서는 이해를 하였습니다. 저는 기존의 관계형 데이터 베이스에서는 기존의 다대다 관계를 이루고 있던 테이블들의 pk를 가져와서 새로운 테이블에 FK로 넣었고 이러한 두개의 FK를 묶어서 하나의 PK로 만들었습니다. 그러나 강의에서는 기존의 테이블들을 이어주는 테이블에 FK로 넣어주기는 하였으나 아예 새로운 PK를 만들어서 강의를 진행하시던 기억이 납니다. 여기서 제가 궁금한 점은 기존에 제가 했던 방식대로 하려면 @Embedable으로 복합키를 만들어서 진행을 해야할까요? 아니면 기존 하던 방식 말고 새로운 PK를 만들어서 진행하는 방식이 훨씬 깔끔할까요? 제가 진행하는 토이프로젝트의 환경은 aws ec2를 사용하고 있으면 DB는 mariadb를 사용하고 있습니다. 자바 버전은 17입니다.
-
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
junit5에서는 @Test 에노테이션에서 expected를 지원하지 않는 것 같습니다.
Assertions.assertThrows(IllegalStateException.class, () -> { memberService.join(m2); // Exception 터져야 돼. }); 혹시 junit5 쓰시는 분들은 위와 같이 수정하여서 돌려도 괜찮은 것 같습니다.
-
따라하며 배우는 리액트, 파이어베이스 - 채팅 어플리케이션 만들기[2023.12 리뉴얼]
rest vs FB 설명은 어디에서도 정리안해주는 내용인데 좋네요!
rest vs FB 설명은 어디에서도 정리안해주는 내용인데 좋네요!