게시글
질문&답변
2024.07.25
와일드카드
안녕하세요. JongYun Won님, 공식 서포터즈 y2gcoder입니다. 간단하게 위의 예시에서 정리를 해보자면 : Animal, Dog, Cat 가능 (Animal 과 Animal을 상속한 클래스) : Object, Animal 가능 (Animal 과 Animal이 상속한 클래스) 로 정리할 수 있습니다. 제가 질문에 대해 잘못 이해했다면 조금 더 풀어서 설명해주시면 감사하겠습니다 🙂 감사합니다.
- 0
- 1
- 48
질문&답변
2024.07.25
yaml profiles 인식이 안 됩니다 ㅠ
안녕하세요. 김철준님, 공식 서포터즈 y2gcoder입니다. 저는 보통 그럴 때 application.yaml 에서 띄어쓰기나 필요한 옵션이 누락되어있는지 먼저 확인하는 것 같습니다! 추가로 AI 답변과 함께 아래의 링크도 참고해주십쇼! 링크들로도 해결되지 않는다면 기동할 때의 로그와 application.yaml 을 보여주시겠습니까? https://docs.spring.io/spring-boot/reference/features/profiles.html https://lordofkangs.tistory.com/320 감사합니다.
- 0
- 2
- 31
질문&답변
2024.07.25
컨트롤러에서 호출하는 서비스 질문드립니다.(+더티체킹)
안녕하세요. Byunguk Ahn님, 공식 서포터즈 y2gcoder입니다. 정답은 없으나 도움이 되길 바라면서 말씀을 드리고 싶습니다! 외부 API 호출 시간이 길지 않다면 같은 트랜잭션으로 묶어서 처리할 것 같고, 외부 API 호출 시간이 길다면 하나의 큰 서비스 내에서 카드 충전, 카드 상태 업데이트에 대한 로직을 따로 호출할 것 같습니다. 각 서비스 내에서 여러 번 호출되는 문제는 같은 트랜잭션으로 묶었을 때보다 더 문제가 안될 경우가 많습니다 🙂 (특히 pk나 인덱스로 호출한다면 더 그렇습니다) 먼저 생각하신 바대로 진행해보시고, 안되면 바꾸셔도 됩니다 🙂 감사합니다.
- 0
- 1
- 39
질문&답변
2024.07.23
통합테스트
안녕하세요. 해톨님, 공식 서포터즈 y2gcoder입니다. 이상적으로는 사람이 직접 하는 테스트와 통합 테스트 코드 둘다 필요하다고 생각합니다! 아무리 테스트 코드를 잘 짰다고 생각하더라도 실제로 배포나, 애플리케이션 실행 후 테스트해보면 생각지도 못한 실패 케이스가 나올 수 있기 때문에, 기능을 추가한 후에는 직접 테스트를 해보시는 것이 좋습니다! 테스트 코드를 추가해 자동화하는 것도 필요하다고 생각합니다. 테스트 코드를 짜놓으면 만들어진 코드에 기본적인 신뢰감이 생기는 것이 테스트를 하는 가장 큰 이유라고 생각합니다. 이상적으로는 둘다 하는 것이 맞다 생각하고, 제일 중요한 비즈니스 로직에 대한 테스트(단위 테스트, 서비스 단의 통합 테스트)는 기본으로 하되, 시간이 없다면 Controller 단의 테스트 코드는 필요 시 @WebMvcTest를 통한 테스트를 우선 하고, 직접 휴먼 테스트를 진행하거나 하는 방식을 추천합니다 🙂 감사합니다.
- 0
- 1
- 38
질문&답변
2024.07.23
연관 관계 저장 시 궁금한 점.
안녕하세요. 이용범님, 공식 서포터즈 y2gcoder입니다. users 테이블의 관점으로 보시면 좋을 것 같습니다. users 테이블 입장에서는 team의 id가 외래키 필드로 존재합니다! 그리고 JPA 의 엔티티 매니저 또한 id를 기준으로 엔티티를 구별하고, 다른 엔티티와 연관관계를 맺어주기 때문에, 기존에 DB에 존재하는 team의 id를 연관관계로 맺어주면, 해당 team의 id를 연관관계 엔티티로 하여 저장됩니다 🙂 이 때 저희가 객체로 만든 teamB는 DB에도 저장되어있지 않은 상태지만 teamA와 같은 식별자를 사용했기 때문에, 만약 이를 저장하고자 한다면 새로운 teamB가 생기는게 아니라 teamA의 name이 변경될 것 입니다. 하지만 현재 작성하신 코드에서는 teamB라는 객체를 생성만 하고 영속화하지 않기 때문에 결국 teamA의 id만 유효한 값으로서 사용되는 것입니다. 그래서 변경되지 않은 teamA와 user가 서로 연관관계로 잡혀 저장되게 되고, teamB라는 새로운 객체의 내용은 버려지고, 기존 teamA의 내용만 남기 때문에 위와 같은 결과가 나온 것으로 보입니다 🙂 식별자가 결국 중요한 기준이 됩니다! 감사합니다.
- 0
- 2
- 100
질문&답변
2024.07.23
Member.find 질문
안녕하세요. tjdwlsdn2020님, 공식 서포터즈 y2gcoder입니다. AI 인턴의 답변과 같이 동일한 의미라고 생각해주시면 감사하겠습니다! 추가로 (사진) 저 또한 이러한 상태입니다! 이 때 오른쪽 위의 Download Sources 를 눌러주시고 조금 기다리시면 (사진)이렇게 EntityManager의 주석과 파라미터들의 설명이 보이게 됩니다. 이렇게 하고 나면 강의와 똑같이 보이실 거라 생각합니다 🙂 감사합니다.
- 0
- 2
- 38
질문&답변
2024.07.23
2분 22초쯤에 질문이있습니다
안녕하세요. jsh4059님, 공식 서포터즈 y2gcoder입니다. 네 그렇게 이해하셔도 될 것 같습니다 🙂 감사합니다.
- 0
- 1
- 52
질문&답변
2024.07.22
프로젝트 생성 오류
안녕하세요. lin1137001님, 공식 서포터즈 y2gcoder입니다. 올려주신 캡처본만 확인했을 때는, 정상적으로 gradle로 필요한 의존성이 설치되지 않으신 것 같습니다! 첫번째 캡처본에 있는 코끼리를 클릭하여 의존성을 설치해주시고 다시 시도해보시겠습니까? 그리고 인텔리제이 설정에서 JDK가 적절하게 연결되어있는지도 체크해보시면 좋을 것 같습니다 🙂 감사합니다.
- 0
- 2
- 69
질문&답변
2024.07.22
업캐스팅 질문
안녕하세요. 시작님, 공식 서포터즈 y2gcoder입니다. CastingMain3 은 업캐스팅에 대한 소개 및 설명을 하기 위한 예제입니다! (사진) 너무 어렵게 생각하실 필요없이, 업캐스팅을 보여주기 위해서 && 업캐스팅 후 해당 인스턴스가 부모 타입일 때 부모 타입의 메서드를 호출할 수 있음을 보여주기 위한 의도라고 생각해주시면 감사하겠습니다 🙂 감사합니다.
- 0
- 1
- 38
질문&답변
2024.07.19
.setFirstResult(1) 부터 하는 이유?
안녕하세요. 김철준님, 공식 서포터즈 y2gcoder입니다. 해당 내용은 DB SQL에 대한 학습을 진행하신 상태에서 더 잘 이해하실 수 있습니다! SQL offset 과 대응하는 메서드라고 생각하시면 됩니다. 배열의 인덱스가 0부터 시작하듯이 offset도 0부터 시작합니다! offset 0 이라고 하면 검색 조건으로 찾은 결과의 첫번째 로우부터, offset 1 이라고 하면 검색 조건으로 찾은 결과의 2번째 로우부터 시작한다고 보시면 될 것 같습니다! 이 부분이 이해가 가지 않는다면 DB(SQL)의 페이징, offset 등을 키워드로 학습해주십쇼! 감사합니다.
- 0
- 1
- 50