-/Java 28

Day.16 프로세스와 스레드

프로세스(Process)실행 중인 하나의 프로그램실행에 필요한 메모리, 데이터, 자원을 운영체제로부터 할당받음하나 이상의 스레드를 포함 스레드(Thread)프로그램 내에서 실행의 흐름을 가지고 있는 최소단위자바 프로그램은 항상 메인 스레드(main 메소드 실행)부터 시작모든 프로세스는 하나 이상의 스레드를 가진다.메인 스레드- main() 메소드를 실행하는 기본 스레드- 순차적으로 실행되다 return을 만나면 종료한다.싱글 스레드- 메인 스레드 하나만 사용- 한 작업이 끝나야 다음 작업 시작멀티 스레드- 여러 개의 스레드를 동시에 실행- 병렬 작업(멀티 태스킹) 가능구분싱글 스레드멀티 스레드실행 방식순차 실행병렬 실행효율낮음높음종료main 종료 시 프로세스 종료다른 스레드가 살아있으면 계속 실행멀티 프..

-/Java 2026.06.08

[Java 미니 프로젝트 제작 과제] 텍스트 RPG기반 방탈출 게임 ~잃어버린 USB를 찾아서~

룰룰루~ 내일은 대망의 미니 프로젝트 발표일! 🚀마저 하지 못한 부분(남은 에러 잡기)는 집에서 우아하게 해결하려 했건만...분명 가방 깊숙이 넣어온 USB가 감쪽같이 사라졌다?!발표까지 남은 시간은 단 12시간. ⏰USB를 찾아내어 공든 탑을 지킬 것인가, 아니면 밤을 새워 무(無)에서 유를 창조할 것인가!지금부터 당신의 운명을 건 방탈출이 시작된다.프로그램 주제실화기반의 미니 프로젝트 파일이 담긴 USB를 찾아 집안을 조사하는 텍스트 RPG기반 방탈출 게임 주요 기능데이터 추가 기능 : 획득한 아이템을 인벤토리에 추가한다.데이터 삭제 기능 : 획득한 아이템을 사용할 시 인벤토리에서 해당 데이터를 삭제한다.데이터 수정 기능 : 플레이어의 HP/MP가 수정되며, 한 번 조사한 장소는 조사 완료로 상태가..

-/Java 2026.06.08

Day.15 네트워크 프로그래밍

네트워크란?여러대의 컴퓨터들이 연결되어있는 통신망 서버와 클라이언트 서버- 클라이언트의 요청을 받아서 고객에게 서비스를 제공해주는 컴퓨터 또는 프로그램- 클라이언트 요청을 기다림 > 요청처리 > 응답반환클라이언트 - 서버에 요청을 보내는 프로그램- 웹 브라우저, 메신저 앱 등 대부분의 애플리케이션 네트워크의 기본 요소IP주소 (Internet Protocol Address) 네트워크상에 각 컴퓨터를 식별하기위한 주소포트 (Port)컴퓨터내의 프로그램을 식별하기위한 코드 도메인 : 특정 서버에 접근하기위한 정보(ip, port)를 사람이 읽고 기억하기 어렵기 때문에 쉽게 만들어 둔 주소-> 실제 도메인으로 요청시 DNS(Domain Name System)에서 IP로 변경해서 위치를 찾음. 자바 네트워크 ..

-/Java 2026.06.07

Day.14 - 제네릭 & 컬렉션

제네릭 (Generic) 정의: 클래스나 메서드가 사용할 데이터 타입을 컴파일 시점에 지정할 수 있도록 지원하는 문법 (타입 매개변수)특징: 필드, 메서드 타입을 객체 생성 시 전달받아 사용한다.타입을 지정하지 않으면 Object로 처리되는 Raw Type으로 동작(경고 발생). 제네릭이 필요한 이유 (기존 Object 방식의 문제점) 1. 번거로운 형변환2. 런타임 오류 가능성 제네릭의 핵심 장점 1. 컴파일 시점에 강력한 타입 체크 (에러를 미리 발견)2. 불필요한 형변환 제거 (코드 간결화) 기본 문법 및 제약 꺾쇠괄호 안에 타입 매개변수(T, E, K, V 등)를 넣어 표현제약: 기본 타입(int 등) 불가 ➡️ 래퍼 클래스(Integer 등) 사용 / static 멤버에는 사용 불가 / ..

-/Java 2026.06.07

Day.12 - 예외처리 & 입출력

에러의 종류시스템 에러 : 하드웨어/OS장애 -> 코드로 해결X컴파일 에러 : 문법오류 -> 개발자가 알아채고 수정하기 간단함.런타임 에러(= 예외 Exception) : 실행 중 발생, 개발자가 바로 처리해서 대응.논리 에러 : 실행은 정상적으로 되지만 결과가 의도와 다르게 나옴. -> 발견, 수정 어려움.)예외처리를 하는 이유프로그램이 비정상적인 종료를 하면 안된다. -> 복구가능한 흐름으로 만들어 가용성(사용가능)을 유지하기 위해. 예외를 처리하는 방법1. try~catch (직접처리) : 2. throws (위임) : 직접 예외를 처리하는 것이 아니라 이 메서드를 호출한 곳으로 예외처리를 위임.자바의 스트림 개념프로그램과 외부매체(파일, 네트워크, 키보드, 콘솔...)간의 데이터 전달 통로(객체..

-/Java 2026.06.01

[KPT 회고] 2026.05.25~ 05.31

Keep• 이해를 좀 하게 됐다........^^• 아직 결석 안하고 지각 안함 (쓸 거 없어서 이거 씀) Problem• 집에서 공부 제대로 못함• 복습 제대로 못함. 특히 주말.Try• 집에가서 공부하는 것보다는 평일에 수업 끝나고 자습을 하는게 더 효율적인 것 같다.• 주말 시간을 조금 더 빼본다. 작업 스케줄을 월요일 포함해서 어떻게 조절하면 될 듯 아무것도 못했는데 왜 벌써 일주일이 지났는지;이번 주는 하겠다고 한 것들 대부분 못 지켰다.수업 초반에는 열심히 했는데 점점 의지가 약해지는 것 같다.늘어지지 않게 조심해야겠다.😓암튼 OOP 들어가고 나서 지금까지 배웠던 것들이 어떻게 사용되는지 왜 중요한지 알게 되었다.앞에서 배운 것들을 다 이해하고 쓸 수 있으면 막힘없이 작성할 수 있을텐데 아쉬..

-/Java 2026.06.01

Day.11 - 인터페이스

인터페이스 (Interface) 클래스가 구현해야 할 메서드(추상)를 정의해 둔 것추상메서드만 선언 가능(구현부가 없는 메서드)java8이후에 default메서드, static메서드도 사용 가능모든 메서드는 묵시적으로 public abstract키워드가 자동 생성됨모든 변수는 묵시적으로 public static final키워드가 자동 생성됨인터페이스를 구현하는 class는 반드시 인터페이스의 모든 추상메서드를 구현(오버라이딩)자바에서 클래스는 다중상속 불가, 인터페이스는 다중상속, 다중구현 가능[접근제한자] interface 인터페이스명 { =ㅤㅤ//상수도 멤버로 포함할 수 있음ㅤㅤㅤpublic static final 자료형 변수명 = 초기값;//추상 메소드만 선언 가능[public abstract] 반..

-/Java 2026.05.29

Day.11 - 다형성

다형성 (Polymorphism): 다양한(多) 형태(形)를 가지는 성질(性)객체지향 프로그래밍의 3대 특징 중 하나로 ‘여러 개의 형태를 갖는다’는 의미하나의 행동으로 여러 가지 일을 수행하는 개념하나의 타입(부모)으로 여러 가지 객체(자식)를 다루는 기술다형성의 조건상속관계여야한다. (부모-자식)오버라이딩이 되어있어야한다. (자식이 부모의 기능을 자기 식으로 바꿔놨어야 함) 상위 클래스의 참조변수가 참조할 수 있는 대상의 범위 ✅ CheeseCake extends Cake : CheeseCake는 Cake의 일종이다.ㅤㅤCake 먹고 싶을 때 CheeseCake 먹어도 됨. ✅ Cake = new StrawberryCheeseCake(); : 케이크만큼 쓸거지만 메모리 범위는 스트로베리 치즈케이크..

-/Java 2026.05.29

Day.10 - 상속

?(오늘 너무 졸렸음) 상속부모 클래스의 필드와 메서드를 자식 클래스가 물려받아 사용하는 것.필드랑 메서스를 내것처럼 쓰게해줌~ 자식 객체 생성시, 부모 클래서 생성자 먼저 실행-> 자식 클래스 생성자 실행즉, 부모부분과 자식 부분이 순차적으로 메모리 구조를 만듦. * 자식 객체 내부에는 부모 객체의 메모리 공간이 존재한다.범위 비교 : 부모클래스 상속의 목적클래스의 재사용, 연관된 일련의 클래스들에 대한 공통적인 규약 정의상속이란 A라는 클래스의 개념을 그대로 B라는 클래스가 가져간다. 이어간다?장점재사용성 / 생산성이 증가 (코드도 적게 쓰고 같은 코드도 안 쓰고)유지보수성 증가 (수정할때 부모클래스만 수정하면 되니까 편하다~)자바에서 장점이라하면 다 생산성이랑 유지보수성같음 단점단일 상속 : 다..

-/Java 2026.05.28