묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨서버개발자 과제전형 완벽가이드 - 1편
포트폴리오 질문
이 강의를 기반으로 포트폴리오도 만들어보려고합니다. 포트폴리오 만들때 여러가지 기술들을 더 적용해보는게 좋을까요 아니면 강의에 나온 기술만 활용해도 충분할까요?
-
미해결스프링 핵심 원리 - 기본편
스프링부트 질문이 있습니다
제가 현재 자바와 스프링 부트를 함께 배우는 비전공자 부트 캠프를 다니는 중인데부트캠프에서 자세한 내용은 배우기 시간이 촉박한 관계로 강사님이 자세한 설명은 스킵합니다. 이로 인해 비전공자임에도 개발자의 꿈을 꾸는 저는 추가로 강의를 들어서 보충학습을 하고자하는데현재 제가 강의로 배우고 있는 내용은 스프링으로 심화적인 스프링부트의 이해를 위해서 필요한지 아니면 스킵하고 바로 스프링 부트쪽으로 넘어갈지 고민이되서 질문드립니다
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
테스트코드 데이터소스 분리
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]테스트 application.properties와 메인의 application.properties의 설정으로테스트와 실제 어플의 db 동작을 분리 할수 있는데만약에 테스트에서도 테스트 패키지 혹은 테스트 별로db를 다르게 사용하려면 어떻게 해야하나요?단위 테스트 할 기능중에 db종속적인 부분이 있어서질문 드려요!
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
RequestMappingHandlerMapping 의 작동 과정에 대한 질문입니다
@RequestMapping이 컨트롤러에 붙지 않고 내부 메서드에만 붙어도 핸들러(컨트롤러)로 인식한다고 보면 될까요?
-
미해결실전! 스프링 데이터 JPA
EntityManager DI
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.EntityManager을 @RequiredArgsConstructor을 통한 생성자 주입을 통해 넣는것이 이해가 안됩니다. EntityManeger을 bean으로 생성하지 않았는데 오류없이 실행된 이유는 다른 파일에서 EntityManager을 @PersistenceContext을 통해 bean으로 생성했기 때문인가요??
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
네임드락과 분산락
네임드락에 대해 더 공부해보려고 구글링하는데네임드락이 MySQL에서 제공하는 분산락이라고 하더라구요 그럼 네임드락이 여러 개로 스케일 아웃된 DB 환경 혹은 스케일 아웃된 서버에서도 잘 동작한다는건데전자의 경우 (DB 분산) 네임드락도 결국 쿼리로 하나의 데이터베이스(MySQL)의 메타데이터에 락을 거는 것이기 때문에 다른 데이터베이스에서는 그게 안걸려 정합성 문제 해결이 안되지 않나요? 이렇게 되면 분산락이 아닌 것 같은데 왜 분산락일까요?ㅜㅜ후자의 경우라면 비관적락, 낙관적락, 네임드락 모두 잘 동작할 것 같은데(데이터베이스는 하나인 경우) 왜 분산락이라는게 따로 있는 걸까요..?
-
해결됨실전! 스프링 데이터 JPA
Projection 관련 질문이 있습니다.
영한님의 예시인 UsernameOnly에서는 유저명만 가져왔는데, 혹시 조금 더 깊게 들어가서 유저명뿐만 아니라 해당 유저가 속한 팀의 팀명까지 같이 가져올 수 있는 방법이 있을까요?public interface UsernameAndTeam { String getUsername(); Team getTeam(); }이렇게 하니 팀 객체까지는 잘 가져오던데, 여기서 팀의 이름만 딱 정해서 가져올 수도 있는지 궁금합니다.머릿속으론 String getTeamGetName(); 이라는 무슨 괴상한 코드가 떠오르는데.. 이건 제가 봐도 좀 아닌 것 같네요 ㅋㅋㅋㅠㅠ항상 답변 감사드립니다. ++ 혹시 몰라서 String getTeamGetName()으로 테스트를 실행해보니 No property 'getName' found for type 'Team'; 이라고 오류가 떴는데, 이 말은 Team에서 getName을 못 찾았다는 것 같은데 그럼 Team까진 잘 접근이 된 것 같으니 그럼 혹시 getTeamName이라고 하면 되지 않을까? 라는 생각이 들어 그렇게 바꿔 실행해보니 잘 되는 것 같네요..?! 이렇게 하면 되는 게 맞을까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
spring initializr 페이지가 달라졌어요.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.처음 스프링 들어보려고 하는데요, 혹시 프로젝트부터 언어, 스프링부트까지 어떤 걸 선택해야 하는 지 알려주실 수 있을까요?
-
미해결스프링 핵심 원리 - 기본편
AllBeanTest 시 discountPrice 값 0
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]AllBeanTest 클래스의 findAllBean 테스트하는데 자꾸 실패하네요. 1000원이 아닌 0원으로 나오는데, member.getGrade()를 해보면 VIP가 아닌 null로 나옵니다..package hello.core.autowired; import hello.core.AutoAppConfig; import hello.core.discount.DiscountPolicy; import hello.core.member.Grade; import hello.core.member.Member; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import java.util.List; import java.util.Map; public class AllBeanTest { @Test void findAllBean(){ ApplicationContext ac = new AnnotationConfigApplicationContext(AutoAppConfig.class, DiscountService.class); DiscountService discountService = ac.getBean(DiscountService.class); Member member = new Member(1L, "userA", Grade.VIP); int discountPrice = discountService.discount(member, 10000, "fixDiscountPolicy"); Assertions.assertThat(discountPrice).isEqualTo(1000); } static class DiscountService { private final Map<String, DiscountPolicy> policyMap; private final List<DiscountPolicy> policies; @Autowired public DiscountService(Map<String, DiscountPolicy> policyMap, List<DiscountPolicy> policies) { this.policyMap = policyMap; this.policies = policies; System.out.println("policyMap = " + policyMap); System.out.println("policies = " + policies); } public int discount(Member member, int price, String discountCode) { DiscountPolicy discountPolicy = policyMap.get(discountCode); return discountPolicy.discount(member, price); } } }
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
facade 패턴 질문
현재 진행중인 프로젝트에 Aop 구현은 힘들어서 facade를 통해 Redisson lock을 적용해보려고 합니다.facade 패턴을 처음 접해서 그런지 프로젝트에 어떻게 적용해야 할지 고민입니다.service 로직을 건들지 않고, facade 패턴을 사용해서 역할분리 한 거에 대해서는 이해했습니다만,mvc 패턴에서, controller가 결국 동시성 제어가 적용된 서비스를 이용하려면 service(createReservation)가 아니라 facade(createReservation)를 사용해야 하는데, controller가 service로도 동시성 제어가 적용되지 않은(사용해서는 안될) 메서드(createReservation)에 접근이 가능하다는 점에서 문제가 될수도 있다고 생각했습니다.(비슷한 상황으로 컨트롤러가 reposiotry를 가끔 참조하기도 하는데, 이때의 경우는 service에 굳이 해당 로직을 만들지 않을때인데, 지금 같은 경우는 비슷한 로직이 service에도 있고, facade 에도 있는 경우라.. ) 협업에서 어떤 개발자의 실수로 service 계층의 createReservation(사용해서는 안될)가져다 쓸 수 있다는 것이 신경쓸 문제가 아닌지, 아니면 컨트롤러가 그 서비스의 메서드에 접근을 못하게 한다던지, 실제로 어떻게 적용하시는지 궁금합니다.
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
Redisson lock() vs tryLock()
반드시 실행 되어야할 서비스 로직에 lock(3,TimeUnit.SECONDS) 이럭식으로 사용하려고 하는데 tryLock() 대신 써도 될지 궁금합니다.코드 찾아보면, 다들 tryLock() 쓰시던데,시스템적으로 저렇게 계속 lock획득 대기 상태로 만들어 놓으면, 안되는건지 궁금합니다.lock 대기 상태일때도 커넥션이 잡혀있나요?lock 대기상태가 많아지면 서버가 다운될 수 있나요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
Controller + RestController 함께 사용
안녕하세요! 스프링 로드맵을 수강하고 Spring Boot + Thymeleaf 로 간단한 프로젝트를 진행하던 중 궁금한 점이 있어 질문 남김니다. 좋아요 기능이나 모달창에서 일어나는 동작들은 매번 결과를 view를 넘겨주기 번거롭거나 처리하기 복잡한 것 같아서, 이러한 부분들만 일반 Controller 말고 Rest Controller를 호출하고 처리하도록 구현하고 싶은데 혹시 이런 방식으로 혼용해서 사용해도 괜찮을까요? 아니면 프로젝트의 일관성을 위해 일반 Controller만 사용하는 것이 좋을까요? 감사합니다.
-
해결됨스프링부트 시큐리티 & JWT 강의
강의 실습하다가 막히는 분들 참고(2024년8월 기준)
2024년 8월 현재 강의들으며 실습하다 막히는 분들 참고용으로 제 소스 공유합니다.막혔던 부분 커뮤니티에 해결방법 공유해주신 분들 덕분에 실습 잘 하고 있습니다.모두 감사합니다^^ +++ OAuth2.0 실습 소스 +++https://github.com/hhmkorea/studySpringBoot/tree/main/security1+++ JWT 실습 소스 +++https://github.com/hhmkorea/studySpringBoot/tree/main/jwt##### 막힌 부분 뚫어준 커뮤니티 글 출처 #####1. BycryptPasswordEncoder 주입시 순환참조 문제 해결!! (9강) : https://www.inflearn.com/questions/476829 페이스북 로그인 버튼 만든 뒤 error 발생하던 문제 해결!! (10강) : https://www.inflearn.com/community/questions/10495293. SecurityConfig 최신 버전에 맞게 수정!! (20강~22강) : https://www.inflearn.com/questions/1335544authenticationManager() 문제 해결!! (24강) : https://www.inflearn.com/community/questions/1145565 authenticationManager 값이 null로 나오는 문제 해결!!(25강) : https://www.inflearn.com/questions/1266285>>> 24강 강의 실습 전 준비할 것 : 회원가입 구현 <<< 아래 소스에 회원가입 구현 부분 추가 한다.소스명 : JwtApplication. java...@BeanBCryptPasswordEncoder passwordEncoder() {return new BCryptPasswordEncoder();}... 소스명 : RestApiController. java...@PostMapping("join")public String join(@RequestBody User user) {user.setPassword(bCryptPasswordEncoder.encode(user.getPassword()));user.setRoles("USER"); // 권한은 기본으로 USER로 설정합니다. ---> security 최신 버전에서는 권한 적용시 ROLE_ 쓰지 않음.userRepository.save(user);return "회원가입완료";}... application.yml 파일 수정해서 테이블을 새로 만든다.ddl-auto: create 로 수정하고 서버 재시작 postman으로 회원가입 테스트하기.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링 부트의 역할은 쉽게 이해하려면 뭐리고 셍각하면 좋을까요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]자바 초보가 이해하기 쉽게 스프링 부트의 역할을 알고 싶어요.\그리고 예전에는 이클립스로 개발을 많이들 하던데, 지금은 어떤 IDE로 개발하는 지 궁금합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
QueryDsl관하여 질문 드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)네3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)네[질문 내용]안녕하세요. 근래에 쿼리 DSL을 배우면서 적용을 해보고 있습니다! 쿼리dsl을 사용하면 @OneToMany 등등 연관관계 매핑이 필요 없는지 궁금합니다. 필요하다면 왜 필요한지도 궁금합니다!!
-
미해결스프링부트 시큐리티 & JWT 강의
구글 소셜 로그인 302
소셜 로그인 버튼을 누르면 302가 뜨면서 구글 로그인 페이지로 이동하지않는데 왜 그런 건가요? 브라우저 캐시 문제인가싶어서 지우고도 해봤지만 결과는 똑같아요
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
delivery 인식 불가 ㅠ
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)에3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]여기에 질문 내용을 남겨주세요.위 강의를 듣고잇는데, delivery가 제 개발환경에서는 인식이 안됩니다...선언부 미인식 문제 자주 하는 질문을 참고해서 IDE 초기화도 해보고 했는데, 안되서 질문드립니다. 뭔가 설정을 잘못한거 같아서 JDK와 Gradle 설정 부분도 제대로 되어 있는 것 확인했습니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
application.properties 한글 깨짐 질문입니다!
처음에 주석처리한 부분이 이렇게 깨지는 현상이 발생해서 file Encodings 설정도 UTF-8로 바꿔보고 VM 옵션 설정에 -Dfile.encoding=UTF-8 도 입력해봤는데 인식이 잘 안되네요... 혹시 영한님이나 답변해주시는 개발자분들께서는 설정을 어떻게 하고 사용중이신지 궁금합니다!
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
ManyToOne 에서 fetch join 에 대해 질문 있습니다.
강의 1분쯤에 아래와 같은 내용이 있습니다."ManyToOne이나 OneToOne 같은건 fetch join을 하거나 DB 입장에서는 left out join해서 한번에 데이터를 다 끌고와도 성능에 무리가 없는데 컬렉션 조회 같은 경우에는 조회를 하는 순간 DB 입장에서는 데이터가 뻥튀기 된다."궁금한 부분은 ManyToOne 관계에서 fetch join에서도 DB 입장에서 데이터가 뻥튀기 되지 않나 라는 생각입니다.예를들어 member1, member2, member3이 teamA에 속해 있다고 했을때 이 상황에서 fetch join을 해도 어차피 내부적으로는 join으로 바뀌게 되므로 결과적으로는 아래와 같이 출력이 되므로 DB 입장에서 결국 이 상황도 데이터 뻥튀기 이지 않나 라는 생각이 듭니다.member1 : teamAmember2 : teamAmember3 : teamA
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
WebDataBinder는 비효율적인거 아닌가요?
코드 면에서는 깔끔하지만 WebDataBinder가 요청마다 새로 만들어진다면 그만큼 객체를 생성하는데 오버헤드가 발생하는 것 아닌가요? 싱글톤으로 관리할 수 있는 addItemV5에 비해서 성능적으로 좋지 않다고 느껴지는데 맞나요?