반응형

작성일자 : 2020.09.07

환경 : Vue 2, vue-router 3.4.3

 

1. vue-rotuer 설치

 

> npm install vue-router
or
> yarn add vue-router

 

 

 

2. vue-router 설정

 

main.js

import Vue from 'vue'
import App from './App.vue'

Vue.config.productionTip = false

// 임시 Component
const Foo = { template: '<div>foo</div>' }
const Bar = { template: '<div>bar</div>' }

// Import Vue Router
import VueRouter from 'vue-router';

// 플러그인 형태의 VueRouter 등록
Vue.use(VueRouter);

// 라우터 객체 생성
const router = new VueRouter({
  mode: history,
  routes: [
    { path: '/foo'component: Foo },
    { path: '/bar'component: Bar }
  ]

})

new Vue({
  render: h => h(App),
  router, // 라우터 등록
}).$mount('#app')

 

 

 

App.vue

<template>
  <div id="app">

    <!-- 라우팅 링크 -->
    <router-link to="foo">foo </router-link>
    <router-link to="bar">bar </router-link
>
    <!-- 컴포넌트가 라우팅 되는 위치  -->
    <router-view></router-view
> 

  </div>
</template>

<script>
export default {
  name: 'App',
  components: {
  }
}
</script>

<style>
  ...
</style>

 

 

 

 

3. 확인

 

/foo 직접 접근 시 

 

/bar 직접 접근 시

 

foo 링크 클릭 시

 

bar 링크 클릭 시

반응형

'Javascript' 카테고리의 다른 글

javascript example  (0) 2021.02.11
[Vue] 컴포넌트간 데이터 통신  (0) 2020.09.11
[Vue] Component 사용  (0) 2020.09.06
[Vue] Vue Project 생성  (0) 2020.09.03
크롬에서 POST method 호출하기  (0) 2020.08.22
반응형

전체 로그 :

  [Vue warn]: You are using the runtime-only build of Vue where the template compiler is not available. Either pre-compile the templates into render functions, or use the compiler-included build.

 

조치 :

  프로젝트 바로 아래(package.json 위치)에 vue.config.js 생성 후 아래 옵션 추가

module.exports = {
    runtimeCompiler: true
}

 

반응형
반응형

작성일자 : 2020.09.06

환경 : Vue 2

 

 

1. Component 생성

 

NewComponent.vue

<template>
    New Component    
</template>

<script>
export default {
    
}
</script>

<style scoped>

</style>

 

 

 

2. Component 등록

 

사용할 위치에 신규 Component 선언 

App.vue

<template>
    ...
</template>

<script>
// import 및 등록
import NewComponent from './components/NewComponent.vue'
export default {
  components: {
    NewComponent
  }
}
</script>

<style>
	...
</style>

 

import 할 때 컴포넌트 명칭은 꼭 파일명과 같지 않아도 된다.

 

 

 

3. Component 사용

 

<template>
  <div id="app">
  ...
    <!-- 컴포넌트 사용 -->
    <NewComponent/>
  
  ...
  </div>
</template>

<script>
import NewComponent from './components/NewComponent.vue'
export default {
  components: {
    NewComponent
  }
}
</script>

<style>
	...
</style>

 

컴포넌트를 사용할 때는 케밥 표기법으로도 사용이 가능하며, 공식 가이드에선 케밥 표기법을 권장한다.

import newComponent     ->      <new-component>

반응형

'Javascript' 카테고리의 다른 글

javascript example  (0) 2021.02.11
[Vue] 컴포넌트간 데이터 통신  (0) 2020.09.11
[vue] vue-router 사용  (0) 2020.09.08
[Vue] Vue Project 생성  (0) 2020.09.03
크롬에서 POST method 호출하기  (0) 2020.08.22
반응형

작성일자 : 2020.09.03

환경 : vue cli 4.5.4, npm 6.12.0

 

0. npm, vue cli 설치

 

npm 버전 확인 : npm --version

vue cli 설치 : npm i -g @vue/cli

vue cli 버전 확인 : vue cli --version

 

 

1.  Vue CLI 에서 아래 명령어 입력

 

> vue create 'projectName'

 

현재 vue cli 4.5.4 에서는 vue 2 버전과 vue 3 버전을 선택하여 생성할 수 있다

 

 

 

vue 2 버전의 'vue2' 프로젝트 생성 완료

 

 

2. 확인

 

프로젝트 위치에서 yarn serve 입력 후, localhost:8080로 접근 시 index 페이지 확인 가능

 

 

프로젝트 위치에서 아래 명령어 입력 시 vue 버전 확인 가능

 

> npm list vue

 

반응형

'Javascript' 카테고리의 다른 글

javascript example  (0) 2021.02.11
[Vue] 컴포넌트간 데이터 통신  (0) 2020.09.11
[vue] vue-router 사용  (0) 2020.09.08
[Vue] Component 사용  (0) 2020.09.06
크롬에서 POST method 호출하기  (0) 2020.08.22
반응형

작성일자 : 2020.08.22

 

개발자 관리 도구 내 Console 에서 아래 코드 입력

 


client=new XMLHttpRequest();
client.open('POST', "POST_METHOD_URL", true);
client.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");



// 파라미터가 없을 경우
client.send();		

// 파라미터가 있을 경우
// var param = 'id=1'  
// client.send(param);	

 

반응형

'Javascript' 카테고리의 다른 글

javascript example  (0) 2021.02.11
[Vue] 컴포넌트간 데이터 통신  (0) 2020.09.11
[vue] vue-router 사용  (0) 2020.09.08
[Vue] Component 사용  (0) 2020.09.06
[Vue] Vue Project 생성  (0) 2020.09.03
반응형

작성일자 : 2020.07.23

환경 : SpringBoot 2.1.6

목표 : H2 를 이용하여 Database 설치 없이, In Memory DB 를 사용하도록 설정 

 

H2란?

자바 기반의 오픈소스 관계형 데이터 베이스 관리 시스템 (RDBMS)

H2DB는 서버(Server) 모드와 임베디드(Embedded) 모드의 인메모리 DB 기능 지원

 

 

1. 의존성 추가

 

In build.gradle

dependencies {
..
   implementation 'com.h2database:h2'
   implementation 'org.springframework.boot:spring-boot-starter-jdbc'
..
}

 

* 'spring-boot-starter-jdbc' or 'spring-boot-starter-data-jpa' 의존성을 추가하면 DataSource 구현체로 tomcat-jdbc을 제공
* H2 의존성을 추가하고 난 후, 설정 파일에 아무 설정이 되어 있지 않으면 스프링 부트는 자동적으로 H2 데이터베이스를 기본 데이터베이스로 사용

* spring-boot-starter-jdbc 의존성을 추가하면 DataSource, JdbcTemplate을 별다른 설정없이 주입하여 사용 가능(@Autowired 등)

 

 

 

2. Connection 확인

 

@Autowired
DataSource datasource

...

  Connection connection = dataSource.getConnection()
  System.out.println(connection.getMetaData().getURL());
  System.out.println(connection.getMetaData().getUserName());

 

 

* H2 DB는 기본으로 testdb DB 명과, SA 유저를 사용 (Password는 없음)

 

 

3. 기본 DB 데이터 추가 

 

@Autowired
DataSource dataSource;
...

  Connection connection = dataSource.getConnection();
  Statement statement = connection.createStatement();
  String sql1 = "CREATE TABLE TESTTABLE(ID INTEGER NOT NULL, VALUE VARCHAR(255), PRIMARY KEY (ID) )";
  statement.executeUpdate(sql1);

  String sql2 = "INSERT INTO TESTTABLE VALUES(1, 'value')";
  statement.execute(sql2);
   

 

 

 

4. H2-Console 확인

 

-  Console 설정 추가

 

In Application.properties

spring.h2.console.enabled=true
spring.h2.console.path=/h2-console

 

- 설정 Path 로 접근 ( 위 설정에선 /h2-console )

 

Connection 에서 확인한 URL, Name 입력 (기본값은 jdbc:h2:mem:testdb , SA )

 

 

- 데이터 확인 (1, 'value')

 

 

DB 설정 코드

DatabaseConfig.java

package com.example.demo;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;

@Component
public class DatabaseConfig implements ApplicationRunner {

    @Autowired
    DataSource dataSource;

    @Override
    public void run(ApplicationArguments args) throws SQLException {
        try(Connection connection = dataSource.getConnection()){
            System.out.println(connection.getMetaData().getURL());
            System.out.println(connection.getMetaData().getUserName());

            Statement statement = connection.createStatement();
            String sql = "CREATE TABLE TESTTABLE(ID INTEGER NOT NULL, VALUE VARCHAR(255), PRIMARY KEY (ID) )";
            statement.executeUpdate(sql);

            String sql2 = "INSERT INTO TESTTABLE VALUES(1, 'value')";
            statement.execute(sql2);
        } catch (Exception e){
            System.out.println(e);
        }
    }
}

 

 

 

* 주의

 

2020.07.23 기준으로 Spring Boot 프로젝트 생성 시 2.3.1 버전이 생성되는데, 이 버전에서는 H2 연동 시 기본 URL 값으로 testdb 가 아니라 Random 으로 생성됀다. ( 해당 글은 2.1.6 버전이 기준 )

 

이를 testdb 로 고정하기 위해서는 아래 config 추가

spring.datasource.generate-unique-name=false

 


reference

https://engkimbs.tistory.com/782

 

 

반응형

'Java' 카테고리의 다른 글

[MyBatis] List 형식 멤버 변수 조회  (0) 2021.02.12
[Spring] Web Cache 적용  (0) 2020.12.19
[Spring] App 구동 후 자동 작업 실행  (0) 2020.02.23
Stream Example  (0) 2020.01.05
리스트 순환 중 아이템 삭제  (0) 2019.12.08
반응형

작성일자 : 2020.06.16

 

IntelliJ 에서 Git 관련 작업이 무한 홀딩되는 상황 발생

 

 

상세 내용 : 

 

1. IntelliJ 에서 git repository 연결 Test 시 무한 홀딩

2. IntelliJ 에서 git 을 사용하여 소스 Clone 시 무한 홀딩

3. Spring 기반 자바 프로젝트를 IntelliJ 로 Open 시 무한 홀딩 (Vue 프로젝트는 열렸었음)

4. IntelliJ 설정에서 git 연결 확인 시 무한 홀딩 ( Versiont Control > Git > Test )

 

 

조치 내용 : 

 

IntelliJ 설정 ( File > Setting OR Ctrl+Alt+S ) > Version Control > Git > Path to Git excutable 수정

  

기존 - C:\Program Files\Git\git-cmd.exe 

수정 - C:\Program Files\Git\cmd\git.exe

 

Git 경로를 수정해준 뒤 Test 를 누르니, 정상적으로 버전 창 팝업 확인

 

 

reference :

https://intellij-support.jetbrains.com/hc/en-us/community/posts/360001211119-IntelliJ-hangs-on-Git-Identifying-Git-Version-

반응형
반응형

작성일자 : 2020.06.13

 

Stream 을 활용하여 List to Map 변환하는 과정에서 발생할 수 있는 키 중복 예외

 

예외 발생 예시

List<Integer> list = new ArrayList<Integer>(){{add(0);add(1);add(1);add(2);}};
// { 0, 1, 1, 2 }
        
        
Map<Integer, Integer> map = list.stream()
       .collect(Collectors.toMap(vo->vo, vo->vo));
// { {0,0}, {1,1}, {1,1}, {2,2} } 형태로 반환 -> key 1 중복 !!

 

수정

List<Integer> list = new ArrayList<Integer>(){{add(0);add(1);add(1);add(2);}};
// { 0, 1, 1, 2 }
        
        
Map<Integer, Integer> map = list.stream()
       .collect(Collectors.toMap(vo->vo, vo->vo, (oldValue, newValue) -> oldValue));
// { {0,0}, {1,1}, {2,2} } 형태로 반환 

// 기존 값을 유지할 경우
// .collect(Collectors.toMap(vo->vo, vo->vo, (oldValue, newValue) -> oldValue));
// 새로운 값을 유지할 경우
// .collect(Collectors.toMap(vo->vo, vo->vo, (oldValue, newValue) -> newValue));
반응형
반응형

[vue] 빌드 결과물 경로 설정

 

작성일자 : 2020.06.05

환경 : vue cli 3

 

 

- Vue 프로젝트는 빌드 시 Default 로 ROOT\dist 아래에 결과물 생성

 

 

- vue cli 3 이상 버전에서는 project 생성 시 webpack 설정 파일이 내부로 감춰져 있다.

@vue\cli-service\webpack.config.js

 

 

1. 설정을 위한 파일 추가

 

ROOT\vue.config.js

 

 

const path = require("path");
module.exports = {
  outputDir: path.resolve(__dirname"./path")
   
   //   assetsDir: "./"
   //   asset 파일 위치 설정 
}

 

 

2. 확인

 

위와 같이 설정 후 빌드 명령어 실행 시 아래와 같이 결과물 생성

: npm run build

반응형
반응형

환경 : centOS 7, docker 1.13.1 

 

docker 설치

> yum install docker -y

 

버전 확인

> docker -v

 

docker 실행

> service docker start

 

docker hub 에서 특정 이미지 검색

  ex) tomcat 관련 이미지 검색 시 

> docker search tomcat

 

docker hub 에서 특정 이미지 다운로드 ( 위 이미지 에서의 NAME 을 인자로 입력, 'docker.io' 생략 가능 )

> docker pull tomcat
   or
> docker pull docker.io/tomcat

 

현 시스템에 설치된 docker 이미지 검색

> docker images

 

 

컨테이너 실행

# 단순 실행
> docker run tomcat

# 쉘이 켜지는 상태로 실행 ( -i : interactive, -t : tty )
> docker run -it tomcat /bin/bash

# 포트 포워딩 ( Host 의 8081 포트를 Container의 8080 포트로 포워딩 )
> docker run -p 8081:8080 tomcat

# 별칭 설정
> docker run --name myTomcat tomcat

 

컨테이너 종료 하며 나가기

> exit
  or
Ctrl + d

 

컨테이너 종료 없이 나가기

Ctrl + p, q

 

컨테이너 현황 확인

# a 옵션 : 종료된 컨테이너 포함
> docker ps -a

 

컨테이너 접속 ( 위 이미지 에서의 NAMES or CONTAINER ID 를 인자로 입력 )

> docker attach myTomcat
   or
> docker attach 38d08a408d94

 

컨테이너 중단 ( 위 이미지 에서의 NAMES or CONTAINER ID 를 인자로 입력 )

> docker stop myTomcat
   or
> docker stop 38d08a408d94

 

컨테이너 재시작  ( 위 이미지 에서의 NAMES or CONTAINER ID 를 인자로 입력 )

> docker restart myTomcat
   or
> docker restart 38d08a408d94

 

 컨테이너 삭제 ( 위 이미지 에서의 NAMES or CONTAINER ID 를 인자로 입력 )

> docker rm myTomcat
   or
> docker rm 38d08a408d94

 

반응형

'도구, 툴' 카테고리의 다른 글

GIT example  (0) 2020.05.01
[Spring boot] Logback 설정  (0) 2019.07.14
[ELK] Kibana  (1) 2019.01.29
[ELK] Logstash  (0) 2019.01.28
[ELK] Elasticsearch  (0) 2019.01.24

+ Recent posts