[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 5:50에서 공통 처리 catch를 최상위 예외인 Exception으로 잡았는데 결국 해결할 수 없는 예외들은 언체크 예외들로 구성되어 있으니깐 RuntimeException으로 잡는게 낫지 않나요? 다른 케이스가 있어서 그런건지 궁금해서 질문 남깁니다.
//JdbcTemplateMemberRepository public class JdbcTemplateMemberRepository implements MemberRepository { private final JdbcTemplate jdbcTemplate; public JdbcTemplateMemberRepository(DataSource dataSource) { jdbcTemplate = new JdbcTemplate(dataSource); //SpringConfig @Configuration public class SpringConfig { private final DataSource dataSource; public SpringConfig(DataSource dataSource) { this.dataSource = dataSource; } JdbcTemplate을 사용하도록 스프링 설정 변경하는 부분인데 이전에 객체를 생성해서 직접 주입하면 안좋다고 하셨었는데 jdbc템플릿을 적용하시는 부분에서는 직접 dataSource를 JdbcTemplate를 생성해서 넣으셨습니다. public SpringConfig(DataSource dataSource) { this.dataSource = dataSource; }대신에 JdbcTemplate를 빈에 등록해서 이렇게 사용하는게 이전에 배운내용에 따르면 의존성, 결합성 면에서 나은 코드라 생각했습니다. (@autowired를 사용하게끔 수정해본 코드) //JdbcTemplateMemberRepository public class JdbcTemplateMemberRepository implements MemberRepository { private final JdbcTemplate jdbcTemplate; @Autowired public JdbcTemplateMemberRepository(DataSource dataSource) { jdbcTemplate = new JdbcTemplate(dataSource); //SpringConfig @Configuration public class SpringConfig { private final DataSource dataSource; @Bean public JdbcTemplate jdbcTemplate(DataSource dataSource) { return new JdbcTemplate(dataSource); } } 이렇게 수정해서 사용하라고 설명해주시다가 이 JdbcTemplate강의에서는 직접 주입하시면서 설명해주셨는데, JdbcTemplate빈을 정의해서 주입하는 방식이 아닌 Datasource를 직접 사용한 이유가 있을까요? 뭔가 데이터접근할때는 다른부분이 있어서 이런 방법이 사용된건지 궁금합니다.
안녕하세요 쥬쥬님 서비스에서 메서드를 만들 때 질문 있습니다. A라는 서비스 메소드를 만들 때 로직이 복잡하면 코드가 엄청 길어지면 그 때는 안에 있는 메소드를 B, C 서비스 메소드로 분리해야 할 것 같은데 서비스 메소드를 만들 때 기준이 있나요? 지금 createReview 서비스 메소드를 만들때 restaurantRepository.findById(restaurantId).orElseThrow()를 사용하여 조회 및 검증 작업을 진행하는데 추후에 해당 코드를 그대로 유지하는지, 서비스 메소드로 분리하는지, 스태틱 메서드로 만드는지 기준이 궁금합니다.
프론트엔드 폴더에서 npm run start하면 바로 저 에러가 발생하고 소스 컨트롤 +S (저장)버튼 한번 누르면 되돌아옵니다. install axios 을 통해 package.json에 정상적으로 들어가 있는것도 확인했습니다.. 인풋값에 값 입력 후 전송 해도 동일한 에러가 발생하고 axiox관련 404문제라 경로 및 오타도 확인해봤지만 문제가 없다고 생각하며 소스도 복사해서 가져온 상태입니다. 어떤곳을 확인을 해봐야될까요??ㅠㅠ
안녕하세요, 궁금한 내용이 생겨 기존에 질문들을 살펴보고 제가 이해한 것이 맞는지 확인차 질문드립니다. redis의 싱글스레드 특성으로 100개 발급에 대한 race condition 해결 --> 그러나 insert 시 DB 처리량에 부하가 발생할 수 있음 kafka 미들웨어를 통해 100개의 쿠폰 저장 이벤트를 보관해두었다가 컨슈머에서 원할때 꺼내어 처리할 수 있는 여지를 주어 처리량 부하를 분산시킬 수 있음 ex) 쿠폰 발급은 당장 안해도 되니, kafka에 이벤트만 잘 발행되어 있다면 DB 작업량이 적은 새벽에 꺼내서 저장해도 됨 이렇게 이해했는데, 맞을까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] join을 하면 4개가 나오는데 id가 같지만 orderItems는 서로 다르게 나옵니다. 근데 왜 json에서는 orderItems 중복되서 왜 똑같이 나오는건가요? 그리고 값이 왜 orderItems는 여러개씩 출력이 되는거죠? 사실상 sql시 하나씩 setter로 들어가서 출력되지않나요? 예) "orderItems": [ { "itemName": "JPA1 BOOK", "orderPrice": 10000, "count": 1 }, { "itemName": "JPA2 BOOK", "orderPrice": 20000, "count": 2 } ] 위와 같이 orderItems가 두개가 나옵니다. 근데 sql은 하나씩 출력이 되는데 그러면 "orderItems": [ { "itemName": "JPA1 BOOK", "orderPrice": 10000, "count": 1 } ] 위와 같이 하나만 출력이 되어야하는거 아닌가요? setter로 매핑 되면 그렇지않나요?
안녕하세요 강의 보면서 게시판 성격의 서비스를 만들던 중에 궁금증이 생겼습니다. 두 가지 방법이 있는데, 제가 취준생이라 실제 서비스 코드들을 본 적이 없어서 어떤 방법이 조금 더 현명한 방법인지 궁금합니다! Jpa 사용법처럼 게시글과 댓글을 맵핑하는 방법입니다. 댓글에 게시글의 키만 가지는 방법입니다. 1번 코드는 대략적으로 이런 형태일 것 같습니다. @Entity public class Article{ @Id @GeneratedValue(strategy = Identity) long id; String content; } @Entity public class Comment{ @Id @GeneratedValue(strategy = Identity) long id; String comment; @ManyToOne(fetch = FetchType.LAZY) Article article; } 1번 코드의 경우에는 배울 때는 맵핑도 깔끔하게 잘 되고 좋았는데, 실제 개발을 하다 보니 댓글만 사용하는 경우에 있어서 Article의 내용은 전혀 필요가 없는 경우도 많을 것 같습니다. 또한 게시글의 댓글들을 조회 할 때, 같은 Article 내용들이 반복해서 들어 있다는 점이 마음에 걸립니다.(Lazy 하게 가져와서 문제가 없을것 같기도 하고 이 부분은 확실하지 않습니다.) 2번 코드는 게시글의 키만 가지는 경우입니다. @Entity public class Article{ @Id @GeneratedValue(strategy = Identity) long id; String content; } @Entity public class Comment{ @Id @GeneratedValue(strategy = Identity) long id; String comment; long articleId; } 2번의 경우에는 불필요한 정보를 담지 않고 필요한 경우에는 Id값으로 찾아서 가져올 수 있습니다. 하지만 article 과 Comment를 각각 따로 관리하는 형태가 됩니다.(사실 1번 코드도 따로 관리는 가능할 것 같습니다) 간단한 경우에는 1번이 좋은 것 같은데 컴포지션 되는 객체들이 많은 경우에는 그 자체로 정말 생각해야 되는 경우가 많아 지는 것 같습니다.(Comment 안에 Article, User, 첨부 파일 Entity 등등이 복잡하게 들어갈 수 있을 것 같습니다 ) 네이버 카페와 같은 사이트들의 경우에서는 게시글과 댓글을 따로 관리하는 것 같기도 하고(작성 글 보기를 누르면 삭제된 게시글 이지만 댓글 내용은 볼 수 있는 경우입니다) 실제로는 어떤 방식으로 풀어 가는지 궁금합니다!
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요! 강의 잘 듣고 있습니다. @Tansactional 어노테이션을 붙이면 private 메서드들에도 해당 어노테이션이 적용되는 건가요? 이 질문을 하는 이유는 join 메서드 안에서 validateDuplicateMember 메서드를 사용하고 있고 join은 @Transactional이 걸려있는 상태인데 이럴 경우에 어떤 게 적용되는지 궁금합니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 5. 열거형 - ENUM.pdf 의 p.18 에 SLIVER 오타가 있습니다. SLIVER -> SILVER 로 변경되어야 할 것 같습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 친구랑 깃허브 협업 해보고 있습니다 친구계정이 본 저장소이고 저는 포크하여 사용중입니다. 어떤때는 Compare & pull request가 떠있고 어떤 경우에는 뜨지 않습니다.
기초부터 배우는 Next YTMusic 클론 코딩 (with next.js 14, UI 마스터)
안녕하세요 강사님은 코드 수정 후 브라우저에서 바로바로 확인이 되는 것 같은데 저는 코드를 수정할 때 마다 아래의 오류가 발생해서 매번 다시 yarn dev를 해줘야 수정한 내역이 확인이 되다 보니 강의를 따라 진행 하는대 집중이 되질 않네요. 혹시 아래의 에러가 발생 되지 않게 하는 방법이 있는 것인지 문의 드립니다. 감사합니다. 수고하세요. =================================================================== ⨯ [Error: UNKNOWN: unknown error, open 'D:\study\react\workspace\yt-music-clone-next\.next\static\chunks\app\layout.js'] { errno: -4094, code: 'UNKNOWN', syscall: 'open', path: 'D:\\study\\react\\workspace\\yt-music-clone-next\\.next\\static\\chunks\\app\\layout.js' ===================================================================
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] update 모드에서 기존엔티티에 @Column(unique = true) 를 사용한다음 재시작을 했는데, 변경 사항이 h2에 적용이 되지 않습니다. 그런데 @Column(name="username", unique=true) 를 하니 이번에는 ALTER 쿼리가 나가서 name과 unique 변경사항이 db에 적용이 됩니다. update 모드에서 @Column(unique = true) 를 했을때 적용이 되지 않고 @Column(name="username", unique=true) 이렇게 해야만 적용이 되는 이유를 알 수 있을까요?
16:29초에 order_item에서 order가 연관관계 주인이 된다고 하셨는데 order_item 엔티티 클래스 안에 보면 ```java @JoinColumn(name = "order_id") private Order order; ``` @JoinColumn을 한 order 외래키를 가진 order_item이 연관관계 주인 아닌가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. ===================================== [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 앞서 질문한 학생들의 질문들과 구글링을 진행해봤지만 해결되지 않아 질문 남깁니다. 먼저 강의를 따라 쭉 타이핑을 했는데 Junit4 를 사용하여 테스트를 만들고 진행해 봤고, 테스트가 안되어서 build.gradle와 MemberRepositoryTest 등을 번갈아가면서 수정해봤지만 어떤것이 문제인지 모르겠습니다. 파일 링크 남겨드립니다. https://drive.google.com/file/d/1EsGR5F0YDa1G97u5616ZM8JeYwWZYjQr/view?usp=sharing