weekendcode
@weekendcode
Học viên
6,160
Đánh giá khóa học
773
Đánh giá khóa học
4.8
🏆 인프런 2024년 루키상, 2025년 수강생Pick상 수상
👨💻 인프런 수강평 우수 강사 · macOS 10년 경력 개발자 출신
안녕하세요. @weekendcode 라는 유튜브 채널을 운영하고 있습니다.
비전공자, 프로그래밍에 관심 있는 학생들을 위해 최대한 쉽게 설명하고자 노력하는 강사입니다.
컴퓨터 공학으로 대학교를 졸업하고, 인간-컴퓨터 상호작용 연구분야로 석사 학위를 받았습니다.
Java 언어로 안드로이드 개발자로서 일했고, Python 강사로 활동했습니다.
몇 번의 이직과 창업을 하는 과정에서 비전공자 분들께 지식을 공유할 기회가 생긴 이후,
본격적으로 지식공유자로 활동하고 있습니다.
모르는 것은 적극적으로 질문 부탁드립니다.
최선을 다해서 답변 드리겠습니다.
좋은 하루 보내세요.
Khóa học
Đánh giá khóa học
nekoparing5931
·
Cài đặt từ A đến Z nhất định phải làm khi mới mua MacBook (Claude Code · OpenClaw · Hermes Agent | macOS All-in-one)Cài đặt từ A đến Z nhất định phải làm khi mới mua MacBook (Claude Code · OpenClaw · Hermes Agent | macOS All-in-one)- (2026 Mới nhất!) Đỗ thực hành Kỹ sư xử lý thông tin chỉ trong một tuần
- (2026 Mới nhất!) Đỗ thực hành Kỹ sư xử lý thông tin chỉ trong một tuần
- (2026 Mới nhất!) Đỗ thực hành Kỹ sư xử lý thông tin chỉ trong một tuần
- (2026 Mới nhất!) Đỗ thực hành Kỹ sư xử lý thông tin chỉ trong một tuần
Bài viết
Hỏi & Đáp
업캐스팅 원칙
안녕하세요, 자신의 클래스의 생성자를 this()라고 부르듯이 부모의 생성자는 자식에서 super()로 호출합니다. 그게 super()의 정의입니다. 다른 이유는 없습니다. 저 단어가 그렇게 동작합니다.
- Lượt thích
- 0
- Số bình luận
- 2
- Lượt xem
- 55
Hỏi & Đáp
모의고사 파일과 이론파일 업데이트
안녕하세요, 압축파일을 재업로드 했습니다. 확인 부탁드립니다.
- Lượt thích
- 1
- Số bình luận
- 3
- Lượt xem
- 67
Hỏi & Đáp
모의고사 파일오류
안녕하세요, 압축파일을 재업로드 했습니다. 확인 부탁드립니다.
- Lượt thích
- 0
- Số bình luận
- 3
- Lượt xem
- 52
Hỏi & Đáp
모의고사 다운
안녕하세요, 압축파일을 재업로드 했습니다. 확인 부탁드립니다.
- Lượt thích
- 0
- Số bình luận
- 1
- Lượt xem
- 40
Hỏi & Đáp
6분46초
확인 감사합니다! 메모해두고 추후에 영상 수정하면서 바꿔놓도록 하겠습니다.
- Lượt thích
- 0
- Số bình luận
- 2
- Lượt xem
- 50
Hỏi & Đáp
모의고사 파일과 이론파일 업데이트
안녕하세요, 제가 방금 모의고사 파일을 전부 받아봤습니다.압축파일로 정상적으로 다운로드가 됩니다.혹시 확장자가 비어있는 경우 .zip으로 변경 부탁드립니다.(사진)
- Lượt thích
- 1
- Số bình luận
- 3
- Lượt xem
- 67
Hỏi & Đáp
13분 40초
안녕하세요. 이 부분 많이 헷갈려하시는데, 질문을 보니 거의 다 이해하셨고 딱 한 군데만 잡으면 됩니다.처음에 이해하신 "ptr_a에 'W'의 주소가 저장된다"는 맞습니다. 헷갈린 곳은 뒤에 쓰신 "*ptr_b의 값인 30000"입니다. 30000은 ptr_b의 값이고, *ptr_b의 값은 30000번지에 들어 있는 내용(1001)입니다. 이 차이 때문에 뒤쪽 이해가 꼬인 겁니다.주소를 임의로 정해서 같이 따라가 보겠습니다.str : 주소 1001~1006, 저장된 값 "Hello\0"str2 : 주소 2001~2006, 저장된 값 "World\0"ptr_a : 주소 30000, 저장된 값 1001ptr_b : 주소 40000, 저장된 값 300001. *를 몇 개 붙였는지부터 보세요.ptr_b // 40000번지에 든 값 = 30000 (타입: char**) *ptr_b // 30000번지로 가서 본 값 = 1001 (타입: char*, 곧 ptr_a 자체) **ptr_b // 1001번지로 가서 본 값 = 'H' (타입: char, 곧 str[0])*를 하나 붙일 때마다 "저장된 주소로 한 번 찾아간다"고 기억하시면 됩니다. 그래서 *ptr_b는 숫자 30000이 아니라, 30000번지에 있는 변수 ptr_a 자체를 뜻합니다. 시험에서는 *ptr_b가 나오면 바로 ptr_a로 바꿔 읽으시면 편합니다.2. *ptr_b = str2;는 ptr_a = str2;와 같습니다.대입문 왼쪽에 *ptr_b가 있으면 "30000번지에 값을 써라"라는 뜻입니다. 오른쪽 str2는 배열 이름이니까 첫 원소 주소인 2001이 됩니다.ptr_a : 주소 30000, 저장된 값 1001 → 2001ptr_b : 주소 40000, 저장된 값 30000 (그대로)ptr_b의 값 30000 자체를 바꾸려면 * 없이 ptr_b = ...로 써야 합니다. *를 붙였으니 ptr_b 본인이 아니라 ptr_b가 가리키는 ptr_a가 바뀐 겁니다.그리고 하나 더 말씀드리면, 'H'가 'W'로 바뀐 것은 아닙니다. str은 여전히 "Hello" 그대로이고, 바뀐 건 ptr_a에 들어 있던 주소(1001 → 2001)입니다. ptr_a가 다른 문자열을 가리키게 된 것뿐입니다.3. 그래서 ptr_a[1]은 'o'입니다.ptr_a[1]은 *(ptr_a + 1)과 같습니다. 2001 + 1 = 2002번지 문자를 읽으니까 "World"의 두 번째 글자 'o'가 출력됩니다.4. ptr_b = str2;와 **ptr_b = str2;가 에러인 이유둘 다 양쪽 타입이 안 맞아서 그렇습니다. str2는 char*, 즉 문자의 주소입니다.ptr_b = str2; // char** 자리에 char* → 타입 불일치 *ptr_b = str2; // char* 자리에 char* → 일치, 정상 **ptr_b = str2; // char 자리에 char* → 타입 불일치ptr_b = str2;는 "포인터의 주소"를 담아야 하는 변수에 "문자의 주소"를 넣은 겁니다.억지로 넣으면 ptr_b가 'W'가 있는 곳을 포인터 변수로 착각하고 읽게 됩니다.**ptr_b = str2;는 문자 한 칸('H' 자리, 1바이트)에 주소값을 넣으려는 겁니다. 문자 칸에 주소는 들어갈 수 없으니 에러가 납니다.참고로 C에서는 컴파일러 버전에 따라 이 두 줄이 경고로만 뜨는 경우도 있고, 최근 GCC(14 이상)나 C++에서는 에러로 처리됩니다. 어느 쪽이든 잘못된 코드라고 보시면 됩니다.실기에서는 이중 포인터 문제가 나오면 위처럼 주소표를 직접 그려놓고 * 하나에 한 칸씩 따라가시면 실수가 확 줄어듭니다. 또 막히는 부분 있으면 편하게 질문 남겨주세요.
- Lượt thích
- 0
- Số bình luận
- 2
- Lượt xem
- 55
Hỏi & Đáp
이론 pdf 다운은 어디서 하나요?
안녕하세요! 섹션 11의 가장 첫 챕터에 들어가시면 다운로드 가능합니다.
- Lượt thích
- 0
- Số bình luận
- 2
- Lượt xem
- 59
Hỏi & Đáp
정보처리기사 26년 실기 2회 네트워크 부분
안녕하세요, 별도로 "기출문제 해설강의"로 추가하기보다서브넷 마스크만 따로 모아서 업데이트할 예정입니다.출제 대비 알아야 할 부분이 많아서 이론은 텍스트 형태로 올릴 수도 있고,해설 영상만 하나로 올릴 수도 있습니다. 현재 학습자료 구성 중이라서 10월 중에 올라가지 않을까 싶습니다.IP 대역과 서브넷 마스크를 잘 모르셔도 충분히 시험에 합격하실 수 있고, 주변에 수강생들 보면 열심히 서브넷 마스크 외워서 갔다가 하나도 안나오거나 계산 잘못해서 틀리는 경우도 많았습니다.우선 다른 부분을 좀 더 암기하시고, 코드 이해에 집중하시는 것이 합격하는 데에 좀 더 큰 도움이 되실 것이라 생각합니다.업데이트가 되면 새소식으로 업로드하겠습니다!
- Lượt thích
- 0
- Số bình luận
- 2
- Lượt xem
- 66
Hỏi & Đáp
모의고사1회 2번문제 뭔지 모르겠네요 강의올려주시면안될까요?
안녕하세요! 모의고사의 경우 별도의 해설 영상은 촬영 예정이 없으며, 질문을 올려주시면 답변을 드리는 형태로 설명드리고 있습니다. 우선 이 문제의 출력 결과는 GB1:B1입니다. GiftBox 객체를 만들면 자식 클래스보다 부모 클래스인 Box가 먼저 초기화됩니다. 그래서 Box의 name은 처음 "B"로 초기화되고, 이어서 Box() 생성자의 name += "1"이 실행되면서 "B1"이 됩니다.그다음에는 GiftBox에 있는 name이 "G"로 초기화됩니다. 여기서 조금 헷갈릴 수 있는데요. GiftBox의 name이 부모 클래스의 name을 덮어쓰는 것은 아닙니다. Box.name과 GiftBox.name은 각각 별개의 필드로 존재합니다. 따라서 이 시점에서는 부모의 name은 "B1", 자식의 name은 "G"인 상태라고 생각하시면 됩니다.이후 GiftBox() 생성자 안의 name += super.get()이 실행됩니다. 여기서 앞의 name은 GiftBox의 name을 의미하고, super.get()은 부모 클래스인 Box의 get()을 호출합니다. 부모의 get()은 현재 "B1"인 Box.name을 반환하기 때문에 "G" + "B1"이 되고, 결과적으로 GiftBox.name은 "GB1"이 됩니다.마지막으로 g.get()을 호출하면 GiftBox에서 오버라이딩한 get() 메서드가 실행됩니다. 여기서 name은 GiftBox.name인 "GB1"이고, super.get()을 호출하면 부모의 Box.name인 "B1"을 가져옵니다. 따라서 최종적으로 "GB1" + ":" + "B1"이 되어 GB1:B1이 출력됩니다. 이 문제에서는 부모와 자식에 같은 이름의 필드가 있더라도 각각 별도로 존재한다는 점, 그리고 super를 사용하면 부모 클래스의 멤버에 접근할 수 있다는 점을 기억해주시면 좋습니다.GiftBox 객체 ┌──────────────────────────┐ │ │ │ Box 영역 │ │ └─ name = "B1" │ │ │ │ GiftBox 영역 │ │ └─ name = "GB1" │ │ │ └──────────────────────────┘ g.get() │ ├─ name → GiftBox.name → "GB1" │ └─ super.get() → Box.name → "B1" │ ▼ "GB1:B1"
- Lượt thích
- 0
- Số bình luận
- 1
- Lượt xem
- 48





