에러상황: Caused by: java.lang.AssertionError: Range for response status value 401 expected:<SUCCESSFUL> but was:<CLIENT_ERROR> at org.springframework.test.util.AssertionErrors.fail(AssertionErrors.java:61) at org.springframework.test.util.AssertionErrors.assertEquals(AssertionErrors.java:128) at org.springframework.test.web.servlet.result.StatusResultMatchers.lambda$is2xxSuccessful$3(StatusResultMatchers.java:80) at org.springframework.test.web.servlet.MockMvc$1.andExpect(MockMvc.java:214) at com.example.controller.BookControllerItTest.정상인자로 요청시 성공한다.(BookControllerItTest.groovy:43) 관련 내용을 검색해 보니 401 에러는 보통 로그인/인증 문제로, SecurityConfig.java 파일 등을 수정하라는 안내를 봤습니다. 다만, 현재 수강 중인 강의에는 로그인 기능이 없는 상황입니다. 이 경우, 인증 없이 테스트가 통과되도록 설정을 변경하려면 어떻게 해야 할지 조언 부탁드립니다. 참고로, 관련 파일은 메일로 함께 전달드렸습니다. 감사합니다.
[SELECT 2번 발생] 강의에 설명된 내용과 달리 저는 em.find(Member.class, 100L); 두 번 호출하였을 때 SELECT 문이 두 번 발생하였습니다. 혹시 설정 차이로 다른 결과가 나온 것일까요? 추가로 지금 확인해보니 tx.commit 이후에도 데이터베이스에 저장도 되지 않고, insert 쿼리가 나가지 않네요.. 어떤 문제에서 잘못된 것일까요? 전체 코드 보내드립니다. package hellojpa; import jakarta.persistence.EntityManager; import jakarta.persistence.EntityManagerFactory; import jakarta.persistence.EntityTransaction; import jakarta.persistence.Persistence; import java.util.List; public class JpaMain { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); /** * 영속성 컨텍스트1 - 1차 캐시 */ try { // // 비영속 Member member = new Member(); member.setId(100L); member.setName("HelloJPA"); System.out.println("=== BEFORE ==="); em.persist(member); // 영속 System.out.println("=== AFTER ==="); Member member1 = em.find(Member.class, 100L); Member member2 = em.find(Member.class, 100L); System.out.println("result = " + (member1 == member2)); tx.commit(); } catch (Exception e) { tx.rollback(); } finally { em.close(); emf.close(); } } }
안녕하세요 클린 코더스 강의보면서 예제를 따라해보고 있는데 초반 function 강의 예제에 필요한 org.fitness 라이브러리가 받아지지 않는거 같습니다. 클래스 파일이 없으니 컴파일 에러가 터지는데, 라이브러리 파일 구할 수 있는 방법 없을까요? maven repository: https://mvnrepository.com/artifact/org.fitness/fitness 저장소: https://github.com/msbaek/fitness-example/tree/master
아마 h2같은 in-memory DB를 사용하지 않고, 직접 mysql driver를 추가한 경우는 datasource객체를 만드려고 시도하면서 url, username, password같은 정보가 없다면 스프링 서버를 띄우기도 실패할 것입니다! 이렇게요. FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':test'. 스프링 프로젝트를 생성하면 최초로 만들어지는 // java @SpringBootTest public class XXTests { @Test void contextLoads() { } } // kotlin @SpringBootTest class XXTests { @Test fun contextLoads() { } } 이 테스트코드도 실패할거에요 그럴때는 해당 클래스 파일을 없애거나 @SpringBootTest 어노테이션을 제거하거나 맨 위에 @Disabled를 추가해줘서 테스트를 생략하게 하면 될 것 같습니다! 보통 테스트코드에서도 스프링 컨테이너 뜰 때 드라이버가 있다면 DataSource 빈을 만드려고 시도하다가 기본 ENV가 없다면 실패할 것 같은데.. 재성님은 아마 테스트코드를 지우신게 아닐까 생각되네요!
안녕하세요 Transactional Outbox 모듈 적용 부분을 듣던중에 차이가 발생해서 질문드립니다. 강의에서는 이제 각 나눠진 기능마다 XXXAplication 클래스에 EntityScan과 EnableJpaRRepositories 애노테이션을 달아주는것만으로도 다른패키지에있는 outboxEventPublisher를 사용할 수 있는데 저는 인식을 못합니다. application클래스에 @componentScan(...) 까지 달아주고나서야 비로서 인식이 되기 시작하는데 혹시 뭐가 문제고 무슨 차이가 있는걸까요 ... 찾아봤는데 잘 안보입니다 ㅠㅠ
안녕하세요 선생님 스프린트 1,2 강의를 모두 듣고 젠킨스 운영 관련 궁금한 점이 생겼습니다. 학습에선 젠킨스를 vm 에 직접 설치하셨는데요. Grafana, Prometheus, Argo CD 등은 모두 파드로 컨테이너환경으로 설치 하셨습니다. 젠킨스만 vm에 직접 설치한 이유가 있는건가요? 젠킨스도 pod 형태로 운영 하는 것에 어떤 제약이 있는 걸까요? 실무에선 젠킨스를 보통 어떻게 운영 하는지 궁금 합니다. (현재 강의처럼 별도 서버에 직접 설치 운영 하는건지?)
강의 잘 듣고 있습니다. 궁금한 점이 2가지 있는데요. 1. gradle 프로젝트를 생성하면 org/example/App.java가 기본값인거 같습니다. 이걸 프로젝트 생성 시점에서 원하는 명칭으로 변경할 수 있는지 궁금하구요 예) 최초 생성 시 com/회사명/Application.java 2. import된 파일 (강의 예시로는 math)이 .gradle 경로에 떨어지는데 이부분은 알알두면 어떤 상황에서 활용되는지 궁금합니다. (예를 들면 다운로드된 라이브러리는 폐쇄망 환경 같은 곳에 들고 가는데 이 경로도 마찬가지인지)
안녕하세요. 유익한 강의 열심히 수강하고 있습니다. 이번에 must_not 쿼리를 공부하는 과정에서 filter와 같이 term 쿼리를 사용하셨습니다. 주어진 상황이 광고 게시판의 글이 아니고 공지 글이 아니라 유연한 검색이 필요하지 않는 상황이어서 term 쿼리를 쓰신 것 같습니다. 그럼 만약, "검색엔진" 키워드를 제외한 관련된 게시글을 조회하고 싶다고 가정한다면 아래와 같은 쿼리문을 작성할 수 있을까요 ? "query" : { "bool" : { "must_not" : [ "match" : { "title" : "검색엔진" } ] } }
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 먼저 이렇게 코드를 짜도 정답이 되는지 알고 싶습니다. 또한, 강사님과 같이 삼항 연산자를 써야겠다는 효율적인 생각을 어떻게 할 수 있는지 그 방법을 알고 싶습니다.
안녕하세요 ! 좋은 강의 해주셔서 감사합니다. 섹션 4의 댓글 수 구현 강의 3분 39초 경에서 질문 있습니다 . 선생님의 코드에서는 댓글을 물리적 삭제할때만 댓글 수를 decrease를 통해 줄여주고 있는데, 논리적 삭제 시에도 count를 줄여주는 것이 맞다고 생각해서 질문글 남깁니다. 왜 물리적 삭제 시에만 댓글 수를 decrease 하시는 건가요 ?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) -> 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) -> 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) -> 예 [질문 내용] 현재 상황 File | Settings | Build, Execution, Deployment | Build Tools | Gradle 선택 시 'select configuration element in the tree to edit its settings' 만 조회되고 general settings 설정 창이 안보이는 상황 단, import gradle 프로젝트 로딩은 문제가 없으며 코드 실행 역시 잘 되는 상황. 시도했던 해결 방안들 인텔리제이 Invalidate and Restart 를 거침 인텔리제이 전체 재설치 진행 start.spring.io의 경우 해당 사진의 설정 사용 GPT에서 제공한 프로젝트 폴더 파일 역시 같은 증상(설정 조회가 되지 않는) 증상을 보임 프로젝트 JDK 설정 역시 21 버전으로 설정, JAVA_HOME 환경 변수 역시 21버전으로 설정 gradle 플러그인 역시 설치 및 활성화 되어 있음을 확인 .idea 폴더와 .gradle 폴더 삭제 후 다시 프로젝트를 열어봄. gradle wrapper 존재 확인 Run anything에서 gradle clean 등의 실행을 거쳐봄. 결론... 여러 방안을 시도해보고 설정 역시 계속 재확인 후 인텔리제이 리스타트를 진행해도 해당 설정이 조회되지 않고, select configuration element in the tree to edit its settings 표시만 떠 있네요... 혹시 해결 방안을 아시는 분 계실까요? 오늘도 노고 많으십니다. 좋은 하루 되세요.
39강의 36분 경에 보여주시는 그림에 보면 Object Header 의 Klass word 가 Metaspace 영역의 Class 클래스의 메타데이터를 가르키고 있습니다. 해당 Class 클래스의 메타데이터 내용을 보면 Object Age 나 Lock Flag 등이 들어가는데 제가 공부하기로는 Object Age 나 Lock Flag 와 같은 개별 인스턴스가 가져야 하는 메타데이터는 Mark Word 에 저장되는 것으로 알고 있었는데, 아닌가요? 그렇다면 이 강의에서 설명하신 바로는 Class 클래스가 클래스로더의 "준비" 단계에서 생성되고, 실제 인스턴스 객체는 나중에 생성된다고 하셨는데 "준비"단계에 생성된 Class 클래스에 인스턴스 별로 다르게 가져야 하는 정보 (age, lock flag 등) 이 어떻게 구별되서 저장되나요?