분류 전체보기 111

MySQL 설치

에스큐엘 / 시퀄SQL 데이터베이스 프로그램이다. 1. MySQL 홈페이지 2.학습용 무료 커뮤니티 버전을 제공한다. 3.윈도우 자동설치 버전을 받으면 된다.4. 현재 8.0.42버전까지 나와있다.최신버전이 항상 좋은 것은 아니고 개발자로서 최신버전을 이용하는 습관은 오히려 바람직하지 않다고 할 수 있다. 예상치 못한 버그가 남아있을 수 있기 때문 하지만 메이저 버전은 따라가 주는 것이 호환성 측면에서 좋다.8.0.27 버전을 사용하기로 한다. 5. 아카이브 탭을 눌러 8.0.27 버전을 찾아 설치해본다.6. 파일을 받아 실행한다. 7. Next를 연타하다보면 다음과 같은 선택지가 나온다. 모든 구성요소를 설치하면 용량이 크기 때문에 필요한 요소들을 취사선택해준다.8. MySQL의 통신포트는 3306이다..

설치메뉴얼 2025.05.01

Swing 예제, KeyListener를 활용해 방향키 기반 게임 만들기

⭐Swing을 활용해 간단한 게임을 만들어봤다. 요청사항----- ----- -----캐릭터가 방향키에 맞게 움직이도록 만들것움직이는 장애물을 만들것캐릭터와 장애물이 충돌시 캐릭터가 삭제되도록 할 것 🤔기억해야 할 내용쓰레드, While문을 활용해사용자가 조작하지 않아도 스스로 움직이는 장애물을 설계할 수 있다. 1. 클래스 생성JFrame 상속KeyListener 구현package _game;import javax.imageio.ImageIO;import javax.swing.*;import java.awt.*;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;import java.awt.image.BufferedImage;import..

Java 2025.04.30

Swing 예제, 로또번호 만들기

⭐Swing을 활용해 로또번호를 생성하는 프로그램을 만들어봤다. 요청사항 ----- ----- ----- 버튼을 누르면 번호 6개 출력되도록 만들 것보더레이아웃타이틀패널기능들을 활용할 것 🤔알아둘 개념 단일 책임 원칙 SRP Single Responsibility Principle 클래스를 설계할 때의 원칙 클래스는 가능한 단 하나의 책임을 가지는 것이 좋다 1. 단일 책임 원칙에 따라난수를 생성하는 클래스를 따로 만들었다. 중복을 방지하기 위해이중 for 문을 알 필요가 있다.package _lotto.ch01;import java.util.Arrays;import java.util.Random;/** * 4.29 * 난수를 만들어주는 프로그램을 따로 만들어본다. * * 단일 책임 원칙 * SRP..

Java 2025.04.30

Swing예제, KeyListener로 특정 키 값 인식

⭐KeyListener 키보드를 눌렀을 때 호출되는 메서드를 가지고 있는 인터페이스 keyTyped keyPressed keyReleased 3개 메서드를 구현할 수 있다. 메서드 안에if문을 넣어 각 키 값에 맞는 구문을 설계할 수 있다. if (e.getKeyCode() == KeyEvent.VK_UP) {System.out.println("위쪽 화살표 누름"); } 예제) 방향키 4개를 누르면 서로 다른 메시지가 호출되는 구문----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ⭐구조 상속 JFrame/ 구현 KeyListener멤버변수 JTextArea생성자 (initData, setInitLayout, addEventLi..

Java 2025.04.29

Swing예제, ActionListener로 버튼 상호작용

⭐액션리스너 인터페이스 ActionListener자바 개발자들이 운영체제(마우스 제어 주체)와 상호작용할 수 있도록 에비해둔 기능이다. 이를 위해 운영체제와 약속된 추상 메서드를 오버라이드 한다. 만약 이벤트가 발생되면 이 메서드를 수행하도록 하기 위해서다. ⭐콜백 callback 직접 수행하는 것이 아니라 미리 정해져 있는 정보(객체)를 받을 수 있게 하는 것 💀단, 어떤 컴포넌트가 이벤트를 실행시킬 것인지 먼저 등록해둬야 한다. 예제) 버튼에 상호작용 기능을 넣어보자----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ⭐구조 상속 JFrame/ 구현 ActionListener멤버변수 JButton생성자 (initData, s..

Java 2025.04.29

Swing 예제, JLabel로 이미지 팝업하기

⭐JLabel 이용해 이미지를 다뤄본다. Jlabel.add() 메서드를 이용하면 이미지를 겹칠 수 있다. 좌표 기준으로 배치관리자를 세팅하려면 null 값을 세팅해야 한다. 💀이너클래스를 만들지 않고 JLabel을 이용해 이미지를 그리면 이미지 사이즈를 조절할 수 없다. 👍미리 조절된 이미지를 사용해야 한다. 예제) 배경이미지 위에 캐릭터이미지 올리기----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ⭐구조 상속 JFrame멤버변수 JLabel생성자 (initData, setInitLayout)메소드 initData (컴포넌트 정의) setInitLayout (디자인)메인코드----- ----- -----..

Java 2025.04.29

스윙 Swing, 자바에서 GUI를 만들어주는 도구

⭐ 스윙 Swing 자바에서 GUI를 만들어주는 도구 ⭐ 스윙의 JComponent JFrame JPanel Jbutton 등등... 화면과 관련된 작업을 할때 배치관리자 Layout을 이해해야 한다. Component 들을 어떻게 배치할 것인지 ⭐동서남북 배치 배치관리자 개념중에 보더레이아웃이라는 개념이 있다. BorderLayout은 컴포넌트를 동서남북 가운데로 배치하는 레이아웃이다. 프레임 (패널) 우리가 생성한 JButton 객체를 프레임에 붙인다. add(buttons[i], directions[i]); 예제) 보더레이아웃과 배열 응용package _swing;import javax.swing.*;import java.awt.*;/** * 4.28 * 화면과 관련된 작업을 할때 * 배치관리자 L..

Java 2025.04.28

내부 클래스 Inner Class, 논리적으로 응집력 있는 클래스 설계

⭐내부 클래스 Inner Class 클래스 속 클래스 🤔Why?⭐ 논리적인 그룹화 외부클래스 Outer Class 와 내부 클래스 Inner Class 를 논리적으로 묶어 논리적으로 그룹화한다. 👍이는 코드의 가독성과 구조화를 향상해 관련 클래스들을 유지하는데 도움을 준다. 주로 두 클래스가 연관이 크고 다른 곳에서 쓸일이 없을때 쓴다. 멤버 내부 클래스 Member Inner Class 주로 외부클래스 필드에 선언 ✨정적 내부 클래스 Static Inner Class 외부 클래스의 필드에 선언되지만 static 키워드를 사용하여 선언되는 점이 다르다. public static class xxx { } 지역 내부 클래스 Local Inner Class 메서드 내부에 선언된다. 익명 내부 클래스 A..

Java 2025.04.25

멀티 쓰레드 Multi Threading, 쓰레드 동시 수행... 동기화 처리가 중요

⭐multi threading 여러 쓰레드가 동시에 수행되는 프로그래밍을 말한다. 여러 작업이 동시에 실행되는 효과를 만들 수 있다. 각각의 쓰레드는 자신만의 변수, 메서드 등 작업 공간을 가질 수 있다. 💀멀티쓰레딩 할 때의 주의점각 쓰레드 사이에는 공유하는 자원을 가질 수 있는데 여러 쓰레드가 자원을 공유하여 작업을 수행한다면 서로 자원을 차지하려는 race condition 발생 가능🐶 이에 따라 의도하지 않은 동작이 발생시킬 수 있다. ⭐이를 해소하기 위해 동기화처리가 필요하다 How? synchronized 구문을 추가해주자 예제)은행에서 하나의 계좌를 사용하는 연관관계 클래스(가족)들을 만들고동기화 처리를 해봤다. 1.은행계좌클래스를 만들고 입금, 출금 메서드 작성2.아빠, 엄마 클래스 작..

Java 2025.04.25

쓰레드 Thread, 작업을 수행하는 단위

쓰레드 Thread 프로세스에서 작업을 수행하는 단위 ⭐process 프로그램이 실행되면 OS로부터 메모리를 할당받아 프로세스 상태가 된다. ⭐thread 하나의 프로세스에는 하나 이상의 쓰레드를 가지고 된다. 쓰레드는 실제 작업을 수행하는 단위이다. 메모리[@프로세스@프로세스@프로세스] ㄴ@프로세스[#쓰레드#쓰레드#쓰레드] 🤔Why?단일 쓰레드 환경이라면메모리 소모가 큰 작업을 할때 다른 작업을 할 수 없게 된다. 자바에서는 이럴때 run() 메소드를 활용해서 다른 작업을 동시에 할 수 있다. Run: cpu는 하나의 작업만을 수행 | Start => Runnable Not Runnable(sleep): 스케줄러가 메모리에 ..

Java 2025.04.25