묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨김영한의 실전 자바 - 기본편
객체지향프로그래밍 파트 관련 질문드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요,강사님의 좋은 강의 감사드리며, 열심히 듣고 있습니다.다름 아니라, MusicPlayerMain3 관련 질문드립니다.우선 관련 코드를 보여드립니다.MusicPlayerData data = new MusicPlayerData();on(data);volumeUp(data);volumeUp(data);volumeDown(data);showStatus(data);off(data);}static void on(MusicPlayerData data){data.isOn = true;System.out.println("음악 플레이어를 실행합니다.");}static void off(MusicPlayerData data){data.isOn = false;System.out.println("음악 플레이어를 종료합니다.");}이 코드에서volumeUp과 volumeDown 메서드는 반환 타입이 void입니다.main 메서드 안에는 볼륨 관련 메서드를 호출하고 있고,따로 메서드 호출 결과를 저장할 변수는 선언되어 있지 않습니다.그럼에도 volume 값이 메서드 호출 이후 지속적으로 업데이트 되는 것은,기본적으로 main 메서드에서 생성한 data가 참조값을 갖고 있고, 메서드의 매개변수 역시 data와 같은 참조값을 갖고 있으므로, 따로 return type과 저장할 변수를 선언하지 않았어도 참조값이 가르키는 인스턴스의 value 값이 volumeUp, Down 메서드 호출 할 때마다 업데이트 되는 것인가요? 또한 만약 같은 코드가 기본형을 다루는 메서드 였다면 값이 업데이트 되지 않는 것인지 확인하고 싶습니다.제가 이해한 것이 맞는지 확인하고 싶습니다.감사합니다.
-
미해결스프링 핵심 원리 - 고급편
AOP 실전예제 질문
@ClassAop @Component public class MemberServiceImpl implements MemberService{ @Override @MethodAop("test value") public String hello(String param) { return "ok"; } public String internal(String param) { return "ok"; } }에서 @ClassAop와 @MethodAop annotation은 왜 만든건가요? 활용이 안된거 같은데요????
-
해결됨지금 당장 리눅스 - 무료 클라우드 서버 활용하기
NodeJ 설치시 apt-get install 전에 curl 은 왜 하는건가요 ?
NodeJ 설치시 apt-get install 전에 curl 은 왜 하는건가요 ? sudo curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
-
해결됨팀 개발을 위한 Git, GitHub 입문
강의자료
강의자료 부탁드립니다.kimjihoon97@hotmail.com
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
Spring MVC에서 model의 역할
model객체에 대해서 궁금한 점이 있어서 질문 드립니다.일단 강의를 들으면서 dispatcherServlet 구조에 대해서 간략하게 정리한 내용입니다.개발자가 model 객체를 파라미터로 등록후 view에 담길 정보를 저장하고 Controller 메소드를 만듬-> 해당 URL에 접속하면 스프링이 dispatcherServlet의 doDispatch() 실행HandlerAdapter ha = this.getHandlerAdapter(mappedHandler.getHandler());-> doDispatch에서 해당 Controller에 맞는 어댑터를 찾고 mv = ha.handle(processedRequest, response, mappedHandler.getHandler()); -> (handler, request, response)를 가지고 ModelAndView 객체를 생성 이후 processDispatchResult()에서 render()를 실행render()에서는 mv객체 정보를 바탕으로 view의 render()함수를 사용해서 model에 있는 정보를 request.setAttribute()를 사용해서 저장하고 view를 반환함제가 model에 있는 정보를 request의 attribute객체에 담는 함수를 디버깅모드로 찾아봤는데 강의에서 구현한 코드와 거의 유사하게 작성된 것을 발견했습니다. 그럼 model 객체를 단순히 request의 attribute객체에 데이터를 쉽게 전달하기 위해서 사용한다고 생각해도 되는건가요? 그럼 model를 사용하지 않고 request에 직접 접근해서 저장하는 방법도 있을 텐데 스프링에서 model 객체를 만든 이유가 궁금합니다.긴글 읽어주셔서 감사합니다.
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
git username 과 gutHub의 이름이 동일해야 하나요?
git username을 먼저 정하고 gitHub에 가서 계정을 만들었는데 유저네임 작명 규정때문에 같은 유저네임을 사용하지 못했습니다. 이게 혹시 문제가 될까요?이미 커밋에 작성자 정보를 입력하고 저장한 상태인데 어떻게 하면 좋을까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
실행 자체는 되는데 메모리 누수가 심합니다.
생성자 종료할때 null을 허용하는 설정을 해주지 않아서 (CS8618) Player쪽에서 실행하는 로직은 이상이 없는데 실행했을때 메모리가 GB까지 올라가는 현상이 있었습니다.
-
해결됨개발자를 위한 쉬운 도커
가상머신과 프로세스에 대해 질문 있습니다.
안녕하세요기존 호스트 OS에서 프로그램을 4개 실행 시켰을때 4개의 프로세스가 생성이 되서 작업을 진행합니다 그리고호스트 OS에 하이퍼바이저를 설치하고 4개의 가상 머신을 실행시 결국에는 이 4개의 가상 머신에 대한 프로세스도 4개 할당이 되는건지 궁금합니다. 만약 할당이 된다면 맨 처음 얘기한 호스트 OS 만 있었을때의 프로세스와 가상 머신에 할당된 프로세스와 어떤 차이점이 있는지 궁금합니다.감사합니다.
-
미해결그림으로 쉽게 배우는 운영체제
가상주소를 물리주소로 변환하는 과정
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.2:55 부터 설명해주시는 예시에서 질문 드립니다!논리주소 0x12300 번지 접근 요청시 세그먼트를 알아내는 방법은 무엇일까요?3:50에서 프레임 3에서 페이지 개수 1000을 더하면 물리주소라는게 어떤 의미일까요? 페이징 기법과 유사하게 페이지 개수 칼럼이 세그먼트의 크기를 나타내기 위한 값으로 이해했는데, 실제 물리주소가 프레임 3에서 페이지 개수 1000을 더하면 나오는 값이 무엇인지 잘 모르겠어서 질문드립니다!
-
미해결그림으로 쉽게 배우는 운영체제
페이지 테이블 물리메모리 위치
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.8:25 부분에 메모리관리자가 사용하는 페이지 테이블은 물리메모리 운영체제 영역에 저장된다고 하셨는데요. 1. 프로세스 마다 생성되는 페이지 테이블은 물리메모리의 어디에 할당되는 걸까요? 2.메모리관리자가 사용하는 페이지테이블과 프로세스가 사용하는 페이지테이블의 차이는 무엇일까요?
-
미해결그림으로 쉽게 배우는 운영체제
세그멘테이션 테이블 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.1:30에서 cpu가 논리주소 0x123번지의 물리 메모리 주소 알려달라고 했을때, 메모리 관리자는 몇 번 세그먼트인지 어떻게 알아내는 걸까요?세그멘테이션 테이블에서 세그먼트 번호들은 프로그램 영역(코드, 힙, 데이터, 라이브러리, 스택) 마다 별도의 인덱스가 부여 되어 관리되는걸까요? 어떤 기준으로 세그먼트 인덱스가 정해지는 것인지 궁금합니다.0:40에서 프로그램 관점 메모리와 프로세스 관점 메모리프로세스 관점 메모리가 각 영역을 서로 인접한 것처럼 바라본다는 것이 어떤 의미일까요?프로그램 입장에서 바라보는 메모리와 프로세스가 바라보는 메모리에 대한 설명을 해주셨는데요. 강의 1:30부터 세그멘테이션 테이블을 이용하여 메모리관리자가 논리주소를 물리주소로 변환하는 것과 어떠한 맥락으로 이어지는지 궁금합니다.
-
해결됨스프링 핵심 원리 - 기본편
섹션7 조회한 빈이 모두 필요할 때 List, Map이 null로 나옵니다
제목 그대로 테스트 케이스 진행시List와 Map이 모두 null로 조회되어 테스트 오류가 발생합니다package hello.core.autowired.allbean; import hello.core.discount.DiscountPolicy; import hello.core.member.Grade; import hello.core.member.Member; import hello.core.order.AutoAppConfig; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; 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.Assertions.*; 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"); assertThat(discountService).isInstanceOf(DiscountService.class); assertThat(discountPrice).isEqualTo(1000); int rateDiscountPrice = discountService.discount(member, 20000, "rateDiscountPolicy"); assertThat(discountPrice).isEqualTo(2000); } static class DiscountService { private final Map<String, DiscountPolicy> policyMap; private final List<DiscountPolicy> policyList; public DiscountService(Map<String, DiscountPolicy> policyMap, List<DiscountPolicy> policyList) { this.policyMap = policyMap; this.policyList = policyList; System.out.println("policyMap = " + policyMap); System.out.println("policyList = " + policyList); } public int discount(Member member, int price, String discountCode) { DiscountPolicy discountPolicy = policyMap.get(discountCode); return discountPolicy.discount(member, price); } } }java.lang.NullPointerException: Cannot invoke "hello.core.discount.DiscountPolicy.discount(hello.core.member.Member, int)" because "discountPolicy" is null이라는 오류가 발생하는데 어느 부분이 문제인가요
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
C언어 배열
#include <stdio.h>int main(){int arr[5] = {20, 30, 40, 50, 60};int *ptr;ptr = arr;printf("1번. %d\n", ++ *ptr);printf("2번. %d\n", *(arr+1));printf("3번. %d\n", *ptr++);printf("4번. %d\n", ++ *ptr);printf("5번. %d\n", *arr+1);printf("6번. %d\n", *ptr++);printf("7번. %d\n", *ptr+1);} 1번에서 ++*ptr이 반영되어 21,2번에서 *(arr+1)이 반영되어 arr[1], 30,3번에서 *ptr++이 반영되어 21 출력 후 22로 증감까지는 이해가 됬는데,4번 ++*ptr 출력값이 arr[1]로 넘어가는 이유가 궁금합니다. 배열 출력 시 배열 내의 값만 증감되는 것이 아니라 출력되는 배열도 같이 증감되는 건가요 ?
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
강의자료요청
ans0127@naver.com 강의자료 부탁드립니다
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
JPA Transaction에서 Delete 되지 않는 현상 관련
@Entity @Getter @Setter @Table(name = "user") @NoArgsConstructor public class User extends TimeStamp { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(nullable = false) private String name; @Column(nullable = false, unique = true) private String email; @Column(nullable = false) private String password; @Column(nullable = false, unique = true) private String phone; @Column(nullable = false) private String address; @Column(nullable = false, length = 36) private String emailVerificationToken; @Column(nullable = false) private LocalDateTime emailVerificationExpiresAt = LocalDateTime.now().plusHours(24); @Column(nullable = false) private Boolean emailVerifiedStatus = false; @OneToMany(mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true) private List<WishList> wishes; @OneToMany(mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true) private List<Cart> carts; @OneToMany(mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true) private List<OrderList> orderList; public User( String name, String email, String password, String phone, String address, String emailVerificationToken, Boolean emailVerifiedStatus ) { this.name = name; this.email = email; this.password = password; this.phone = phone; this.address = address; this.emailVerificationToken = emailVerificationToken; this.emailVerifiedStatus = emailVerifiedStatus; } }@Service @RequiredArgsConstructor public class CartService { private final UserRepository userRepository; private final ProductRepository productRepository; private final CartRepository cartRepository; public List<CartResponseDto> getCartList(Long userId) { User user = findByuser(userId); List<Cart> cartLists = user.getCarts(); return cartLists.stream() .map(cartList -> new CartResponseDto( cartList.getProduct().getId(), cartList.getProduct().getName(), cartList.getQuantity(), cartList.getProduct().getPrice() * cartList.getQuantity(), cartList.getProduct().getProductStock().getStockQuantity()) ).toList(); } // 장바구니 삭제 @Transactional public List<CartResponseDto> cartDelete(Long userId, CartRequestDto cartRequestDto) { cartRepository.deleteByUserIdAndProductId(userId, cartRequestDto.getProductId()); return getCartList(userId); } private User findByuser(Long userId) { return userRepository.findById(userId).get(); } }@Repository public interface CartRepository extends JpaRepository<Cart, Long> { void deleteByUserIdAndProductId(Long userId, Long productId); }User Entity에 cart 테이블 연관관계를 맺고orderService에서 cartRepository.deleteByUserIdAndProductId에서 데이터를 삭제 후 getCartList를 조회해 retrun 하려고 합니다.예) cart tableid user_id product_id quantity1 41 6 12 41 7 13 41 11 1이때 cartRepository.deleteByUserIdAndProductId에서 product_id 6번을 삭제하고 getCartList를 조회하였는데 6번에 삭제되지 않고 6,7,11이 전부 조회 되었습니다.삭제되지 않는 이유가 무었일까요 ? Hibernate: select u1_0.id,u1_0.address,u1_0.created_at,u1_0.email,u1_0.email_verification_expires_at,u1_0.email_verification_token,u1_0.email_verified_status,u1_0.name,u1_0.password,u1_0.phone,u1_0.updated_at from user u1_0 where u1_0.email=? Hibernate: select c1_0.id,c1_0.product_id,c1_0.quantity,c1_0.user_id from cart c1_0 where c1_0.user_id=? and c1_0.product_id=? Hibernate: select p1_0.id,p1_0.best_status,p1_0.created_at,p1_0.description,p1_0.description_image,p1_0.name,p1_0.new_status,p1_0.price,p1_0.sold_out_status,p1_0.thumbnail_image,p1_0.updated_at from product p1_0 where p1_0.id=? Hibernate: select ps1_0.id,p1_0.id,p1_0.best_status,p1_0.created_at,p1_0.description,p1_0.description_image,p1_0.name,p1_0.new_status,p1_0.price,p1_0.sold_out_status,p1_0.thumbnail_image,p1_0.updated_at,ps1_0.stock_quantity from product_stock_quantity ps1_0 left join product p1_0 on p1_0.id=ps1_0.product_id where ps1_0.product_id=? Hibernate: select u1_0.id,u1_0.address,u1_0.created_at,u1_0.email,u1_0.email_verification_expires_at,u1_0.email_verification_token,u1_0.email_verified_status,u1_0.name,u1_0.password,u1_0.phone,u1_0.updated_at from user u1_0 where u1_0.id=? Hibernate: select c1_0.user_id,c1_0.id,c1_0.product_id,p1_0.id,p1_0.best_status,p1_0.created_at,p1_0.description,p1_0.description_image,p1_0.name,p1_0.new_status,p1_0.price,p1_0.sold_out_status,p1_0.thumbnail_image,p1_0.updated_at,c1_0.quantity from cart c1_0 left join product p1_0 on p1_0.id=c1_0.product_id where c1_0.user_id=? Hibernate: select ps1_0.id,p1_0.id,p1_0.best_status,p1_0.created_at,p1_0.description,p1_0.description_image,p1_0.name,p1_0.new_status,p1_0.price,p1_0.sold_out_status,p1_0.thumbnail_image,p1_0.updated_at,ps1_0.stock_quantity from product_stock_quantity ps1_0 left join product p1_0 on p1_0.id=ps1_0.product_id where ps1_0.product_id=? Hibernate: select ps1_0.id,p1_0.id,p1_0.best_status,p1_0.created_at,p1_0.description,p1_0.description_image,p1_0.name,p1_0.new_status,p1_0.price,p1_0.sold_out_status,p1_0.thumbnail_image,p1_0.updated_at,ps1_0.stock_quantity from product_stock_quantity ps1_0 left join product p1_0 on p1_0.id=ps1_0.product_id where ps1_0.product_id=?
-
미해결쉽게 시작하는 쿠버네티스(v1.30) - {{ x86-64, arm64 }}
vagrant up 명령어 실행 중 worker#3 kubelet 오류로 설치 실패
질문 답변을 제공하지만, 강의 비용에는 Q&A는 포함되어 있지 않습니다. 다만 실습이 안되거나, 잘못된 내용의 경우는 알려주시면 가능한 빠르게 조치하겠습니다![질문 전 답변]안녕하세요, 아래와 같이 kubelet쪽에 문제가 있다고 설치가 안되는데, 해결방법이 궁금합니다 w3-k8s-1.30.0: [kubelet-start] Starting the kubelet w3-k8s-1.30.0: [kubelet-check] Waiting for a healthy kubelet. This can take up to 4m0s w3-k8s-1.30.0: [kubelet-check] The kubelet is healthy after 1.504250225s w3-k8s-1.30.0: [kubelet-start] Waiting for the kubelet to perform the TLS Bootstrap w3-k8s-1.30.0: w3-k8s-1.30.0: Unfortunately, an error has occurred: w3-k8s-1.30.0: context deadline exceeded w3-k8s-1.30.0: w3-k8s-1.30.0: This error is likely caused by: w3-k8s-1.30.0: - The kubelet is not running w3-k8s-1.30.0: - The kubelet is unhealthy due to a misconfiguration of the node in some way (required cgroups disabled) w3-k8s-1.30.0: w3-k8s-1.30.0: If you are on a systemd-powered system, you can try to troubleshoot the error with the following commands: w3-k8s-1.30.0: - 'systemctl status kubelet' w3-k8s-1.30.0: - 'journalctl -xeu kubelet' w3-k8s-1.30.0: error execution phase kubelet-start: context deadline exceeded w3-k8s-1.30.0: To see the stack trace of this error execute with --v=5 or higherThe SSH command responded with a non-zero exit status. Vagrantassumes that this means the command failed. The output for this commandshould be in the log above. Please read the output to determine whatwent wrong.1. 강의에서 다룬 내용과 관련된 질문인가요? [예 | 아니요]2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? [예 | 아니요]3. 질문 잘하기 법을 읽어보셨나요? [예 | 아니요](https://www.inflearn.com/blogs/1719)4. 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.5. vagrant up 에서 발생하는 문제는 주로 호스트 시스템(Windows, MacOS)과 연관된 다양한 조건에 의해 발생합니다. 따라서 이를 모두 제가 파악할 수 없어서 해결이 어렵습니다. vagrant up으로 진행이 어렵다면 제공해 드리는 가상 머신(VM) 이미지를 import해서 진행하시기 바랍니다. (https://www.inflearn.com/questions/992407/comment/281901)[질문 하기]
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
구버전
안녕하세요!flutter을 처음 배우는 학생입니다.8월 31일 이후에 구버전 강의를 삭제하신다고 하셨는데 혹시 어떤 강의들을 삭제하는 것인지 알 수 있을까요?일부 강의가 삭제되는 것이라면 어떤 강의들이 삭제되는 것인지 궁금합니다.
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
윈도우11
안녕하세요~ 크롤링 관심있어서 강의 수강중인데 현재 제 노트북이 win10인데 드라이버등등 이유로 win11로 가려고 해요.그럴경우 이 강의내용이 맞지 않을 수도 있을까요?
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
자바 업캐스팅, 재귀함수 질문드립니다.
JAVA언어 기출문제의 변형, 업캐스팅 + 재귀함수(16분)class Child extends Parent{public in sumValues(int n){if(n <= 0){return 0;}if(n%2 == 0){return n + sumValues(n-2);}else{return sumValues(n-1);}위 코드에서, 짝수일 때 return n+sumValues(n-2),홀수일 때 sumValues(n-1)을 실행하게 되는데,9 = sumValues(8) // 188 = 8 + sumValues(6) // 187 = sumValues(6) // 106 = 6 + sumValues(4) // 105 = sumValues(4) // 64 = 4 + sumValues(2) // 63 = sumValues(2) // 22 = 2 + sumValues(0) // 21 = sumValues(0) // 00 = 0 // 0으로, sum : 18로 생각을 했는데, 강의를 아무리 봐도 어떻게 20이 계산되는지 이해가 안 됩니다..
-
해결됨개발자를 위한 쉬운 도커
정리
안녕하세요 선생님. 공부하면서 블로그에 정리를 하려는데, https://www.inflearn.com/course/개발자를-위한-쉬운-도커?inst=f4872931&utm_source=instructor&utm_medium=referral&utm_campaign=inflearn_트래픽_promotion-link이 출처를 남긴다면, 괜찮을까요? 다른 질문에서 가능하다고 되어 있는데, 그래도 한번더 여쭤보고 작성하는게 좋을 것 같아 연락드립니다.양질의 강의 감사드립니다!