유튜브에서 코딩 교육 채널을 운영하고 있는 나도코딩입니다.
누구나 쉽고 재미있게 코딩을 공부하실 수 있도록 친절한 설명과 쉬운 예제로 강의합니다.
코딩, 함께 하실래요? 😊
🧡 유튜브 나도코딩
🎁 코딩 자율학습 나도코딩의 파이썬 입문
📚 코딩 자율학습 나도코딩의 C 언어 입문
강의
로드맵
전체 1수강평
- 파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
게시글
질문&답변
응용이 어렵습니다.
안녕하세요?기본편에서 다루는 내용, 특히 클래스 전까지 다루는 내용은 단 하나도 빠트리지 말고 모두 완전히 익히셔야 합니다. 너무 중요한 내용이며 다른 프로그래밍 언어에서도 동일한 개념이 적용되거든요. 그래서 다소 힘드시겠지만 반복문으로 돌아가서 다시 한 번 강의를 듣고 이해하려고 노력해보시면 좋겠습니다. 이해가 가지 않는 부분이 있다면 몇 번이고 괜찮으니 이 곳에 질문을 남겨주세요! 어떤 부분이 어떻게, 어디서 이해가 안가는지 알려주시면 제가 어떻게 해서든지 데이모스님을 이해시켜 드리도록 하겠습니다. ^^ 시간이 조금 걸리더라도, 알고 넘어갑시다.감사합니다.
- 0
- 2
- 17
질문&답변
IntelliJ가 보이지 않습니다.
안녕하세요?IntelliJ 프로그램은 압축파일에 포함되지 않아요. 아래 링크에 접속하셔서 다운로드 및 설치를 부탁드리겠습니다 😊스크롤을 조금 내리셔서 Community Edition 을 받으시면 됩니다.👉 https://www.jetbrains.com/idea/download/?section=windows(사진)감사합니다.
- 0
- 3
- 21
질문&답변
JDK 버전 문의
안녕하세요?21 버전을 사용하셔도 수업 내용 실습을 따라하시기에는 큰 문제는 없습니다. 현재까지 파악하고 있는 부분은 다음 링크에 답변되어 있으니 참고해주시면 좋겠습니다.👉 https://www.inflearn.com/community/reviews/113451혹시라도 학습하시는 과정에서 버전에 따른 차이로 의심되는 문제가 발생하는 경우, 질문을 남겨주시면 확인 후 답변 드리도록 하겠습니다 😊감사합니다.
- 0
- 2
- 33
질문&답변
BlackBox 파일 내에서 메소드 정의
안녕하세요?public 은 접근 제어자 중 하나로 각 접근 제어자의 의미는 다음과 같습니다. 아무것도 붙이지 않은 경우 default 로 해당 메소드는 같은 패키지 내에서만 접근 가능합니다.private : 해당 클래스 내에서만 접근 가능 public : 모든 클래스에서 접근 가능 default : (아무것도 적지 않았을 때) 같은 패키지 내에서만 접근 가능 protected : 같은 패키지 내에서, 다른 패키지인 경우 자식 클래스에서 접근 가능static 은 객체를 생성하지 않고도 사용(호출)할 수 있도록 하기 위해 사용합니다. (= 클래스 메소드)static void callServiceCenter() { System.out.println("서비스 센터(1588-oooo) 로 연결합니다."); }static 이 붙지 않으면 반드시 객체를 생성한 후에만 해당 메소드를 사용할 수 있지요.void 와 int 는 반환형을 의미하며 메소드 내부의 동작을 수행하고 나서 어떤 형태의 데이터를 반환할지를 결정짓습니다. int 는 정수값을 반환하게 되며, String 은 문자열을 반환하게 됩니다. // 정수 값 반환 int getPrice() { return price; } // 문자열 반환 String getResolution() { if (resolution == null || resolution.isEmpty()) { return "판매자에게 문의하세요."; } return resolution; }단, void 라고 적게 되면 해당 메소드는 아무 값을 반환하지 않겠다는 의미가 됩니다.void setModelName(String modelName) { this.modelName = modelName; }그래서 void 라고 작성하게 되면 반환값이 없는 메소드, 그 외에는 입력한 반환형에 해당하는 데이터를 반환하는 메소드가 됩니다. 데이터를 반환하는 메소드는 이 메소드를 호출하는 쪽에서 반환값을 받아서 사용할 수 있게 되지요 😊감사합니다.
- 0
- 1
- 55
질문&답변
동기화
안녕하세요?네 맞습니다.문의글에 남겨주신 코드는 아래와 같이 예외를 발생시키는 부분이 있기 때문에 도중에 문제가 발생하기는 하지만 이 부분이 없다면 말씀주신 것처럼 for 반복문으로 1-5 까지 5개씩의 반복을 2개 만들었기 때문에 총합 10개의 방을 청소하게 됩니다. if (i == 2) { throw new RuntimeException("못해먹겠다!!"); }연습삼아 for 반복문 내 조건을 5가 아닌 다른 값으로 바꿔보시면 그에 맞게 증가하는 것을 확인하실 수 있을 거에요 🙂 가령 8로 설정하게 되면 2명이 8개의 방을 청소하게 되므로 16까지 출력이 될 것입니다.감사합니다.
- 0
- 2
- 49
질문&답변
Iterator 문의
안녕하세요?먼저 첫 번째 질문에 답변 드립니다.작성해주신 두 코드는 같은 로직을 수행하며, 예제의 상황에서는 동작에 아무런 차이가 없습니다.다만 String s 변수에 값을 담아두는 경우 아래와 같은 이점이 있을 수 있어요.이후에 해당 객체를 여러 번 참조하거나 다른 로직에 활용하기 쉬워요.코드를 확장하거나 디버깅할 때 수월할 수 있어요.결론적으로 동작 자체에는 문제도 없고 차이도 없습니다. 단, 해당 값을 여러 곳에서 재사용할 필요가 있다거나, 현재 순회에서의 값은 무엇인지 디버깅 등을 통해 확인하고자 하는 경우에는 String s 변수로 두는 것이 유리할 수 있습니다. 이러한 필요에 따라 코드를 어떠한 스타일로 작성할지 결정하시면 됩니다 :) 두 번째 질문에 답변 드립니다.먼저 코드 1과 코드 2의 동작은 다르게 작성되었습니다. [코드 1]it = list.iterator(); while (it.hasNext()) { String s = it.next(); // it.next() 를 한 번만 수행 if (s.contains("(알 수 없음)")) { it.remove(); // 삭제 } } it = list.iterator(); while (it.hasNext()) { System.out.println(it.next()); } [코드 2]it = list.iterator(); while (it.hasNext()) { String s = it.next(); // 1) it.next() 를 처음 실행 if (s.contains("(알 수 없음)")) { it.remove(); // 삭제 } else { System.out.println(it.next()); // 2) it.next() 를 한 번 더 실행 } }코드 1에서는 하나의 반복 내에서 it.next() 를 한 번만 수행하는 반면에 코드 2에서는 it.next() 를 처음 실행하고 나서 else 구문을 만나게 되면 한 번 더 수행을 하게 됩니다. 다음 순회로 바로 건너 뛰어버리는 것이죠. 즉 하나의 반복에서 2개의 요소를 꺼내게 되는 경우가 발생하게 됩니다. 이는 의도와는 다른 동작이 되는 것인데요.이를 방지하기 위해서는 첫 번째 질문에서 답변드린 것처럼 코드를 아래와 같이 수정하시면 됩니다. 출력하는 부분에 it.next() 대신 s 변수를 활용하는 것입니다.it = list.iterator(); while (it.hasNext()) { String s = it.next(); // 1) it.next() 를 한 번만 실행 if (s.contains("(알 수 없음)")) { it.remove(); // 2) 삭제 } else { System.out.println(s); // 3) 삭제 대상이 아니라면 출력 } }이렇게 수정 후 다시 한번 확인을 부탁드리며, 궁금증 해결에 도움되길 바라겠습니다 🙂감사합니다.
- 0
- 1
- 49
질문&답변
코드 순서 문의
안녕하세요?자바에서 클래스 내 메소드의 정의 순서는 코드의 동작에 영향을 주지 않아요. 그래서 강의에서 정의한 순서나, 김재훈님께서 정의하신 순서나 동작은 동일합니다. 그 메소드가 어디엔가 잘 정의만 되어 있으면 문제가 없답니다 😊풀이해주신 코드도 배열과 반복문을 활용하여 강의에서 알려드린 코드보다 더 잘 작성해주셨습니다 👍감사합니다.
- 0
- 1
- 61
질문&답변
클래스 메소드
public, private 관련하여 질문 주신 부분은 클래스 단원의 '접근 제어자' 부분을 확인해주시면 좋겠습니다. public 과 private 의 차이가 무엇인지, protected 는 무엇인지, 어디까지 접근을 허용하는지 등에 대한 이해가 필요한 부분이며, 참고하실 수 있는 설명이 잘 되어 있는 링크로 답변을 드리도록 하겠습니다 😊👉 https://velog.io/@damhee6624/JAVA-%EC%A0%91%EA%B7%BC%EC%A0%9C%EC%96%B4%EC%9E%90-public-protected-default-private
- 0
- 2
- 69
질문&답변
클래스 메소드
안녕하세요?인스턴스 변수와 클래스 변수는 잘 이해하셨습니다.인스턴스 메소드와 클래스 메소드의 차이는 조금 잘못 이해하신 부분이 있습니다.둘의 가장 큰 차이는 바로 '객체'인데요. 인스턴스 메소드는 특정 객체에 속한 메소드로 객체가 생성되어야만 호출이 가능합니다. 이 메소드 내에서는 그 객체만이 가지는 값 (인스턴스 변수) 을 활용하여 어떤 작업이 진행될 수 있으므로 객체마다 동일한 인스턴스 변수를 출력하더라도 그 값은 모두 다를 수 있습니다. 메소드는 static 키워드 없이 정의합니다.클래스 메소드는 클래스에 속한 메소드로 객체 생성 없이 호출합니다. 보통 클래스 이름을 통해 호출하며, 메소드 내에서는 클래스 변수만 사용할 수 있고, 객체가 없으므로 인스턴스 변수는 사용할 수 없습니다. 메소드는 static 키워드를 사용하여 정의합니다.파라미터는 인스턴스 메소드나 클래스 메소드 모두 정의하기 나름이기 때문에 없을 수도 있고 여러 개가 있을 수도 있습니다. 클래스 메소드에 별도로 입력 받을 파라미터가 필요 없다는 문장은 틀렸습니다.또한 인스턴스 메소드의 반환형을 void 로 정의한다고 해서 반드시 출력값이 필요한 것은 아닙니다. 보통 반환값이 있으면 그 값을 반환해주는 것으로 호출한 곳에서는 반환 결과를 확인할 수 있는데, 반환값이 없으면 따로 확인할 수 있는 부분이 없기 때문에 눈으로 확인을 시켜드리고자 출력문을 추가한 것입니다. 실무에서는 메소드 내에 출력문이 하나도 없는 경우가 매우 많습니다.그러므로 수업에서 다루는 많은 출력문들은 수업의 이해도를 높이기 위한 용도, 또는 실무에서의 상황이라면 메소드가 잘 호출되는지, 값은 올바로 들어가있는지 등 로그를 남기기 위한 용도라고 이해해주시면 좋겠습니다 😊감사합니다.
- 0
- 2
- 69
질문&답변
Quiz_05 관련 질문드립니다 !
안녕하세요?위 코드는 배열의 순회 관련하여 수업 내용 복습 차원에서 일부러 분리한 것이며, 김재훈님께서 작성해주신 코드가 훨씬 간결하고 불필요한 중복 순회를 막을 수 있습니다. 😊감사합니다.
- 0
- 2
- 48