Oct 29, 2018 - clean package -P

maven package clean 하게 처리하면서 pom.xml 에 기술한 resource 를 사용하는 법입니다.

clean package -P

-P는 정의된 profies중 하나를 처리함을 의미합니다.

<!-- profile definition -->
   <profiles>
       <profile>
           <id>local</id>
           <activation>
               <activeByDefault>true</activeByDefault>
           </activation>
           <properties>
               <environment></environment>
           </properties>
       </profile>
       <profile>
           <id>dev</id>
           <properties>
               <profile-id>dev</profile-id>
               <environment>-dev</environment>
               <maven.test.skip>true</maven.test.skip>
           </properties>
       </profile>
       <profile>
           <id>server</id>
           <properties>
               <profile-id>server</profile-id>
               <environment>-server</environment>
               <maven.test.skip>true</maven.test.skip>
           </properties>
       </profile>
   </profiles>

위와같이 server, dev, local 등을 설정할 수 있으며 그냥 처리할 경우, activeByDefault에 의해 local 이 default 처리됩니다. resources-batch 와 같이 resource뒤에 접미사를 ‘-dev’ , ‘-batch’등으로 두어 프로파일을 선택할 수 있도록 합니다.

인텔리J에서는 자동으로 우측에 maven 의 build 타입을 찾을 수 있어, 쉽게 변경가능합니다.

Oct 27, 2018 - 스프링 프레임워크를 기반으로 한 개발플랫폼 01

스프링 부트 기능정의

단독실행가능한 스프링 애플리케이션 생성 내장 컨테이너로 톰캣, 제티, 혹은 언더토우 중에서 선택가능 스타터(starter)를 통해 간결한 의존성 구성지원 스프링에 대한 자동구성(Auto-Configuration) 제공 더이상 XML 구성 필요없음 (pom.xml 정도만 작업 후 순수한 자바만 가지고 적용가능. 제품 출시(release) 후 운영에 필요한 다양한 기능(상태점검, 모니터링 등) 제공 (healthcheck?)

스프링부트 구성요소

빌드도구(그레이들 vs 메이븐) : 요근대는 그레이들을 많이씀. (아직 maven 사용) 스프링 프레임워크(4.x vs 5.x) 스프링 부트(v1.5 vs v2.0) 스프링 부트 스타터(spring-boot-starter)

프랑스 철학자 ‘장 풀 샤르트르’가 인생은 BCD 라고 했다고 합니다. 태어나고(Bitch)- 죽는(Death) 사이에 수많은 선택을 한다고,

스트링 부트 또한 BCD입니다.

Build - Code - Deploy
  • Build
  • Code.
    • spring-boot-starter
    • Auto-configuration
    • programming in spring enviroment
  • Deploy

Build(빌드)

Java va Kotilin vs Groovy

스프링 부트는 자바, 코틀린, 그루비를 지원합니다.

빌드도구로는 그레이들과 메이븐이 있는데, 의존성과 빌드동작들을 실행하는 스크립트가 존재합니다. 그래들은 build.gradle 에 선언하고 maven의 경우 pom.xml 에 선언하게 됩니다.

Executable Jar or war

실행학능한(Executable) JAR (or WAR) : App 과 tocmat 이 공존 고전적인 WAR : 톰캣과 APP이 분리되어있는 형태

스프링부트는 2.0부터!!

1.5 는 스프링 4 지원 2.0은 스프링 5 지원이며 주가되는 것은 스프링부트 2.0을 주가 됩니다.

스프링부트는 애너테이션 기반으로 작동(컴포넌트를 탐색하여 동작함.)

@SpringBoodtApplication(with SpringApplication) @ComponentScan @EnableAutoConfiguration @configuration @ConditonalOn~~ @SpringBoodtConfigration(= @Configuration) @EnableConfigurationProperties @ConfigurationProperties

Auto-Configuration

  • spring-starter 를 github에서 검색가능합니다.
  • 스프링부트가 기술흐름에 따라 제공하는 관례(Convention)적인 구성
  • 봐야할 모듈 : spring-boot-autoconfigure
  • 동작선언
    • @EnableAtuoConfigurazion(with @SpringBootApplication)
    • @Configuration
  • tkdyd dosjxpdltus
    • @Configuration
    • @ConditonalOn

외부구성(External Configuration)

  1. 실행인자
  2. spring_application_json
    • 서버안에 json 으로 선언한 구성파일의 위치 지정
  3. 환경변수(운영체제)
  4. 기타등등
  5. application.yml or application.properties
  6. application-{defaultprofiles}.yml

1이 우선순위가 가장높습니다.

Programming in Spring Environment

  • @ComponentScan 을 통해 ApplicationContext 적재
    • @Repository
    • @Component
    • @Service
    • @Controller & @RestController
    • @Configuratioin
      • @Bean
      • @ConfiguraitonProperties
    • DI, IoC, @Autowired
    • @Value Vs @ConfigurationProperties
    • AOP 프로그래밍

완료 – 업무 구현(비즈니스 로직)

Oct 24, 2018 - Alias 설정하기

alias 란 ?

일종의 별명으로, 서버에서 작업하거나 모니터링을 할 때,
너무 길거나 복잡해서 매번 입력하기 귀찮거나 기억하기 어려운 명령들이 있을 수 있으며,
이러한 명령을 자주 사용하지 않는다면 큰 무리가 없겠으나,
개개인의 업무 스타일에 따라 자주 사용하게 된다면 그때마다 매번 명령들을 어렵게 입력해야 하는 고통을 감내해야 합니다.
alias 기능을 이용하면 어떤 명령이든지 명령의 길이가 얼마이든지 상관없이 내가 사용하기 편하게 바꾸어서 사용할 수 있습니다.

다만, 그렇게 되면 alias 명령어를 외우게 되어 실제 명령어를 까먹을 수 있으니, alias 설정했다는 것을 잊지 말아야합니다.

사용자별 alias 가 있고, 모든 사용자에 대한 alias 가 존재합니다.

/home/계정명/.bashrc
/etc/bashrc

보통은 root 에서 작업을 한다고 할 경우에,

/home/root/.bashrc

에 alias 를 등록하여 처리하게 됩니다. 작업이 완료되면,

source ~/.bashrc

를 사용하여 바로 적용하면됩니다.