weekendcode
@weekendcode
受講生
5,392
受講レビュー
640
講義評価
4.8
🏆 인프런 2024년 루키상, 2025년 수강생Pick상 수상
👨💻 인프런 수강평 우수 강사 · macOS 10년 경력 개발자 출신
안녕하세요. @weekendcode 라는 유튜브 채널을 운영하고 있습니다.
비전공자, 프로그래밍에 관심 있는 학생들을 위해 최대한 쉽게 설명하고자 노력하는 강사입니다.
컴퓨터 공학으로 대학교를 졸업하고, 인간-컴퓨터 상호작용 연구분야로 석사 학위를 받았습니다.
Java 언어로 안드로이드 개발자로서 일했고, Python 강사로 활동했습니다.
몇 번의 이직과 창업을 하는 과정에서 비전공자 분들께 지식을 공유할 기회가 생긴 이후,
본격적으로 지식공유자로 활동하고 있습니다.
모르는 것은 적극적으로 질문 부탁드립니다.
최선을 다해서 답변 드리겠습니다.
좋은 하루 보내세요.
講義
受講レビュー
- (2026最新!) 1週間で合格する情報処理技師実技
innerwing
·
MacBookを初めて買った時に必ずやるべき設定 A to Z (Claude Code · Homebrew · Agentic Coding 含む | macOS オールインワン)MacBookを初めて買った時に必ずやるべき設定 A to Z (Claude Code · Homebrew · Agentic Coding 含む | macOS オールインワン)
投稿
Q&A
실기 D -6
안녕하세요, 결국은 기출문제가 아닐까 싶습니다. 기출문제는 조금 더 일찍 시험을 봤다면 실제로 시험장에서 마주쳤을 문제들입니다.당장 다음 주에 이 수준으로 나와도 직접 풀 수 있으셔야지 합격할 수 있습니다. 그 외에는 PDF 파일을 달달 외우는 방법 외에는 없습니다.어차피 코드 문제는 코드의 문법을 숙지해야지 접근할 수 있기 때문입니다. 불안하시다면 정렬이나 트리 구조와 같은 난이도가 있는 부분들을 직접 코드를 인쇄해서 한 줄 씩 작성해보시고, 그렇지 않다면 다른 언어들의 기초적인 키워드를 다시 한 번 복습하세요.C언어의 구조체, Java의 상속과 같은 부분은 계속 풀어도 헷갈릴 수 있습니다.
- 0
- 2
- 41
Q&A
정보처리산업기사 준비중입니다.
안녕하세요.저도 약간 다른 것으로 알고 있으나 코드 문제에 대해서는 비슷하게 접근할 수 있다고 들었습니다. 실제 산업기사 준비하시는 분들도 많아서 질문이 많이 올라옵니다.별도 기출문제와 이론 쪽은 다를 수 있으니 수강생 분이 판단해주셔야 합니다.
- 0
- 2
- 22
Q&A
(기출) 2024년 2회 기출문제 - 이론 포함 22분32초 질문입니다
안녕하세요,실제로 잘린 값 부분은 3이 아니라 전체를 출력하고 있습니다.print(split_result)이니까요.그래서 전체가 다 나오는 것입니다. 함수 안의 빨간색 부분입니다. 거기에는 특정 인덱스를 출력하라는 명령어가 없습니다.특정 인덱스는 가장 마지막인 return에만 있습니다. 정답이 S인 경우에는 리턴값이 리스트의 3번째 인덱스이기 때문입니다.split_k( 리스트 전체, 3 )이니까 리턴을 result는 S만 받았습니다. 그래서 출력하면 S가 되는 것입니다.위의 함수는 별도의 영역입니다.
- 0
- 3
- 23
Q&A
업캐스팅 문제 풀면 업캐스팅이 상속과 문제풀 때 어떻게 해석해야할지 모르겠습니다.
안녕하세요,좋은 질문이십니다. 업캐스팅의 진짜 의미는 "참조 타입이 무엇인가"입니다. 아래와 같은 경우만 살피시면 됩니다. 생성자와는 무관하지만 메서드 상속에는 관련이 있습니다.class Animal { void sound() { System.out.println("..."); } } class Dog extends Animal { void sound() { System.out.println("멍멍"); } void fetch() { // Dog만 가진 메서드 System.out.println("공 가져옴"); } } public class Main { public static void main(String[] args) { // 일반 상속 사용 Dog dog = new Dog(); dog.sound(); // ✅ 멍멍 dog.fetch(); // ✅ 공 가져옴 // 업캐스팅 Animal animal = new Dog(); animal.sound(); // ✅ 멍멍 (오버라이딩 적용) animal.fetch(); // ❌ 컴파일 에러! Animal에 fetch() 없음 } } 업캐스팅은 제한을 거는 대신, 다양한 자식을 하나의 타입으로 다룰 수 있는 유연함을 얻는 것입니다.그래서 생성자 자체는 상속과 거의 비슷하지만, 어떤 자식을 상속해서 갈아끼울 것인가를 선택할 수 있습니다. class Cat extends Animal { void sound() { System.out.println("야옹"); } void purr() { System.out.println("그르릉"); } } public class Main { public static void main(String[] args) { // Animal 타입 배열 하나로 전부 관리 Animal[] animals = { new Dog(), new Cat(), new Dog() }; for (Animal a : animals) { a.sound(); // 각자 오버라이딩된 메서드 실행 // a.fetch() 나 a.purr() 는 못 씀 → Animal만 보장되는 것만 호출 } } } 애초에 이런 개념인데 시험을 준비하려다보니 다양한 예시로 강의를 구성한 것입니다.
- 0
- 2
- 23
Q&A
강의파일 통합본
안녕하세요, 불편을 드려서 죄송합니다.개별 챕터들을 각각 업데이트를 진행하다보니, 학습자료로 구성하게 되었습니다. 이번 시험이 끝날 동안에는 추가해야할 부분들이 있어서,다음 시험 준비 전까지는 좀 더 편하게 개선 예정입니다. 번거로우신 것에 크게 공감하며,향후에 통합 자료로 제공드릴 수 있도록 개선하겠습니다.피드백 주셔서 감사드립니다.
- 0
- 2
- 46
Q&A
20장. rm 대체 쉘 스크립트
안녕하세요!강의에 대한 피드백 감사합니다.방금 txt 파일로 변환해서 수업자료로 등록해드렸습니다. 영상을 올리는 과정에서 누락되었나봅니다. 사과의 말씀을 드리며,주말이라도 질문 남겨주셔서 감사합니다.
- 0
- 2
- 29
Q&A
남은 기간 학습방향
안녕하세요, 실전에서 어려운 문제는 기존의 어떤 문제를 찾아봐도 비슷한 유형을 찾기가 어려울 겁니다. 예를 들어서 기출문제에 있는 extended ASCII 같은 것도 전체를 boolean 배열로 주고, 비트를 세우는 형태의 문제였습니다.이런 문제는 과거에 비슷하게 나온 적도 없었습니다. 제 생각에는 여러 복잡한 논리 구조가 나온 기출문제를 다시 살펴보면서 눈으로 훑어보고, 직접 값을 적어가면서 하나씩 해보는 것이 더 좋다고 생각합니다. 새로운 문제를 더 푼다고 해서 문법이 더 다져진다고 생각하지는 않는 편입니다.이미 거의 모든 회차의 해설을 올려두었으니까요.
- 0
- 2
- 81
Q&A
운영체제 강의 27분 (CPU 스케줄링 - SRTF)
안녕하세요, 보통은 보기가 주어지고 해당 보기에 대한 설명을 잘 읽으셔야 합니다. SRTF = Shortest Remaining Time First가장 널리 쓰이는 정식 표기입니다.SRT or SRF = Shortest Remaining Time해설이나 교재에서 축약형으로 쓰는 경우가 있습니다. 보통 SRTF와 같은 의미로 봅니다.만약에 보기에 SRF라고 있으면 쓰셔도 되는데, 오로지 주관식으로 써야 한다면 SRTF라고 정확하게 쓰시는 것이 더 좋습니다. 근데 경험상, 이건 정확한 표기법이 있는 것이 아니라서 그렇게 단어를 쓰는 경우로 나오지는 않을 겁니다.
- 0
- 2
- 33
Q&A
이론 v0.91 오타 문의
안녕하세요.학습자료를 보니 오해하게 되어있네요. 전체가 false인지 true인지만 판단해야하는데 잘못된 비트로 표현되어 있습니다. 좀 더 구체적으로 적어서 다음 버전 PDF에 반영하겠습니다. 재차 설명을 드리자면,public class Main { public static void main(String[] args) { int w=3, x=4, y=3, z=5; if((w == 2 | w == y & !(y > z)&(1 == x^y != z))) { w = x + y; if(7 == x^y!= w) { System.out.println(w); } else { System.out.println(x); } } else { w = y + z; if(7 == y^z != w){ System.out.println(w); } else { System.out.println(z); } } } } 첫 번째 조건문에서는 w == 2는 false, w==y는 true, !(y>z)는 true가 됩니다.(1 == x^y != z)는 (1 == x) ^ (y != z)로 풀어서 해석하시면 됩니다.각각 false ^ true가 되며 ^는 XOR이므로 둘이 다르면 true가 됩니다. 바깥의 if문은(w == y) & (!(y > z)) & ((1 == x) ^ (y != z)) = true & true & true = true이렇게 되고 전체는(w == 2 | true) = false | true = true이렇게 됩니다. 그래서 변수 w는 4+3으로 7이 할당됩니다. 두 번째는 같은 원리로 if ( (7 == x) ^ (y != w) )가 false ^ true = true가 되고안쪽 if문이 참이기 때문에 println(w)가 되고 앞에서 할당된 7이 출력됩니다. |는 boolean에 쓰는 경우 논리OR가 되고 정수에 되면 비트OR가 됩니다.int a = 5; // 0101 int b = 3; // 0011 System.out.println(a | b); // 7이렇게 생각하시면 됩니다.
- 0
- 2
- 54
Q&A
31분 50초 JAVA 문제
안녕하세요! 부모는 언제든지 가장 마지막에 암묵적으로라도 호출됩니다.이 경우에는 Java 컴파일러가 this.x = x; 위에 super()를 삽입해줍니다. 생성자 체인은 우리가 C언어에서 여러 개의 함수를 순서대로 호출하듯이,역으로도 실행순서가 순서대로 내려와야합니다. 그래야 제대로 출력이 될테니까요. 그래서 순서는Child() -> Child(int x) -> 그 안에서 super() -> super의 this(500)이 호출되는 형식입니다. 특히 저 super()는 보이지는 않지만 Java가 삽입해주는 것입니다.생성자 체인 끝에서 무조건 부모를 한 번은 호출해야합니다.부모 필드가 초기화되지 않으면 자식은 태어날 수 없습니다. 일단 저렇게 호출은 됐고, 실행은 그 반대 순서대로 됩니다.좋은 질문 감사드립니다.
- 0
- 2
- 33





