묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
h2 설정 관련 질문이 있습니다.
안녕하세요. 영한님 JPA책을 구매해서 간단한 웹앱 만들기를 하고 있는데요, h2를 인텔리제이창 우측 탭부분에서 h2 url을 이용해서 연동을 시켜두었습니다. 현재는 jpa연습중이므로 간단한 회원엔티티와 회원리파지토리만 만들어서 crud를 연습하려고 하는데요, 회원가입 테스트는 통과되는데 결과값이 실제 h2에 반영이 안돼서 질문드립니다... 이 영상과는 거리가 다소 있지만.... 너무 답답한 마음에 질문드립니다.... 아직 여건이 안돼서 영한님 강의는 구매를 못했지만 꼭 구매할게요! 인텔리제이에서 h2를 연동할 때는 잘 됩니다. 연결 테스트도 통과됩니다. 또 제가 h2 ddl설정을 create로 주었는데요, 회원가입테스트를 실행하면 drop과 create쿼리는 날라가는데, h2 db에 테이블이 생성되지 않고 persist에 의한 Insert쿼리가 날아가지가 않습니다. @Transactional을 달았는데도 커밋이 되지 않는 것이 이해가 되지 않아서요. 테스트에 @Commit을 달아서 강제하면 insert쿼리가 날아가기는 합니다만, 디비에는 아무 값도 저장되지 않습니다. 새로고침을 해보아도 그대로이네요... 이 문제는 어떤 방식으로 접근해야 할지가 너무 궁금합니다..... h2는 homebrew로 설치하였고 버전은 1.4.200입니다. db 연결시에 특별히 오류가 발생하지는 않았습니다. https://github.com/yoonjoynow/blog/tree/master/src/main/java/me/yoon/blog 위 리파지토리에 현재 진행중인 코드 커밋해두었습니다 ㅠㅠ
-
미해결실전! 스프링 데이터 JPA
LazyInitializationException 에러 관련 질문 드립니다.
안녕하세요. LazyInitializationException 예외 관련 질문 드립니다. 우선 Employee 와 Company 라는 엔티티가 N:1 관계로 셋팅 되어 있고(ManyToOne으로 설정 했고 조인 컬럼도 명시 했으며, OneToMany쪽에는 mappedBy도 맞게 설정 하였습니다. 양쪽 다 모두 Lazy로딩으로 해놨구요), JpaRepository도 각각 적절히 셋팅되어 있으며, 다음과 같은 서비스 클래스가 있다고 가정했을 때, @Service class CompanyService { @Autowired EmployeeRepository employeeRepository; // JpaRepository를 상속한 인터페이스 @Transactional public test() { Employee employee = employeeRepository.findById(1L); // LazyInitializationException 예외 발생 Company company = employee.getCompany(); // could not initialize proxy - no session 예외 발생 } } Employee employee = employeeRepository. findById(1L) 을 호출 하면, 디버거에서 보이는 employee 객체 내의 company 값은 실제 객체 대신 다음과 같은 예외가 보입니다. method threw 'org.hibernate.LazyInitializationException' exception. Can not evaluate com....$HibernateProxy$lfgdgjt.toSting() 그리고 employee의 getCompany를 호출 하는 순간, could not initialize proxy - no session 이라는 예외가 발생합니다. 지연 로딩 시 영속성이 유지 되어야 하지만 findById 의 호출이 끝나는 순간 트랜잭션이 종료 되고 세션이 닫히는 게 이유가 아닐까 싶어, 트랜잭션 어노테이션을 서비스 레이어의 메소드에 추가도 해보고 전파 속성도 여러가지로 바꾸어 봤지만 문제가 해결되지 않았구요.. EAGER 로딩으로 바꾸 거나, 아래 속성을 줄 경우에 해결이 되었습니다.. enable_lazy_load_no_trans=true enable_lazy_load_no_trans속성이 자칫 N+1 문제를 야기할 수 있어 안티 패턴인 것 같아 근본 원인을 알고 싶은데요.. 물론 페치 조인으로도 해결 할 수 있지만, 위의 예제 코드도 당연히 동작을 해야 할 것 같은데 왜 트랜젝션 어노테이션을 주었음에도 영속성 세션이 test() 메소드 내에서 지속 되지 않는지 궁금합니다. --- 추가로 트랜잭션 로그를 찍어 보았는데 이벤트 순서가 아래와 같습니다.. test() 메소드의 트랜잭션 생성, EntityManager 열림 => findById() 가 호출 => SimpleJpaRepository의 inner transaction이 생성 및 새로운 EntityManager열림 => findById 메소드 호출 종료 => commit & inner transaction 종료 => EntityManager 닫힘 => test()메소드의 트랜잭션 resume 결국 inner트랜잭션이 별도로 생성되는게 문제인 것 같은데 이게 트랜잭션 propagation을 REQUIRE로 해도 각각 별도의 트랜잭션을 생성하고 있습니다. 어떤 부분을 더 의심하고 디버깅 해봐야 할까요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
servletApplication.main()메소드가 게속 실행되는데 끝나질 안아요?
(사진)
-
미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
__code__의미가 궁금합니다.
안녕하세요 선생님. 클로저를 공부하면서 __code__가 왜 쓰이는지에 대해서 궁금해졌습니다. dir()함수는 해당 객체가 가지고 있는 변수나 함수를 나타낸다고 한다면, __code__함수는 어떤 함수인가요? '세세한 기능을 나타내는 함수'로 대략 알고 있는데 검색을 해봤는데 예시가 잘 없어서 질문드렸습니다.
-
미해결스프링 핵심 원리 - 기본편
궁금한점이 있습니다.
@Testpublic void lifeCycleTest() { ConfigurableApplicationContext ac = new AnnotationConfigApplicationContext(LifeCycleConfig.class); NetworkClient client = ac.getBean(NetworkClient.class); ac.close();}@Configurationstatic class LifeCycleConfig { @Bean public NetworkClient networkClient() { NetworkClient networkClient = new NetworkClient(); networkClient.setUrl("http://hello.dev"); return networkClient; }} 여기에서 setUrl을 통해서 url을 지정했는대 ac.getBean(NetworkClient.class)에서는 왜 null이 나오는건지 잘 모르겠습니다.
-
미해결실전! 스프링 데이터 JPA
unable to locate persister 에러 관련 질문 드립니다.
JpaRepository 를 상속 하지 않고 아래와 같은 클래스를 만들어 entityManager로 데이터를 가져오는 테스트를 하려고 하는데요. @Repository public class Test Repository { @PersistContext EntityManager entityManager; public Employee findEmployee(Long id) { return entityManager.find(Employee.class, id); } 아래와 같은 에러가 발생 합니다. (stack trace의 가장 아랫 부분만 발췌 했습니다.) org.hibernate.UnknownEntityTypeException: Unable to locate persister: com.xxx.xxx.... persister는 spring-boot-starter-data-jpa를 의존성에 추가 해 줬을때 hibernate도 하위 의존성으로 따라서 추가되면서 자동으로 persister 로 등록 되는게 아닌가 생각했었는데요.. 왜 이런 에러가 나는 걸 까요?
-
해결됨[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발
검색조건 많을경우 문의드립니다.
검색조건이 많을경우 post를 써야할까요? 그리고 오픈api인경우에는 검색조건을 최소화하는것이 맞을까요? 두가지문의드립니다.
-
미해결[OpenCV] 파이썬 딥러닝 영상처리 프로젝트 - 손흥민을 찾아라!
케라스 내부에서 할 수 있는 이미지 전처리 기능이 어떤 것이 있을까요?
안녕하세요. 강의에서 opencv dnn을 사용할 때 blob_from_image 함수를 통해 mean subtraction을 이용했는데, 이것도 케라스에서 데이터셋을 불러올 때 사용할 수 있을까요?
-
미해결그로스해킹 - 데이터와 실험을 통해 성장하는 서비스를 만드는 방법
Retention 측정 기준일이 0, 7, 14, 28일인 이유가 궁금합니다~
[2-4] Retention 강의 듣는 중 질문드립니다.
-
미해결Vue.js + TypeScript 완벽 가이드
VeoConstructor 가 없습니다.
cli 설치를 3.x 으로 했습니다. chart 플러그인 작성시 ~insatall(Vue: VueConstructor)~로 설명해주셨는데 없더라고요. 3.x 에서 플러그인 사용법이 아예다른걸까요?
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
리덕스 툴킷과 적용과 사가에 대한 질문입니다
일단 강의 정말 잘 봤습니다. 특히 배포하는 부분에서 많이 배웠고 부족한 점이 많구나 생각이 들었습니다. 다름이 아니고 궁금한 것은 제로초님 유튜브에서 기존에 사용했던 사가를 때어내고 툴킷과 SWR을 적용하는 영상을 봤습니다. 저 또한 툴킷과 SWR을 사용하려고 하고 있던 차에 또 영상에서 하신 말씀이 기억에 남아 질문 남깁니다 1. takeLatest, takeEvery 이정도만 쓰면 Thunk쓰는 거랑 똑같다고 하셨는데 Thunk로 어떻게 구현하셨는지 (툴킷의 createAsyncThunk의 cancelation인지 SWR이나 React-Qeury등의 캔슬 기능으로 구현하셨는지) 2. Saga lodash로 throttle, debounce 어떤 식으로 가능할지 (https://velog.io/@edie_ko/React-%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8-%EC%84%B1%EB%8A%A5-%ED%96%A5%EC%83%81-%EC%8B%9C%ED%82%A4%EA%B8%B0-feat.-Lodash-throttle-debounce) -> 혹시 여기에 설명 되있는 것과 비슷한 개념인지 코드 안 남겨주셔도 되고 전체적인 개념만 설명해주실 수 있으시면 감사하겠습니다. 항상 잘 보고 있습니다!
-
미해결실전! 스프링 데이터 JPA
Pageable
영한님 안녕하세요. 강의를 듣다가 궁금한 점이 생겨 질문드립니다. @GetMapping("/members") public Page<Member> list(Pageable pageable) { ... } Pageable을 컨트롤러 메소드의 인자로 받으면 sort 조건에서 entity 필드명을 사용해야 되는데 이 부분도 엔티티가 드러나면 안되는거 아닌가요? - /members?page=0&size=3&sort=username,desc - 조인 한 경우, 조인된 테이블을 기준으로 정렬 할 때 ?sort=m.user.id
-
미해결[기초-응용] 다양한 환경을 앤서블(Ansible)로 관리하기 with 베이그런트(Vagrant)
Vagrant file 이 VM 생성시 자동 적용이 되지 않음
안녕하세요 이번강의를 들으면서 안되는 부분이 있어서 질문을 드립니다. 앤서블 서버에 앤서블 코어 환경 구성하기에서 아래와 같은 설정으로 Vagrant file을 작성하였는데요 터미널에 결과와 실제 생성된 vm 을 확인하면 제가 빨간색 박스로 표시된 부분이 실행이 되지 않는것 같습니다. 코드에는 문제가 없어보이는데 왜 적용이 안되었던 건지 알 수 있을까요? 참고로 저는 Mac 을 사용하고 있고 조훈님이 하신것 처럼 Vagrant 가 설치된 곳에 HashiCorp dir 을 만든 것이 아니라 따로 제가 지정한 곳에 HashiCorp dir 을 만들고 그 안에 Vagrant 파일과 bootstrap.sh 을 넣었습니다. 더 필요하신 스냅샷이 있으시면 말씀해주세요 :)
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
런하면 에러 문구가 뜹니다..!
(사진)
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
사이트에 연결할 수 없음 에러
사이트에 연결할 수 없음 domain.com에 오타가 있는지 확인하세요. 철자가 올바르다면 Windows 네트워크 진단을 실행해 보세요. DNS_PROBE_FINISHED_NXDOMAIN 도메인에 접속하려면 이렇게 나옵니다. 네임서버 설정에 오타가 있는지도 철저하게 확인했고 제로초님이 하신거 EC2부터 완벽하게 따라했는데도 안됩니다. 참고로 탄력적 ip주소로 들어가면 접속됩니다. 되도록 질문 안하고 스스로 찾아서 해결 하는편인데 아무리 구글링 하면서 찾아봐도 틀린게 없으니 물어볼수도 찾을수도없고 몇일째 이것때문에 전전긍긍 하고 있습니다. 참고로 제가 HTTPS까지 저 도메인 주소로 다 발급받은 상태에서 인스턴트를 중지한다는게 실수로 삭제를 해버렸습니다. 그래서 그냥 ec2, route53, 탄력적IP,키페어 같은거 전체 다 삭제하고 처음부터 같은 도메인으로 다시 따라했는데 이지경이 됬네요 그것 때문인지 궁금하네요. 혹시 조금이라도 실마리를 주실수 있으신가요..? 죽겠네요ㅠ
-
해결됨it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
이런 유형의 문제
강의 너무 잘 듣고있습니다. 강의를 듣다가 43번 44번 같은 유형의 문제가 제 취약점인 것을 확인했습니다. 이런 유형의 문제를 더 풀어보고 싶은데 혹시 추천해 주실만한 문제가 있는지 궁금합니다.
-
해결됨mongoDB 기초부터 실무까지(feat. Node.js)
put, patch
안녕하세요. 좋은 강의 감사합니다! 제가 공부한 바로 put은 모든 내용을 update 할 경우 사용하도록 권장되고, patch는 일부 내용을 update 할 경우 사용하도록 권장되는 것으로 알고 있습니다. 실무에서는 어떤 기준으로 put, patch를 나누어 사용하는지 궁금합니다!
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
gradle과 maven의 차이
안녕하세요 영한님 강의를 듣다가 gradle과 maven의 대한 차이가 갑자기 궁금해져 질문을 남깁니다. 구글링을 통해 알아낸 정보는 1. 현재는 maven을 더 많이 쓰지만 gradle의 사용자가 앞으로는 더 많아질 예정이다. 2. maven은 xml로 표현되어 지짐만 gradle은 groovy로 표현되어진다. 자바개발자에겐 groovy는 자바의 방언느낌이기 때문에 더욱 쓰기 편하다 3. 프로젝트가 커지면 커질수록 maven은 내용이 길어지고 가도성이 떨어지지만 gradle은 훨씬 짧고 간결하게 짤 수 있다. 4. 가장중요하지만 gradle은 멀티프로젝트에 매우적합하며 빌드속도도 10배에서 100배 더 빠르다. 라는 점을 찾을 수 있었습니다. 이런 이유 때문에 영한님이 사용하신 maven 대신 gradle로 해보았는데 plugins { id 'org.springframework.boot' version '2.4.4' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java'}group = 'jpa-basic'version = '0.0.1-SNAPSHOT'sourceCompatibility = '1.8'repositories { mavenCentral()}dependencies { implementation 'org.hibernate:hibernate-entitymanager' testImplementation 'com.h2database:h2'}test { useJUnitPlatform()} 이렇게 하니까 오류가 나더라구요...... 제가 최종적으로 여쭤보고 싶은것은 1. maven은 version도 써줘야하는데 gradle은 써도 되고 안써도 되던데 gradle은 자동으로 자신에게 맞는 버전을 가져오는 것인가요? 2. gradle로 하려면 코드를 어떻게 고치면 될까요?(JPA시작하기 - Hello JPA 프로젝트 생성 기준입니다.)
-
미해결UX/UI 시작하기 : Figma 입문 (Inflearn Original)
left & right
정말 좋은 강의 감사합니다! 강의 내용에는 와이어 프레임 그리는 부분의 내용 중 핵심만 구성하신 것 같아 보이는데 와이어프레임 예시 파일에서 tab 부분을 따라서 그려보고 있는데 오토 레이아웃으로 menu1 menu2 menu3 menu4 를 감싸고 text 도 오토 레이아웃으로 감싸져 있는데 저는 left & right 컨스트레인트 주는게 클릭이 비활성화로 나와서요. 예제 파일에도 비활성화 상태인데 이게 어떻게 하면 될까요?
-
미해결YOLO 구현으로 배우는 딥러닝 논문 구현 with TensorFlow 2.0
loss function 관련 질문입니다
bounding box 관련 loss(coord loss)에서 x, y 부분에 대해서 질문이 있습니다. 논문에 보면 아래와 같은 문장이 나오는데요 We parametrize the bounding box x and y coordinates to be offsets of a particular grid cell location so they are also bounded between 0 and 1. x, y 값이 이미지 전체 width, height에 대한 비율로 0에서 1사이 값이 되는게 아니고 하나의 cell 안에서의 상대적인 위치로 normalize 하는거 같은데요, 현재 코드는 image 전체의 width, height 기준으로 되어 있는 것 같습니다. 이 부분을 맞게 이해한건지 질문드립니다.