[JAVA] MVC 패턴과 JDBC 를 활용한 데이터베이스 연결
·
JAVA
목차MVC 패턴 소개MVC 패턴에 맞춘 클래스 구조JDBC 연결 설정전체 코드 흐름 예시정리 및 마무리1. MVC 패턴 소개MVC(Model-View-Controller)는 애플리케이션의 비즈니스 로직, 사용자 인터페이스(UI), 사용자 입력을 분리하여 효율적으로 관리할 수 있도록 도와주는 설계 패턴입니다. Java에서 MVC 패턴은 애플리케이션의 구조를 명확하게 분리해주며, 유지보수와 확장성을 향상시키는 데 큰 도움을 줍니다.Model: 애플리케이션의 데이터 구조를 나타내며, 비즈니스 로직을 담당합니다.View: 사용자에게 보여지는 화면, 즉 UI를 담당합니다.Controller: 사용자의 요청을 받아서 적절한 모델을 호출하고, 그 결과를 뷰에 전달합니다.2. MVC 패턴에 맞춘 클래스 구조View: ..
[JAVA] Socket으로 간단히 구현하는 클라이언트-서버 통신
·
JAVA
오늘은 클라이언트와 서버에 대해 알아보겠습니다.먼저 클라이언트와 서버의 관계에 대해 알아보아야 하는데요, 우리가 통신을 하기 위해서는 이 둘의 관계를 잘 알아야 합니다. 먼저 사진으로 간단하게 설명해보겠습니다.클라이언트와 서버의 관계클라이언트는 다양한 장치에서 존재할 수 있습니다. 예를 들어, 노트북, 핸드폰, 컴퓨터 등에서 클라이언트를 실행할 수 있습니다. 서버와 클라이언트는 네트워크 연결을 통해 소통합니다. 이때, 소켓을 통해 클라이언트와 서버가 연결되며 데이터를 주고받습니다.1. 클라이언트- 클라이언트는 네트워크에서 서버와 통신하는 역할을 하는 프로그램이나 장치입니다.- 클라이언트는 서버에 연결하여 데이터를 요청하거나 서버로부터 데이터를 받아와 처리합니다.- 클라이언트와 서버는 서로 다른 시스템(컴..
[JAVA] 업캐스팅과 다운캐스팅
·
JAVA
오늘은 업캐스팅과 다운캐스팅에 대해 알아보겠습니다. 업캐스팅과 다운캐스팅은 우리가 사용하는 JAVA 인 객체지향 프로그래밍에서 상속 관계를 활용할 때 유용하게 사용됩니다. 1. 업캐스팅- 업캐스팅은 자식 클래스 객체를 부모 클래스 객체 타입의 참조 변수로 참조하는 것 입니다.- 이를 통해 부모 클래스에 정의된 메소드와 속성만 사용할 수 있으며, 자식 클래스의 고유 메소드와 속성은 숨겨집니다.- 하지만 메모리는 여전히 자식 클래스의 형태로 존재합니다.- Parent : 부모 클래스- Child : Parent를 상속받는 자식 클래스여기서 Main 클래스에서 Parent parent = new Child(); 로 업캐스팅을 받습니다.양식은 위의 코드 처럼 "클래스타입 참조변수명 = new 실제 객체의 타입(..
2025.01.16 (목) 24일차 / File
·
JAVA
코딩을 할 때 파일을 사용하려고 불러와야 될 상황이 있습니다. 자바는 파일을 읽고 쓰는 다양한 방법을 제공하며 이를 통해 파일을 조작할 수 있습니다. 1. File : 파일을 다루기 위한 기본 클래스- File 클래스는 파일과 디렉토리의 경로를 다루는 데 사용됩니다.- 파일의 존재 여부를 확인, 파일 생성, 삭제, 이동하는 작업을 할 수 있습니다.1-1. 주요 메소드- exists() : 파일이 존재하는지 확인- createNewFile() : 새로운 파일 생성- delete() : 파일 삭제- isDirectory() : 경로가 디렉토리인지 확인2. 기반 스트림과 보조 스트림- 스트림 : 스트림은 데이터의 흐름을 의미하며, 프로그램과 데이터를 주고받는 통로 역할을 합니다. 데이터를 읽거나 쓸 때 사용되..
2025.01.15(수) 23일차 / exception (예외)
·
JAVA
자바에서 exception 은 프로그램 실행 중에 발생할 수 있는 예외 상황을 처리하기 위한 메커니즘입니다. 예외는 일반적으로 오류와 유사한 개념이지만, 오류와는 구별됩니다. 1. 예외의 특징- Exception 은 프로그램 실행 중에 정상적인 흐름을 방해하는 사건입니다.- 예외는 코드 실행 중 발생할 수 있는 예외적인 상황을 처리하기 위한 방법을 제공합니다.- 예외 처리를 통해 프로그램의 비정상적인 종료를 방지하고, 더 나은 사용자 경험을 제공합니다. 2. 오류 (Error) 의 특징- 오류는 프로그램 수행 시 치명적 상황이 발생하여 종료 상황이 발생한 것, 프로그램 에러라고도 함- 컴파일 에러 : 프로그램 실행을 막는 소스 상의 문법 에러, 소스 구문을 수정하여 해결- 런타임 에러 : 입력 값이 틀렸..
2025.01.14(화) 22일차 / instanceof 와 interface
·
JAVA
1. instanceof Java에서 instanceof 연산자는 객체가 특정 클래스의 인스턴스인지, 또는 특정 클래스를 상속받거나 구현했는지 여부를 확인할 때 사용됩니다. 이 연산자는 boolean 값을 반환하며, 객체의 타입을 비교할 때 유용합니다.1-1 . 특징- 객체 타입 확인 : 객체가 지정된 클래스의 인스턴스인지 확인합니다.- 상속 관계 확인 : 객체가 지정된 클래스의 하위 클래스인지 확인할 수 있습니다.- 인터페이스 구현 확인 : 객체가 특정 인터페이스를 구현했는지 확인할 수 있습니다.-> 지금까지 학원에서 배웠던 개념들은 instanceof 를 통해 확인 가능합니다. 1-2. 예시예시를 보시면 Animal 이라는 클래스가 생성됐고, 그 아래에 Dog라는 클래스를 생성하는데 이때 Animal..
2025.01.13 (월) 21일차 / 다형성
·
JAVA
다형성은 하나의 참조변수로 여러 다른 객체를 다를 수 있다는 뜻인데, 객체 지향 프로그래밍에서 매우 중요한 개념입니다.다형성은 말 그대로 하나의 형태(변수, 메소드 등)로 여러가지 형태를 처리할 수 있다는 의미입니다.예를 들어, 동물이라는 클래스가 있을때 동물은 소리를 낸다는 공통적인 속성을 가지고 있습니다. 그런데 이 동물이 개일때는 멍멍 하고, 고양이는 야옹 하고, 새는 짹짹 소리를 냅니다.이때, '동물' 이라는 클래스를 참조하는 변수가 개, 고양이, 새 같은 다양한 객체를 다룰 수 있게 해주는 것이 바로 다형성입니다. 1. 오버라이딩 (Overriding)- 오버라이딩은 자식 클래스에서 부모 클래스의 메소드를 재정의하는 방식입니다.부모 클래스의 메소드가 자식 클래스에서 어떻게 실행될지 결정되며, 실..
2025.01.11 (토) / 참조 변수
·
JAVA
클래스에서 다른 클래스의 필드값들이나 메소드를 가져오고 싶을 때 우리는 이런 식으로 코드를 작성합니다.123456789101112package practiceforfun; public class Run {     public static void main(String[] args) {        // TODO Auto-generated method stub        MemberMenu mm = new MemberMenu();        mm.mainMenu();    } } Colored by Color Scriptercs MemberMenu 라는 클래스에서 mm 참조변수를 생성하여, MemberMenu() 로 생성된 객체를 new 가 힙 영역 메모리로 넣어주고, 그 주소값을 반환합니다. 그리고 ..
2025.01.10 (금) / 상속
·
JAVA
자바에는 상속이라는 개념이 있습니다.부모님이 자식에게 상속을 주듯, 상위 클래스에서 하위 클래스에게 상속을 주는 개념이 존재합니다.예를 들면 상품이라는 부모 클래스에 전자제품, 음식 등 과 같은 자식 클래스를 상속해준다 라고 생각하면 됩니다.그렇다면 상속을 하는 이유는 무엇일까요?상속을 하는 이유는 상위 클래스에 있는 필드나 메소드들을 쉽게 불러와서 수정할 수 있기 때문입니다. 이를 통해 코드를 재사용성을 높여 유지보수를 하는데 큰 장점을 가집니다. 지금 공부할 때는 코드가 짧아 굳이 상속을 하면서까지 코드를 작성할 필요는 없겠지만, 나중에 현업에서는 코드의 수가 엄청 많기 때문에 해당 개념을 공부해야겠습니다.1. 상속의 특징1.1 코드 재사용- 중복 코드를 줄이고, 상위 클래스에서 정의된 필드와 메소드..
25.01.07 (화) / 객체지향과 클래스
·
JAVA
1. 객체지향이란?- 객체를 지향하는 언어로, 객체 중심으로 돌아간다.- 현실세계의 사물을 객체로 추상화 하고 이 객체간의 상호작용으로 프로그램이 돌아간다.- 객체는 현실세계에서 독립적(목적이 있고 가치가 있는 것)으로 존재하는 모든 것을 의미한다.-> 현실세계는 객체들간의 상호작용으로 돌아간다. 1.2 장점- 재사용성 : 클래스와 상속을 통해 코드를 재사용할 수 있다.- 유지보수성 : 캡슐화와 모듈화로 인해 코드 변경이 용이하다.- 확장성 : 다형성을 활용하여 새로운 기능을 쉽게 추가할 수 있다.- 현실 세계의 모델링 : 객체와 클래스가 현실 세계를 자연스럽게 모델링할 수 있다.2. 클래스- 객체지향에서 쓸 객체를 생성하기 위한 설계도라고 생각하면 된다.- 클래스는 필드(인스턴스 변수)와 메소드(동작)..