크리에이티브 커먼즈 라이선스
Creative Commons License

어느 책을 보다가 .properties 파일에 구분자로 = 대신 : 를 기재한 것을 보고

잘못 사용했음이 분명하다!!

라고 생각하고 열심히 찾아봤다. 그런데 java.util.Properties#load메서드를 찾아보니 =  : 가 사용가능하다고 나와있다.

The key contains all of the characters in the line starting with the first non-white space character and up to, but not including, the first unescaped '=', ':', or white space character other than a line terminator. All of these key termination characters may be included in the key by escaping them with a preceding backslash character; for example,

\:\=

키에 대한 값으로 :, = 또는 공백문자가 아닌 첫번째 문자부터 시작하여 줄의 끝까지 값으로 포함된다.

그러나, 관례라고 하긴 그렇지만 넓게 사용되는 것은

.properties
server.port=9090
app.info.name=honeymon
app.info.ver=v1.0
.yml
server.port: 9090
app.info:
name: honeymon
ver: v1.0

가 아닐까 생각한다. 그냥 문득…​


저작자 표시
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

16.04 에 systemctl 명령어가 없다면 systemd를 설치한다.

$ sudo apt install systemd
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
libcryptsetup4 libsystemd-journal0
Suggested packages:
systemd-ui
The following NEW packages will be installed:
libcryptsetup4 libsystemd-journal0 systemd
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 1,556 kB of archives.
After this operation, 9,452 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://kr.archive.ubuntu.com/ubuntu/ trusty-updates/main libsystemd-journal0 amd64 204-5ubuntu20.24 [51.0 kB]
Get:2 http://kr.archive.ubuntu.com/ubuntu/ trusty/main libcryptsetup4 amd64 2:1.6.1-1ubuntu1 [77.0 kB]
Get:3 http://kr.archive.ubuntu.com/ubuntu/ trusty-updates/main systemd amd64 204-5ubuntu20.24 [1,427 kB]
Fetched 1,556 kB in 2s (762 kB/s)
Selecting previously unselected package libsystemd-journal0:amd64.
(Reading database ... 96241 files and directories currently installed.)
Preparing to unpack .../libsystemd-journal0_204-5ubuntu20.24_amd64.deb ...
Unpacking libsystemd-journal0:amd64 (204-5ubuntu20.24) ...
Selecting previously unselected package libcryptsetup4.
Preparing to unpack .../libcryptsetup4_2%3a1.6.1-1ubuntu1_amd64.deb ...
Unpacking libcryptsetup4 (2:1.6.1-1ubuntu1) ...
Selecting previously unselected package systemd.
Preparing to unpack .../systemd_204-5ubuntu20.24_amd64.deb ...
Unpacking systemd (204-5ubuntu20.24) ...
Processing triggers for ureadahead (0.100.0-16) ...
ureadahead will be reprofiled on next reboot
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
Setting up libsystemd-journal0:amd64 (204-5ubuntu20.24) ...
Setting up libcryptsetup4 (2:1.6.1-1ubuntu1) ...
Setting up systemd (204-5ubuntu20.24) ...
Initializing machine ID from D-Bus machine ID.
systemd start/running, process 5375
Processing triggers for libc-bin (2.19-0ubuntu6.13) ...
Processing triggers for ureadahead (0.100.0-16) ...


저작자 표시
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

Spring은 사용하려는 프로파일을 정의하여 상황에 따라 컴포넌트에 대한 등록 및 제외를 결정할 수 있다.

@Profile({"dev", "!kr"})

이라고 프로파일을 정의하면 조건식은 dev or !kr 이 되어 dev 혹은 kr 에 대해서 선언되어 있지 않으면 반드시 실행되는 상황이 발생한다.

이런 상황을 피할 수 있는 방법으로 Spring 4.0에서 추가된 @@Conditional 을 사용하는 방법이 있다. 이와 관련한 질문은 How to conditionally declare Bean when multiple profiles are not active? 를 살펴보면 고민하고 있는 유사한 내용과 답변을 볼 수 있다.

간단한 해결책은 Condition을 구현하는 것이다. 다음과 같이 간단하게 dev and !kr을 만족하는 조건식을 작성해보자.

import org.springframework.context.annotation.Condition;
import org.springframework.context.annotation.ConditionContext;
import org.springframework.core.type.AnnotatedTypeMetadata;
public class PrdAndIgnoreKrProfileCondition implements Condition {
@Override
public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
return context.getEnvironment().acceptsProfiles("prd") && !context.getEnvironment().acceptsProfiles("kr");
}
}

위의 클래스를 사용하여

@Profile({"dev", "!kr"})
//을 대신하여
@Conditional(PrdAndIgnoreKrProfileCondition.class)
// 으로 정의하면 dev and !kr 조건식이 적용가능해진다.


저작자 표시
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
규모가 작은 회사에 있다보면
자주 경영진이 택하는 방향과 내가 보는 방향의 차이를 느끼게 된다.

Sony | D5833 | 2017:06:13 12:33:26

서로 재미있는 일을 해보자며 모였지만,
1년이 지날 즈음해서는
재미는 없고 차갑게 그들과 나의 차이를 살피기 시작했다.

눈에 띌만한 성과를 어느정도 얻은 후 그들은 더욱 많은 것을 바란다. 그런데 그걸 얻기 위해 밑에서는 많은 것을 포기하고 해야한다. 저녁시간을, 주말을, 체력으로 일을 해낸다.
자신들이 해야할 일이었으니까.

그리고 그것을 당연하다는 듯이 이야기하고, 그들이 원하는 일정에 맞춰주길 바란다.

그런 사이에 점점 괴리감은 점점 커져가고 거리를 두는 준비를 하고 있다.

의욕없는 비관론자 코스프레로 서비스 일정에 대해 보수적인 입장을 취하고 있다.

뭐... 내 말이 먹히지 않을 걸 알지만 그냥 발악해보는 중.

저작자 표시
신고

'logbook' 카테고리의 다른 글

[daily] 괴리감  (0) 2017.07.11
[book]바딘Vaadin & 회계천재...  (0) 2017.06.12
5번째 봄이 끝났다.  (0) 2017.04.23
가볍게 가자  (0) 2016.08.18
커뮤니케이션 비용을 줄이려면...  (0) 2016.08.10
오류를 느끼는 감각  (0) 2016.08.08
크리에이티브 커먼즈 라이선스
Creative Commons License

Sony | D5833 | 2017:06:12 16:56:57

회사에서 개발해야 할 백오피스 시스템을 바딘 프레임워크로 만들어볼까 하던 중에 책이 나와서 지름.
회계는... 요즘 돈관리가 잘 안되어서 체계적으고 해보려고...
저작자 표시
신고

'logbook' 카테고리의 다른 글

[daily] 괴리감  (0) 2017.07.11
[book]바딘Vaadin & 회계천재...  (0) 2017.06.12
5번째 봄이 끝났다.  (0) 2017.04.23
가볍게 가자  (0) 2016.08.18
커뮤니케이션 비용을 줄이려면...  (0) 2016.08.10
오류를 느끼는 감각  (0) 2016.08.08

+ Recent posts