Category Archives: Uncategorized

SpringBoot –

spring command line – 커맨드라인에서 실행되지 않는 자바언어에 커맨드라인툴은 별쓸모없다

되게쉽고 편하다고 그러는데.. 애초에 자바기술이 그렇게 편하고 쉽게 만들어지지 않았다.
그렇게 편하고 쉬운걸 찾으려면 루비를 하는게 낫다.

복잡한 스프링 생태계를 쑤셔담아놓은 스프링프레임워 풀세트프레임워크로 포함된 기술을 다 이해하고 사용해야한다.
이걸 커스터마이징 해서 쓸 수 있는정도면 이미 스프링 애플리케이션을 혼자 구성할 수 있는 실력일거다.
결코 쉽지는 않다.

초보자가 튜토리얼 보면서 아 이렇게 되는구나 하면서 따라하기는 쉽겠지만
뭔가를 변경하는것 예를들어, 타임리프말고 다른 뷰템플릿을 적용을 하기는 오히려 더 어려울거다.

프로젝트 초기화 방법

spring command line interface
spring initializer (http://start.spring.io)

설정

@Enable 실행할거 선택 EnableRabbit. 이라던가
@Grab 의존성 가져오기. gradle에서 하지
@EnableAutoConfiguration(exclude= 특정모듈 .exclude 가능.

네이밍을 느슨하게 인식
message.module.name
message.module-name
message-module-name
MESSAGE_MODULE_NAME
같음.

스캔순서1

스캔순서2 ???맞나?
application.yaml
application.yml
application.properties

profile
application.yaml
application-dev.yaml
application-prd.yaml
application-local.yaml

amqp, jms

redis

webstocet
* sockJS
* STOMP

SpringBootActuator

spring-boot-starter-actuator
HATEOS – org.springframework.hateoas:spring-hateoas

endpoints

/actuator
/autoconfig
/beans
/configprops
/docs – org.springframework.boot:spring-boot-actuator-docs
/dump –
/env
/flyway
/info
/liquibase
/logfile
/metrics
/mappings
/shutdown
/trace
/health

docker 연동. gradle, maven plugin

Cafe24 사용후기 서비스의 문제점

트래픽이나 기타 비용적인 측면은 그냥 넘어가자
1위사업자인 만큼.. 서비스가 안정적으로 제공된다면 참고 넘어갈 수 있는 부분이다.|
과연 그런지는 써 봐야 알겠지만…

그런데
가상서버를 사용하는데
별도의 웹 터미널이 제공되지도 않고
서버의 개별적인 설정이 아닌 OS재설치에 비용이 부과된다
이 부분은 문제가 잇다.

가상서버라고 하면 기본적으로 기대하는게
스냅샷, 서비스 초기화, Scalable아닐까
1년계약하고 쓰는 가상서버에… 초기화 설치비용까지 따로 부과된다니
이래서는 서버호스팅과 다를게 없고 좋을게 하나도 없다. 값이 좀 싼가? 성능도 낮잖아

프로그램으로 SMTP보낼 때 G메일 SMTP 설정하기

SMTP를 이용해서 메일을 보내야할 때 G메일을 연결하려고 하면 코드는 멀쩡히? 다 짜놨는데 오류가 나는 경우가 있다.

보안설정이 부족해서라고 하는데…
정석대로라면 보안규정에 맞게 코딩을 다시 해야겠지만

귀찮으니 그냥 풀어버리는 경우가 많다.

 

아래 주소로 접속해서 간단하게 순서대로 클릭클릭 해 주면 된다.

https://myaccount.google.com

gmail_smtp_1111

gmail_smtp_2222

 

 

Svn 라이브러리 & 웹서비스

아파치에서 제공하려면 mod-svn을 쓴다
근데 이것만 하면 인증도 안되고 좀 불편한게 있다

SVNkit
자바로 dav-svn을 제공하는 샘플코드
http://svn.svnkit.com/repos/svnkit/trunk/svnkit-dav/

Rayforge
svn관리 서비스
http://raysforge.net/viewProject.xhtml?fn=Raysforge

SCM Manager
http://www.scm-manager.org/screenshots/
https://bitbucket.org/sdorra/scm-manager/wiki/Home
nexus랑 비슷한 디자인인데.. 오픈소스라 그냥 갖다썼나
Mercurial, Subversion, Git등등 지원되는것같다

Spring3.x with Mybatis 3.x insert시에 generated key 받아오기

스프링4.x 이 나왔지만 아직까지 제대로 검토를 못해봐서… 3.x까지만.. 확인.

롬복사용한 도메인포조DomainPOJO with lombok

매퍼인터페이스 Mapper interface

매퍼xml Mapper xml

테스트코드 Junit TestCode

리턴값은 적용된 쿼리의 로우수

call by reference로 값을 확인할 수 있다.

기존 코드에서 몇 라인정도만 수정해주면 된다.

 

 

 

 

Spring에서 Redis사용하기

의존성부분. springdata만 넣으면 jedis는 알아서 들어가니 따로 넣어줄 필요는 없다.

스프링에 레디스 설정 넣기

스프링은 자동으로 스트링앞에 잡문자를 붙인다. 이종언어간 통신하는데 방해된다. 이걸 없애려면 위의 처리가 필요.

펍섭/키밸류스토어는 접속을따로하니별도설정

redis.clients.jedis.JedisPubSub abstract클래스가 있다. 이걸 구현.
JedisPubSubLocal extends JedisPubSub처럼했다

그리고 그냥 실행.

Maven메이븐 이용시 라이브러리 관리 주의해야할 점

http://stackoverflow.com/questions/7064269/the-method-getjspapplicationcontextservletcontext-is-undefined-for-the-type-js

이번 경우는 jsp-api때문이었다.

2.2와 2.5버전에서 변경된 메서드때문에…

이번경우는 joda time에서 jsp-api를 참조하는바람에 다 제외시켜놓은 jsp-api가 지맘대로 포함이되서 문제가 생긴 경우다. 톰캣7에서 문제가 발생한다.

그런데 더 문제는 이클립스에서는 문제가 안 생기다가 서버에서만 문제가 발견된다는거.. 이 경우에는 참 성가시다. 서버로그를 확인해야 되서

jstl, jsp 관련 jar파일은 맨날 문제를 일으키니 미리미리 관리해놓는게 좋다

jsp-api를 provided로 묶어놓으면 괜찮을까 했는데 ..쪼다놈이 2.0파일을 끌어다놓는다.

2.2를 dependency에 넣었는데 왜 2.0을 또 끌어들이나… 메이븐 관리체계에 좀 문제가 있긴하지만 뭐 그래도 잘 설정해놓으면 쓰기는 편하니…하나하나 찾아서 제외시켜야지 뭐 별수없는듯…

joda 1.1은 jsp-api를 참조하지않는다.

자바Java Generic제네릭 콜백Callback 사용시 T.class를 대체Alternative하는 방법들…

결론 : 메서드의 파라미터로 받는다.
T가 있는데 굳이 파라미터로 새로 받으려면 좀 갑갑하지만… 괜히 두번하는것같아서 하기싫지만 현재 이 방법이 가장 좋은것 같다.

토끼 메세지큐 사용중..

위 구조로 만들었는데…. 메세지 프로토콜을 json형태로 정했는데…

 

위에놈을 가지고 jsonString을 domain으로 만들려고 하니 문제가 생기는거다.

T t = (T)JSONObject.toBean(jsonObject, T.class);

를 쓰고싶은데 안되니까… 그래서 콜백에 메서드를 한개 추가해줬다. getThis() 위의 소스코드는 밑의 메서드가 포함되어있다.

T t = (T)JSONObject.toBean(jsonObject, callback.getThis());

그럼 제네릭될때 처리된다.

까먹을까봐…. 그리고 아무나 참고하시라고 써놓는다
제목에 영어와 한글을 섞는건 검색하기 쉬우라고

Intellij 유용한 단축키 목록

Ctrl Shift I : 클래스 안의 소스 ㅇ출력

Ctrl J : Insert Live Template

Ctrl W : 캐럿이 있는 위치르 ㄹ중심으로 블록 설정

Alt HomeKey : 현재 수정중인 파일의 위치 표시

Ctrl Shift R 리소스 파일 찾기

Ctrl Alt o : 임포트 정리

Ctrl Alt l : 코드포매팅