[Kotlin] 코틀린의 기초 1

함수

1
2
3
fun main(args: Array<String>) {
println("Hello world!")
}
  • 함수 선언은 fun 키워드를 사용한다.
  • 파라미터는 이름 → 타입 순서로 쓴다.
  • 코틀린에서 함수는 최상위 수준이다. 자바와 달리 클래스 안에 함수를 넣을 필요가 없다.

[Kotlin] 코틀린이란

코틀린

  • 자바 플랫폼에서 돌아가는 프로그래밍 언어
  • 간결하고 실용적이며, 자바 코드와의 상호운용성을 중시
  • 자바가 사용되는 곳이라면 코틀린으로 활용 가능
  • 기존의 자바 라이브러리나 프레임워크와 함께 잘 작동하며 성능도 자바와 같은 수준

[Spring] InfluxDB 커스텀으로 다른 DB 사용하기

Multiple DB on Spring

스프링에서 멀티로 데이터베이스를 사용하기 위해서는 따로 Datasource를 설정해야 한다.
InfluxDB도 마찬가지라 멀티 데이터소스를 설정하여 사용하도록 한다.

Based influxDB configuration

InfluxDB를 스프링에서 사용하기 위해서 앞에서 소개했던 spring-data-influxdb(스프링부트에서 InfluxDB 사용하기)의 클래스를 먼저 알아야한다.

[Spring] 스프링부트에서 InfluxDB 사용하기

InfluxDB

NoSQL중에 오픈소스 시계열 데이터베이스로 Go언어로 개발이 됐다. 시계열 데이터의 저장 및 검색 기능에 최적화 돼있다.

스프링에서는?

InfluxDB 자체에서 따로 API를 제공하지만 일일이 다 찾아 사용하기 어려우므로 현재 제대로 제공하고 있는 오픈 라이브러리를 적용하면 사용하기 쉽다.

[Spring] 웹소켓에서 가상의 유저(Principal) 생성하기(no Security)

웹소켓에서의 유저

스프링 시큐리티(Spring Security)를 사용하는 웹서버의 경우 사용자 정보를 사용하여 인증을 진행하게 되는데 이때 클라이언트의 경우에도 자신의 고유 정보를 통해 사용자 정보와 매칭할 수 있다.
만약 시큐리티(Security)를 사용하지 않을 경우 messagingTemplate.convertAndSendToUser함수를 사용 시 sessionId를 사용해야 하는 불편함이 있는데 이럴 때 가상의 사용자를 생성하면 편하게 사용할 수 있 게 된다.

[Java] 익명 클래스에서 람다 함수로 변경

익명 클래스

1
2
3
4
5
6
7
8
9
10
public void anomymousClass() {
final String hello = FUNLEE.callHello(new Hello() -> {
@Override
public String hello(String name) {
return "Hello, " + name;
}
});

System.out.println(hello);
}

[Spring] WebSocket 특정 유저로 메세지 보내기

서버

웹소켓을 사용하여 서버에서 특정 유저로 메세지를 전달하는 방법은 두 가지인데 하나는 브로커를 통한 메세지 전달, 다른 하나는 직접 전달이다.

브로커를 통한 전달은 @SendToUser을 사용하여 쉽게 전달할 수 있으나 직접 전달 시에는 SimpMessagingTemplate으로 전달할 수 있다. 방법은 아래와 같다.

[Spring Security] 컨트롤러에서 사용자 정보 얻어오기

메서드 인자 (Principal)

1
2
3
4
@GetMapping("/index")
public void index(Pricipal principal) {
System.out.println("username = " + principal.getName());
}

인텔리J 스프링부트 프로젝트 멀티 실행

  1. Menu -> Run -> Edit Configurations 클릭
  2. Add New Configuration(+, Command + N) -> Spring Boot 클릭
  3. 멀티 실행하고자 하는 프로젝트의 정보 복사

Hexo 블로그 만들기 (with icarus)

기본 준비물

node.js

node 사이트가 아닌 nvm으로 설치.

1
2
3
$ curl https://raw.githubusercontent.com/creationix/nvm/v0.30.2/install.sh | bash
$ source .bash_profile
$ nvm install stable
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×