묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
자유게시판 대댓글 등록
자유게시판 대댓글 등록 & 조회 기능 구현을하는데 playground에서 회원정보 인증에서 오류가 발생합니다.피그마 상에서도 일반회원에 대한 내용만 있고 비회원일 경우없는 것을 보면 대댓글 기능 자체가 로그인이 되어있을 경우를 상정한건가요?일단 docs에는 유저토큰 정보를 요구하지는 않는데... 회원정보가 필요한가요? 대댓글 자유게시판에서 대댓글기능 작동하는 건가요...?
-
해결됨외워서 끝내는 네트워크 핵심이론 - 기초
L2스위치의 역할을 잘 모르겠습니다.
송신 구조는 대략적으로컴퓨터 -> L2 -> L3(라우터) -> 다른 네트워크와 연결이렇게 이해하고 있었습니다.그런데 공유기도 L3스위치라고 하더라구요당장 제 노트북에 유선으로 공유기와 연결되어있는데그럼 컴퓨터 -> L3(공유기) -> L2 -> L3(라우터) -> 다른 네트워크 순서가 되는건가요? 수신 시에IP주소로 근처의 라우터까지 온 데이터를 L2스위치가받아서 MAC주소로 내 컴퓨터에 전달. 이 아니라 IP주소로 근처의 라우터까지 온 데이터를 L2스위치가받아서 MAC주소로 공유기에 전달 -> 내 컴퓨터로 전달. 이 되는건가요? 공유기가 L3스위치라고 하니 순서가 헷갈립니다.송신시에 순서상 L2가 공유기 이전에 있어야 하는것같은데 정확히 어떻게 되는건지 잘 모르겠습니다 .. 그리고 OIS 7계층이 송.수신에서의 7계층과(스트림 -> 세그먼트 -> 패킷 -> 프레임으로 데이터가 변환되는 과정)출발후 도착까지의 전달 과정에서의 7계층으로 나누어 생각하는건가요?(변환된 데이터가 L1 -> L2스위치 -> L3라우터 순서 로 전달되는 과정)
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
학습자료 링크 강의에 해당하는 페이지로 연결
수업자료 링크가 상단 디렉토리로 되있는데,강의에 해당하는 페이지로 연결 되게,해주시면 감사하겠습니다.
-
미해결웹 게임을 만들며 배우는 React
output에 publicPath질문
2-9강 따라하는도중에 에러가 났는데요.에러가 난 이유는 제 코드에는 output란에 publicPath가 없어서인것 같은데, 정확한 이유를 모르겠습니다.제로초님코드에는 output에 publicPath가 자동으로 생성되어있고, devServer란에 그대로 따라치라 하셨는데 저는 애초에 publicPath가 없어서요. 그런데 궁금한건 2-8강 제로초님코드를 보니 저처럼 output에 publicPath가 없었는데, 2-9강에서 갑자기 생겨있더라고요.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
DisconnectEx
해당함수를 사용하면 기존에 생성했던 Socket을 다시 만들필요 없이 재사용할 수 있다라고 설명하셨는데, 해당 코드를 보면 Disconnect가 될 시 Service에서 Session을제거하기 때문에 해당 Session은 메모리에서 해제가 되는것으로 알고 있습니다. 그럼 다시 CreateSocket함수를 통해서 socket이 생성되면 사실 의미가 없는게 아닌가 궁금합니다. 그냥 SocketPool을 만들어서 제가될떄 넣고, 생성될때 꺼내쓰는게 효율적일 것 같은데 혹시 어떻게 생각하시는지 궁금합니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
연관관계 주인을 FK로 잡는 구체적 이유가 잘 이해가 안됩니다.
강의의 예제에서 Team 엔티티의 List members를 주인으로 잡게되면 insert시 Member측에선 update가 날라갈 수 있다라고 강의에서 설명이 된 것 같은데 왜 insert시 update가 일어나지?라는 생각이 들어서 혹시 이부분 첨언해주시면 감사드리겠습니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
@GetMapping과 MemberController클래스
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]처음에 나오는 내용에 대한 질문입니다.혹시 @GetMapping("/members/new") 어노테이션에 대한 내용을 왜 MemberController클래스에 만드는 건지 알 수 있을까요?꼭 MemberController클래스에 만들어야 하는 건가요??
-
미해결처음하는 딥러닝과 파이토치(Pytorch) 부트캠프 (쉽게! 기본부터 챗GPT 핵심 트랜스포머까지) [데이터분석/과학 Part3]
섹션2 코드질문
# 동일 shape 은 당연히 Tensor 간 연산 가능data1 = torch.torch.FloatTensor([ [1], [2], [3] ])data2 = torch.FloatTensor([1, 1, 1])data3 = data1 + data2 print (data1.shape, data2.shape, data3.shape)print (data3) 이 코드에서 data1은 torch.FloatTensor이 아닌torch.torch.FloatTensor를 사용하는 이유가 궁금합니다.출력했을때는 같은결과가 나오는데 말이죠..
-
미해결Vue.js + TypeScript 완벽 가이드
두번째 프로젝트 권한 요청드립니다.
안녕하세요, 두번째 프로젝트 권한 부탁드립니다.계정 : thfdl0317@naver.com 입니다.강의를 보며 타입스크립트를 더 자세히 알게 되는 것같아요, 감사합니다.
-
해결됨[Bloc 응용] 실전 앱 만들기 (책 리뷰 앱) : SNS 로그인, Firebase 적용, Bloc 상태 관리, GoRouter
데이터 저장2
안녕하세요 개남님 개남님이 만들어주신 코드와 제가 가지고 있던 코드랑 같이 활용을 해보려고 했는데 기존에 있던 코드가 작동을 안 하는데 혹시. 개남님이 만드신 Authrepository를 사용안하면 기존에 있던 name이나 Uid를 인식을 못 해서 안 불러지는건가요?--추가--신기한건[VERBOSE-2:dart_vm_initializer.cc(41)] Unhandled Exception: Bad state: cannot get a field on a DocumentSnapshotPlatform which does not exist 이런식으로 에러가 뜨네요... 흠.. 분명 name은 존재한다고 뜨긴하는데.. (개남님이 만드신 방식으로 해야만 뜹니다)(추가)이런식으로 해봤더니 기존의 구글 name이 뜨네요.음 Authrepository의 cubit에서 인식하는 name은 우리가 회원가입에서 입력한 이름이고제가 만든 코드에서 인식하는 name은 구글 기존의 이름으로 뜹니다. 이유가 뭘까요? 감사합니다! void _nameEvent(NameEvent event, Emitter<HomePageState> emitter) async { String uid = FirebaseAuth.instance.currentUser!.uid; DocumentSnapshot document = await FirebaseFirestore.instance.collection('users').doc(uid).get(); String userName = document['name']; int level = document['level']; //여기는 기존의 bloc입니다 //이 아래는 이렇게하니까 우리가 추가한 네임이 아니라 기존의 구글 네임이 뜨게 되는 코드입니다. void _nameEvent(NameEvent event, Emitter<HomePageState> emitter) async { UserModel? userModel; final user = await _authenticationRepository.user.first; final userName = user?.name ?? 'Unknown'; // 기본값 설정 print("유저의 이름은 $user"); print("유저의 이름은 $userName"); emit(state.copyWith( name: userName, )); // 기존의 Firestore에서 사용자 정보를 가져오는 코드... String uid = FirebaseAuth.instance.currentUser!.uid; DocumentSnapshot document = await FirebaseFirestore.instance.collection('users').doc(uid).get(); int level = document['level']; print(user); print(userName); emitter(state.copyWith( level: level, name: userName, )); }
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
servlet 생성시점
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]HttpServlet을 상속받은 클래스는 어느 시점에 생성이 되나요?
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
브로커에 장애가 발생한 경우
예를 들어, 가용한 브로커개수가 3개고 특정 토픽의 복제 개수가 2로 운영하는 경우라고 가정하겠습니다.이때 이 토픽을 포함하고 있던 두 대중, 한대가 죽으면이 토픽은 그 브로커가 다시 살아날 때까지 복제개수가 한개가 되는건가요? 아니면 원래는 이 토픽을 갖고있지않던 다른 브로에 이 토픽이 추가되어 운영되나요 ? 복제개수가 2ㅇ,ㄴ
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
페치 조인1 강의에 대한 질문있습니다.
try { Team teamA = new Team(); teamA.setName("팀A"); em.persist(teamA); Team teamB = new Team(); teamB.setName("팀B"); em.persist(teamB); Member member1 = new Member(); member1.setUsername("회원1"); member1.setTeam(teamA); em.persist(member1); Member member2 = new Member(); member2.setUsername("회원2"); member2.setTeam(teamA); em.persist(member2); Member member3 = new Member(); member3.setUsername("회원3"); member3.setTeam(teamB); em.persist(member3); em.flush(); em.clear(); String query = "select m from Member m"; List<Member> result = em.createQuery(query, Member.class) .getResultList(); for (Member member : result) { System.out.println("member = " + member.getUsername() + ", " + member.getTeam().getName()); }Hibernate: /* select m from Member m */ select member0_.id as id1_0_, member0_.age as age2_0_, member0_.TEAM_ID as team_id5_0_, member0_.type as type3_0_, member0_.username as username4_0_ from Member member0_ Hibernate: select team0_.id as id1_3_0_, team0_.name as name2_3_0_ from Team team0_ where team0_.id in ( ?, ? ) member = 회원1, 팀A member = 회원2, 팀A member = 회원3, 팀B회원1을 조회하면서 회원과 팀에 대한 select 쿼리가 나가고 회원1을 조회하면서 teamA가 영속성 컨텍스트에 올라갔으니 회원2는 1차 캐시에서 가져온다고 했습니다. 그러면 teamB는 영속성 컨텍스트에 없기 때문에 team에 대한 쿼리가 발생해야 하는데 발생하지 않습니다. 왜 강의와 다르게 쿼리가 발생하는지 궁금합니다.
-
미해결Practical Testing: 실용적인 테스트 가이드
Spring Security 를 포함한 WebMvcTest 질문드립니다.
안녕하세요 좋은 강의 덕분에 테스트에 대해 많이 알게 되었습니다 :)스프링 시큐리티를 포함한 테스트와 관련해서 질문을 드려보고자 글을 쓰게 되었습니다. (강의에서는 스프링 시큐리티를 사용하지 않지만 테스트와 관련해서 물어볼 곳이 마땅치 않아 이 곳에 글을 남기는 점 양해해주시면 감사하겠습니다)@RequiredArgsConstructor @RestController @RequestMapping("/api") @Slf4j public class AuthController { private final AuthService authService; @PostMapping("/auth/sign-up") public String signUp(@RequestBody SignUpRequest request) { authService.signUp(request); return "회원가입 성공"; } }현재 회원가입을 하는 컨트롤러의 메서드는 다음과 같습니다. @Service @RequiredArgsConstructor @Slf4j @Transactional(readOnly = true) public class AuthService { private final UserRepository userRepository; private final PasswordEncoder passwordEncoder; @Transactional public void signUp(SignUpRequest request) { if (userRepository.findByEmail(request.getEmail()).isPresent()) { throw new AlreadyExistException("이미 존재하는 이메일입니다."); } if (userRepository.findByNickname(request.getNickname()).isPresent()) { throw new AlreadyExistException("이미 존재하는 닉네임입니다."); } User user = User.builder() .name(request.getName()) .email(request.getEmail()) .password(request.getPassword()) .nickname(request.getNickname()) .role(UserRole.USER) .build(); user.passwordEncode(passwordEncoder); userRepository.save(user); } }그리고 실제 회원가입이 진행되는 로직은 이렇습니다. 그리고 제가 WebMvcTest 어노테이션을 사용해서 테스트 코드를 작성한 건 다음과 같습니다.@ActiveProfiles("test") @AutoConfigureMockMvc @WebMvcTest(AuthController.class) class AuthControllerTestWithWebMvcTest { @Autowired protected MockMvc mockMvc; @Autowired protected ObjectMapper objectMapper; @MockBean private AuthService authService; @MockBean private UserRepository userRepository; @DisplayName("회원가입 한다.") @CustomMockUser // 회원가입을 해야되는데 인증이 필요하다? -> 논리적으로 말이 안 됨 -> 올바른 테스트? @Test void signUp() throws Exception { // given SignUpRequest request = SignUpRequest.builder() .name("zun") .email("zun@test.com") .password("12345") .nickname("zunny") .build(); // then mockMvc.perform(post("/api/auth/sign-up") .content(objectMapper.writeValueAsString(request)) .contentType(APPLICATION_JSON) .with(csrf()) ) .andExpect(status().isOk()) .andDo(print()); } }보시다시피 회원가입 API에 요청이 제대로 되는지를 확인하기 위해 @CustomMockUser 라는 어노테이션을 사용하고 있습니다. (이 어노테이션은 테스트에서 인증을 처리하기 위해 만든 어노테이션입니다. 호돌맨님 강의를 참고해서 만들었습니다.)제가 혼란스러운 부분은 테스트코드에 써놓은 주석처럼 회원가입이 제대로 되는지를 테스트하기 위한 컨트롤러 코드인데 이걸 통과시키기 위해 인증을 담당하는 @CustomMockUser를 사용하는 것이 올바른 테스트인가 하는 의문입니다.@WebMvcTest를 사용하지 않고 @SpringBootTest를 사용하면 다음처럼 할 수가 있습니다.@ActiveProfiles("test") @AutoConfigureMockMvc @SpringBootTest class AuthControllerTest { @Autowired private UserRepository userRepository; @Autowired private ObjectMapper objectMapper; @Autowired private MockMvc mockMvc; @BeforeEach void tearDown() { userRepository.deleteAllInBatch(); } @DisplayName("회원가입 한다.") @Test void signUp() throws Exception { //given SignUpRequest request = SignUpRequest.builder() .name("zun") .email("zun@test.com") .password("12345") .nickname("zunny") .build(); //expected mockMvc.perform(post("/api/auth/sign-up") .content(objectMapper.writeValueAsString(request)) .contentType(APPLICATION_JSON) ) .andExpect(status().isOk()) .andDo(print()); } } 혹시 이와 관련해서 우빈님은 어떻게 생각하시는지, 그리고 스프링 시큐리티를 사용하는 프로젝트에서는 컨트롤러 쪽 테스트를 어떻게 하는 것이 좋은지 알려주시면 감사하겠습니다!
-
미해결
스프링 db - 2 동작원리
해당 프로젝트에서 controller가 따로 없는 것으로 보이는데 service나 repository에 있는 메서드들의 호출이 어떻게 가능한지 궁금합니다.
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Input.anyKey == false 를 사용하는 이유? (KeyAction == null 은 안되나요?)
InputManager 에서 마우스든,키보드든 아무키나 눌렸는지 확인할때 Input.anyKey == false 를 사용하셨는데요.(KeyAction == null) 이렇게 사용해도 같은 의미인것 같아서 혼란스러운데요. (KeyAction == null) 이 내용으로 대체해도 상관 없나요?
-
미해결[유니티 레벨 업!] 모듈식으로 개발하는 퀘스트&업적 시스템
description 생성할때 애니메이션
안녕하세요Quest Tracker 부분에서 새로운 퀘스트가 등록되거나 새로운 task가 등록될때 애니메이션을 주면서 생성하고싶은데 vertical layout group 때문에 UI가 고정되있어서 어떤식으로 해야할지 고민입니다. vertical layout group을 끄고 해볼려고했는데 content size 가 적용이 안되서 이상해보입니다. 혹시 어떤 방법이 있을까요??
-
미해결만들면서 배우는 프론트엔드 DO IT 코딩 (Next.js, Typescript)
2. 사용자 API 만들기 => 강의는 짧지만 백엔드 api 만드는 기본 내용 다 들어가 있음 주의하세요!!
유저 api 하나 간단히 만드는 줄 알았는데..리팩터링하고 또하고모델과 컨트롤러 파일로 만들고 (모르신다면 MVC 패턴)에러 핸들링의 기초까지 싹 다 훑어버림1시간도 안되는 강의지만조심하세요 프린이 여러분들...근데 잘보면 뒤에 계속 API를 추가하기 때문에 여기서 정신차리셔야합니다... 꺾였지만 계속 가는 마음이 중요합니다 고고
-
미해결Angular(2+) Front에서 Back까지 - Nest js를 알려면 Angular 모듈을 알아야한다!
Angular language service가 제대로 작동하지 않을때..
안녕하세요, vscode를 사용하며 따라하고 있습니다.vscode 익스텐션에서 angular language service를 깔아 사용하고 있는데, ngOnChange 같은 메소드가 자동 완성으로 뜨지 않습니다.그래서 npm으로 플러그인도 설치해보고 config파일도 바꿔봤는데 여전히 뜨지 않네요 ㅠㅠ혹시 문제가 어떤 부분일지 짐작하실 수 있을까요...
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
chap_04 continue 문의
int max = 20; // 최대 치킨 판매 수량 int sold = 0; // 현재 치킨 판매 수량 int noShow = 17; // 대기번호 17번 손님이 노쇼 for (int i = 1; i < 50; i++) { System.out.println(i + "번 손님, 주문하신 치킨 나왔습니다."); sold++; // 판매 처리 //손님이 없다면? (noShow) if (i == noShow) { System.out.println(i + "번 손님, 노쇼로 인해 다음 손님에게 기회가 넘어갑니다."); continue; } if (sold == max) { System.out.println("금일 재료가 모두 소진되었습니다."); break; } } System.out.println("영업을 종료합니다."); 여기서 질문이 하나 있습니다.코드에서도 for문안에 들어오면서 바로 sold부분이 증가하는데 noshow부분에서 sold가 증가하지 않아야 하는거 아닐까요?