[내일배움캠프] 두번째 과제, ERD 다이어그램: BaseballGameCLI
·
TIL/스파르타 자바공부기간
1. CLI 버전BaseballInput, BaseballMain, BaseballScoreManager, BaseballAnswer 클래스들 간의 관계를 ERD (Entity-Relationship Diagram) 형식으로 표현하는 것은 객체지향 프로그래밍에서 클래스 간의 관계를 시각적으로 나타내는 것과 유사합니다. ERD는 데이터베이스의 테이블과 관계를 나타내는 데 사용되지만, 여기서는 각 클래스를 엔티티로, 클래스 간의 관계를 일종의 "연결"로 표현할 수 있습니다.각 클래스의 역할BaseballInput: 플레이어의 입력을 처리하고 검증.BaseballMain: 게임의 메인 흐름을 관리하고, 각 클래스의 객체를 호출하여 게임 로직을 진행.BaseballScoreManager: 게임 점수와 기록을 관..
C타입 광신도의 USB 버전별 특징 정리
·
네트워크/네트워크 관련지식
USB: 모든 것을 아우르는 표준 연결 기술USB(Universal Serial Bus)는 컴퓨터와 다양한 디지털 기기 간에 데이터를 전송하거나 전력을 공급할 수 있는 범용 연결 기술입니다. 1998년 애플 아이맥(iMac)의 대중화로 USB가 보편화되었으며, 이후 많은 장치에서 필수적인 연결 방식으로 자리잡았습니다. USB는 시간이 지나면서 여러 버전이 출시되었으며, 각 버전마다 전송 속도와 기능 면에서 큰 발전을 이루었습니다.USB의 주요 버전과 특징1. USB 1.1 (Full-Speed)속도: 초당 12Mbps (약 1.5MB/초)특징: USB의 첫 상용화 버전으로, 느린 속도이지만 기본적인 연결을 제공했습니다.2. USB 2.0 (Hi-Speed)속도: 초당 480Mbps (약 60MB/초)특징..
[내일배움캠프] 두번째 과제, ERD 다이어그램: BaseballGameGUI
·
TIL/스파르타 자바공부기간
1. BaseballGameMain속성:BaseballGameLogic gameLogic (게임 로직 처리)메서드:checkResult(int[] userNumbers) (결과 확인)resetGame() (게임 초기화)getFormattedScores() (포맷된 점수 가져오기)clearScoreList() (점수 리스트 초기화)main(String[] args) (프로그램 시작점)관계:BaseballGameMain은 BaseballGameLogic을 사용합니다.2. BaseballGameLogic속성:int[] randomNumbers (랜덤 숫자)int numberOfDigits (숫자의 자리수)int attemptCount (시도 횟수)BaseballGameScoreManager baseballGa..
명품자바 프로그래밍의 기초: 15장
·
Java
자바 네트워크 프로그래밍 – TCP/IP와 소켓 프로그래밍15장은 자바에서 네트워크 프로그래밍을 다루며, 특히 TCP/IP 프로토콜과 소켓 프로그래밍을 중심으로 설명하고 있습니다. TCP/IP 기반의 클라이언트-서버 통신 방식과 소켓을 이용한 데이터 송수신 방법을 배울 수 있습니다.1. TCP/IP 개요TCP/IP는 인터넷을 기반으로 하는 네트워크 통신 프로토콜입니다. 이 중 TCP(Transmission Control Protocol)는 신뢰성 있는 데이터 전송을 담당하고, IP(Internet Protocol)는 패킷을 목적지로 전달하는 역할을 합니다.IP 주소와 포트IP 주소: 네트워크 상에서 각 장치를 식별하는 고유한 주소. IPv4, IPv6 주소 체계를 사용합니다.포트: 특정 응용 프로그램이 ..
명품자바 프로그래밍의 기초: 14장
·
Java
자바 GUI 프로그래밍 – 메뉴, 툴바, 다이얼로그와 파일 다이얼로그14장은 자바에서 메뉴, 툴바, 다이얼로그 및 파일 다이얼로그를 만드는 방법에 대해 설명하고 있습니다. 이를 통해 사용자 인터페이스를 보다 직관적이고 유용하게 만들 수 있습니다. 주요 내용을 블로그 글 형태로 요약하면 다음과 같습니다.1. 메뉴 만들기메뉴는 GUI 프로그램에서 자주 사용하는 기능으로, 자바에서는 JMenuBar, JMenu, JMenuItem을 사용하여 메뉴를 만들 수 있습니다.메뉴 구성 요소JMenuBar: 메뉴 바를 생성하는 컴포넌트.JMenu: 개별 메뉴(파일, 편집 등).JMenuItem: 메뉴 안에 들어가는 항목(새로 만들기, 저장 등).메뉴 생성 코드 예제import javax.swing.*;public cla..
명품자바 프로그래밍의 기초: 13장
·
Java
객체지향 13장은 멀티스레드 프로그래밍을 다룹니다. 자바에서 스레드를 생성하고 관리하는 방법, 스레드의 동작 원리, 그리고 멀티스레드의 활용 사례들을 중심으로 설명하고 있습니다.자바 멀티스레드 프로그래밍 – 스레드 관리와 동기화1. 멀티스레딩 개념멀티태스킹은 하나의 프로그램이 여러 작업(태스크)을 동시에 처리하는 것을 말합니다. 자바에서는 멀티태스킹을 멀티스레딩을 통해 구현할 수 있습니다. 멀티스레딩은 하나의 프로그램이 여러 개의 스레드를 실행해 동시에 여러 작업을 처리할 수 있게 합니다.2. 스레드 생성 방법자바에서 스레드를 생성하는 방법은 두 가지가 있습니다:hread 클래스 상속Runnable 인터페이스 구현Thread 클래스 상속Thread 클래스를 상속받아 run() 메소드를 오버라이딩하여 스레..
비싼 요금제 써도 똑같은 속도일 수 있는 이유
·
네트워크/네트워크 관련지식
인터넷 요금제가 비싼데도 불구하고 인터넷 속도가 느리게 느껴지는 이유는 여러 가지 요소가 복합적으로 작용하기 때문이겠지만, 아무리 좋은 요금제를 쓰더라고 로딩 속도는 같습니다. 다운로드나 업로드 속도는 다르겠는데 이것도 실제로 다를지 검토해보는 글을 작성해보겠습니다.1. 인터넷 회선의 품질고가의 요금제를 사용하더라도 사용 중인 인터넷 회선의 품질이 저하되어 있으면 속도가 제대로 나오지 않을 수 있습니다. 회선 품질에는 여러 가지 변수가 있는데, 지역별 인프라 차이, 회선 혼잡도, 공유기 상태 등이 중요한 영향을 미칩니다. 특히, 오래된 건물이나 인프라가 열악한 지역에서는 최신 고속 회선이 제공되지 않는 경우가 많습니다.또한 요즘 논란이 많은 통신사나 일부 통신사들의 경우 트래픽 문제를 이유로 일부로 속도..
명품자바 프로그래밍의 기초: 12장
·
Java
객체지향 12장은 그래픽 기반 GUI 프로그래밍에 대해 설명하고 있으며, 자바의 paintComponent() 메소드를 활용하여 컴포넌트에 직접 그림을 그리는 방법을 다룹니다. 자바 그래픽 기반 GUI 프로그래밍 – paintComponent() 활용1. 스윙 컴포넌트 그리기 – paintComponent()자바 스윙에서 모든 컴포넌트는 자신의 모양을 직접 그립니다. 컴포넌트가 화면에 그려질 때마다 자동으로 호출되는 메소드가 paintComponent(Graphics g)입니다. 이 메소드를 오버라이딩하면 개발자가 원하는 대로 도형, 텍스트, 이미지 등을 그릴 수 있습니다. class MyComponent extends JPanel { public void paintComponent(Graphics..
명품자바 프로그래밍의 기초: 11장
·
Java
객체지향 11장은 자바 스윙(Swing) 라이브러리를 활용한 컴포넌트 기반 GUI 프로그래밍에 대해 다루고 있습니다. 주요 내용은 다음과 같습니다.1. 컴포넌트 기반 GUI 프로그래밍자바에서 제공하는 스윙 패키지를 활용하여 GUI 컴포넌트를 사용하는 방법을 설명합니다. 스윙은 자바에서 GUI를 쉽게 구성할 수 있도록 지원하는 패키지로, 컴포넌트를 활용한 GUI는 일반적인 프로그램에 적합합니다.2. 기본 스윙 컴포넌트 및 상속스윙의 기본적인 컴포넌트는 JComponent 클래스를 상속받아 기능을 확장합니다. 예를 들어, 버튼, 텍스트 필드, 레이블, 체크박스 등이 있으며, 이들의 공통 메소드와 사용 방법을 설명합니다.3. JLabel (레이블)텍스트 또는 이미지를 표시하는 컴포넌트입니다.JLabel은 텍스..
[내일배움캠프] 두번째 과제, 트러블슈팅: BaseballGameGUI
·
TIL/스파르타 자바공부기간
트러블슈팅: BaseballGameMain 및 BaseballGameLogic 애플리케이션의 문제 해결개요이 문서는 Java로 개발된 숫자 야구 게임 애플리케이션에서 발생한 문제와 그 해결 과정을 다룹니다. BaseballGameMain은 게임의 흐름을 관리하고, BaseballGameLogic은 게임 로직을 처리하여 숫자 비교 및 피드백을 제공하는 역할을 합니다. 추가적으로 BaseballGameScoreManager와 BaseballGameRandomNum 클래스로 각각 점수 관리와 난수 생성 기능을 분리하여 명확한 역할을 부여했습니다.개발 과정에서 여러 입력 오류 및 게임 로직의 비정상적인 동작을 해결하여 애플리케이션의 안정성과 기능을 크게 개선할 수 있었습니다.트러블슈팅 과정배경숫자 야구 게임은 ..