안녕하세요. 영한님 불변객체 문제와 풀이에서 클래스 이름에 오타가 있어 제보합니다. 문제 설명 `MyDate` 클래스는 불변이 아니어서 공유 참조시 사이드 이펙트가 발생한다. 이를 불변 클래스로 만들어라. 새로운 불변 클래스는 ImmuableMyDate 로 이름 지으면 된다. ImmuableMyDate -> ImmutableMyDate 새로운 실행 클래스는 ImmuableMyDateMain 으로 이름 지으면 된다. ImmuableMyDateMain -> ImmutableMyDateMain 감사합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] ObjectProvider를 왜 사용하는지 궁금합니다. 이번 강의에서 provider.getObject() 를 이용해서 객체를 가져와서 사용하고 있는데 스프링 빈에 등록하지 않고 순수 자바 객체로 만든다음에 new 객체(); 를 통해서 사용하면 되지 않을까요? 이렇게 사용하지 않고 Provider를 사용한다면 어떤 장점이 있는지, 순수 자바객체를 사용한다면 어떤 단점이 있는지 궁금합니다..! 두 번째로는 Provider를 사용하게 되면 생성자에서 주입을 받지 않게되니 테스트용 객체를 주입해주지 못해서 테스트하기가 조금 껄끄러워질 것 같다는 생각이 들었어요. 이 문제는 어떻게 해결하면 좋을까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 선생님께서 int는 int로 하시는데 long은 Long으로 하시는 이유가 있을까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. 강의를 듣다가.. 영한님 말을 들어보니까 강의 도중에 사진 처럼.. 안에서 루프를 돌리면서 출력 하겠죠 라고 하였는데... 갑자기 좀 햇깔리네요. println() 메서드에서 char[] 채얼 배열이 들어가면 for문을 통해서(아니면 whil문? ) 순차적으로 돌려주면서 값이 나온다고 생각해도 되냐요? 답변 부탁 드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요. 이 문제에서는 Scanner input = ~을 사용하였는데 그 전의 문제들에서는 Scanner scanner를 사용했는데 input과 scanner는 무슨 차이인가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. 불변객체 예제 중 MemberMainV2를 좀 배껴서 손님이 커피를 주문하고, 커피를 바꾸는 것을 응용 해봣는데요. (문제와 풀이에서 커피? 이야기 가 나와서 힌트를 얻어 작성함.) 이렇게 해도 되는지, 알고 싶어서 도움을 구합니다. . 코드 리뷰좀 부탁드려도 될까요? 답변 부탁 드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 상속 관계에서 protected 생성자가 아닌 private으로 문제와 풀이 예제를 진행한 이유가 있을 까요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요! 제가 알고 있는게 정확한지 알고 싶어서 질문 드립니다! 힙 영역에는 new 키워드를 통해 동적으로 생성된 인스턴스가 존재하는 지역이라고 설명해주셨는데 클래스 로더에 의해 바이트 코드를 통해 메서드 영역에 생성자, 메서드 등 정보가 저장되고, 힙 영역에 클래스 타입의 인스턴스도 생성되지 않나요??
질문1. 시점1에서 staticMethod()가 "메서드영역->static영역"에 이미 할당되어있는상태가 맞을까요? 질문2. 시점1에서는 instanceMethod()가 할당되지 않았고 시점2에서는 new Test()를 통해서 인스턴스를 생성했을 때 "메서드 영역-> 클래스정보" 에 instanceMethod()가 할당되는게 맞을까요? 질문3. 메모리 할당위치가 아래와 같이 할당되는게 맞을까요? staticMethod(): "메서드 영역 -> static영역" instanceMethod(): "메서드 영역 -> 클래스정보 영역" 질문3. test1의 주소값이 x01, test2의 주소값이 x02 라고 가정하면 test1, test2의 instanceMethod()는 동일한 클래스영역에 주소를 가리키고 있나요?? 질문4. test1, test2의 각 멤버변수를 instanceMethod()를 통해서 호출한다고 가정하면 test1.instanceMethod() test2.instanceMethod() 위와 같이 코드를 작성할텐데 이때 instanceMethod() 호출하는 과정을 살펴보면 (1) test1.instanceMethod(), test2.instanceMethod() 가 같은 주소의 "메서드 영역 -> 클래스 정보"에 있는 instanceMethod()로 찾아간다 (2) heap영역에 test1의 멤버변수, test2의 멤버변수의 값을 가지고 온다 질문4의 의도는 " 같은 메서드 영역에 있는 instanceMethod()를 찾아가지만 각 인스턴스의 멤버변수는 heap영역에서 가지고 오느냐 " 이것을 물어보려고 한 것입니다. 복습할겸 다시 보고 있는데 갑자기 혼란스러워서 질문하게 되었습니다. 질문이 많지만 답변부탁드려요!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. 영한님의 설명을 보면 자바 문법상 Address b = a 가 만들어저도 문제가 없다고 하였고, 참조값을 공유해서 사이드 이펙트를 만드는 경우가 있다고 말하였습니다. 여기서 갑자기 궁금해지네요. 여태 까지의 코드를 보면, 사이드 이펙트를 만드는 경우가 없었던 걸로 기억하는데.. 어는 경우 에서야, 사이드 이펙트를 활용하는지. 예시를 알켜 주실수 있으실까요? 답변 부탁 드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. 좀 뜬금 없는 질문이지만. 주석을 쓰면서 갑자기 궁금한게 생겨서 질문을 남깁니다. 코드에 주석을 다는 경우가 있습니다. 어떤 때는 코드를 다 쓰고 나서 우측편에 주석을 쓰는 경우가 있고. b.setValue("부산"); //b의 값을 부산으로 변경 해야함 어떤 때에는 코드 위에 주석을 붙이는 경우가 있습니다. // 참조형 변수는 하나의 인스턴스를 공유할 수 있다. Address a = new Address("서울"); Address b = a; 주석이 붙일 경우에 어떤 때는 우측에,어떤때에는 위에 붙이는 경우가 보이는데, 어떤 때에는 위에 붙이고, 어떤때에는 우측에 붙이는지 설명해 주실수 있으신가요? 아니면 그냥 맘대로 주석을 붙여도 상관없는건가요? 답변 부탁 드립니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] section2 문제와 풀이를 다음과 같이 풀어보았는데, 결과는 맞지만 제 코드에서 부족한 부분이 있는지, 개선점은 없는지 한번 확인 부탁드립니다!
안녕하세요. 코딩 질문과 직접적인 관련은 없지만 훌륭한 멘토분들의 조언 역시 엄청난 자산이라고 생각해서 조언을 얻고자 합니다. 현재 자바를 3개월정도 공부한 상황인데. 김영한 선생님의 고급까지 마무리 함과 더불어 spring framework 를 공부하는게 어떤 면에서 도움이 될까요? 일종의 알고리즘을 배우는 과정인건가요 ? 또는 Spring framework 이외에도 어떤 공부를 병행하면 좋을지 모르겠습니다. 도움주시면 감사드리겠습니다.
예를 들어 public class Outer{ public class Inner{ } } 이렇게 바깥 클래스와 내부 클래스가 있을 때, Inner 클래스를 생성하려면 Outer 인스턴스를 생성하고 그 참조값을 받아서 Inner 인스턴스를 생성하는 건데, main 메서드에서 Outer객체를 생성하면 그 내부에 있는 Inner클래스는 같이 생성되서 따로 Inner클래스를 생성하지 않아도 되는 게 아닌가요??ㅠㅠ
public class WrapperVsPrimitive { public static void main(String[] args) { // wrapper class Long sumWrapper = 0L; /// Long = long (auto boxing) for (int i=0; i<iterations; i++) { sumWrapper += i; /// Long += long (auto boxing) } } } 위 코드에서 'sumWrapper += i;' 부분이 이해가 되지 않는데요. 이전에 말씀해주셨듯이 참조형변수는 주소값을 가지고 있기에 참조변수를 통한 값 계산이 불가합니다. 그래서 참조변수 간 더하기 연산이 불가합니다. 그런데, 이 코드는 long 타입인 i -> Long으로 auto boxing된 이후에 (Long 타입 참조변수) + (Long 타입 참조변수)인 것인데, String 타입 참조변수와 마찬가지로 자바에서 wrapper class 타입 참조변수 간 더하기 연산을 제공하는 것인가요? 그렇다면 Long 타입 참조변수 간 더하기 연산이 일어나게 되면, Long 인스턴스가 내부적으로 가진 long에 더하기 연산이 적용되는 걸까요??
[질문 내용] 문제와 풀이 해설이랑 조금 달라서 질문 남겨봅니다. 저는 이런식으로 작성하였는데 문제없이 잘 돌아가긴 했는데요 혹시 이렇게 작성하면 보이지 않는 다른 오류가 발생하는지 궁금합니다. 또, isSuccess() 메서드에서 findByCode()메서드를 호출하였는데 이런 방식을 실무에서도 많이 쓰는 편인가요??