Monthly Archives: January 2018

Kotlin 한 6개월 사용후기

문법적으로 기존 언어에 비해 많이 이질적이지 않고 받아들일만 했다.

구글에서 안드로이드 공식언어로 지정, 인텔리J의 젯브레인에서 개발, 스프링 진영에서도 지원된다고 하고…

별 문제가 없을 줄 알았는데… 이게 웬걸

  • JPA Entity 설계가 안되는건 아닌데 힘들었다.
    data class로 설계한다고도 하던데…. 기본값을 일일이 지정해줘야하는것도 불편하고… 이건 빠르게 포기하고 domain 모듈은 자바로 변경해서 작업해가지고 뭐가 더 안되는지도 모르겠다.
  • QueryDSL 안된다. 안됐었다. 지금은 모르겠다.
  • Validation. 힘들었지만 하긴했다. 다 되긴되더라
    @Field.NotNull
    val name:String
  • Annotation 넣을때.. 안되는건 아닌데 뭔가 괴상하다.
    이런형태에서 @Annotations(arrayOf(Annotation, Annotation))
    이것도 지원되기 시작 @Annotations([Annotation, Annotation])
  • Gradle kotlin 버전과 intellij plugin 버전이 안맞으면 아예 먹통이 된다.

이래저래 몇번 쓰다보니 익숙해지긴 했다.

위의 과정에서 제대로 된 해결책을 찾기가 힘들다는게 문제..

그리고 자꾸 변한다는것도 문제랄까… 좋아지니까 좋은건가

PowerShell 명령어로 윈도우 환경변수Env 관리

Registry에서 환경변수의 경로

# 사용자 환경
HKEY_CURRENT_USER\Environment
# 시스템 환경
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

‘Path’에 gradle 경로 append

$oldPath=(Get-ItemProperty -Path 'Registry::HKEY_CURRENT_USER\Environment' -Name PATH).Path
$newPath = $oldPath+ ';%USER_PROFILE%\scoop\apps\gradle\current\bin'
Set-ItemProperty -Path 'Registry::HKEY_CURRENT_USER\Environment' -Name PATH –Value $newPath

Gradle HOME 추가

Set-ItemProperty -Path 'Registry::HKEY_CURRENT_USER\Environment' -Name GRADLE_HOME –Value '%USER_PROFILE%\scoop\apps\gradle\current'

 

뽀너스

자주 쓰는 명령

$env:UserName
$env:UserDomain
$env:ComputerName

관심 블로그

개발 관련 블로그는 아니고 그냥 필력 괜찮은 잡글블로그

http://boris-satsol.tistory.com

개발관련

https://oddpoet.net/

블로그는 아니지만

https://wikidocs.net/book/1

Error : Kotlin 플러그인 버전이 안 맞을 때 생기는 문제

Message

class annotated with @Configuration could implicitly subclassed and must not be final.

kotlin은 기본이 final이라서 @Cofiguration, @Bean 등의 스프링 설정파일을 사용할 때 오류가 발생한다.

plugin: kotliln-spring 을 사용하면 원래 괜찮아야 되는데….

그래들 라이브러리 버전을 몇 개 올려놨더니 문제가 발생한다.

 

여기저기 찾아봤는데 해결책이 잘 안보인다..annotation processing을 풀어놓으라는 말도 있고(안됨)

예전에 했던 프로젝트는 그냥잘 썼는데 갑자기?

변경한 부분이 spring을 5로 올리고 kotlin을 1.12.0에서 1.12.20으로 올렸는데

intellij plugin 버전은 1.12.1인것같아서 플러그인 업데이틀 해봤는데(안댐)

저번에도 어노테이션 쓸 때 arrayOf로 써야되는거랑 이런부분 바뀔 때 마다 오류나더니만…

꼬출린 진짜

해결하는데 시간이 한참 걸릴 것 같다.

실행된다.

플러그인과 의존성의 버전을 맞춰주자…..꼭

buildscript {
	repositories {
		jcenter()
		mavenCentral()
		maven {
			url "https://plugins.gradle.org/m2/"
		}
	}
	dependencies {
		classpath "org.springframework.boot:spring-boot-gradle-plugin:$spring_boot_version"
		classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
		classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlin_version"
		classpath "org.jetbrains.kotlin:kotlin-noarg:$kotlin_version"
	}
}


allprojects {
	apply plugin: 'java'
	apply plugin: 'groovy'
	apply plugin: 'kotlin'
	apply plugin: 'kotlin-spring'
	apply plugin: 'kotlin-jpa'


	dependencies{
                //Deprecated 라고함.
		//compile "org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlin_version"
                //jdk8로 바꿔준다.
		compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
		compile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
        }
}

코틀린은 갈길이 멀다. 안정화되려면 2년은 있어야 하지 않을까

 

Error : Mysql Google RDS에서 사용시 function 생성오류

Message : you *might* want to use the less safe log_bin_trust_function_creators variable

메시지를 카피를 제대로 안해놔서…. 어쨌든 권한부족 관련 메세지가 뜬다.

MySQL, Triggers and Amazon RDS

 

웹콘솔에서 DB에 들어가서 – 수정 – 데이터베이스 플래그 추가

log_bin_trust_function_creators = on(1)

저장 후 재시작