묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결즐거운 자바
50. 팩토리 메소드 패턴 강의 중
전에 작성한 BeanFactory로 강의를 진행하시는데혹시 그 클래스 작성은 어떤 강의에서 진행했을까요?하나도 빠짐 없이 수강했는데.. java 파일도 없고 기억이 안나네요..ㅠㅠ수업 정말 감사하게 듣고 있습니다.복 많이 받으세요~!
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
jpa 배운 내용으로 게시판을 만들려고 하는데 에러 해결이 어려워서 조심스럽게 글 올립니다..
Error creating bean with name 'entityManagerFactory' Could not determine recommended JdbcType for toyProject1.board.domain.Member 요런 에러가 떠서 계속 구글링을 해보았는데 저는 제가 작성한 Member 엔티티에서 문제를 못찾겠어요ㅠㅠㅠ 연관관계 매핑도 일대다로 잘한 것 같은데,,, 정말 귀찮으시겠지만 제발 한번만 봐주세요ㅠㅠㅠㅠ 삽질중입니다..... https://drive.google.com/file/d/1ylrcAJFzmTZM8FXjzw_lVCM0zWiyRt9-/view?usp=sharing
-
미해결자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
코틀린 Companion object
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요! 선생님! 수업을 잘 듣고있는 백엔드 취준생 입니다!자바를 공부하다가 코틀린도 공부하면 좋을꺼 같아서 같이 공부하고있는데요..혹시 좀더 코틀린을 딥하게 파보고 싶은데 추천하시는 사이트 혹시 있으실까요??
-
미해결
구글 앱스 스크립트는 파일로 다운이 어려운가요?
현재 구글 앱스 스크랩트를 활용해 특정한 셀의 내용을 다운받는 스크립트를 짜고 있습니다. 자꾸 작동이 되지 않아서 챗gpt에 물어보니 그러려면 자바와 연동을 하든 뭘 하든 구글 앱스 스크립트 내에서는 안된다고 하는데 이거 정말 안되는걸까요?ㅠㅠ
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
임베디드와 extend
[질문 내용]공용 클래스를 하나 만들어 그 클래스를 상속 받는 것이랑 임베디드 하는 것이랑 다른점이 무엇인가요?DB에는 똑같이 쿼리가 작성되는 것 같습니다.
-
미해결윤재성의 자바 기반 안드로이드 앱개발 Part 1 - UI Programming
45강 항목 클릭 관련
class AutoClickListener1 implements AdapterView.OnItemClickListener{ @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { activityMainBinding.textView2.setText(data1[i] + " 를 선택하였습니다"); } }위 코드에서 data1[i] 를 선택했습니다는, 당시의 자동완성으로 출력되는 항목이 textview에 나오는게 아니라 string에 들어있는 순서의 i값이 나오는 것으로 확인됩니다. 확인 후 정정 바랍니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
실행버튼 안보임(질문글 참고 하였지만 해결x)
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 네3. 질문 잘하기 메뉴얼을 읽어보셨나요? 네[질문 내용]여기에 질문 내용을 남겨주세요.메인을 실행시키려했는데, 실행을 할 수가 없어요..질문글을 찾아보고 edit configuration을 만져보려고 했는데뭐가뭔지 잘 모르겠습니다... 도와주세요스프링부트 3.x 버전이고 , jdk 17은 확인 하였습니다! 추가로application쪽도 확인해봤는데, 찾고자하는 main class가 없는 것 같아요,, 화면 상황은 이렇습니다.
-
미해결스프링 시큐리티 OAuth2
소셜 로그인 인증이 안되는 문제
security: oauth2: client: registration: kakao: clientId: client-secret: scope: account_email, profile_nickname, profile_image , openid client-name: Kakao authorization-grant-type: authorization_code redirect-uri: http://127.0.0.1:9000/login/oauth2/code/kakao client-authentication-method: POST provider: kakao: authorization-uri: https://kauth.kakao.com/oauth/authorize token-uri: https://kauth.kakao.com/oauth/token user-info-uri: https://kapi.kakao.com/v2/user/me user-name-attribute: id gateway.yml 은 다음과 같이 설정했고 코드는 강사님 코드를 참고하였습니다. oidc 방식으로 인증 요청을 카카오에 보내고 loaduser 가 실행될줄알고 디버그를 찍어봤는데 디버그도 안찍히고 위 화면에서 동의하고 계속하기를 누르면 다음과같이 나옵니다. 로그도 디버그도 안찍혀서 문제가 예측이안되네요 ㅠㅠㅠ scope 설정이나 localhost, 127.0.0.1 이런 자잘한 수정은 계속 해보는데 원인을 모르겠습니다..
-
미해결스프링 시큐리티 OAuth2
프론트 연동한 소셜 로그인 질문드립니다!
안녕하세요, 강사님. 타임리프를 이용하지 않고, React 로 화면을 구성 후구글, 카카오, 네이버, 깃허브 등 소셜 로그인을 구현하려고 합니다. 버튼 클릭 -> 소셜 로그인 창 팝업간단한 로직이 안되어 질문을 남깁니다 ㅜ.ㅜ강의에서는 <a th:href="@{/oauth2/authorization/google, kakao, naver}"> </a>위 코드로 진행이 잘 되었는데 해당 url 을 프론트에서 맵핑 시키기 위해서는 어떤 url 을 사용해야 하나요? @{/oauth2/authorization/google}위 url 이 어디에 맵핑이 되는건지 알고싶습니다. (강의 잘 듣고있고, 뒤쪽 resource server 까지 달려가고 있습니다!)
-
미해결실전! 스프링 데이터 JPA
pathVariable관련 질문 드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)네 조금은 다를수있습니다.2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)네3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)네[질문 내용]강의와는 조금 다를수있지만/mebers/{id} 이렇게 조회를 하면 누군가도 똑같은 url을 입력하여 해당 정보를 볼수 있다고 생각하는데 이런거에 대한 위험성같은거는 따로 처리하는 방법?같은게 있는지 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
전체회원 조회서비스 문의
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]전체회원수가 엄청많을경우에도 모든회원을 list에 담은후에 중복을 검토하는게 맞는지 궁금합니다~
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
테스트 수행 시 로컬 메모리 질분입니다.
테스트 내 yml 설정을 통해서 내부 메모리로 사용할 수 있다고 하셨는데 인텔티제이 안의 내부 메모리를 사용하는건가요?또 테스트 수행 시 마다 내부 메모리는 초기화가 되는건가요?1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
미해결실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
build.gradle 파일 설정 질문
그래이들 설정 파일에 코틀린 라이브러리를 추가하는과정에 있어서 질의응답의 답글에 있는 레퍼런스를 참고하는 과정에 있어 특정 문단을 이해하기가 어려워 질문드립니다. 다음 레퍼런스를 참고 하였으며https://docs.spring.io/spring-boot/docs/3.1.1/reference/pdf/spring-boot-reference.pdf 7.11.1. Requirements 해당 세션에 있는 내용입니다.Since Kotlin classes are final by default, you are likely to want to configure kotlin-spring plugin inorder to automatically open Spring-annotated classes so that they can be proxied. 해당 부분입니다. 추가적으로 레퍼런스에서는 org.jetbrains.kotlin:kotlin-stdlib 및 org.jetbranins.kotlin:kotlin-reflect 가 클래스 패스에 존재햐아 한다는데, stdlib만 설정하신 이유도 궁금합니다.
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
퀴즈08 SpeedCam 메소드 구현부분
Factory 클래스에서는 인터페이스 호출하는 메소드에 아래처럼 실행문(구현)을 작성했는데, @Override public void report() { reporter.report(); } @Override public void detect() { detector.detect(); }SpeedCam 에서는 왜 this. 을 붙이나요?붙여도 안붙여도 코드진행에 영향이 없는걸까요?public void detect() { this.detector.detect() } public void report() { this.reporter.report() }
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
OrderService에 DeliveryStatus에 관해 질문드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의를 쭉 따라가면서 OrderService 구현까지 하고있는데 제가 생각하기에는 OrderService에 Delivery를 생성하는 부분에서 DeliveryStatus를 READY로 세팅 해야 될것 같은데 강의에서는 이부분이 빠져있어서 혹시 제가 놓친 부분이 있을까요? @Transactional public Long order(Long memberId, Long itemId, int count) { Item item = itemRepository.findById(itemId); Member member = memberRepository.findById(memberId); //배송정보 생성 Delivery delivery = new Delivery(); //delivery status 세팅 --------------------------- delivery.setStatus(DeliveryStatus.READY); //----------------------------------------------- delivery.setAddress(member.getAddress()); //주문상품 생성 OrderItem orderItem = OrderItem.createOrderItem(item, item.getPrice(), count); //주문 생성 Order order = Order.createOrder(member, delivery, orderItem); orderRepository.save(order); return order.getId(); }
-
미해결실습으로 배우는 선착순 이벤트 시스템
왜 쿠폰수가 너무 많을까요?
분명 현재 없는 상태이고결과가 자꾸 이상하게 나와서 sout 처리를 잠시 해보았습니다 package com.example.api.service; import com.example.api.domain.Coupon; import com.example.api.repository.CouponCountRepository; import com.example.api.repository.CouponRepository; import org.springframework.stereotype.Service; @Service public class ApplyService { private final CouponRepository couponRepository; private final CouponCountRepository couponCountRepository; public ApplyService(CouponRepository couponRepository, CouponCountRepository couponCountRepository) { this.couponRepository = couponRepository; this.couponCountRepository = couponCountRepository; } public void applyV1(Long userId) { Long count = couponRepository.count(); if(count > 100) { return; } couponRepository.save(new Coupon(userId)); } public void applyV2(Long userId) { Long count = couponCountRepository.increment(); System.out.println(count); if(count > 100) { return; } couponRepository.save(new Coupon(userId)); } } @SpringBootTest class ApplyServiceTest { @Autowired private ApplyService applyService; @Autowired private CouponRepository couponRepository; @Test public void applyOnce() { applyService.applyV1(1L); long count = couponRepository.count(); Assertions.assertEquals(1L, count); } @Test public void 여러명응모V1() throws InterruptedException { int threadCount = 1000; ExecutorService executorService = Executors.newFixedThreadPool(32); CountDownLatch latch = new CountDownLatch(threadCount); for(int i=0; i<threadCount; i++){ long userId = i; executorService.submit(() -> { try { applyService.applyV1(userId); } catch(Exception e) { System.out.println(e); }finally { latch.countDown(); } }); } latch.await(); long count = couponRepository.count(); assertThat(count).isEqualTo(100); } @Test public void 여러명응모V2() throws InterruptedException { int threadCount = 1000; ExecutorService executorService = Executors.newFixedThreadPool(32); CountDownLatch latch = new CountDownLatch(threadCount); for(int i=0; i<threadCount; i++){ long userId = i; executorService.submit(() -> { try { applyService.applyV2(userId); } catch(Exception e) { System.out.println(e); }finally { latch.countDown(); } }); } latch.await(); long count = couponRepository.count(); org.assertj.core.api.Assertions.assertThat(count).isEqualTo(100); } } 그런데 여러명응모V2 test를 실행시에 count를 출력시다음과 같은 수가 나옵니다. 20003200112001220013200152001620017200182002020022 ??? 한번 할때마다 1000씩 쿠폰의 수가 증가중인데요;;;조회했을때는 empty라 나오는데 이렇게 되는 연유를 잘 모르갰습니다. 테스트 코드라서 rollback이 되야할거 같은데 그렇지 않는것도 잘 모르겟네요;; ㅠㅠ
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
퀴즈#10 질문있습니다.
map(x -> x.age >= 20 ? x.name + " 5000원" : x.name + " 무료")이렇게 된다는 것은 Customer 객체 x의 age가 20세 이상이면 Customer 객체 x의 이름의 내용이' 챈들러 5000원 ' 이렇게 바뀌는 건가요?아직 map이 어렵습니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
orphanRemoval = false 설정시 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요 영한님, 해당 부분 공부하다가 이리저리 검색해보다가 질문 남깁니다! https://www.inflearn.com/course/lecture?courseSlug=ORM-JPA-Basic&unitId=21710&category=questionDetail&tab=community&q=659760해당 글에서 서포터즈님께서 답변해주신 바로는,orphanRemoval = false 설정시 findParent.getChildList().remove(0); 를 통하여 부모객체에서 자식리스트의 자식객체를 삭제하면, DB에는 그대로 남아있지만, FK키가 null로 변한다고 답변해주셨는데요. 제가 실제로 테스트 해본 결과에는.. DB에 FK키가 그대로 부모의 PK키를 명시하고 있습니다.어떤 것이 맞는 것인지 궁금합니다. import javax.persistence.*; import java.util.ArrayList; import java.util.List; @Entity public class Parent { @Id @GeneratedValue private Long id; private String name; @OneToMany(mappedBy = "parent", orphanRemoval = false) private List<Child> childList = new ArrayList<>(); public void addChild(Child child){ childList.add(child); child.setParent(this); } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public List<Child> getChildList() { return childList; } public void setChildList(List<Child> childList) { this.childList = childList; } }@Entity public class Child { @Id @GeneratedValue private Long id; private String name; @ManyToOne @JoinColumn(name = "PARENT_ID") private Parent parent; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Parent getParent() { return parent; } public void setParent(Parent parent) { this.parent = parent; } }package hellojpa; import javax.persistence.*; public class JpaMain { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); tx.begin(); try { Child child1 = new Child(); Child child2 = new Child(); Parent parent = new Parent(); parent.addChild(child1); parent.addChild(child2); em.persist(parent); em.persist(child1); em.persist(child2); em.flush(); em.clear(); Parent findParent = em.find(Parent.class, parent.getId()); findParent.getChildList().remove(0); // em.remove(findParent); tx.commit(); } catch (Exception e) { tx.rollback(); e.printStackTrace(); } finally { em.close(); } emf.close(); } }
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
CascadeType.ALL + orphanRemovel = true 와 그냥 CascadeType.ALL만 썼을 때의 차이
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 영한님의 강의를 모두사서.. 탐독하는 주니어 개발자 입니다 ㅎㅎ.. 21:37 부분에 영속성 전이 + 고아 객체, 생명주기 파트에서 이해가 가지 않는 부분이 있어서요. 위에서 명시해놓으시기를 CascadeType.ALL + orpahanRemover=true 두 옵션을 모두 활성화 하면 부모 엔티티를 통해서 자식의 생명주기를 관리할 수 있음 이라고 명시되어있습니다. 제가 궁금한부분은 CascadeType.ALL 자체가 CascadeType.ALL + orpahanRemove=true 를 이미 모두 포함하고 있다는 생각이 드는데요.. CascadeType.All 만 설정CascadeType.All + orpahanRemove=true 모두 설정두 가지의 차이가 있나요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
SpringDataJpa를 쓸때 수정 기능
test학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]test강의 내용으로 게시판 만들기를 병행하고 있습니다.이번 강의에서 Spring Data Jpa로 변경을 하였는데게시글 수정과 같은 수정 기능은인터페이스인 SpringDataJpaMemberRepository에서 작성하나요?아니면 Service단에서 Repository의 find를 통해서 수정하도록 작성하나요?SpringDataJpa에서 find, delete는 있는데 수정은 어떻게 이뤄지는지 궁금합니다..d