묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 핵심 원리 - 기본편
프록시, @PostConstruct
프록시 객체가 생성될 때 myLogger를 토대로 생성되서 DI까지 이뤄진다고 생각했습니다.DI가 이뤄진다는 것은 프록식 객체도 빈에 등록되는 것인데 왜 @PostConstruct는 작동이 안되는지 궁금합니다.
-
미해결자바 기초부터 마스터하기 with 은종쌤 (Do it 자바 프로그래밍 입문) - Part 1(기초편)
참조자료형 변수 강의- class 자료형 선언 질문
public class Student { int studentID; String studentName; Subject korean; Subject math; public Student(int studentID, String studentName) { this.studentID=studentID; this.studentName=studentName; korean=new Subject(); math=new Subject(); } }위의 코드를 아래의 코드로 바꾸면 어떻게 다른거며 어떤 문제가 발생하나요?결과값은 똑같이 나오더라구요public class Student { int studentID; String studentName; Subject korean=new Subject(); Subject math=new Subject(); public Student(int studentID, String studentName) { this.studentID=studentID; this.studentName=studentName; } }
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
객체 생성부분과 new의 의미
안녕하세요 나도코딩 강사님강의를 듣다가 궁금한 부분이 있어서 질문드립니다챕터 7의 다형성파트 강의에서질문 1 : Camera camera = new Camera(); Camera factoryCam = new FactoryCam(); Camera speedCam = new SpeedCam();코드 첫번째 줄이 의미하는바가 Camera 클래스로부터 객체명이 camera인 객체를 생성한다는 것은 알겠는데등호(=) 뒤에 있는 new Camera() 이게 뭘 의미하는건지 잘 모르겠습니다코드에 (Alt + 클릭)을 하면 해당하는 코드부분으로 바로 이동하는데 Camera 클래스의Camera() 생성자로 가더라구요new Camera()가 Camera 클래스의 생성자를 의미하는건가요 ? 질문 2 :Camera factoryCam = new FactoryCam();이 코드는 Camera 클래스로부터 객체명이 factoryCam인 객체를 생성하게 되는데 자신의 클래스를 상속받는 FactoryCam 클래스의 메소드와 변수는 사용하지 못하고 Camera 클래스의 메소드만 사용할 수 있다고 하셨는데뒤에 new FactoryCam() 이 부분이 의미하는바가 무엇인가요? 질문 3 :if (camera instanceof Camera) { // camera 객체가 Camera 클래스로부터 만들어진 인스턴스이면 System.out.println("카메라입니다."); } if (factoryCam instanceof FactoryCam) { ((FactoryCam)factoryCam).detectFire();첫 번째 if 에서 camera 객체는 Camera 클래스로부터 만들어진 객체가 맞으니까"카메라입니다"를 출력하는 것은 이해되는데두번째 if 에서 factoryCam 객체는 부모클래스인 Camera 클래스로부터 생성된 객체인데왜 FactoryCam 클래스의 인스턴스인지도 이해가 안갑니다. 클래스로부터 생성된 객체를 인스턴스라고 알고 있었는데factoryCam 객체는 Camera 클래스로 부터 생성된 객체니까 Camera 클래스의 인스턴스로 이해 했는데두번째 if에서 (factoryCam instanceof FactoryCam) 이 true라고 해서 헷갈리네요 그리고 factoryCam이 FactoryCam의 객체가 맞다면 FactoryCam으로 형변환 하는 이유가 뭔가요 ?
-
미해결스프링 핵심 원리 - 기본편
@Autowired 오류는 나는데 테스트 성공해서 결과값이 나왔을때 어떻게해야되나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]@Autowired 오류는 나는데 테스트 성공해서 결과값이 나왔을때 어떻게해야되나요?질문1. 오류는 나는데 테스트 성공해서 결과값이 나왔을때 어떻게해야되나요?다른사람 문제는같은데 그냥 highlight allProblems -> none 바꾸라고 하는데 그렇게 하고싶지 않고 원인을 알아야 나중에 같은 문제 생겨도 스스로 해결 하고싶어서요 구글에 찾아봐도 해결이 안되네요 빨간줄나는 오류 원인질문 2. @Autowired(required = true)을 했을때 멤버가 스프링빈을 찾을 수없다고 나오는데@Autowired(required = false)일때도 같은 오류가 나요 의존관계주입을 잘못 된건가요?
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
src 파일 사라짐
수시로 저장을 해도 intellij에서 src 파일이 자꾸 사라져서 실습하던 내용이 없어졌는데 왜 그러는걸까요?파일을 다시 복구하는 방법이 있을까요?
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
인터페이스 질문입니다
안녕하세요 나도코딩 강사님인터페이스 강의를 듣다가 이해가 안가는 부분이 많아서 질문드립니다챕터8의 02인터페이스 코드 부분에서 질문 1 :Detectable fireDetector = new FireDetector(); Detectable advancedFireDetector = new AdvancedFireDetector(); FactoryCam factoryCam = new FactoryCam(); factoryCam.setDetector(fireDetector); factoryCam.setReporter(normalReporter);코드 첫번째줄을 해석하면Detectable 이라는 인터페이스를 구현하는 FireDetector 클래스로부터 fireDetector 객체를 생성한 것이라고 이해하는게 맞는건가요?질문 2 :public class FactoryCam extends Camera implements Detectable, Reportable { private Detectable detector; private Reportable reporter; public void setDetector(Detectable detector) { this.detector = detector; } public void setReporter(Reportable reporter) { this.reporter = reporter;FactoryCam 클래스에서 인터페이스 변수들(Detectable, Reportable)을 선언해주고setter 메소드를 만들어서 매개변수로 Detectable 이라는 인터페이스 변수인 detector를 전달받게 했는데FactoryCam factoryCam = new FactoryCam(); factoryCam.setDetector(fireDetector); factoryCam.setReporter(normalReporter);메인 메소드에서 setDetector() 와 setReporter() 메소드의 전달값으로 왜 인터페이스 변수(Detectable, Reportable)를 전달해주지 않고클래스로부터 생성된 객체인 fireDetector 와 normalReporter를 전달값으로 전해주는지 이해가 안됩니다
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
퀴즈 8번 질문합니다ㅜㅜ
SpeedCam 클래스내에서 AccidentDetector와 VideoReporter 를 사용하기 위해 인스턴스 변수를 만든 뒤 setter를 사용하는 것까진 이해를 했습니다.public void setDetector(Detectable detector) { // 질문 this.detector = detector; }위의 코드에서 괄호안의 Detectable detector가 매개변수라고 이해했는데 정확히 어떤 역할인지 명확하게 이해가 되지 않아서 질문합니다..ㅜㅜ
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
Array 관한 예문
안녕하세요, 선생님. 어제 배열 파트를 다시 복습하면서 생긴 문제가 있습니다.선생님께서는 for반복문에 for -each문을 이용하면서 출력되도록 하셨는데저는 조금 더 간결하게 하고자 for-each문 없이 주석처리한대로 해보니사이즈[I@75b84c92(재고있음) 이렇게, 사이즈에 해당하는 값은 안나오더라구요.혹시 이렇게 접근하면 안되는 이유가 있을까요? 두 번째로는 메소드에 관한 문제입니다.아래 코드처럼 메소드 값을 메인영역 밖에서 호출 시 에러나는 이유가 무엇인가요?잘은 모르지만 혹시나 지역변수 이런 것과 상관이 있는건가요? //Quiz. 배열을 활용하여 쇼핑몰에서 구매 가능한 신발 사이즈 옵션을 출력하는 프로그램을 작성하시오 //조건 : 신발 사이즈는 250부터 295까지 5단위로 증가 //조건 : 신발 사이즈 수는 총 10가지 //실행결과 : 사이즈 250 (재고있음) / 사이즈 260 (재고있음),,, size에 해당하는 값을 배열로 만들기 // int size = 250; // int size = 255; // int size = 260; int[] size = new int[10]; for (int i = 0; i < size.length; i++) { size[i] = 250 + (5 * i); // System.out.println("사이즈"+size+"(재고있음)"); //왜 안되는지????????? } for (int size2 : size ) { System.out.println("사이즈"+size2+"(재고있음)"); } ------------------------------------------------------------------------------- public class Test1 { //호텔 전화번호 public static String getPhoneNumber(){ return "02-123-4567"; } //호텔 위치 public static String getAddress(){ return "서울시 어딘가"; } //호텔 엑티비티 public static String getActivities(){ return "수영장, 당구장, 볼링장"; } public static void main(String[] args) { //왜 메인영역 밖에서 호출하면 에러나지????? //메인 밑에서 매소드 호출 System.out.println("호텔위치 : "+getAddress()); System.out.println("호텔 전화번호 :"+getPhoneNumber()); System.out.println("호텔 엑티비티 : "+getActivities()); }
-
해결됨스프링 핵심 원리 - 기본편
테스트 검증할 때
안녕하세요 !계속 테스트 검증하는 과정을 반복하다보니 궁금증이 생겨 질문드립니다.강사님이 검증 코드를 작성하실 때이 강의 코드로 예시를 들면memberService.getMemberRepository();가memberRepository1 변수로 있음에도 불구하고assertThat(memberRepository1).isSameAs(memberRepository);으로 작성하지 않고assertThat(memberService.getMemberRepository()).isSameAs(memberRepository);로 작성하시더라구요.이 강의에서뿐만 아니라 지금까지 다른 강의에서도 검증 코드를 작성하실 때 변수를 사용하시지 않는 것 같았는데,혹시 이렇게 작성하시는 이유가 따로 있을까요?
-
해결됨스프링 핵심 원리 - 기본편
DI 과정을 보고 싶습니다.
Controller에서 필요한 파라미터는 ArgumentResolver가 만들거나 변환해서 넣어주듯이 DI과정에스프링 빈 생성할 때 필요한 의존성 주입을 해주는 오브젝트나 메서드가 있을거 같은데 검색을 해도 다 의존성 주입 방법만 나오더라구요..어디서 확인해야 할까요 ??
-
미해결PHP 7+ 프로그래밍: 객체지향
왜 http://localhost/ 로 접근하면 public/index.php 가 실행되나요?
영상 14:07초 부터 뷰표기되는걸 설명주셨는데사작이 public/index.php 인 이유를 모르겠습니다.
-
해결됨스프링 핵심 원리 - 기본편
excludeFilters
@Configuration //없어도 문제가 없다. 하지만 관례상 설정 파일임을 보여주기 위해 붙인다. @ComponentScan( basePackages = "hello.core", excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Configuration.class) )AutoAppConfig에서 @Configuration은 관례상 붙인다라는 답변을 확인했습니다.그리고 exlucdeFilters를 보던 중 궁금증이 생겼습니다.excludeFilters는 @Configuration 클래스를 제외한다고 했는데 그러면 실제 spring을 동작 시켜서 springContainer에 빈이 등록될 때는 autoAppConfig.class는 bean으로 등록이 안되지만 @ComponentScan으로 인해서 나머지 @Component class들은 bean으로 등록된다고 생각했는데 올바르게 생각한것인지 궁금합니다.
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
For반복문 예제
안녕하세요, 선생님블로그에 선생님 강의 내용에서 예제를 따라치면서 정리하는 과정에 궁금증이 생겨서 여쭤봅니다. 증감연산자의 위치가 여러 예제문에서 헷갈리는데요. (sold++;)int max = 30; int noShow = 15; int sold = 0; for (int i = 1; i <=50 ; i++) { System.out.println(i+"번 손님 나왔습니다"); if(i==noShow){ System.out.println(i+"번 노쇼로 넘어갑니다"); continue; } sold++; if(sold==max){ System.out.println("금일 영업종료"); break; } 위의 코드에서 sold++위치를 아래와 같이 바꿀 경우에 for문 중괄호 안에는 들어가 있어서 가능할 거 같은데 결과는 32번 손님까지 이어지네요. 비슷한 예제로 while문에서는 증감연산자의 위치가 break뒤에 위치한 경우 결과값이 올바르게 나오는데 확실하게 증감연산자의 위치를 구별 할 수 있는 방법이 있을까요?int max = 30; int noShow = 15; int sold = 0; for (int i = 1; i <=50 ; i++) { System.out.println(i+"번 손님 나왔습니다"); if(i==noShow){ System.out.println(i+"번 노쇼로 넘어갑니다"); continue; } sold++; if(sold==max){ System.out.println("금일 영업종료"); break; } sold++; } ------------------------------------ //while문 -break int index = 1; //손님 대기번호 , for와 달리 변수가 필요함(중요) while(index <= 50){ System.out.println(index+"번 손님 주문하신 치킨 나왔습니다"); if(index == 20){ System.out.println("금일 재료가 모두 소진되었습니다"); break; } index++; }
-
해결됨자바 기초부터 마스터하기 with 은종쌤 (Do it 자바 프로그래밍 입문) - Part 1(기초편)
객체간 협력이 c++에서 프렌드함수같은건가요?
제목이 내용입니다
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
다차월 배열의 순회
복습 중에 헷갈리는 게 있어서 질문 드립니다 :)질문-1) 코드를 반복해서 작성하는 이유가 뭔가요?(아래 비교 예시 있습니다.)String[][] seats = new String[10][15]; String[] eng = {"A","B","C", "D", "E","F","G","H","I","J"}; for (int i = 0; i < seats.length; i++) { for (int j = 0; j < seats[i].length; j++) { seats[i][j] = eng[i] + (j + 1); } } for (int i = 0; i < seats.length; i++) { for (int j = 0; j < seats[i].length; j++) { System.out.print(seats[i][j] + " "); } System.out.println(); }String[][] seats = new String[10][15]; String[] eng = {"A","B","C", "D", "E","F","G","H","I","J"}; for (int i = 0; i < seats.length; i++) { for (int j = 0; j < seats[i].length; j++) { seats[i][j] = eng[i] + (j + 1); System.out.print(seats[i][j] + " "); } System.out.println(); } 이렇게 줄여도 똑같이 출력되는 데 반복하는 이유가 궁금합니다. 배열 값 업데이트를 위해서 그렇게 한 건가요? 질문-2) 누군가 표를 구매해서 좌석 업데이트 할 때, 코드 진행 방식이 헷갈립니다. 1번에서 2차원 배열의 형태가 만들어 진 후,seats[7][8] = "___"; seats[7][9] = "___"; 여기서 업데이트 된 후에 아래에서 출력할 때 새로운 배열 값인 "___" 이게 추가된 상태로 출력되는 건가요?// 1번 String[][] seats = new String[10][15]; String[] eng = {"A","B","C", "D", "E","F","G","H","I","J"}; for (int i = 0; i < seats.length; i++) { for (int j = 0; j < seats[i].length; j++) { seats[i][j] = eng[i] + (j + 1); } } // 2번 // 누군가 H9, H10 자리에 표를 구매 seats[7][8] = "___"; seats[7][9] = "___"; for (int i = 0; i < seats.length; i++) { for (int j = 0; j < seats[i].length; j++) { System.out.print(seats[i][j] + " "); } System.out.println();
-
미해결스프링 핵심 원리 - 기본편
static 키워드 왜 쓰냐고 면접에서 물어보면 이렇게 답하면 될까요?
static 을 쓰면 static필드는 클래스 소유가 됨으로 어디서 인스턴스를 생성하든 static 필드는 인스턴스 각각의 독립적인 필드가 아니라 같은 필드를 공동 소유하게 되기 때문에 static 키워드를 씁니다.
-
미해결PHP 7+ 프로그래밍: 객체지향
http://localhost:8080/posts/1 접근시 배열 0값 표기 오류
Route::add('get','/posts/{id}', function($id){ echo ($id); var_dump(Adaptor::getAll('select * from posts where `id`= ?', [ $id ] )); });route.php public static function add($method, $path, $handler, $middlewares = []) { self::$contexts[] = new RequestContext($method, $path, $handler, $middlewares); } 위처럼 불러와도배열 표기가 아무것도 안나오는데 어떤부분을 확인해야 강의처럼 내용확인이 가능할까요?{id}array(0) { } 이렇게만 표기 됩니다.$id값을 못 읽는것 같은데 어떻게 해결해야 할지 모르겠네요
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
recurvie (fractal), GUI, Server
안녕하세요.공부를 하다보니 조금 더 욕심이 생기네요. 다음에 기회되신다면 recurvise, GUI-Fxml과 scene builder, Server 쪽 주제로 강의 해주시면 감사하겠습니다. 자바를 공부하다보면 위의 주제는 꼭 나오더라구요. 조만간 자바 완전체 기다해겠습니다.^^건승하세요.
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
if문 - 부정연산자
안녕하세요.If문 부정연산자 관련하여 문의 드립니다. 아래 식에서 !(부정연산자)가 추가되어 false -> true 로 되는 것까지 이해하였습니다.그럼 if (hour < 14 && morningCoffee == true) 라는 식이 성립되는데if (hour < 14 && morningCoffee == false) 이 식과 어떻게 동일한지 이해가 되지 않습니다.. hour = 10;boolean morningCoffee = false; if (hour < 14 && !morningCoffee) sout("아이스 아메리카노 +1")
-
미해결스프링 핵심 원리 - 기본편
이 코드와 그림이 DIP 원칙이라고 봐도 될까요?
오랜만에 공부하느라 다 까먹어서 질문드립니다 ㅠㅠ이 코드와 그림이 DIP 원칙이라고 봐도 될까요?출처는 남궁성 자바의정석 유튜브입니다 !