최근 개인 프로젝트를 진행하면서 GithubCopilot이 괜찮다는 소식을 듣고 냉큼 결제를 해서 사용을 해보는 도중에
자꾸 답변을 영어로 하는바람에 "한글로 답변해줘"라는 문구를 달고 문의를 하다보니 귀찮더라 그래서 해결방법을 찾아보았다.

 

♦︎ IDE 공통 세팅

 IDE ▶︎ Setting ▶︎ github Copilot ▶︎ Chat (Natural Language) ▶︎ Korean 선택

 

! IntelliJ 의 기준으로 설명하지만 VS Code 설정부분은 똑같다.
! 그리고 VS Code에서는 ChatGpt 간 버전설정이 가능하지만 25년 1월 기준 IntelliJ에서는 선택이 불가능하다

 

끝.

 

 

Spring을 공부하다 보니 DI(Dependency Injection)이라는 부분이 정말 너무 이해가 되지 않았다.

그리고 더욱 슬픈 건 UML조차도 이해가 되지 않았다. 

 

그래서 직접 공부 후 JAVA 예제, Intellij의 Diagram기능을 활용해서 UML로도 분석한 기록을 남긴다.

 

◆ 예제 코드

public interface Service {
    void sendMessage(String message, String recipient);
}

 

> 서비스 인터페이스를 생성한다

 

public class FakeService implements Service {
    @Override
    public void sendMessage(String message, String recipient) {
        System.out.println("Fake send message " + recipient + " to " + message);
    }
}

 

public class RealService implements Service{
    @Override
    public void sendMessage(String message, String recipient) {
        System.out.println("Real send message " + recipient + " to " + message);
    }
}

 

> Service를 Impl (implements)하는 클래스 2개를 구현한다 (FakeService, RealService)

 

public class MessageSender {
    private final Service service;

    public MessageSender(Service service) {
        this.service = service;
    }

    public void send(String message, String recipient){
        service.sendMessage(message, recipient);
    }
}

 

> 그리고 이 서비스들을 주입받아 사용하는 클래스 MessageSender를 구현한다

> 여기서 Service 인터페이스를 활용(다형성) 주입받은 sendMessage를 사용할 수 있게 한다

 

public class main {
    public static void main(String[] args){
        MessageSender messageSender = new MessageSender(new RealService());
        messageSender.send("helloWorld Java", "hihihihi@email.com");

        MessageSender fakeSender = new MessageSender(new FakeService());
        fakeSender.send("helloWorld Java", "hihihihi@email.com");
    }
}

 

> Messeage Sender에 각 서비스들을 주입하니 주입한 구현정보들이 출력되는 것을 알 수 있었다.

> 실행 후 콘솔은 아래와 같다.

 

< console >

Real send message hihihihi@email.com to helloWorld Java
Fake send message hihihihi@email.com to helloWorld Java

 

 UML ( Feat. Intelli J Ultimate )

 

> main은 MessageSender를 통해 주입받은 객체를 활용하는 것을 알 수 있다. 

> MessageSender는 service라는 interface의 다형성을 주입받아 활용된다는 것을 알 수 있다.

> 이렇게 UML로 다시한번 그려서보니 더욱더 이해가 잘되는것같다.

 

[끝]

 

 

Intelli J를 쓰면서 제일 불편했던게 매개변수 정보가 뭔가 도움이 안되는 느낌이다

내가 좀 덜 익숙해서그런지.. 아무튼 각설하고 매개변수 정보가 자동 표기 수정방법을 공유한다


 

# Mac OS 기준

 

❖ IntelliJ 설정 ► 에디터 ► 일반 ► 코드 완성 ► 매개변수 정보 In 부분 " 매개변수 정보 팝업을 다음의 경우에 표시 ~~ " 체크박스 해제

     이후 재시작 할 경우 자동으로 매개변수 정보 팝업이 보이지않음

 

영문 버전의 설정 수정이 필요하신 분은 IntelliJ Help 페이지를 참조

 

 

해당 설정 이후 매개변수 정보가 보시고싶으신분들은 Method 란에서 "Cmd + P" 단축키 사용  하시면 됩니다.

 

 

 

 

 

+ Recent posts