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

춘식이
2024.04.19

0

499

프롬프트 소개

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

프롬프트 실행환경

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가 GPT 프롬프트를 생성해주는 ChatGPT 프롬프트

profileImage
사용자
1357

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

profileImage
김심바
1338

🤖GPT 자동 코드 리뷰

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

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

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

profileImage
iozxcp
898

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

profileImage
김심바
701

어떤책을 읽어야 할지 모르겠을 때, 찾아보는 프롬프트

오픈프롬프트인가?

  • 오픈 커뮤니티

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

  • 밀도있는 AI 아카이브

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

  • 원클릭 공유

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