묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 기본편
스프링 빈 등록과 의존관계 설정
안녕하세요. 스프링 컨테이너에 스프링 빈이 등록되는 과정이 두 단계로 이루어진다고 설명해주셨는데요. 어떤 방식으로 이루어 지는지 궁금합니다. memberService : 덤프객체1orderService : 덤프객체2memberRepository : 덤프객체3discountPolicy : 덤프객체 4스프링 빈 등록 단계 -> 스프링 빈 이름 : 의미없는 객체 스프링 빈 의존관계 주입 단계 -> 객체 생성 시 주입 받을 필요가 없는 기본 생성자 객체부터 생성한다. 그 이후 생성자 주입이 필요한 객체들을 생성한다. memberService : new MemberServiceImpl( ??? )orderService : new OrderServiceImpl( ???, ??? )memberRepository : new MemoryMemberRepository()discountPolicy : RateDiscountPolicy()스프링 빈 등록 단계 -> 스프링 빈 이름 : 객체 생성. 하지만 생성자 주입을 받아야하는 객체들은 스프링의 어떠한 조치로 인해 ???인자로 채워 넣음으로 의존관계 설정 유보스프링 빈 의존관계 주입 단계 -> 생성자 주입이 필요한 객체들에 맞게 의존관계 주입 memberService : new MemberServiceImpl (MemberRepsotory)orderService : new OrderServiceImpl(MemberRepository, DiscountPolicy)memberRepository : new MemoryMemberRepository();discountPolicy : new RateDiscountPolicy();스프링 빈 등록 단계 -> 스프링 빈 이름 : 순서대로 메소드 호출하며, 생성자 주입이 필요하다면 해당 객체부터 생성 후 주입 받아서 객체 생성 전 이 세가지가 떠오르는데 어떤 방법으로 나뉘어 실행되는지 도움 부탁드립니다. 감사합니다.
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
th:field 에서 id 가 override 되지 않는 문제
강의 내용을 조금 테스트 하던 중name 과 value 는 input tag 에 미리 정의되어있든 정의되어있지 않든 th:field 에서 의도한 대로 나오지만id 는 미리 정의되어있는경우 field 가 override 하고 있지 않아보입니다. 원래 이런건가요 아님 새로 바뀐건가요?버전은 spring boot, spring-boot-starter-tymeleaf, spring-boot-starter-web 전부 2.4.4 이고 내용대로 미리 전달받은 프로젝트로 실행했습니다.
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
백트레킹 (냅색) 코드!
재귀 안에 answer 변수를 사용하려면 global answer 로 지정 해줘야 하지 않나요?
-
해결됨MS 문서/메일 보안 - AIP (Azure Information Protection)
MIP 적용을 위한 라이선스 업그레이드 방법
강의를 잘 들었습니다.실제 회사에 MS 365 standard 라이선스가 200여개 있는데MIP를 적용하려면 모든 라이선스를 MS 365 business premium 으로 업그레이드를 해야 할까요?아니면 일부만 업그레이드를 해도 될까요? 다른 회사는 보통 어떤 식으로 운영하는지 궁금합니다.
-
미해결[아임웹] 나만의 비즈니스 랜딩페이지 만들기
오픈 채팅방 링크가 변경되었나요?
오픈 채팅방 링크가 변경되었나요?
-
미해결Java/Spring 주니어 개발자를 위한 오답노트
의존성조언에서 UserService의 login은 Clock에 의존하는지 모르지 않나요?
의존성 조언 두번째 방법에서 문제점이 UserService.login은 여전히 의존성이 감춰져있다. 위와 마찬가지로 Userservice.login을 테스트할 때 clock에 의존하고 있는지 알 수 없다. 이거였는데 세번 째 방법도 UserService를 사용하는 메서드는 login(user)만 남겨서 user가 Clock에 의존하는지 모르지 않나요?아까 맥도날드 예제에서는 인터페이스를 사용하면 일을 시킨다고 설명하셨는데 이것도 인터페이스를 사용해서 일을 시키는거니 이렇게 구현하면 내부에서 clockHolder를 사용해도 외부에서 몰라도 되나요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
동등성 동일성
안녕하세요, 강의 내용중 질문이 있어 질문 드립니다. PDF 13~14 쪽에 있는, MemberRepositoryTest 파일을 보면, Assertions.assertThat(findMember).isEqualTo(member); //JPA 엔티티 동일성 보 장이라고 나와 있습니다.해당 테스트를 통과 하는데 있어서는 문제가 없지만, 이는 정확히 말해서 동일성이 보장 된게 아니라, 동등성이 보장 되어야 하는거 아닌가요? 그리고 테스트 중간에 @Test @Transactional @Rollback(false) public void testMember(){ Member member = new Member(); member.setName("memberA"); memberRepository.save(member); em.flush(); em.clear(); Member findMember = memberRepository.findOne(member.getId()); Assertions.assertThat(findMember).isEqualTo(member); }이것과 같이 진행하면 false 가 나옵니다.Member.class 를 @Entity @Data @EqualsAndHashCode(onlyExplicitlyIncluded =true) public class Member { @Id @GeneratedValue @Column(name="member_id") @EqualsAndHashCode.Include private Long id; @NotEmpty //-->@valid로 체크 private String name; @Embedded //@Embadable.... private Address address; @JsonIgnore // 양방향 참조시에 한쪽에 해줘야함 그래서 연쇄 호출안함 @OneToMany(mappedBy = "member") //읽기만 가능 private List<Order> orders = new ArrayList<>(); } 이렇게 고치니까 통과가 되었습니다. 질문 정리 1) .isEqualsTo 는 동일성이 아닌 동등성 보장인가요?2) @Data를 사용했다고 해서, equals, hashCode가 정확하게 작동하지 않을때도 있나요?
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강 기간 연장 가능할까요..?
최근 다른 일과 공부를 하다보니 강의를 들을 시간이 없어서 미루다가 이제 하려니 기간이 얼마 안 남았네요.. 기간 연장 한번만 부탁드립니다..!
-
미해결홍정모의 따라하며 배우는 C++
seekg 질문입니다.
안녕하세요, 초반 seekg로 abcd.....z 저장된 txt읽는 코드를 동일하게 실행하였는데요,두번째 seekg 로 읽어올때 l 이 아닌 m을 읽어옵니다.원인이 무엇일까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-Q 1344 문제 질문입니다!
7-Q 1344 문제 질문입니다!#include <bits/stdc++.h> using namespace std; double A,B,ret; // 1~18까지 소수가 아닌 수로 배열 선언 int arr[11]={1,4,6,8,9,10,12,14,15,16,18}; int main() { cin >> A >> B; // 2차원 배열을 통해 18 combination n을 구현 for (int i=0;i<11;i++){ for (int j=0;j<11;j++){ double A_com=1,B_com=1; double per=1,A_per=1,B_per=1; //A_com으로 A가 arr[i](소수가 아닌 수만큼) 번 득점했을 때의 경우의 수를 구함 //A_per은 arr[i]만큼 득점했을 확률, 18-arr[i]만큼 득점 못했을 확률을 곱함 for (int k=0;k<arr[i];k++){ A_com*=(18-k); A_com/=(k+1); A_per*=(A/100); } for (int k=0;k<18-arr[i];k++){ A_per*=(100-A)/100; } //B도 마찬가지 for (int k=0;k<arr[j];k++){ B_com*=(18-k); B_com/=(k+1); B_per*=(B/100); } for (int k=0;k<18-arr[j];k++){ B_per*=(100-B)/100; } //A_com*A_per은 A가 arr[i]만큼 득점할 확률 //B_com*B_per은 B가 arr[j]만큼 득점할 확률 //모두 곱하면 A와 B 모두 소수가 아닌 숫자만큼 득점할 확률 per*=A_com*A_per*B_com*B_per; ret+=per; } } // 1-(A와 B모두 소수가 아닌 숫자만큼 득점할 확률)=적어도 한 팀이 소수로 득점할 확룰 printf("%f",1-ret); }문제 해설과는 다르게 조합을 이용해서 풀었는데 결과가 맞지 않습니다. 예제 1번과 2번은 맞는데 어떤 부분이 잘못되었는지 알려주시면 감사하겠습니다 ㅠㅠ
-
미해결[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
어떻게 저것만 작성했는데 동적으로 삭제가 되는지 이해가 안가요
'북마크 동적으로 삭제'강의에서bookmarkIdList.remove(key)만 추가했더니 ui상에서 지워지는지 이해가 안갑니다! if(bookmarkIdList.contains(key)) { contentRvItemBinding.bookmarkArea.setImageResource(R.drawable.bookmark_color) } else { contentRvItemBinding.bookmarkArea.setImageResource(R.drawable.bookmark_white) } // setOnClickListener가 여기 아래에 있고 색깔 칠하는 로직은 그위에 있음 contentRvItemBinding.bookmarkArea.setOnClickListener { if(bookmarkIdList.contains(key)) { bookmarkIdList.remove(key) // 북마크 동적으로 삭제하는코드 위의 코드에서 bookmarkIdList에 따라 색깔을 칠할지 안칠할지 결정하는 코드는 아래 코드이고 if(bookmarkIdList.contains(key)) { contentRvItemBinding.bookmarkArea.setImageResource(R.drawable.bookmark_color) } else { contentRvItemBinding.bookmarkArea.setImageResource(R.drawable.bookmark_white) } setOnClickListener 밖에 있습니다. 근데 북마크버튼을 클릭을 하면 저코드가 실행되어서 색깔을 칠해주거나 없애줍니다.제 생각으로는 북마크를 클릭하면 setOnClickListener안에서만 코드가 돌아야되는거 아닌가 생각했는데 왜 밖에 있는 코드가 실행되는지 이해가 안갑니다!!
-
미해결[게임 프로그래머 도약반] DirectX11 입문
RenderTarget Group 적용
DX12에서 썼던 방법으로 RenderTargetGroup을 적용하는데SwapChain 옵션 중 SwapEffect = DXGI_SWAP_EFFECT_FLIP_DISCARD; 로 주니까SwapChain의 버퍼 카운트를 2로 했는데도SwapChain->GetBuffer(index, IID_PPV_ARGS(&resource)); 이 부분에서 index가 0이 아니면 resource를 반환해주지를 않는데, DX11에서는 DX12때 처럼 SwapChain의 BackBufferIndex를 이용해서 수동으로 관리하는게 불가능한가요
-
미해결파이썬 셀레니움 고급편 (python selenium - 크롤링, 크롤러)
문의 드립니다.
# 랜덤 패턴 가지고오기 def get_random_pattern(isMobile=True): ret_pattern = [] if isMobile: with open("./mobile_scroll.txt","r") as f : while True: line = f.readline() if not line: break ret_pattern.append(line.rstrip()) selected_pattern = random.choice(ret_pattern) _,sx,sy,delay = selected_pattern.split("#") if abs(int(sy)) < 15 or float(delay) < 0.25: #너무 적은 값 return get_random_pattern(isMobile) return int(sx), int(sy), float(delay) else: # PC 패턴 with open("./pc_scroll.txt", "r") as f: while True: line = f.readline() if not line: break ret_pattern.append(line.rstrip()) pc_scroll_px = 114 # 100, 114 selected_pattern = random.choice(ret_pattern) _,dx,dy,delay = selected_pattern.split("#") if float(delay) < 0.25: return get_random_pattern(isMobile) return int(dx),int(pc_scroll_px), float(delay) 질문1. 위 패턴에서 pc_scroll_px 를 114로 하는 이유를 잘 모르겠습니다. 저는 모바일 말고 pc로 작업을 해보려고하는데 114씩만 올라갔다 내려갔다 스크롤되는데 전혀 사람처럼 보이지 않고 부자연스러워 보입니다. ㅜ def random_move(driver,direction="down",count=1,isMobile=True): for _ in range(count): # [O] 사람패턴 ~ 사람이 얼마나 스크롤을 움직였는지 # randY = random.randrange(200,300) randX,randY,_delay = get_random_pattern(isMobile) sx = random.randrange(100,270) sy = random.randrange(250,500) if direction == "up": randY = -randY if random.random() > 0.9 : #10%의 확률로 randY = -randY print(f"Scroll 한다 {randY}") ActionChains(driver).scroll_by_amount(0, randY).perform() # [O] 사람패턴 ~ 스크롤 하는 텀 prob = random.random() if prob < 0.5: dt = random.uniform(_delay*0.1, _delay*0.3) elif prob < 0.8: dt = random.uniform(_delay*0.2, _delay*0.6) else: dt = random.uniform(_delay*0.5, _delay*1.2) time.sleep(dt) time.sleep( 0.5) 질문2. 매개변수로 count를 받고있는데 이 부분을 넣은 이유를 정확하게 모르겠네요. ㅜ그리고 sx = random.randrange(100,270)sy = random.randrange(250,500)이렇게 받아둔 변수를 어떻게 활용하는지 강사님께서는 어떻게 사용하는지 궁금합니다.
-
해결됨하루만에 배우는 aws 서버리스
Mysql db 질문입니다.
다음과 같은 양식으로 남겨주세요.질문을 한 배경 : 강의 초반부 'AWS 서버리스 서비스 개요'에서 DynamoDB Table를 보고 질문합니다.질문내용 : 안녕하세요. Java Spring으로 공부하고 이번에 개인적으로 준비한 프로젝트는 Mysql 이용하여 서버 배포만 남은 상태인 취업 준비생입니다. AWS에 대해 초보자이고 유튜브에서 보고 강의 결제를 했습니다. 초반부에 'AWS 서버리스 서비스 개요'부분에서 DynamoDB를 사용한다고 하셨는데요. 이미 Mysql로 사용해서 프로젝트를 만들었고, AWS 서버리스를 이용해서 하고 싶은데 DynamoDB대신에 Mysql로 써서 해도 될까요?
-
미해결Slack 클론 코딩[실시간 채팅 with React]
import error 질문
터미널에 socket 설치 후 부터 모든 import에 저 에러가 뜨는데 이유를 모르겠습니다Parsing error: DeprecationError: 'originalKeywordKind' has been deprecated since v5.0.0 and can no longer be used. Use 'identifierToKeywordKind(identifier)' instead
-
미해결파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)
파이썬 코루틴활용 영상 질문
코드를 실행해보니까 naver쪽 데이터만 불러오는 것같습니다. 속도도 너무 빠르고 뭐가 문제일까요? 그리고 할때마다 시간이 다르네요 ㅠㅠ aiohttp 버전도 3.7.3으로 설치했습니다
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
Array에 copy()함수를 쓰는 부분에서 질문있습니다.
copy의 인자로 v, v+5, ret을 넣는데 원래 copy(InputIterator first, InputIterator last, OutputIterator result) 이렇게 이터레이터가 들어가야 하잖아요array to pointer decay 때문에 그냥 v를 넣으면 되는 건가요? 포인터로 선언을 시켜주지 않아도 이터레이터가 들어가야 할 자리에 인자로 넣어주면 이런 현상이 일어나는건지 궁금합니다!
-
미해결HAL, CubeMX, TrueSTUDIO를 이용한 STM32F4 무료 강좌
파일이 없습니다.
소스 파일이 없어요
-
미해결스프링부트 시큐리티 & JWT 강의
10강 시큐리티 로그인중 api 라이브 과정
처음에 기타가 아닌 걸로 했다가 다시 작성해봅니다.앱 라이브를 안할경우 페이스북 로그인시 뜨는 화면 라이브를 하려니 뜨는 에러개인정보처리방침 URL:https://www.facebook.com/privacy/policy/?entry_point=facebook_page_footer사용자 데이터 삭제 https://developers.facebook.com/docs/development/create-an-app/app-dashboard/data-deletion-callback 임의 작성 localhost:8080 에서 대충 www.naver.com으로 웹사이트 url 변경 앱 라이브 성공!! 일단 라이브 성공 상태에서 다시http://localhost:8080 로 웹사이트 url 변경 ??? 읭? 분명 비활성화에서 바뀌긴 했는데 페이스북 로그인이 안됨.. (개발자 계정과 다른 페북 아이디일경우) 개발자 페이스북 아이디 동일할경우. 여기까지 후 일단 페북 인증 잠정 중단.확인결과 비즈니스계정을 인증해야 api를 정상적으로 사용가능한데, 비즈니스계정 인증시 사업자 등록증 등 요구하는게 많아 포기.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
자바 ORM 표준 JPA 프로그래밍책을 지금 사도 괜찮을까요?..
15년에 나왔던데 .. 사도 괜찮을까요 ?? 강의에 비해 옛날 내용은 아니겠죠?? ..