Tag Archives: SpringBoot

[소프트웨어] Kotlin+Java-SpringBoot 프로젝트 진행 후기

프로젝트라고 할 수준은 아니고 새로 만드는 마이크로 서비스에 꼬출린을 적용하다가 겪은 일들

사용기술 키워드

Java,Kotlin,SpringBoot,JPA,QueryDSL,RESTful API

문제상황

문법

TypeScript,Swift,Kotlin 문법이 상당히 비슷하다.

세개 언어의 합병은 불가능할까?

Reflection, Ananotation

JVM언어라 최종적으로 동일한 바이트코드가 나오는거니까 리플렉션도 동일한 형태로 나오겠지 생각했는데 아니었나보다.

리플렉션이 필요한 부분에서 오류가 나는 것 같다.

QueryDsl, jackson, Lombok(은좀다르지만)

 

생성자 선언

이건 좀 다른데.. 그냥 언어에 익숙하지 않아서 그런면도 있고

되게 편한것처럼 써있던데 막상 써보면

문법이 그리 편하지는 않다.

Lombok

Java와 혼용시 lombok 적용이 안된다.

컴파일타임 문제때문에…

같은 모듈에서 Java+Kotlin을 쓰는경우 오류가 난다.

해결방법은…(회피방법은?)

core<–web

core에 Java를 쓰고 web의 kotlin에서 가져다 쓰는건 가능하다.

근데 왜 쓰나?

그냥 한 번 써볼라고

그리고 아직 많이는 안 써봤찌만 쓰다보니 언어 자체가 조금 심플함이 좀 있다.

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