온라인 교육 부문 2년 연속 1위
신규회원 10% 할인권 증정! 신규회원 10% 할인!
TOP
강의목록

강의소개

홈 > 강의소개

JAVA 프로그래밍Ⅱ

교수 사진

박길식 교수

동국대학교 대학원 컴퓨터공학과 박사(인공지능)
동국대 인공지능협업센터 연구교수

학력

동국대학교 대학원 컴퓨터공학과 박사(인공지능)
동국대 인공지능협업센터 연구교수

강의경력

동국대학교
삼성전자 인재개발원
현) 유니와이즈 전임교수

강좌 소개
🤖 **유니와이즈 AI 튜터 탑재!**
- AI강의요약, AI질문채팅, AI문제생성 가능
- 강의는 기본, 최신 트렌드 학습은 AI 튜터로 24시간 학습!

✅ **대학 교과과정 중심 자바 프로그래밍**:
- 프로그래밍입문→객체지향→자료구조/DB 기초로 이어지는 대학 표준 흐름을 반영해, 전공 수업·과제·시험에 즉시 적용 가능한 실습형 강의입니다.
✅ **핵심 문법부터 객체지향·스트림·동시성까지**:
- JDK/IDE 설정, 예외/컬렉션/제네릭, 람다/스트림, 파일 I/O·스레드, JDBC를 단계적으로 학습하고 미니 프로젝트로 실무 감각을 키웁니다.
✅ **실무·코딩테스트·자격증 동시 대비**:
- JUnit/리팩터링·Git 협업으로 품질과 협업 역량을 강화하고, 코딩테스트 핵심 유형과 OCP/정보처리기사·SQLD까지 한 번에 준비합니다.
교육 대상
🎓 **컴공/소프트웨어/정보보호 등 이공계 대학생**: 전공 수업(프로그래밍입문, 객체지향, 자료구조, DB 기초)을 자바로 체계적으로 이해하고 싶은 학생.
📚 **비전공 개발 입문·전과/복수전공 준비생**: 기초 문법부터 객체지향·프로젝트까지 한 코스로 정리하고 싶은 학습자.
🏃 **취업·이직 준비생(백엔드/안드로이드/QA)**: 실무형 예제와 미니 프로젝트로 포트폴리오와 코딩테스트를 동시에 준비하려는 분.
🔬 **심화 학습자/고교 선행**: 대학 교과 연계를 고려해 자바/CS 기초를 탄탄히 다지고 싶은 심화 학습자.
🧭 **부트캠프 사전 학습자**: Java 기본기와 개발 워크플로(Git/테스트/빌드)를 먼저 익혀 수업 적응력을 높이고 싶은 분.
교재정보 및 참고문헌
📘 **주교재 (PDF 제공)**:
- 유니와이즈 교수진이 대학 교과과정 중심으로 설계한 핵심 개념 정리 + 실습 예제 + 단계별 문제/해설을 담은 연구교재입니다.
- 수강 즉시 다운로드 가능하며 예습/복습과 과제·시험 대비에 최적화되어 있습니다.
📖 **참고 문헌 (선택)**:
- 『명품 JAVA Programming』(황기태·김효수, 생능출판사)
- 『Head First Java, 한국어판』(Kathy Sierra, 역 서환수, 한빛미디어)
(※ 강의는 자체 PDF 교재만으로도 충분히 학습 가능하도록 구성되어 있습니다.)

유니와이즈 AI학습의 특징

AI가 이끄는 스마트한 학습 경험, AI 튜터와 함께 더 빠르고, 더 깊게 학습하세요.

📝
AI 자동 요약

긴 강의 내용을 AI가 핵심만 요약하여 복습 시간을 단축시킵니다.

🔑
핵심 키워드 추출

강의에서 가장 중요한 키워드와 개념을 자동으로 추출해 제공합니다.

💡
AI 자동 퀴즈

학습한 내용을 바탕으로 AI가 생성한 퀴즈를 풀며 이해도를 점검합니다.

🤖
1:1 AI 튜터

모르는 부분을 24시간 언제든 AI 튜터에게 질문하고 답변을 받습니다.

커리큘럼

총 9개 챕터, 29강으로 구성되어 있습니다.

커리큘럼
제목 강의시간 상세내용
8장. 입출력 스트림과 파일 입출력
[1강] 자바의 입출력 스트림 실습
0: 41: 13
자바 입출력 스트림 기본 개념과 파일 읽기 실습 정리

• 자바 스트림 개념과 종류: 프로그램과 외부 장치 간 데이터 통로로서 입력/출력 스트림, 바이트 스트림(...Stream)과 문자 스트림(...Reader/Writer) 구조 및 키보드/파일/네트워크 입출력 방식 정리
• 파일 입력 처리 구조: FileInputStream과 read()를 이용한 바이트 단위 파일 읽기, EOF(-1) 기반 while 반복, 예외 처리(FileNotFoundException 등)와 스트림 close()를 통한 자원 관리 절차 정리
• 아스키 코드와 형 변환: 키보드·파일 입력 시 int(아스키 코드) 반환 특성, InputStreamReader를 통한 바이트→문자 변환, int→char 캐스팅으로 실제 문자 출력하는 과정 정리
[2강] 바이트 스트림과 파일 입출력 실습
0: 24: 04
자바 FileOutputStream과 FileInputStream을 이용한 파일 입출력 원리

• 바이트 스트림 기반 파일 입출력 구조: FileOutputStream·FileInputStream으로 1바이트 단위 쓰기/읽기 수행, 스트림 생성→입출력 메소드 호출→close로 자원 해제
• 예외 처리와 파일 경로 관리: 잘못된 경로·파일명에서 발생하는 FileNotFoundException 등 예외를 try-catch로 처리하고, 상위 Exception 활용으로 공통 예외 대응
• write/read 메소드와 ASCII 코드 동작: int·byte·배열 write 시 값에 해당하는 ASCII 코드가 기록되고, read는 더 읽을 데이터가 없을 때 -1을 반환하는 반복 읽기 구조 이해
[3강] 문자 스트림과 파일 입출력 실습
0: 44: 27
문자 스트림과 FileReader/FileWriter 활용 요약

• 문자 스트림과 유니코드 개념: 유니코드 기반 문자 스트림과 바이트 스트림의 차이, Reader/Writer 계열을 통한 문자 전용 입출력 구조 정의

• 문자 스트림 클래스 구조와 파일 입력: FileReader·FileInputStream+InputStreamReader 조합의 역할, read()와 EOF(-1) 처리, 예외 처리와 close() 중심의 텍스트 파일 읽기 절차 정리

• 파일 출력 및 키보드 입력 저장 흐름: FileWriter를 이용한 텍스트 파일 쓰기, 덮어쓰기 특성과 append 개념, System.in+InputStreamReader+FileWriter 연결을 통한 키보드 입력 파일 저장 과정 요약
[4강] 버퍼 입출력과 파일 입출력, File 클래스 실습
0: 45: 21
자바 I/O 버퍼 스트림과 File 클래스 핵심 정리

• 버퍼 스트림 개념과 구조: 바이트/문자 버퍼 스트림(BufferedInputStream, BufferedOutputStream, BufferedReader, BufferedWriter)을 사용해 데이터를 버퍼에 모아 일괄 입출력하고, 버퍼 크기와 flush/close를 통해 성능과 출력 타이밍을 제어함

• BufferedOutputStream 활용: 파일/키보드 입력을 버퍼 단위로 화면에 출력하며 자동 flush 조건과 flush() 강제 호출 시점을 이해하고, 작업 특성에 맞는 버퍼 크기를 선택해 I/O 호출 오버헤드를 최소화함

• File 클래스 활용: File 객체를 통해 파일/디렉토리 경로 관리, 존재 여부·타입 판별(exists, isFile, isDirectory), 디렉토리 목록 조회(list, listFiles), 파일 크기·수정 시간 확인(length, lastModified), 권한 확인(canRead, canWrite, canExecute)과 디렉토리 생성(mkdir) 로직을 구성함
9장. 자바 GUI 기초, AWT와 스윙(Swing)
[5강] 자바의 GUI, 자바 GUI 패키지 실습
0: 51: 32
Java GUI 프로그래밍 AWT와 Swing 개념 및 기본 프레임 구성 요약

• AWT와 Swing GUI 라이브러리: AWT의 운영체제 의존·성능 한계를 기반으로 Swing이 경량·고성능·JComponent 중심 구조로 확장된 Java GUI 프레임워크 특징 정리
• 패키지·라이브러리·Javadoc: java.awt·javax.swing 패키지 구조, 패키지와 라이브러리의 개념 차이, Java API(Javadoc)로 클래스·메소드 참조 및 계층 구조 탐색 방법 정리
• JFrame과 상속 기반 GUI 설계: JFrame 창 생성과 set 계열 메소드(크기·위치·제목·표시) 사용, Object→Component→Container→JComponent→JFrame 상속 계층과 JFrame 상속·생성자 초기화 패턴 정리
[6강] 스윙 GUI 프로그램 만들기와 컨테이너(Container) 실습
0: 34: 34
Java Swing JFrame과 패널을 이용한 기본 GUI 구성 원리 요약

• JFrame 상속과 생성자 초기화 패턴: JFrame 하위 클래스 정의, main에서는 객체 생성만 담당, 프레임 제목·크기·위치·가시성 등 속성은 생성자에서 초기화하는 구조
• 컨텐트 패널과 레이아웃 구조: JFrame의 Content Pane(Container) 얻기·교체 후 컴포넌트 부착, FlowLayout 등 레이아웃 관리자를 통해 자동 정렬·줄바꿈 기반 컴포넌트 배치
• 종료 처리와 프로세스 정리: setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)로 창 닫기 동작을 애플리케이션 종료에 연결, System.exit(코드)로 정상·비정상 종료 상태를 명시하며 프로세스와 메모리 해제 처리
[7강] 배치(Layout), FlowLayout 배치관리자, BorderLayout 배치관리자 실습
0: 32: 59
자바 GUI 배치 관리자 FlowLayout과 BorderLayout 비교 정리

• 레이아웃·배치 관리자 개념: 컨테이너(JPanel, ContentPane)에 setLayout()으로 배치 규칙 설정하여 컴포넌트 위치·정렬·간격을 창 크기 변화에 따라 자동 조정하는 구조

• FlowLayout 배치 구조: 컴포넌트를 상단 중앙 기준 좌→우 흐름으로 배치하고 공간 부족 시 자동 줄바꿈하며, Alignment(LEFT/CENTER/RIGHT)와 Hgap/Vgap(픽셀 간격)을 생성자·setter로 설정하는 단순 레이아웃

• BorderLayout 배치 구조: 컨테이너를 NORTH/SOUTH/EAST/WEST/CENTER 다섯 영역으로 분할해 add(컴포넌트, 위치상수) 방식으로 한 영역당 1개 컴포넌트를 배치하고, 패널 중첩·서로 다른 레이아웃 조합으로 복합 GUI 화면을 설계하는 기본 골격 레이아웃
[8강] GridLayout 배치관리자, 배치관리자 없는 컨테이너 실습
0: 46: 28
자바 GridLayout과 배치관리자 없는 컨테이너 정리

• GridLayout과 JFrame 활용: GridLayout으로 컨테이너를 균일 격자(행·열, Hgap·Vgap)로 분할해 추가 순서대로 컴포넌트 배치하고, JFrame을 상속 또는 직접 생성하여 setTitle·setSize·setVisible 등 프레임 설정 메소드 활용

• Layout Manager 기반 배치: Content Pane에 BorderLayout·FlowLayout·GridLayout 등 배치 관리자를 설정하고, getContentPane와 setLayout, add를 통해 컴포넌트를 자동 정렬·리사이즈되는 구조로 관리

• null layout과 좌표 기반 배치: setLayout(null)로 배치 관리자를 제거하고 각 컴포넌트에 setLocation·setSize·add로 좌표 기반 배치를 수행하며, 창 크기 변경 시 자동 재배치 부재·해상도 의존성 등 한계를 가지나 고정 크기·정밀 좌표 UI에서 제한적으로 활용
10장. 자바의 이벤트처리
[9강] 이벤트 기반 프로그래밍, 이벤트 객체 실습
0: 36: 32
자바 GUI 프로그래밍 이벤트 처리 기초 개념 정리

• 이벤트 기반 프로그래밍 개념: 사용자·외부 입력을 이벤트로 모델링하고, 발생 시점에 대응 코드가 실행되도록 이벤트 처리 흐름(이벤트 발생 → 이벤트 정보 객체 생성 → 이벤트 리스너 검색·호출 → 리스너에서 처리)으로 제어하는 구조

• 이벤트 객체 및 계층 구조: java.util.EventObject를 최상위로 AWTEvent, ComponentEvent, InputEvent, MouseEvent, KeyEvent, ActionEvent, ItemEvent, FocusEvent, TextEvent, WindowEvent 등으로 확장하여 이벤트 종류·소스·좌표·입력 값 정보를 공통 인터페이스로 제공하는 상속 구조

• 대표 이벤트와 주요 메서드: 버튼·텍스트필드·메뉴·체크박스·윈도우 등 컴포넌트별 ActionEvent, ItemEvent, 키/마우스/포커스/텍스트/윈도우 이벤트를 매핑하고, getSource·getButton·getClickCount·getLocationOnScreen·getX/getY·getKeyChar 등 Getter 메서드로 발생 위치·종류·값을 조회해 분기 처리 로직을 구현하는 방식 정리
[10강] 이벤트 리스너 실습
0: 40: 13
자바 GUI 프로그래밍 이벤트 리스너 개념과 마우스 리스너 사용법

• 이벤트·이벤트 리스너 개념: 사용자/시스템 사건을 표현하는 이벤트와 이를 처리하는 리스너 인터페이스 구현, 이벤트 객체 전달에 따른 처리 흐름 구조 이해

• GUI 프레임·컨테이너 구조와 컴포넌트: JFrame·컨텐트팬·레이아웃 매니저 구조에서 버튼 등 컴포넌트 생성·배치와 add(), setLayout() 등 기본 설정 절차 정리

• 마우스 리스너 구현과 등록: MouseListener 인터페이스 구현, 추상 메소드 오버라이딩(mouseClicked·mouseEntered 등), 버튼에 addMouseListener()로 리스너 등록 및 다양한 리스너(KeyListener, ActionListener 등) 확장 구조 이해
[11강] 다양한 이벤트 리스너 작성방법 실습 (1)
0: 40: 12
자바 AWT/Swing 이벤트 리스너 개요와 실습 구조 정리

• 자바 GUI 이벤트 처리 구조: 이벤트 발생 → 이벤트 객체 생성 → 해당 리스너 인터페이스(ActionListener, ItemListener, KeyListener, MouseListener, MouseMotionListener, FocusListener, WindowListener 등)로 전달 → 콜백 메서드에서 getSource()와 다운캐스팅을 통해 컴포넌트 상태 제어
• 이벤트 리스너 설계: JFrame 상속 구조(Object → Component → Container → Window → Frame → JFrame) 이해, 리스너 구현 클래스에서 인터페이스 구현 및 추상 메서드 오버라이딩, super() 호출 의미와 this/super 참조 관계 정리
• 복합 이벤트 처리 실습: JButton에 ActionListener·MouseListener 동시 등록, actionPerformed로 텍스트 토글, mouseEntered/mouseExited로 배경색 변경, 하나의 클래스에서 다중 인터페이스 구현과 addXXXListener 메서드를 이용한 리스너 등록 방식 정리
[12강] 다양한 이벤트 리스너 작성방법 실습 (2), 어댑터 클래스
0: 51: 39
이벤트 리스너 작성 방식과 어댑터 클래스 활용 정리

• 이벤트 리스너 작성 방식: 독립 클래스·이너 클래스·익명 클래스를 이용해 이벤트 객체 처리 구조를 설계하고, 응집도·재사용성·가독성 기준으로 리스너 구현 방식을 선택함
• 마우스 이벤트 처리 구조: JFrame·JPanel·JLabel 배치와 좌표계(setLocation, getX, getY)를 기반으로 MouseListener 등록 대상 컴포넌트에 클릭 이벤트를 연결해 텍스트 이동 동작을 구현함
• 어댑터 클래스 활용: MouseAdapter·KeyAdapter 등 어댑터 클래스를 상속해 필요한 메서드만 선택적으로 오버라이딩하고, 리스너 인터페이스 다중 구현 방식과 비교해 코드 간결성·다중 이벤트 처리 가능 여부 기준으로 사용 기준을 정립함
[13강] KeyEvent와 KeyListener, MouseEvent와 MouseListener, MouseMotionListener 실습
0: 58: 21
키 이벤트와 마우스 이벤트 리스너·어댑터 구현 핵심 정리

• 키·마우스 이벤트 개념: 포커스를 가진 컴포넌트에서 KeyEvent·MouseEvent가 발생하며, 키 입력(Pressed·Released·Typed)과 마우스 클릭·이동·드래그 동작을 이벤트 메커니즘으로 처리

• 키 이벤트 처리 구조: KeyListener 인터페이스와 KeyAdapter 어댑터를 통해 keyPressed·keyReleased·keyTyped를 구현하고, addKeyListener·requestFocus 및 KeyEvent의 getKeyCode·getKeyChar·getKeyText로 코드·문자·텍스트 정보를 획득

• 마우스 이벤트 처리 구조: MouseListener·MouseMotionListener 인터페이스로 mouseClicked·Entered·Exited·Pressed·Released·Dragged·Moved를 구현하고, addMouseListener·addMouseMotionListener 및 MouseEvent의 getX·getY·getButton·getClickCount·isPopupTrigger로 좌표·버튼·클릭 횟수·팝업 트리거를 처리
11장. 기본적인 스윙 컴포넌트와 활용
[14강] 스윙 기본 컴포넌트 실습
0: 56: 43
Summary Content:
Java Swing JComponent와 JLabel 핵심 메서드 및 이벤트 처리 정리

• JComponent 공통 기능: Swing 컴포넌트의 공통 부모로 모양(setForeground, setBackground, setFont), 상태(setVisible, setEnabled, isVisible), 위치·크기(getX, getY, getWidth, getHeight), 컨테이너 관계(getParent, add) 메서드 범주와 set/get/is 명명 규칙 제공

• 컨테이너와 이벤트 구조: JFrame의 contentPane(getContentPane)·레이아웃(setLayout)·컴포넌트 추가(add) 및 JButton의 addActionListener, ActionListener 구현(actionPerformed, getSource)으로 이벤트 중심 GUI 흐름 구성

• JLabel·ImageIcon·JButton 활용: JLabel로 텍스트·이미지 출력, ImageIcon으로 이미지 로딩 후 JLabel·JButton에 적용하여 텍스트 레이블, 이미지 레이블, 이미지 버튼 및 텍스트+이미지 버튼 UI 구성
[15강] 기본적인 스윙 컴포넌트와 활용 실습 (1)
0: 56: 53
GUI 텍스트 컴포넌트와 리스트·콤보 상자 핵심 정리

• 텍스트 컴포넌트(JTextField, JTextArea) : 단일 행·다중 행 텍스트 입력/출력 컴포넌트로 setEditable, setText, setFont, select, append 등을 통해 편집 가능 여부·내용·서식·선택 범위를 제어하고 JScrollPane과 결합해 스크롤 기능을 제공함
• 리스트·스크롤 연동(JList + JScrollPane) : 문자열 배열 등 데이터를 목록 형태로 표시하고 단일/다중 선택을 지원하며, 자체 스크롤이 없으므로 JScrollPane에 삽입해 많은 항목을 스크롤 탐색 가능하게 구성함
• 콤보 상자(JComboBox)와 이벤트 처리 : 접힌 형태로 하나의 선택값만 보여주고 펼침 시 후보 목록을 제공하며, ActionListener와 getSelectedIndex 등을 이용해 사용자의 선택 이벤트를 처리하고 선택 결과를 프로그램 로직에 활용함
[16강] 기본적인 스윙 컴포넌트와 활용 실습 (2)
0: 42: 35
JSlider와 ChangeListener를 활용한 Java GUI 슬라이더 프로그래밍 핵심 정리

• JSlider 컴포넌트 개념·구조: javax.swing의 연속값 조절 컴포넌트로, 수평·수직 방향, 최소·최대·초기값, 눈금·레이블·트랙 표시를 생성자와 setOrientation·setMaximum·setMinimum·setPaintLabels·setPaintTicks·setMajorTickSpacing·setMinorTickSpacing 등 메소드로 설정

• Java GUI 프레임 구성과 이벤트 처리: JFrame 상속 후 getContentPane·setLayout·add로 JSlider·JLabel 등 컴포넌트 배치, setTitle·setDefaultCloseOperation·setSize·setVisible로 창 구성, 슬라이더 값 변화 시 ChangeEvent 발생과 ChangeListener의 stateChanged 메소드에서 getValue를 이용해 실시간 UI 변경 처리

• RGB 색상 조절 슬라이더 예제 구조: R·G·B 세 JSlider를 배열로 수평(0~255, 초기 128) 생성·레이아웃 배치 후 각각에 ChangeListener 등록, stateChanged에서 세 슬라이더 값을 읽어 new Color(r,g,b) 생성 후 JLabel setBackground와 setOpaque(true)로 배경색을 실시간 갱신하는 이벤트 기반 색상 조합 구현
12장. 그래픽
[17강] 스윙 컴포넌트 그리기, Graphics 실습
0: 28: 39
자바 스윙 Graphics와 paintComponent를 이용한 2D 그리기 기초

• 자바 Swing 그래픽스 구조: JComponent의 paintComponent(Graphics g) 오버라이딩을 통해 컴포넌트가 스스로를 그리는 구조와 이벤트(리사이즈·가림·노출)에 따른 자동 재그리기 라이프사이클 이해

• Graphics·좌표계·텍스트 출력: Graphics 객체의 drawRect·drawString 등 drawXXX 메소드 활용, 좌표계(왼쪽 상단 (0,0), x→오른쪽·y→아래) 기반 사각형과 문자열 배치 방식 정리

• Color·Font를 이용한 시각 효과: Color 상수·RGB·16진수 색 지정과 setColor, Font(글꼴·스타일·크기) 및 setFont, 반복문과 결합한 폰트 크기·위치 변화 등 동적 텍스트 효과 구현 원리 정리
[18강] 도형 그리기와 칠하기, 이미지 그리기 실습
0: 41: 22
Java Swing 그래픽 도형·이미지 그리기 심화 핵심 정리

• Java Swing 그래픽 구조: JFrame 상속 + JPanel 이너 클래스 + paintComponent(Graphics) 오버라이딩 패턴에서 Graphics 객체로 선·원·사각형·호·다각형을 draw 계열 메소드로 그리는 기본 구조

• 도형 채우기·이미지 처리: draw 계열과 대비되는 fillRect·fillOval·fillRoundRect·fillArc·fillPolygon 등 fill 계열 메소드로 내부 색 채우기, ImageIcon→Image 로딩 후 drawImage 오버로드를 이용한 원본 출력·크기 조정·부분 잘라 그리기 구현

• 클리핑 영역 제어: Graphics.setClip(x, y, width, height)으로 유효 그리기 영역(클립)을 지정하고, 그 안에서만 drawImage·drawString 등이 보이도록 하여 특정 영역 강조·마스크·이미지 합성 효과 구성
13장. 스레드와 멀티태스킹
[19강] 멀티태스킹, 자바의 멀티스레딩 실습
0: 38: 03
Summary Content:
자바 멀티스레딩 기초 개념과 JVM, 멀티태스킹 구조 정리

• 프로그램·프로세스·스레드 계층 구조: 프로그램(코드 집합)·프로세스(실행 중인 프로그램)·스레드(프로세스 내 실행 단위) 개념 정의와 자바 메인 스레드를 포함한 단일 스레드 구조 및 한계 정리

• 멀티스레드·멀티태스킹 동작 원리: 하나의 프로세스 내 다수 스레드를 통한 동시성 구현, CPU의 고속 스레드 전환에 의한 가상 동시 실행, 게임·채팅·네트워크 등 동시 상호작용 요구 환경에서 멀티스레딩 필요성 및 스케줄링·우선순위 개념 정리

• 자바 멀티태스킹 구조와 JVM 역할: 자바의 멀티스레딩 중심 멀티태스킹 모델, 하나의 JVM당 하나의 자바 응용 프로그램과 다수 스레드 구성, JVM의 스레드 상태·실행 위치·우선순위 관리와 OS·하드웨어 위계 구조 정리
[20강] 스레드 개요 실습
0: 31: 44
Java 멀티스레드 생성과 Thread 클래스 활용 핵심 정리

• Java 멀티스레드 기본 개념: 스레드를 CPU 최소 실행 단위로 정의하고, 메인 스레드와 추가 스레드를 통한 멀티태스킹·멀티스레드 구조 및 JVM 내 스레드 실행 흐름을 설명
• Thread vs Runnable 스레드 생성 방식: Thread 상속과 Runnable 구현의 차이·선택 기준(단일 상속 제약, 인터페이스 다중 구현, 구현 메소드 수, 코드 간결성)을 비교하고 스레드 실행 로직인 run 메소드 구현 방식을 정리
• Thread 클래스 구조와 주요 기능: java.lang.Thread의 Runnable 구현 관계, 우선순위 상수(MAX_PRIORITY, NORM_PRIORITY, MIN_PRIORITY)와 스케줄링, 생성자와 핵심 메소드(start, run, sleep, join, interrupt, isDaemon/setDaemon, setPriority, currentThread 등)를 이용한 스레드 생성·상태 제어·실행 흐름 관리 절차 정리
[21강] 스레드 만들기(Thread) 실습
0: 36: 45
자바 Thread로 타이머 구현과 GUI 연동 핵심 정리

• Thread 타이머 구조: Thread 상속, run 메소드와 while(true)+sleep(1000) 기반 1초 단위 카운트, InterruptedException 예외 처리 및 스레드 생명주기(시작·종료·재사용 불가) 정리
• 멀티스레드 환경과 메인 스레드: 메인 스레드와 사용자 정의 타이머 스레드 병렬 실행 구조, 메인 스레드의 스레드 객체 생성·start 호출 역할 및 부 스레드 동작 관계 정리
• GUI 연동 타이머 설계: JFrame 상속, Container·레이아웃·JLabel 구성, JLabel을 스레드 생성자 인자로 전달해 인스턴스 변수로 보관 후 run에서 setText로 값 갱신하는 패턴 정리
[22강] 스레드 만들기(Runnable), 스레드 생명 주기와 스케줄링 실습
0: 58: 15
Runnable 인터페이스를 이용한 스레드 구현과 스레드 상태 개념 정리

• Runnable 기반 스레드 구현: Thread 상속과 Runnable 구현의 차이·장단점, GUI 컴포넌트(JLabel·JFrame)와 Runnable 결합, Timer·깜빡이는 레이블 등 다중 상속 친화적 스레드 구조 설계

• Thread 핵심 메타데이터와 조회: 스레드 이름·ID·프로그램 카운터·상태·우선순위·스레드 그룹·스택의 의미와 역할, Thread.currentThread()를 통한 현재 스레드 정보 접근 및 우선순위 설정 구조

• Thread 상태 모델과 전이: NEW·RUNNABLE·WAITING·TIMED_WAITING·BLOCKED·TERMINATED 여섯 상태 정의, start·run·yield·wait·notify·sleep·IO·종료에 따른 상태 전이 규칙과 멀티스레드 제어 원리
[23강] 스레드 종료 실습
0: 53: 51
Thread 종료와 interrupt 및 플래그 활용 정리

• Thread 종료 기본 원리: Thread 정의(run 메소드), start 실행 흐름, run 메소드 자연 종료·return을 통한 정상 종료 구조 정리
• interrupt 기반 종료 구조: 다른 Thread의 interrupt 호출, sleep 중 InterruptedException 발생, catch에서 return으로 종료되는 타이머·GUI 버튼 연동 패턴 정리
• 플래그 기반 종료 구조: boolean flag·finish 메소드로 상태 제어, 반복 루프 내 flag 검사, 마우스/버튼 이벤트에서 flag 변경 후 화면 정리·메시지 출력 및 Thread 종료 흐름 정리
[24강] 스레드 동기화 실습
1: 06: 00
멀티스레드 환경에서의 Thread 동기화와 synchronized, wait/notify

• 멀티스레드 동기화 개념: 공유 자원·임계 영역·모니터를 통해 race condition을 방지하고, synchronized 메소드·블록으로 한 시점 하나의 스레드만 접근하도록 제어하는 구조
• 스레드 상태·스케줄링: new, runnable(ready), running, waiting, blocked, terminated 6가지 상태와 start, yield, sleep, wait/notify에 따른 상태 전이를 이해하고 비결정적 실행 순서를 전제로 동기화 설계하는 절차
• wait/notify 협력 모델: Object의 wait, notify, notifyAll을 synchronized 영역에서 사용해 생산자–소비자처럼 조건 충족까지 대기·깨우기를 수행하고, 공유 객체 단위로 스레드 간 협조적 동작을 구현하는 방식
14장. 고급 스윙 컴포넌트
[25강] 메뉴 만들기, 툴바, 툴팁 실습
0: 56: 51
고급 스윙 컴포넌트: 메뉴, 툴바, 툴팁 구현 정리

• 스윙 메뉴 컴포넌트 구조: JMenuBar–JMenu–JMenuItem–JSeparator 계층으로 메뉴를 구성하고, JMenuItem 배열·반복문과 공용 ActionListener(이너 클래스, getActionCommand, switch-case)로 동적 메뉴 생성 및 이벤트 처리 구현
• JToolBar 툴바 구성: JToolBar를 BorderLayout 상단 등 원하는 위치에 배치하고, JButton·JLabel·JTextField·JComboBox 등을 add와 addSeparator로 그룹화하여 도구 모음 인터페이스 구성
• 툴팁과 ToolTipManager: setToolTipText로 컴포넌트별 툴팁을 설정하고, ToolTipManager.sharedInstance의 setInitialDelay·setDismissDelay로 모든 툴팁의 표시 지연·유지 시간을 전역적으로 제어
[26강] 다이얼로그 만들기, 팝업 다이얼로그 실습
0: 40: 46
자바 Swing 다이얼로그와 팝업 다이얼로그 동작 원리 정리

• JDialog와 기본 다이얼로그 구조: JFrame 기반에서 JDialog 서브클래싱·생성자 설정·컴포넌트 배치·setVisible 호출로 사용자 정의 대화 상자를 구성하는 절차와 이벤트 연결 방식

• Modal / Modeless 다이얼로그 개념: Modal 다이얼로그의 부모 창 입력 독점·코드 실행 차단 vs Modeless 다이얼로그의 동시 사용 가능성 및 JDialog 생성자(boolean)로 모달리티 제어 방식

• Modal 값 전달 및 JOptionPane 팝업: Modal 다이얼로그에서 getInput 메소드와 setVisible(true) 동기 흐름을 통한 값 반환 구조와, JOptionPane의 showInputDialog·showConfirmDialog·showMessageDialog 및 관련 상수(YES/NO/ERROR 등)를 이용한 표준 팝업 구성 방법
[27강] 파일 다이얼로그, 컬러 다이얼로그, 탭팬 실습
0: 42: 50
Summary Content:
• 파일 다이얼로그(JFileChooser): 파일 열기·저장용 대화 상자로 파일/디렉터리 목록을 보여주고 선택된 파일 경로만 반환하며, 확장자 필터·showOpenDialog·APPROVE_OPTION을 통해 선택 결과를 확인하고 실제 입출력은 별도 코드에서 처리함
• 컬러 다이얼로그(JColorChooser): 색상 선택 대화 상자로 showDialog를 통해 Color 객체를 반환하고, null 체크 후 컴포넌트의 전경색·배경색 등을 setForeground/setBackground로 동적으로 변경하는 데 활용함
• 탭팬(JTabbedPane): 하나의 프레임 내에서 여러 컴포넌트를 탭으로 관리하는 컨테이너로, 탭 위치 지정(JTabbedPane.LEFT 등), addTab("제목", 컴포넌트)로 이미지·커스텀 패널을 등록해 다중 화면을 탭 전환 방식으로 구성함
15장. 네트워크
[28강] TCP/IP, 서버-클라이언트 프로그래밍 실습
0: 49: 59
TCP/IP 네트워크 프로그래밍 기초와 자바 소켓 예제 정리

• TCP/IP · IP 주소 체계: TCP의 신뢰성 있는 전송(오류 검출·재전송·연결 지향)과 IP의 패킷 전달·호스트 식별 기능, IPv4·IPv6 주소 구조 및 도입 배경 정리
• 포트 · 소켓 통신 구조: IP·포트의 역할 분리, 포트 번호 범위와 well-known port, (IP, 포트) 쌍 기반 응용프로그램 식별, 소켓·ServerSocket 개념과 서버 다중 클라이언트 연결 구조 정리
• 자바 소켓 프로그래밍: Socket/ServerSocket 생성자·주요 메소드와 스트림 입출력 연결 절차, 서버·클라이언트 채팅 예제의 접속·메시지 송수신·종료 플로우 구현 단계 정리
16장. JDBC 프로그래밍
[29강] 데이터베이스 설치, JDBC 프로그래밍 실습
0: 38: 05
데이터베이스와 JDBC를 이용한 MySQL 연동 기초 정리

• 데이터베이스·DBMS·RDBMS 개념: 통합 공용 데이터 집합 구조, 테이블·필드·인스턴스 단위 저장, SQL을 통한 저장·검색·수정·삭제를 관리하는 시스템 원리 정리
• MySQL 및 SQL 실습 구조: MySQL 서버·Workbench 설치·서비스/스키마/테이블(student) 구성, 컬럼 정의와 INSERT·SELECT 중심의 기본 DML 실행 절차 정리
• JDBC 연동 구조: Java 프로그램–JDBC 드라이버–DBMS 연결 흐름, 드라이버 로드·Connection/Statement/ResultSet 사용, URL·계정 설정과 예외 처리에 따른 SELECT 결과 처리 패턴 정리
교수 사진

박길식 교수님

JAVA 프로그래밍Ⅱ

  • 100,000원
  • 강의 수 29강
  • 수강기간 90일
유니와이즈 고객행복센터 1899-7454
학점은행제 고객행복센터 02-2149-0803~4
상담시간: 10:00~18:00
점심시간: 13:00~14:00
토요일,일요일,공휴일 휴무
유니와이즈 고객행복센터
1899-7454
학점은행제 고객행복센터
1833-6227
상담시간: 10:00~18:00
점심시간: 13:00~14:00
토,일,공휴일 휴무