개발 이론에 대한 예시를 만들어주는 프롬프트

춘식이
2024.04.19

0

374

프롬프트 소개

개발이론에 대해서 이론적으로만 접근하기 어려울때 사용할 수 있는 프롬프트를 소개드리겠습니다.

프롬프트 실행환경

Claude
프롬프트
JAVA를 사용해서 SOLID 예시 알려줘
개발공부
Prompt Example
{개발언어}를 사용해서 {개발이론, 알고리즘} 예시 알려줘
Result
SOLID 원칙은 객체 지향 프로그래밍 및 소프트웨어 설계에서 유용한 가이드라인입니다. JAVA로 SOLID 원칙의 예시를 설명하겠습니다.

단일 책임 원칙 (Single Responsibility Principle)
java


Copy code
class BookPrinter {
void printTextQuote(Book book) {
// 책 텍스트 출력 로직
}
}

class BookParser {
String parseTextFromBook(Book book) {
// 책에서 텍스트 파싱 로직
}
}
각 클래스는 하나의 책임만 가지고 있어 변경 사항이 발생할 때 해당 모듈만 수정하면 됩니다.

개방-폐쇄 원칙 (Open/Closed Principle)
java


Copy code
interface Shape {
double calculateArea();
}

class Rectangle implements Shape {
private double width, height;

// 생성자, getter, setter 생략

@Override
public double calculateArea() {
return width * height;
}
}

class Circle implements Shape {
private double radius;

// 생성자, getter, setter 생략

@Override
public double calculateArea() {
return Math.PI * radius * radius;
}
}
새로운 도형을 추가하더라도 기존 코드를 수정할 필요가 없습니다. 새 클래스를 만들고 인터페이스를 구현하기만 하면 됩니다.

리스코프 치환 원칙 (Liskov Substitution Principle)
java


Copy code
class Vehicle {
void startEngine() {
// 엔진 시동 로직
}
}

class Car extends Vehicle {
@Override
void startEngine() {
// 자동차 엔진 시동 로직
}
}

class ElectricCar extends Car {
@Override
void startEngine() {
// 전기차의 경우 배터리 연결 로직
}
}
상위 클래스인 Vehicle의 인스턴스 대신 하위 클래스인 Car 또는 ElectricCar의 인스턴스를 사용해도 정상적으로 작동합니다.

인터페이스 분리 원칙 (Interface Segregation Principle)
java


Copy code
interface VehicleOperation {
void startEngine();
void stopEngine();
}

interface FlightOperation {
void takeOff();
void land();
}

class Car implements VehicleOperation {
// 자동차 관련 메서드 구현
}

class Airplane implements VehicleOperation, FlightOperation {
// 비행기 관련 메서드 구현
}
VehicleOperation과 FlightOperation 인터페이스를 분리하여 각 클라이언트가 필요한 인터페이스만 구현하도록 합니다.

의존성 역전 원칙 (Dependency Inversion Principle)
java


Copy code
interface BookRepository {
Book findBookByTitle(String title);
}

class BookService {
private BookRepository bookRepository;

public BookService(BookRepository bookRepository) {
this.bookRepository = bookRepository;
}

public Book getBookByTitle(String title) {
return bookRepository.findBookByTitle(title);
}
}
BookService는 구체적인 BookRepository 구현 클래스에 의존하지 않고 인터페이스에만 의존합니다. 이를 통해 의존 관계가 역전되어 더 유연한 설계가 가능해집니다.

이상으로 JAVA에서 SOLID 원칙의 예시를 살펴보았습니다. 이러한 원칙들을 적용하면 유지보수성, 확장성, 유연성이 높은 코드를 작성할 수 있습니다.

이런 프롬프트는 어떠세요?

쉽고 빠르게! ChatGPT로 만드는 개인 포트폴리오 웹페이지💼

ChatGPT가 GPT 프롬프트를 생성해주는 ChatGPT 프롬프트

RPG 게임의 세계관, 캐릭터, 도구, 퀘스트 아이디어를 제안해주는 프롬프트

복잡한 데이터의 손쉬운 시각화 프롬프트

profileImage
iozxcp
640

초심자를 위한 프로그래밍 게임을 디자인해 주는 프롬프트🎮

🐘내몸에 맞는 최적의 다이어트 프로그램 생성 요청 프롬프트

기술 블로그를 작성할 때 사용할 수 있는 프롬프트

😎J형인간 되기! GPT로 만드는 갓생루틴⏰

오픈프롬프트인가?

  • 오픈 커뮤니티

    오픈프롬프트에서는 누구나 자유롭게
    프롬프트를 만들고 함께 나눌 수 있습니다.
    나의 아이디어를 자랑하고,
    다른 사람의 창의적인 아이디어도 만나보세요.

  • 밀도있는 AI 아카이브

    최신 AI 이슈를 빠짐없이 전합니다.
    새로운 기술과 트렌드, 유용한 도구 및
    서비스에 대한 소식까지.
    오픈프롬프트에서 필요한 정보를 확인하세요!

  • 원클릭 공유

    내가 만든 프롬프트,
    나만 알고 있기 아까운 창의적인 노하우를
    마음껏 뽐내보세요.