묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 기본편
스프링빈 등록시점관련
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.스프링빈이 @Bean 메서드에서 return 되는 시점에 객체가 빈으로 등록되는게 아니라 new 연산자로 생성하는 시점에 빈이 되는 건가요???리턴하는 코드보다 의존관계 주입하는 코드가 먼저 있는데 (NetworkClient networkClient = new NetworkClient(); networkClient.setUrl("https://www.naver.com"); return networkClient;)스프링 컨테이너 생성→ 스프링 빈 생성 →의존관계 주입→ 초기화 콜백 이 순서에서 보면 빈이 new 로 생성되고 주입받고 return 하는 것 같아서요 .. .. 지금까지는 return new 객체 패턴으로 스프링에 빈을 등록했어서 조금 헷갈립니다.
-
미해결입문자를 위한, HTML&CSS 웹 개발 입문
float속성
float속성 강의에서 p태그의 가로 길이가 div의 width만큼밖에 안되어 있는데 원래는 block속성이니까 뷰포트 전체를 차지해야 하는 것 아닌가요?? 아니면 혹시 div의 자식 태그여서 부모의 width속성을 상속 받은 건가요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Server Service에서 함수포인터 사용관련해서 질문을 남깁니다.
using SessionFactory = function<SessionRef(void)>; Service(ServiceType type, NetAddress address, IocpCoreRef core, SessionFactory factory, int32 maxSessionCount = 1); Service의 생성자는 이런식으로 SessionFactory라는 함수포인터를 받고 있습니다. 그런데 함수포인터를 전달하지 않고, ServerServiceRef service = MakeShared<ServerService>( NetAddress(L"127.0.0.1", 7777), MakeShared<IocpCore>(), MakeShared<GameSession>, // TODO : SessionManager 등 100); 이렇게 MakeShared로 생성된 GameSession 클래스를 전달해도 잘 동작하는데, 함수포인터 형식에 클래스를 그냥 사용해도 잘 동작하는 이유가 궁금합니다.MakeShared의 함수에서 ()를 사용하지 않으면, 내부적으로 xnew함수만 전달되어서 그런것인가요? 제가 이해한게 정확한지 모르겠어서 질문을 남깁니다. (한번도 function을 이렇게 사용한적이 없어서 모르겠네요 ㅜㅜ)
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
강의명에 오타가 있는 것 같습니다.
강의 너무 잘듣고 있습니다.23-05-login-chech-hoc / login-check-hoc-success앞쪽에 chech라고 오타가 있는 것 같아요
-
해결됨Svelte REST-API 프로젝트
첫 메인 화면 $isLogin 인증 부분 궁금한점이 있습니다.
처음 화면에서 http://127.0.0.1:3012 을 호출하면 http://127.0.0.1:3012/articles/all 주소로 자동 이동합니다.궁금한 점은 articles/all 화면에서 제일 상단에 인증되면 보이는 입력칸이 보입니다. {#if $isLogin} 으로 조건이 되어도 true 인지 입력칸이 보입니다.로그아웃 버튼을 누르면 로그인을 하지 않은 첫화면인데 작동이 되어 로그아웃으로 해제 됩니다. 이 부분이 궁금합니다. <script> import ArticleHeader from '../components/ArticleHeader.svelte'; import ArticleList from '../components/ArticleList.svelte' import ArticleAddForm from '../components/ArticleAddForm.svelte' import Comments from '../pages/Comments.svelte' import { isLogin } from '../stores' import { Route } from 'tinro' </script> <ArticleHeader /> <main class="slog-main "> {#if $isLogin} <ArticleAddForm /> {/if} <ArticleList /> <Route path="/comments/:id" > <Comments /> </Route> </main> function setIsLogin() { const checkLogin = derived(auth, $auth => $auth.Authorization ? true : false) return checkLogin }
-
미해결마케터를 위한 구글 애널리틱스 실무
안녕하세요. pdf 수업 자료 공유 부탁드립니다.
저두 초보입니다. 수업자료 부탁드립니다. 꾸벅bbugury-r@nate.com
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
saa와 scp 내용 비교
saa 강의 듣고 scp도 취득할수 있나요?
-
미해결스프링 부트 - 핵심 원리와 활용
잘 이해가 안갑니다...
MyContainerInitV1 : ServletContainerInitializer을 implement한 클래스로서 서블릿 컨테이너 초기화를 위해 작성됐다.HelloServlet : HttpServlet을 상속받은 Servlet이다.AppInit : 애플리케이션 초기화를 위한 인터페이스이다.AppInitV1Servlet : AppInit를 implement한 애플리케이션 초기화 클래스 ? onStartup()을 통해 서블릿 컨테이너를 초기화하고 서블릿도 등록한다. MyContainerInitV2: ServletContainerInitializer을 implement한 클래스로서 @HandlesTypes(AppInit.class) 해줌으로써 해당 AppInit의 onStartup()을 통해 서블릿 컨테이너의 ctx를 파라미터로 보내서 AppInit 객체를 생성한다?================================제가 이해한 개념이 맞나요? 뭔가 용어들이 비슷해서 명확하게 이해가 안되는 것 같습니다. ㅠㅠ질문1) 컨테이너 초기화와 애플리케이션 초기화는 다른 건가요? 각각 뭐가 다르고 왜 해주는건지 잘 모르겠습니다. ㅠㅠ 질문2) AppInit과 ServletContainerInitializer은 둘다 onStartup()를 가지고 있던데.. 서로 다른 역할을 하는 각각의 인터페이스죠..? 질문3) AppInitV1Servlet 은 서블릿 컨테이너 초기화하고 서블릿도 등록하고, MyContainerInitV2도 서블릿 컨테이너 초기화와 서블릿 등록을 하게되는데 둘의 차이는 뭔가요?...너무 헷갈려요 ㅠㅠㅠㅠㅠ
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
첫페이지 크롤링하기 오류
안녕하세요!! 바꿔서 올려주신 강의자료 복사해서 사용해도 작동하지 않습니다!!맥북 사용중이라 혹시나해서 유저 에이전트 값을Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 으로 변경해서 진행했는데도 값이 나오지 않아요!! 확인부탁드립니다.! import requests from bs4 import BeautifulSoup main_url = "https://www.coupang.com/np/search?component=&q=usb%ED%97%88%EB%B8%8C&channel=user" # 헤더에 User-Agent, Accept-Language 를 추가하지 않으면 멈춥니다 header = { 'Host': 'www.coupang.com', 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 'Accept-Language': 'ko-KR,ko;q=0.8,en-US;q=0.5,en;q=0.3', } response = requests.get(main_url, headers=header) html = response.text soup = BeautifulSoup(html, 'html.parser') links = soup.select("a.search-product-link") # select의 결과는 리스트 자료형 print(links)
-
미해결처음 만난 리액트(React)
false expression
Inline If에서 false expression을 사용하면 뒤에 내용은 평가되지 않지만, false expression의 결과 값이 그대로 리턴되기 때문에 주의 해야 한다 이렇게 말씀하셨는데 그러면 하단의 흰색 박스에 조건이 만족하지 않을 경우에도 결과 값을 그대로 리턴하나요..?
-
해결됨게임 프로그래머 취업 전략 가이드
[취업] 게임 클라이언트 개발자를 준비중입니다.
안녕하세요 현재 독학으로 게임 클라이언트 개발자를 준비하고 있습니다. 팀 프로젝트 경험이 없고 포폴은 유니티를 이용해 하이퍼 캐주얼 게임 2개정도 이며, 루키스님을 알게되어 프로그래머스와 백준에서 문제풀이를 하며 유니티 강의 수강을 고민하고 있습니다.루키스님의 유니티 mmo강의는 클라와 서버부분을 같이 공부할 수 있을 것 같은데, 빠른 취업을 목표로 강의는 최소 어디까지 듣는게 좋을지 포폴은 어느정도 수준이어야 할지 감이 잡히지 않아서 질문드립니다.
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
mapState을 이용하여 state값을 가져오면 가져와지는데 개발자 도구 Vuex 부분에서는 state값이 없다고 뜹니다.
mapState을 이용하여 state값을 가져오면 가져와지는데 개발자 도구 Vuex 부분에서는 state값이 없다고 뜹니다. 단순한 개발자도구 에러일까요? 다른 이유가 있을까요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
값 타입 컬렉션 삭제부분에서 이해가 안가는곳이 있는데요
챕터9 값 타입 컬렉션 25분Address 값 타입 컬렉션 삭제 부분입니다. 우선 삭제되는 부분만 확인하고 싶어서, 새로운 값을 추가하지는 않았습니다.System.out.println("========== 값 타입 컬렉션 주소 삭제================"); findMember.getAddressHistory().remove(new Address("old1", "street", "zipcode")); 데이터는 정상적으로 삭제되었는데, 저는 왜 Member테이블에 대해 update쿼리가 나가는지가 이해가 안가는데요,Member 테이블에서는 수정사항이 발생할게 없는데 왜 update쿼리도 발생했는지 알 수 있을까요? 혹시 몰라 코드 전체와 결과 남깁니다. Member member = new Member(); member.setUsername("member1"); member.setHomeAddress(new Address("homeCity","street","zipcode")); member.getFavoriteFoods().add("꾸부라꼬"); member.getFavoriteFoods().add("카페라떼"); member.getFavoriteFoods().add("회"); member.getAddressHistory().add(new Address("old1", "street", "zipcode")); member.getAddressHistory().add(new Address("old2", "street", "zipcode")); em.persist(member); em.flush(); em.clear(); System.out.println("================== 조회 시작 =================="); Member findMember = em.find(Member.class, member.getId()); System.out.println("================== 컬렉션은 지연로딩, Addr 조회 =================="); List<Address> addressHistory = findMember.getAddressHistory(); for(Address address : addressHistory) { System.out.println("address = " + address.getCity()); } System.out.println("================== 컬렉션은 지연로딩, favorite food 조회 =================="); Set<String> favoriteFoods = findMember.getFavoriteFoods(); for(String favoriteFood : favoriteFoods) { System.out.println("favoriteFood = " + favoriteFood); } Address homeAddress = findMember.getHomeAddress(); findMember.setHomeAddress(new Address("new change city", homeAddress.getStreet(), homeAddress.getZipcode())); findMember.getFavoriteFoods().remove("꾸부라꼬"); findMember.getFavoriteFoods().add("무화과 크림치즈 베이글"); System.out.println("========== 값 타입 컬렉션 주소 삭제================"); findMember.getAddressHistory().remove(new Address("old1", "street", "zipcode")); tx.commit(); Hibernate: /* insert hellojpa.Member */ insert into Member (city, street, zipcode, USERNAME, MEMBER_ID) values (?, ?, ?, ?, ?) Hibernate: /* insert collection row hellojpa.Member.addressHistory */ insert into ADDRESS (MEMBER_ID, city, street, zipcode) values (?, ?, ?, ?) Hibernate: /* insert collection row hellojpa.Member.addressHistory */ insert into ADDRESS (MEMBER_ID, city, street, zipcode) values (?, ?, ?, ?) Hibernate: /* insert collection row hellojpa.Member.favoriteFoods */ insert into FAVORITE_FOOD (MEMBER_ID, FOOD_NAME) values (?, ?) Hibernate: /* insert collection row hellojpa.Member.favoriteFoods */ insert into FAVORITE_FOOD (MEMBER_ID, FOOD_NAME) values (?, ?) Hibernate: /* insert collection row hellojpa.Member.favoriteFoods */ insert into FAVORITE_FOOD (MEMBER_ID, FOOD_NAME) values (?, ?) ================== 조회 시작 ================== Hibernate: select member0_.MEMBER_ID as member_i1_6_0_, member0_.city as city2_6_0_, member0_.street as street3_6_0_, member0_.zipcode as zipcode4_6_0_, member0_.USERNAME as username5_6_0_ from Member member0_ where member0_.MEMBER_ID=? ================== 컬렉션은 지연로딩, Addr 조회 ================== Hibernate: select addresshis0_.MEMBER_ID as member_i1_0_0_, addresshis0_.city as city2_0_0_, addresshis0_.street as street3_0_0_, addresshis0_.zipcode as zipcode4_0_0_ from ADDRESS addresshis0_ where addresshis0_.MEMBER_ID=? address = old1 address = old2 ================== 컬렉션은 지연로딩, favoritfood 조회 조회 ================== Hibernate: select favoritefo0_.MEMBER_ID as member_i1_4_0_, favoritefo0_.FOOD_NAME as food_nam2_4_0_ from FAVORITE_FOOD favoritefo0_ where favoritefo0_.MEMBER_ID=? foavortefood = 꾸부라꼬 foavortefood = 회 foavortefood = 카페라떼 ========== 값 타입 컬렉션 주소 삭제================ Hibernate: /* update hellojpa.Member */ update Member set city=?, street=?, zipcode=?, USERNAME=? where MEMBER_ID=? Hibernate: /* delete collection hellojpa.Member.addressHistory */ delete from ADDRESS where MEMBER_ID=? Hibernate: /* insert collection row hellojpa.Member.addressHistory */ insert into ADDRESS (MEMBER_ID, city, street, zipcode) values (?, ?, ?, ?) Hibernate: /* delete collection row hellojpa.Member.favoriteFoods */ delete from FAVORITE_FOOD where MEMBER_ID=? and FOOD_NAME=? Hibernate: /* insert collection row hellojpa.Member.favoriteFoods */ insert into FAVORITE_FOOD (MEMBER_ID, FOOD_NAME) values (?, ?) Process finished with exit code 0
-
미해결C# 프로그래밍 기초
메서드 Override1
09:58 이 부분에서 저는 Student가 아닌 Human이 나오는데 원인을 잘 모르겠습니다.ㅠㅠ
-
미해결밑바닥부터 시작하는 왕초보 유니티 2D 게임제작
섹션2: 에너미이동
랜덤하게 에너미이동을 진행할 때, speed를 높이면 씬뷰에서 카메라 범위를 벗어나게 되어서 기존 코드에 다음 코드를 추가하였습니다. 그런데도 씬뷰를 벗어나게 되더라고요. 업데이트 부분에서 현재 위치의 x,y가 주어진 범위를 벗어나면 코루트를 시작하는 함수를 호출하여 다시 목표 방향을 설정한건데 왜 벗어나는 걸까요?if(transform.position.x < (-hs.x)){ StartCoroutine(ChangeDir(3f)); } if(transform.position.x > (hs.x)){ StartCoroutine(ChangeDir(3f)); } if(transform.position.y < (-hs.y)){ StartCoroutine(ChangeDir(3f)); } if(transform.position.y > (hs.y)){ StartCoroutine(ChangeDir(3f)); }using System.Collections; using System.Collections.Generic; using UnityEngine; public class EnemyMove1 : MonoBehaviour { public float speed = 3; Vector2 hs; //half screen: 원점 초기화 Vector2 dir; //direction: 원점 초기화 // Start is called before the first frame update void Start() { hs.x = Camera.main.orthographicSize; //카메라 위쪽에서 아래쪽 바라보는 가로의 길이 hs.y = Camera.main.aspect * hs.x; //가로세로 비율 * 가로 길이 = 세로 길이 StartCoroutine(ChangeDir(3f)); } // Update is called once per frame void Update() { Vector2 delta = dir * speed * Time.deltaTime; transform.Translate(delta); //자동으로 z가 0으로 됨. if(transform.position.x < (-hs.x)){ StartCoroutine(ChangeDir(3f)); } if(transform.position.x > (hs.x)){ StartCoroutine(ChangeDir(3f)); } if(transform.position.y < (-hs.y)){ StartCoroutine(ChangeDir(3f)); } if(transform.position.y > (hs.x)){ StartCoroutine(ChangeDir(3f)); } } IEnumerator ChangeDir(float delta){ Vector2 goal; while(true){ goal.x = Random.Range(-hs.x,hs.x); //전체 가로 길이 goal.y = Random.Range(-hs.y,hs.y); //전체 세로 길이 dir = goal - (Vector2) transform.position; //이동방향 = 목표지점 - 현재위치(Vector3) dir.Normalize(); float delay = Random.Range(1f,delta); yield return new WaitForSeconds(delta); } } }
-
미해결밑바닥부터 시작하는 왕초보 유니티 2D 게임제작
섹션2: 에너미 이동2
void Update() { Vector2 delta = dir * speed * Time.deltaTime; }이 부분에서 왜 dir을 곱하는 지 이해가 되지 않습니다!그 전에는 초당 얼만큼 가기 위해 speed를 곱했는데 dir은 여기서 무엇을 뜻하는 걸까요?
-
해결됨Verilog FPGA Program 2 (MicroBlaze, Arty A7-35T)
자료링크 "접근이 불가능합니다"
"접근이 불가능합니다" 라고 뜨며 다운로드가 불가능합니다.
-
미해결스프링 핵심 원리 - 기본편
AllBeanTest시 왜 NullpointException 에러가 발생하나요 ㅠ
sout 으로 policyMap과 policies에 값이 fixDiscount와 RateDiscount가 들어가있는걸 확인했는데 왜 널포인트에러가 발생할까요 ㅠ package hello.core.autowired.AllBeanTest; 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; import static org.assertj.core.api.AssertionsForClassTypes.assertThat; 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(discountService).isInstanceOf(DiscountService.class); 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); } } }
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
refetchQueries 질문
안녕하세요.강의를 복습하던 도 중 궁금한게 생겨서 질문 드립니다.onClick={qqq}으로 버튼을 클릭시 5개 정도의 데이터가 refetchqueries 되어야 하는데 모두 다 쓰면 비효율적 인 듯 합니다.많은 데이터가 refetch되어야 할 때 페이지가 새로고침 되는것이 낫다고 생각 하는데.. 1.새로고침을 한다면 어떤식으로 코드를 써야하나요?2. 둘 중 어느것이 더 효율적일까요.
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
Row 위젯의 children의 [위젯1, 위젯2...] 안에서 if문
위 코드처럼 Row위젯의 children 파라미터에 있는 ElevatedButton 위에 if문을 작성하였는데,이떄 if 문을 적용하는 코드에는 {} 를 쓰는데 여기서는 안써도 왜 if문을 먼저 통과해야 ElevatedButton이 생기는지 이유가 궁금합니다!