빌드자동화툴 gulp

javascript 2017. 7. 19. 18:10

REF


gulp는 js빌드자동화 툴로서, node.js를 기반으로 node의 스트림을 사용해서 동작한다.


 - gulpfile.js파일에 설정내용.

   gulp.src ([a.js, b.js...]);

   gulp.task(name, (선행잡), function)


$ gulp task-name  :시 특정 task 실행.



추가 API 한글 : REF

API Doc: REF





Posted by yongary
,

prmd

IT 2017. 7. 19. 17:18

JSON이나 yml파일들을 이용해 자동으로 document생성.  REF


$prmd combine --meta meta.yml schema | \

  

Posted by yongary
,

gradle

springBoot gradle 2017. 7. 19. 14:58

REF


compileOnly : 컴파일타임에만 사용됨-예)어노테이션라이브러리등   REF

    - maven의 provided와 동일.



  build.gradle  good_REF

        (gradlew build시)

      - jar, assemble  task을 통해 최종 jar파일을 생성할 수 있다.   REF  
           위치(build/libs)  및  jar 단독실행(java -jar xxxx.jar)   - ref

      



멀티 프로젝트: GOOD_REF   REF

 - 상위 프로젝트의 build.gradle에 모든 설정을 다 넣는다.


 - 상위 프로젝트의 settings.gradle파일에 sub프로젝트들을 지정한다.

   include "my:cms"

   project(':my:cms').name = 'my-cms'


- bootRepackage 는 보통 main이 없는 공통모듈용.





Posted by yongary
,

Thrift (apache RPC)

network개발 2017. 7. 14. 11:37

 IDL을 정의하고, 여러가지 언어로 skeleton코드변환이 지원된다.

  - Async지원 (TNonblockingServer)

  - multi-thread지원 (ThreadPoolServer)

  - Exception제공 

  


IDL 정의는 REF 참조.

   - namespace는 java의 경우, 그대로 package명으로 변환 됨.

  - service는 상속이 된다. (interface개념)

  - struct는 상속이 안됨.  (class개념) - 단  delegation은 됨(다른 struct포함 가능)

  - list, set, map이 지원 됨. 

  - constant, enum, typedef가 지원되면 typedef는 java의경우 replace형태로 변환된다.



간단한 통신예제 : REF

-  서버가 Async인 경우 client에서 TFramedTransport를 사용한다.  위 사이트에서 NobblockingClient 라는게,

    Nonblocking  서버에 접속하는  BlokcingClient이다. 



Thrift Protocol Stack 그림 - REF



Posted by yongary
,

SELECT /*%expand*/* FROM (


SELECT
*,

if(@code = service_code, @count := @count + 1, (@count := 0 || @code := service_code)) count

FROM

my_table

WHERE service_code="blabla"

ORDER BY service_code )

WHERE count <=9 ;


이러면 service_code별로 10건씩 소팅이 되서 나온다.   

oracle의 rownum하고 비슷하게 사용한 예제이지만,  service_code별로 번호를 새로시작하도록 한 코드이다. 

Posted by yongary
,

Doma ORM

BACK-END 2017. 7. 12. 16:32

일본에서 많이 사용하고 있는 DOMA라는 ORM이 있다.

문서나 코멘트 등 모든게 일본어라서 일본 외에서 쓰는 건 쉽지 않지만..

일단 쓰게 된다면 비교적 간편하고 가볍게 잘 만들어진 ORM이라는 걸 알 수 있다.


각종 링크들은 다음과 같다. 요즘은 한국어 자동번역이 잘되니 볼만하다.



SQL_문법 REF페이지 



DOMA 개요



Posted by yongary
,

javascript의 xmlHttpRequest는 보안의 문제상, 기본적으로 현재 접속한 서버만 접속해서 이런저런 데이타를 받아올 수 있다.


하지만 복잡한 요구사항이 증가하면서, 이를 회피할 방법이 필요한 경우가 다수 생기면서

이를 회피하는 방법이 몇가지 있는데


REF

대표적인 것이 

 - CORS이다. library도 있으므로 다운받아서 쓰면 된다.  


그외  

 -JSONP (보안이 없는 js다운로드 방식을 우회해서 xml다운로드)방식도 있다.




서버사이드가 spring일 경우에   spring-doc-cors  REF 참조.


==> @CrossOrigin 어노테이션 및   

      Config에서  allowedOrigin하는 방법이 대표적.

@Bean

    public WebMvcConfigurer corsConfigurer() {
        return new WebMvcConfigurerAdapter() {
            @Override
            public void addCorsMappings(CorsRegistry registry) {
                registry.addMapping("/greeting-javaconfig").allowedOrigins("http://localhost:9000");
            }
        };
    }


Posted by yongary
,

java8 시간관련

java8~ 2017. 7. 7. 10:44

REF

java8에 여러가지 시간관련 클래스들이 추가되었다. - 매우 유용하다. 주로 이것만 쓰면되고

거기에 더해 기존 Date (millisec표시)정도만 쓰면 되지 않을까 싶다.


LocalDate, LocalTime, LocalDateTime

    - truncateTo함수 제공


Period, Duration  날짜/time간 차이계산..   .plus, .minus, .between

    -Duration.between( LocalDateTime1, LocalDateTim2)도 됨.  
          ===> function prototype은  between(Temporal, Temporal)이라서 공부가 좀 필요.  



ZonedDateTime, OffsetDateTime, OffsetTIme 등이 존사용시 유용.

Posted by yongary
,

kotlin

IT 2017. 7. 5. 19:58

android를 대신하기 위해, 정확하게는 android안의 java를 대신하기 위해 만들어졌다는 kotlin..



주요 특징은 다음과 같다.


 - 변수선언시   var, val (immutable) - 많은 부분이 scala에서 왔다.

 - null safe : 심지어는 컴파일 에러가 난다.


 - javascript를 섞어쓸수 있다 : 이때 장점은 잘 모르겠는데 WEB개발에 유리하지 않을까 예상되네요.

   (당연히 node.js와도 섞어서 서버에도 사용가능함)  


 - kotlin + springBoot로 웹앱이 개발 가능하다.

   물론  Mockito를 결합해 unit테스트 가능.
      (단, 일반 class는 final개념이라 open class를 써야 함, when은 키워드라 `when`써야함)


- android폰 개발시에는 Glide등 편리한 Extension이 많다.

- Anko를 함께 사용하면 xml을 사용하지 않아도 된다.   (AnkoComponent의 subclass를 사용),  

   AnKo=Android+Kotlin의 의미로 android용  DSL (Domain-Specific Language)임.


- 기타문법  : is ,  ?    (instanceof, ?는 null대비)

      let은 다소 어려움.


  

 

Posted by yongary
,

URL Encoding은 일반적으로 java에서는  URLEncoder.encode()함수를 사용하지만

이러한 방식은 모든 특수기호도 encoding되기 때문에 중요한 


 URL?abc=1&def=2?token=1 

등에서 뒤의 ? 같은것은 리다이렉트 후 파라미터로 쓴다든지 하는 중요한, encode되면 안되는 것이기 때문에

encoding에서 제외해야 한다..


이런저런 percent-character(encoding후 %+로 변환)특수기호를 모두 제외하고 encoding 해주는 라이브러리가 있다.


try {
org.apache.commons.codec.net.URLCodec urlEncoder = new URLCodec();
query = urlEncoder.encode(query);
} catch (EncoderException e) {
}


Posted by yongary
,