코드 생성기

A collection of 12 posts

코드 생성기

조금 친절한 코드 생성기 6 - 테스트 코드 리팩토링

이번에는 테스트 코드부터 만들기로 마음 먹었습니다. 그랬더니, 테스트 코드에서도 리팩토링 할 부분이 있어서 수정했습니다. 일단 프리마커 Configuration을 여러 테스트에서 공유해야 하기 때문에, 인스턴스 변수로 선언했고, @Before를 이용해서 모든 테스트 마다 새로 만든 Configuration 객체를 사용하게 했습니다. 사실 그럴 필요까진 없는데 말이죠; public class FreemarkerCodeGenerationServiceTest

코드 생성기

조금 친절한 코드 생성기 5 - 리팩토링

이번에도;; 새 기능을 추가하려다보니까 기존의 코드에서 분리 시켜야 새 메서드에서 재사용 할 수 있는 부분들이 보이길래, 기존의 코드를 쪼개서 리팩토링 했습니다. 그러면서 일부 기능은 프리마커 코드 생성기에서 컨트롤러 설정 부분으로 이동시켰습니다. 아무래도, 최종적으로 생성해야 할 장소와, 파일에 대한 정보는 설정 객체가 받은 기본 정보를

코드 생성기

조금 친절한 코드 생성기 4 - 설계 변경 적용(인터페이스)

이번에는 ControllerSettings라는 마커 인터페이스를 도입하여 설계를 변경해보겠습니다. 이번에도 저는 TDD 프로가 아니라서;; 테스트 코드 부터 수정하진 못했습니다.. (흑흑.. 다음 부턴;; 테스트부터;???) public interface CodeGenerationService {     void generateController(ControllerSettings settings, Class domainClass) throws CodeGenerationException; } ControllerSettings 라는 인터페이스에는 아무것도 없습니다. 단순히 타입만 맞추가 위한

설계 변경

조금 친절한 코드 생성기 3 - 설계 변경 적용(Map)

먼저 인터페이스를 변경합니다. (TDD 프로라면 테스트 코드부터 바꾸셨겠지만, 저는 TDD 아마추어라;;) public interface CodeGenerationService {     void generateController(Map<String, String> settings, Class domainClass) throws CodeGenerationException; } Map을 사용하도록 바꿨습니다. 그리고 구현체에서 에러가 날테니 에러를 따라가서(인텔리J에서는 에러나는 코드로 알아서 자동으로 이동해

코드 생성기

조금 친절한 코드 생성기 2 - 설계 변경

흠.. 그렇다. 어제 코딩하고 나서부터 계속 뭔가가 찜찜했는데, 그 원인을 (다른 기능을 추가하려다 보니까) 이제서야 알 것 같다. 컨트롤러만 생성할 것이었다면, 이런 발견은 못하고 찜찜한채로 넘어갔곘지만, DAO를 생성하려다 보니 발견한 것 같다. 문제의 원인은 컨트롤러 코드 생성에 필요한 정보를 생성자에서 받았는다는 것이었다.   

코드 생성기

조금 친절한 코드 생성기 1 - 구상

어제는 컨트롤러 코드를 약간 불친절하게 생성해주는 코드 생성기를 만들었는데, 오늘은 DAO 코드를 조금 친절하게 생성해주는 기능을 추가해보겠습니다. CodeGeneration 인터페이스에 generateDao 메서드를 추가하고, 템플릿도 추가하면 될 것 같네요. 흠.. DAO 코드는 컨트롤러랑 다르게 CRUD 코드가 거~의 변할 일이 없고 추가될 일만 있죠. 게다가 필요로

코드 생성기

불친절한 코드 생성기 5(일단 끝) - 프리마커 기반 코드 생성기 만들기

서비스 인터페이스를 만듭니다. public interface CodeGenerationService {     void generateController(String module, Class domainClass) throws CodeGenerationException; } 일단은 컨트롤러만 생성할테니, 컨틀로러 생성 메서드만 만듭니다. 이때 만들어질 컨트롤러가 속할 module의 이름과 어떤 도메인 클래스에 대한 컨트롤러인지 알려줍니다. 문제가 생기면 RuntimeException을 던집니다. 자, 이제 이 인터페이스를

코드 생성기

불친절한 코드 생성기 3 - Freemarker 학습 테스트

참조: http://freemarker.org/docs/pgui_quickstart_all.html 프로젝트의 sandbox에 패키지를 하나 만들고, main 메서드로 학습 테스트를 작성할 클래스 하나와 프리마커 템플릿 하나를 만듭니다. 그리고 위 참조 링크에서 코드를 가져다가 살짝 바꿔서 테스트 해봅니다. 템플릿 파일은 매우 간단하게;; ${message} main 메서드에 들어갈 코드는

코드 생성기

불친절한 코드 생성기 2 - 구상2

아랫 글에 댓글이 달렸지만, 이 기능에 대해 성윤군과 논의를 하다가 IDE가 제공하는 코드 템플릿 기능에 대해 들었습니다. 아차.. 싶더군요. 그래서 생각을 해봤습니다. IDE 템플릿 기능을 이용할 경우 장점 – 매우 간편하게 코드 생성을 할 수 있습니다. 단축키를 입력하면 코드가 좌르륵.. 생겨나겠죠. 단점 – IDE

코드 생성기

불친절한 코드 생성기 1 - 구상

사실 좀 고민입니다. OSAF처럼 GenericController를 만들까. 그냥 저 코드를 찍어내주는 코드 생성기를 만들까. 어떤게 더 사용하기 편하고 확장하기 편할까? GenericControlle를 확장하기 좋게 잘 만들면 되겠지만, 클래스 만들 때 프레임워크 코드를 상속해야 한다는게 귀찮기도 하고, 그래서 어차피 그 부분을 찍어내는 코드 생성기가 필요해지는 상황입니다. 게다가

You've successfully subscribed to Whiteship!
Could not sign up! Invalid sign up link.