전체 글
-
Java Study [2022-08-20] - 스프링부트 이론(소켓 통신, HTTP 통신, Rest API 일부)백엔드 2022. 8. 21. 21:33
📌 Java Study 🔸 2022-08-20 토요일 [스프링 부트 프로젝트] 1. 통신이란 Socket 통신 접속을 계속 유지하여, 데이터를 전달 서버의 자원에 따라서 연결될 수 있는 클라이언트의 숫자가 한정됨 실시간 정보 교환에 사용하며 HTTP보다 속도가 빠름 HTTP 통신 클라이언트의 요청이 있을 때만 데이터 응답을 전달 불필요한 자원의 점유를 없애 다른 접속을 원활하게 하여 많은 데이터를 처리 데이터 요청 후 응답이 오면 연결이 끊어짐 원리 : 사용자 혹은 또 다른 서버에서 소켓, Http 방식으로 서버에 요청하면, 해당 서버는 데이터를 잘 가공하여 이에 대한 응답을 전송해야 됨 이 때, HTML, CSS, JSON, XML 등의 포맷을 통신 시 요청할 때 어떠한 데이터를 달라고 반드시 명시하여..
-
Java Study [2022-08-19] - 객체지향프로그래밍(인터페이스 & strategy pattern 예제)백엔드 2022. 8. 20. 22:41
📌 Java Study 🔸 2022-08-19 금요일 [인터페이스를 활용한 다형성 구현] 1. 인터페이스의 역할 클라이언트 프로그램에 어떤 메서드를 제공하는지 알려주는 명세(Specification) 또는 약속 한 객체가 어떤 인터페이스의 타입이라 함은 그 인터페이스의 메서드를 구현했다는 의미 클라이언트 프로그램은 실제 구현 내용을 몰라도 인터페이스의 정의만 알면 그 객체를 사용할 수 있음 인터페이스를 구현해 놓은 다양한 객체를 사용함 - 다형성 JDBC를 구현한 오라클, MSSQL 라이브러리 등 쉽게 말해, ABC 라는 인터페이스에 구현되어 있는 a(), b(), c() 메서드가 있다는 명세를 확인할 수 있음 추상 클래스와의 차이점은 공통되는 모듈이 있을 수도, 없을 수도 있고, 클래스이기에 하나만 상..
-
Java Study [2022-08-18] - 객체지향프로그래밍(인터페이스)백엔드 2022. 8. 19. 01:55
📌 Java Study 🔸 2022-08-18 목요일 [인터페이스] 1. 인터페이스 - 추상 메서드 - 상수 - 디폴트 메서드 - 정적 메서드 - private 메서드 인터페이스 : 어떠한 객체에 대한 명제, 어떠한 메서드들을 제공할 것인지 설명한 가이드 역할 인터페이스 선언과 구현 public interface Calc { // 인터페이스에서 선언한 변수는 doubl PI = 3.14; // 컴파일 과정에서 상수로 변환 int ERROR = -999999; int add(int num1, int num2); // 인터페이스에서 선언한 메서드는 int substract(int num1, int num2); // 컴파일 과정에서 추상 메서드로 변환 } PI는 상수의 의미로 이탤릭체로 변경 컴파일 과정에서 ..
-
Java Study [2022-08-17] - 객체지향프로그래밍(템플릿 메서드 예제2)백엔드 2022. 8. 18. 19:53
📌 Java Study 🔸 2022-08-17 수요일 [추상 클래스 응용] 1. 코딩해보기 예제 : 자동차 주행 과정 구현하기 Car 추상 클래스를 상속받는 Sonata, Avante, Grandeur, Genesis 클래스가 있다. 각 차는 주행하기 위해 다음 메서드의 순서로 움직임 run() { start(); drive(); stop(); turnoff(); } run() 메서드를 템플릿 메서드로 구현하고, CarTest 클래스를 참고하여 프로그램을 완성 Car 클래스 public abstract class Car { public abstract void start(); public abstract void drive(); public abstract void stop(); public abstra..
-
Java Study [2022-08-16] - 객체지향프로그래밍(템플릿 메서드 예제)백엔드 2022. 8. 17. 23:30
📌 Java Study 🔸 2022-08-16 화요일 [추상 클래스 응용] 1. 템플릿 메서드 활용하기 예제 : Player 가 있고, 이 Player가 게임을 합니다. 게임에서 Player가 가지는 레벨에 따라 run(), jump(), turn() 세가지 기능을 할 수 있습니다. 각 레벨에 따라 기능 가능 여부가 다음과 같습니다. 초보자 레벨 : 천천히 달립니다. {run()} 가능 중급자 레벨 : 빠르게 달리고 {run()} 가능, 점프{jump()} 가능 고급자 레벨 : 천천히 달립니다. {run()} 가능, 점프{jump()} 가능, 한 바퀴 돌 수 있습니다. {turn()} 가능 플레이어는 go() 명령어를 받으면 이 세가지 기능을 수행합니다. 이 중 할 수 없는 것은 할 수 없다는 메시지를 ..
-
Java Study [2022-08-15] - 객체지향프로그래밍(추상 클래스 응용 : 템플릿 메서드)백엔드 2022. 8. 16. 22:11
📌 Java Study 🔸 2022-08-15 월요일 [추상 클래스 응용] 1. 템플릿 메서드 템플릿 : 틀이나 견본을 의미 텔플릿 메서드 : 추상 메서드나 구현된 메서드를 활용하여 전체의 흐름(시나리오)를 정의해 놓은 메서드 final로 선언하여 재정의 할 수 없게 함 템플릿 메서드 패턴 : 디자인 패턴의 일종 프레임 워크에서 많이 사용되는 설계 패턴 추상 클래스로 선언된 상위 클래스에서 추상 메서드를 이용하여 전체 구현의 흐름을 정의하고 구체적인 각 메서드 구현은 하위 클래스에 위임함 하위 클래스가 다른 구현을 했다고 해서 템플릿 메서드에 정의된 시나리오대로 수행됨 상위 클래스에서 메서드를 생성 시 public abstract void washCar() 라고 정의할 경우, 모든 하위 클래스에서 이 메..
-
Java Study [2022-08-14] - 객체지향프로그래밍(추상 클래스)백엔드 2022. 8. 15. 22:00
📌 Java Study 🔸 2022-08-14 일요일 [추상 클래스] 1. 추상 클래스 추상 클래스 : 추상 메서드를 포함한 클래스 추상 메서드 : 구현 코드가 없이 선언부만 있는 메서드 abstract 예약어 사용 : 추상 클래스는 new(인스턴스화) 할 수 없음 메서드에 body가 없음 public abstract void display(); public abstract void typing(); 일반적으로 클래스를 생성하였다면, 오류 발생 => abstract키워드를 붙여 public abstract class 클래스명 으로 지어야 함 위 코드는 구현코드가 없음, 언제 구현이 되는지? => 하위 클래스에서 구현 추상 클래스는 단독 사용으로 만들어지는 것이 아니라 상위 클래스용으로 주로 사용 하나라도..
-
[Eclipse] "Cannot instantiate the type OOO"트러블 슈팅(Trouble Shooting) 2022. 8. 15. 21:41
DeskTop 클래스 public class DeskTop extends Computer { public void display() { System.out.println("DestTop display"); } public void typing() { System.out.println("DeskTop typing"); } } Computer 클래스 public abstract class Computer { public abstract void display(); public abstract void typing(); public void turnOn() { System.out.println("전원을 켭니다."); } public void turnOff() { System.out.println("전원을 끕니..