Monthly Archives: September 2017

테스트환경 구성 Tutorial – Ubuntu16.04.2

꼭 한개씩 빼먹어서 기록.

chef셋팅은 여유있을때

Mysql

테스트계정 추가하면서 마스터권한을 줘버렸는데

권한이나 접근가능서버는 상황에 맞게 조절하면 된다

 

RabbitMQ

 

Redis

sentinel 관련 설정은 클러스터링테스트시..

 

 

 

SpringWebFlow – 왜 쓰나 어떨 때 쓸까

이걸왜쓰나

이 프레임워크의 존재는 오래전부터 알았지만 이걸 쓸 생각은 한번도 안해봤다.

그냥 별로 쓸모가 없어보여서… 이런짓을 왜 해야되나 싶었다.

그냥 controller에서 리다이렉트하고 뭐 하면 되는데

 

그런데 최근.. SSO서비스를 만들면서 플로우가 너무 꼬여서 고생하고 나니 생각이 바뀌었다.

소셜로그인 때문에 OAuth의 redirect까지 끼어들고 나니 코드가 뭐가뭔지 정신이 하나도 없었다.

그래서 사용하기로 결정.

사용법은 매우 쉽다. 웹 플로우의 필요성을 느꼈다면 설명은 필요없어보인다.

 

장단점

아쉬운점은 xml이고 spring boot에서 별로 지원이 없다는 점.

아직 쓸모가 있고 수요도 있는데

업그레이드는 되지 않는 것 같다.

SpringBoot에서 참견을 안하니까 알수없는 오류의 구렁텅이에 빠지는 일도 없고

심플하고 오래된 프레임워크라 버그가 없을 것만같다. (아직 안써봤다)

 

활용 시나리오

ex0) SignupFlow

로그인-> Y -> end.메인화면으로.view

-> N -> 회원가입폼.view -> email? -> EmailFlow

-> social? -> SocialFlow

ex1) EmailFlow

~~~

ex2) SocialFlow

~~~

 

문제점

적용하면서 시간낭비 하다가 다 빼버렸다.

쓴다면 플로우가(Scene이?) 3단계 이상인 경우에만 쓰는게 좋을 것 같다.

 

나갔다가 돌아오는 경우에 사용할 수 없다.

ex)이메일인증, OAuth 등의 경우

RequestParam, Cookie 또는 Session을 선택적으로 쓸 수 있는 환경이 필요해 보인다.

XML설정이 매우 불편하다.

시간날 때 GroovyDSL 형태로 만들어보는게 좋을까

중간진입 불가

flow는 항상 처음부터 시작되는걸로 여러개 만드는 방식도 좋지만

중간진입이 필요한 경우도 있지 않을까? 이건 좀 애매한 부분.

Form-Post방식의 화면전환

_elementId_{name} 형태로 써서 보내야 되는데

오지게 불편하다.

Java Coding Style Guide(Coding Convention,NamingRule)

대소문자와 밑줄 사용

camelCase

변수명, 메서드명에 사용

약자인 경우에는 대문자를 연속해서 쓰는 경우가 있는데 글자수에 따른 변동이 있음

2글자 VO, 그냥 두개 대문자로 쓰는게 일반적인 룰이지만.. 사람에 따라

3글자 Dto, Api, 3글자 이상부터는 뒤에는 소문자로 쓰는게 룰이라고 하지만… userDTO, smsAPI와 같이 3글자 다 대문자로 쓰는경우도 많다. 대문자로 쓰자그냥

4글자 이상. 몰라

 

자주쓰이는 약자들만 프로젝트 단위별로 정해놓고 쓰면 되겠다.

이것들은 그냥 대문자로 쓰자

DTO, VO, API

 

snake_case

json, xml에만 사용 소스코드에는 사용하지 않음

_number

타 언어에서 전역변수에 사용하는데 자바에서는 (잘)사용하지않음

C하던사람들이 자바하면 이런거 많이씀

__number

타 언어에서 접근금지 변수에 사용하는데 자바에서는 사용하지 않음

 

data class suffic

Entity : JPA(ORM)

Dto : API 호출

VO : Mybatis 접근

Model

Data

Wrapper : Dto 의 묶음. 대부분 고정된 형태 외부 프레임

 

json을 읽어들일때: ~JsonModel