묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
멀티스레드, 스프링mvc 관련하여 질문이 있습니다.
@Servicepublic class PersonService { public void processPerson(Person person) { System.out.println("Processing person: " + person); }}@Componentpublic class Common{ public void logging(Log log){ System.out.println("Processing person: " + person); }}위 두 클래스는 스프링 빈으로 등록되고 싱글톤입니다.싱글톤은 객체가 1개만 생성되는걸로 알고있습니다.그럼 controller 단이나 외부에서 PersonService, Common 의 processPerson, logging 메서드들을 동시에 호출하면2개의 스레드가 각 싱글톤 객체의 메서드 매개변수를 동시에 변경하니깐 스레드 세이프하지않은거 아닌가요? 스프링 mvc 구현할때 다 이렇게 하던데 이게 스레드 세이프한지 궁금합니다~!
-
미해결김영한의 실전 자바 - 기본편
패키지명 규칙 질문
[질문 내용]여기에 질문 내용을 남겨주세요. 패지키명 규칙에서, 도메인 이름을 거꾸로 쓴다고 하셨는데 다른 회사에서도 이 규칙들을 다 지키면, 겹치는 문제가 발생하지 않나요? 잘 이해가 안가네여.. 어떻게 겹치는 것을 방지한다는 것인지..
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
boolean형에 대해 궁금한게 있습니다!
제가 다른 언어를 공부하면서 0은 거짓, 0이 아닌 다른 수는 참이라고 배웠었는데, boolean 자료형에 true와 false 대신 0과 1을 대신해서 사용할 수 없을까요??
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
메서드의 메모리 위치에 대한 질문이 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]클래스의 메서드 코드들은 메모리 중 메서드 영역에 할당되고 인스턴스들이 이를 공통으로 사용된다고 앞서 배웠던 것 같습니다.하지만 해당 강의 2:06 경에는 힙 영역에 존재하는 HelloRunnable 인스턴스의 run 메서드를 실행한다고 작성해주셨는데, 이는 메서드 영역이 생략된 그림일까요?
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
유저 재화 관리 및 커스텀 메뉴 강의 질문입니다.
별거 아닌 질문을 궁금해서 남겨봅니다.뒤로가기(ESC/BACK) 처리 강의에서작성한 코드인LobbyUIController > private void HandleInput() 함수가유저 재화 관리 및 커스템 메뉴 강의 12분 경에는 왜 없어졌는지 궁금하네요..
-
미해결김영한의 실전 자바 - 중급 1편
자바 중급 1,2, 고급 1 순서대로 듣는 게 좋을까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]자바 중급 1,2, 고급1 순서대로 듣는 게 좋을까요?전혀 상관 없으면 컬렉션이 있는 2부터 듣고다음으로 스레드 관련 내용인 고급 1 부터 듣고 싶어요!어떤 순서로 듣는 게 좋을까요?
-
미해결김영한의 실전 자바 - 중급 1편
new line character 에 대한 질문입니다.
[String 클래스 - 주요 메서드2] 17:37 에 보면, printf의 인자 new line character로 \n 을 사용하셨습니다.https://docs.oracle.com/javase/tutorial/java/data/numberformat.html 에 보면, > You should always use %n, rather than \n.이라고 나오는데, 그러면 %n을 사용하면 되는건가요? 혹시나 해서 여쭈어 봅니다.
-
해결됨김영한의 실전 자바 - 중급 2편
[오역 제보] 타입 이레이저의 영문 표기
타입 이레이저에 관해 더 검색하던 중, 강의자료 v20241027의 2. 제네릭 - Generic2.pdf 에서 eraser는 오역인 것 같아 제보합니다.Oracle JavaTutorials의 Generic 관련 문서(https://docs.oracle.com/javase/tutorial/java/generics/erasure.html)에서는 이레이저를 erasure로 표기하였습니다. eraser도 어색하지는 않지만 영어 단어와의 통일성을 위해 수정을 요청드립니다.감사합니다.
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
카운트 값 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]해당 강의에서 나오는 카운트 값이랑 제가 직접 해본 카운트 값이랑 다르게 나오는데 이게 CPU 성능이 다 달라서 그런건가요?
-
미해결김영한의 실전 자바 - 중급 2편
실무에서의 hash(), hashCode() 차이가 궁금합니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]섹션 7 hashCode()에 영상에선 IDE로 equals() hashCode() 생성시 hashCode()의 리턴으로 hash(id)가 생성되는데저는 hashCode(id) 로 생성이 됩니다또 섹션8 Set 문제 2에서는 강의와 똑같이 hash()로 생성이 됩니다구글링으로 매개변수의 차이, 동작 차이와 결과값이 왜 다른지에 대해 이해는 했는데섹션7의 자동생성이 다른 이유와 실무에선 이 둘이 어떤차이로 쓰이는지 아니면 그냥 생성해주는 대로 쓰는지 에 대해 궁금합니다
-
미해결스프링 핵심 원리 - 기본편
리퀘스트 스코프를 사용해도 오류가 안 납니다.
강의에서는 아직 리퀘스트 스코프가 만들어지지 않아서 오류가 나는 게 정상이라고 하셨는데, 저는 오류가 뜨지 않고 로그까지 정상적으로 출력이 됩니다. 스프링 부트 버전 3입니다.그리고 애노테이션은 @Scope("request")를 쓰면 log-demo URL로 접속해도 화이트라벨 에러 페이지가 뜨길래 스프링 문서에서 검색해서 나온 @RequestScope를 사용했습니다. 혹시 이것과 관련이 있을까요?
-
미해결스프링 핵심 원리 - 기본편
왜 조합이 아닌 상속을 사용하였을까요??
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요. 스프링 핵심원리에 부분을 재학습 중인 수강생입니다. 다름이 아니라 스프링 컨테이너인 AppllicationContext 는 다양한 인터페이스를 상속받아서 사용하는 것으로 알려주셔서 더 자세한 내용을 파악하고 싶어서 내용을 찾고 알려주신 코드를 고려하니, 문득 궁금한 점이 생겼습니다.스프링 프레임워크는 당연하게도 철저하게 객체지향적 설계를 위주로 만들어졌을 거라고 생각하는데, 스프링 컨테이너를 만듦에 있어서 다양한 인터페이스를 상속한 이유가 궁금해졌습니다. 관계적 측면에서 스프링 컨테이너와 다양한 인터페이스의 관계는 has-a 관계라고 생각하여 조합을 통한 스프링 컨테이너를 구성하는 것이 더 바람직하다고 생각이 들었는데, 다양한 인터페이스를 상속하여 컨테이너를 구성했음이 왜인지 궁금해졌습니다. 물론 본 강의의 내용과는 밀접한 관련이 없을 수도 있겠지만,, 개인적으로 모르는 부분일 수도 있겠다는 생각이 들었습니다.또한 지금은 개인적인 의문이지만, 분명 다른 분들도 궁금해하시는 분들도 있을 것이라고 생각됩니다. 명확하지 않아도 부디 고려해볼 수 있는 점이나 아시는 부분이 있으실까요??
-
미해결스프링 핵심 원리 - 기본편
빈 생성 시점에 url
9:51에 빈이 생성되는 시점에 requestUrl을 알 수 없다고 하셨는데 그 이유가 궁금합니다.
-
해결됨김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
ReentrantLock - 활용 에서 BankAccountV4클래스 getBalance() 코드 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. getBalance() 에서 try-finaly 코드의 순서가 이해가 안되서 질문을 드립니다. 저의 기억 으로는 try안에 있는 코드가 실행되고 finaly 안에 있는 코드가 실행 되는 걸로 알고 있습니다.근데 try 안에서 return balance; 을 해버리는 것을 보고 "이게 뭐지?"라는 표현이 저절로 나오더라고요.분명히 리턴으로 getbalance()를 빠져 나갔는데, lock.unlock(); 이게 실행가는한가? 라는 생각이 듭니다.저의 머리로는 이해가 안되는데 의문점을 해결해 주 실수 있으신가요? 아니면 저가 try-finaly를 잘못 이해한건가요?답변 부탁 드립니다.
-
미해결김영한의 실전 자바 - 기본편
instanceof
[질문 내용]여기에 질문 내용을 남겨주세요.instanceof 수업에서 CastingMain5 문제에서 실행결과값이 다르게 나옵니다.parent1 호출Parent.parentMethodChild 인스턴스 아님parent2 호출Parent.parentMethodChild 인스턴스 맞음Child.childMethod
-
미해결[코드팩토리] [입문] Dart 언어 4시간만에 완전정복
Set 인덱스 접근 질문입니다
코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다![코드팩토리 디스코드]https://bit.ly/3HzRzUM - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요! 강의 잘 듣고 있습니다 ㅎㅎ다름이 아니라 Set에 대해서 추가적으로 공부하고 있는데 Set은 순서가 없는 타입이라 인덱스로 접근이 불가능하다고 알고 있습니다 근데 아래 코드를 보면출처 https://aidenarea.tistory.com/entry/Dart-Set-%EC%B4%9D%EC%A0%95%EB%A6%ACSet set1 = {'value1', 'value2', 'value3', 'value4'}; print(set1.elementAt(0)); // value1인덱스를 통해 값을 가져오는 방법을 소개하고 있습니다이건 어떻게 가능한 건지 알려주시면 감사하겠습니다!
-
해결됨스프링 핵심 원리 - 기본편
AnnotationConfigApplicationContext의 용도
1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]여기에 질문 내용을 남겨주세요.스프링 핵심원리 기본편 수업 에서 조회한 빈이 모두 필요할때 ,List,Map수업을 듣고 있는데 AnnotationConfigApplicationContext 에 DiscountService.class도 같이 파라미터로 넘기는데 왜 넘기는 건가요?DiscountService 는 @Component 와같은 어노테이션도 따로 없어서 빈으로 등록 되지 않는건 아닌가요/??AutoAppconfig 에서 basepackage로 스캔 된것들만 빈으로 등록되는 게 아닌가요????
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
동시성 문제와 volitale의 연관성
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요!현재 CAS연산 강의를 보고있습니다. 그러다가 문득 "volatile 키워드가 메모리 가시성 문제를 해결해 주지만 동시성 문제는 완벽하게(?) 해결해주지 못한다." 라는 이유에 대해서 곰곰히 생각해 보았는데 혹시 CPU 가 싱글코어와 멀티코어냐에 따라서 결과가 달라지는건지 궁금합니다. 이 이유가 아니라면, 왜 volatile키워드가 동시성 문제를 해결해주지 못하는지 알려주시면 감사하겠습니다!
-
미해결코틀린 함수형 프로그래밍 - 입문편
실습 자료 부분 업로드 다시 부탁드립니다!
지금 올려주신 실습 자료가 문제가 있는 것 같습니다! 압축을 해제하면 .idea 디렉터리만 존재하고 내부 코드는 없는데 이 확인 부탁드려요!
-
해결됨김영한의 실전 자바 - 기본편
ProductOrderMain 질문입니다
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 강의에서는 향상된 for문을 이용하여 문제를 풀어주셨는데일반 for문을 사용해보고 싶어 풀어봤는데 여기서 for문에 orders.length에 빨간줄이 생기면서 (java: incompatible types: int cannot be converted to boolean) 실행이 안되는데 뭐가 문제인가요? package class1.ex; public class ProductOrderMain1 { public static void main(String[] args) { ProductOrder order1 = new ProductOrder(); order1.productName = "두부"; order1.price = 2000; order1.quantity = 2; ProductOrder order2 = new ProductOrder(); order2.productName = "김치"; order2.price = 5000; order2.quantity = 1; ProductOrder order3 = new ProductOrder(); order3.productName = "콜라"; order3.price = 1500; order3.quantity = 2; ProductOrder[] orders = new ProductOrder[]{order1, order2, order3}; int totalAmount = 0; for (int i = 0; orders.length; i++) { System.out.println("상품명: " + orders[i].productName + ", 가격: " + orders[i].price + ", 수량: " + orders[i].quantity); totalAmount += orders[i].price * orders[i].quantity; } System.out.println("총 결제: " + totalAmount); } }