Tools

개발자가 ChatGPT를 이용하는 다양한 방법들

ChatGPT가 나타나고 나서부터는 이제 구글링 대신 이용하는 비율이 점점 높아지고 있습니다. 물론 아직도 에러나 새로운 기술, 로직 구현에 대한 다양한 방법을 보기에는 블로그 글들이 더 유용할 때가 많습니다. 하지만 개발 과정에서 발생하는 문제에 대한 해답을 빠르게 찾기에는 정말 좋은 툴이 아닌가 싶습니다.
이 포스팅에서는 생산성을 더 높일 수 있는 개발 프롬프트 작성 방법에 대해 알아보고자 합니다.

혼자하는 코드리뷰

코드리뷰 문화는 기업에서 개발팀끼리 코드를 보면서 개선사항이나 가독성, 성능을 높이기 위해 진행됩니다. 실제 코드리뷰를 적용해보고 싶을 때 또는 로직을 개선하고 싶을 때 사용할 수 있습니다.

Review the following Java code for code smells and suggest improvements

리펙토링

코드 개선을 위해 리펙토링도 적용가능합니다. 당연히 ChatGPT의 정확성이 100%가 아님으로 수정 후에는 테스트를 진행하는 것이 바람직합니다.

Refactor the given Java code to improve performance

검색 엔진 최적화 (SEO, Search Engine Optimization)

SEO는 검색 엔진에서 웹사이트를 검색할 때 노출되는 순서를 높이기 위한 방법입니다. 최적화를 통해 검색 엔진에서 노출되는 순서를 높여 더 많은 방문자를 유치하고, 이를 통해 비즈니스 성과를 향상시킬 수 있습니다.

How to improve SEO for a landing page?

백엔드에서도 검색 엔진 최적화를 위해서는 URL에 키워드를 등록하고, 간결하고 의미있는 URL의 사용, 하이픈(-) 처리, URL 매개변수 사용 지양하는 것을 고려할 수 있습니다.

API 명세처리

Swagger와 같은 명세 처리를 위한 툴을 사용할 경우 적절하게 코드에 Swagger를 위한 코드를 추가해야 합니다. ChatGPT를 이용하면 설정을 쉽게 해줄 수 있습니다.

Prompt

Add Swagger code in below code

@DeleteMapping("/")
public ResponseEntity<ApiResponse> deleteUser(Principal principal) {
    String email = principal.getName();
    Users user = usersRepository.findByEmail(email);
    user.setStatus("Deleted");
    return responseBuilder(true, HttpStatus.OK);
  }
}

After ChatGPT

@DeleteMapping("/")
@ApiOperation(value = "Delete User", notes = "Deletes the user and updates the status to 'Deleted'")
@ApiResponses(value = {
        @ApiResponse(code = 200, message = "User deleted successfully"),
        @ApiResponse(code = 401, message = "Unauthorized"),
        @ApiResponse(code = 500, message = "Internal server error")
})
public ResponseEntity<ApiResponse> deleteUser(Principal principal) {
    String email = principal.getName();
    Users user = usersRepository.findByEmail(email);
    user.setStatus("Deleted");
    return responseBuilder(true, HttpStatus.OK);
}

메서드별 표준 주석 작성

메서드별 협업을 위해 표준 주석을 간단하게 달 경우가 있습니다. 팀 내 컨벤션에 따라 달라지겠지만, 간단하게 ChatGPT에게 원하는 주석을 요청할 수 있습니다. 위에서 사용한 코드를 사용해서 주석을 만들어보겠습니다.

Prompt

Provide brief standard comments for each method as a title.

Result

/**
 * Deletes the user and updates the status to 'Deleted'.
 * /



🚴🏽 IntelliJ 환경에서 Struts 프로젝트 구동하기

Structs 환경에서 프로젝트 개발 경험은 없는데, 회사에서 오래된 프로젝트를 IntelliJ IDEA 2023.1로 사용하기로 해서 개발환경 설정하는 과정을 기록해두었습니다.

먼저 시작에 앞서 tomcat-apache 설치가 되어 있어야 합니다. 저는 최신 파일인 apache-tomcat-9.0.74 버전으로 설치했고 CATALINA_HOME 환경변수를 추가해두었습니다. 그리고 당연히 Java 8버전 설치도 필요하고 환경변수 JAVA_HOME 설정도 필요합니다.
프로젝트 파일을 IntelliJ IDEA 2023.1로 열어줍니다. 무료 IntelliJ 구동 환경은 차이가 있습니다. 유료버전을 사용해주세요.

20230511_154724_1.png


Setting 설정
compiler를 Eclipse로 설정합니다.

20230511_154724_2.png


Project Settings 설정
여기서 설정해야할 부분은 Project, Modules, Libraries, Facets, Artifacts입니다.

Project 부분에서는 프로젝트와 일치하는 SDK를 설정합니다.

20230511_154724_3.png

Modules 부분에서는 ‘+’로 Web 형태의 모듈을 추가해줍니다. 저는 name 설정은 자유인데 프로젝트명과 동일하게 변경했습니다. 그리고 Deployment DescriptorsWebResource Directories 경로를 변경해줘야 합니다. IntelliJ는 자동으로 기존 프로젝트 구조와 다르게 기본 WEB-INF 상위 디렉토리로 web을 자동으로 생성해서 추가해줍니다. 하지만 기존 프로젝트에서 web.xml 위치가 달라서 그에 맞게 둘 다 경로를 변경했습니다.

20230511_154724_4.png

Artifacts 부분에서는 Web Application : Exploded로 추가하고 Module을 선택하면 아까 위에서 모듈이 있으므로 선택해줍니다.

20230511_154724_6.png

Facets 부분Web으로 추가하면 자동의 값이 세팅되는데 경로가 맞는지만 확인하면 됩니다.

20230511_154724_7.png


ojdbc8.jar 추가
기존에 lib 위치에 ojdbc8.jar 파일이 없어서 다운로드 받아서 추가해줬습니다. 자바 버전과 사용이 가능한 파일로 확인해서 추가해야 합니다.

그럼 기본적인 setting은 끝났고 tomcat 연결만 남았습니다.


Run/Debug Configurations 설정
Local Tomcat을 추가합니다. Configure에서 apache-tomcat 경로설정을 합니다. 그리고 나면 fix라는 경고창이 뜨는데 클릭하면 Before launch 부분에 아까 설정했던 Artifacts가 추가된 것을 볼 수 있습니다. 혹시 경고창이 안 뜬다면 Build 외에 Artifacts가 추가됐는지 확인해주세요.

20230511_154724_8.png

20230511_154724_9.png

Deployment 탭에서는 그리고 기본 경로 말고, 경로가 /가 될 수 있도록 반드시 세팅해주세요. 기본적으로 fix 경고창에 의해 Artifacts를 앞에 Server 탭에서 추가를 하면 기본 경로가 Artifacts가 반영된 경로로 설정되어 있을 가능성이 있습니다.
이렇게 하면 실행해서 localhost:8080으로 페이지가 실행됩니다.


참고사항
프로젝트를 가져오는 과정에서 디렉토리 root명을 변경한 경우, context.xml에서 docBase변경된 이름과 동일하게 변경해줘야 합니다.



IntelliJ JSP 디버깅하기

JSP 디버깅 환경 구축을 위해 플러그인 Debugger Support for JSP(JSR45)를 설치해줍니다. 이후 Java 디버깅 과정과 동일하게 체크포인트 후 실행하면 아래와 같이 디버깅이 가능합니다.

jsp_debugging.png



IntelliJ 템플릿과 단축키

Live template
IntelliJ에서 sout를 치면, System.out.println(); 코드가 자동으로 작성되게 할 수 있습니다. 이렇게 IntelliJ에서 반복된 코드나 템플릿을 활용할 때, Live Template를 사용하면 시간을 단축할 수 있습니다.
직접 템플릿을 작성하기 위해서는 Setting - Live Template에서 해당하는 언어에 + 버튼으로 템플릿을 추가합니다. 예를 들어 아래 예시처럼 Testcode Templatetc로 설정했다면, java 파일에서 tc를 입력했을 때, template를 자동으로 작성하는 팝업?을 볼 수 있습니다.

20230529_102411.png


단축키
우리의 피땀눈물을 줄여줄 수 있는 윈도우 OS 기준으로 코드를 작성할 때 주로 사용하는 유용한 단축키를 정리했습니다.

  • Ctrl+Shift+F ———————— 전체 찾기
  • Alt+Enter ——————————- Quick Fix
  • Ctrl+Space —————————— 자동완성
  • Ctrl+/ ———————————— 주석처리
  • Ctrl+Alt+O ————————— import문 정리
  • Ctrl+Alt+M ————————— 메서드 추출
  • Alt/Ctrl+Shift+/ ———– 코드 위치 변경
  • Alt+/ ——————————– 세로줄 다중커서

Live templates
IntelliJ IDEA keyboard shortcuts

results matching ""

    No results matching ""