클래싱 포인트SFTPCurl / SFTPCurlTemplate 클래스를 정의해 libcurl 옵션 설정과 에러 처리 캡슐화CRTP(Curiously Recurring Template Pattern)을 사용해 템플릿으로 추상화, 파생 클래스를 정적으로 확장Fluent Interface (메서드 체이닝) 패턴을 사용하여 user(...).password(...).url(...) 와 같은 인터페이스 설계단일 책임 원칙(SRP)와 인터페이스 분리 원칙(ISP)을 적용하여 업로드, 다운로드 기능 클래스 분리예외 클래스(SFTPCurl::exception) 로 CURL 오류를 객체 지향적으로 처리프록시 패턴을 이용한 실행(perform())RAII를 활용한 스마트 포인터(unique_ptr)와 ScopeExit를 ..