오류 원인

JDBC dependency가 추가된 상태에서 dataasource를 설정해주지 않았을 때 발생

Spring의 다양한 기본 환경 설정을 완료한 프로젝트 zip 파일을 제공하는

https://start.spring.io/

사이트에서 프로젝트를 생성하여 실행한 결과

Caused by: org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'dataSource' defined in class path resource 
[org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class]: 
Failed to instantiate [com.zaxxer.hikari.HikariDataSource]: 
Factory method 'dataSource' threw exception with message: 
Failed to determine a suitable driver class

이러한 오류를 마주하였다.

 

해결 방법

1. DB를 구축한다

2. application.properties에 DB 설정 정보를 아래와 같이 추가해준다.

# DB
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/csv_data?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&requireSSL=false&serverTimezone=Asia/Seoul&allowMultiQueries=true
spring.datasource.username=[데이터베이스 유저 이름]
spring.datasource.password=[데이터베이스 암호]

3. BUILD SUCCESSFUL 메시지와 함께 미소를 짓는다.

 

참고

위 datasource 설정의 spring.datasource.driver-class-name 부분을 보면

com.mysql.cj.jdbc.Driver로 설정되어있다.

기존에는 com.mysql.jdbc.Driver를 썼으나 mysql-connector-java 6 이후로 deprecated 됐다

com.mysql.cj.jdbc.Driver를 쓰게 되면 다음과 같은 오류 메시지를 받는다.

The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.

com.mysql.cj.jdbc.Driver를 쓰도록 한다.

반응형

개요

리액트로 개발하던 도중 for와 foreach가 왜 굳이 따로 존재할까 의문이 들었다.

뭔가 foreach가 간결하게 value를 탐색하는것 같아 더 간지가 나지만

for문에서도 of를 사용하면 value로 탐색이 가능하고

foreach문에서도 두번째 인자를 통해 idx를 가져올 수 있다.

이렇게 보면 둘이 같은 기능을 제공하는데 무엇이 다를까?

 

차이점

동기(sync), 비동기(async)의 차이

for는 동기방식이다

따라서, for문 안에 오류가 나면 에러 위치 이후의 이벤트들은 동작하지 않고 멈춰버린다.

 

foreach는 비동기 방식이다. - ES6 문법으로, 콜백함수를 뿌린다.

따라서, foreach문 안에 에러가 발생하더라도 멈추지 않고 동작한다.

가변적인 배열이나 리스트 크기를 구할 필요가 없어 복잡한 반복문에 적합하다.

 

foreach 사용시 주의점

우리는 동기보다 비동기를 사용할 때 상대적으로 더 많은 오류를 만난다.

따라서 비동기 기반인 foreach 사용시에 만날 수 있는 오류들을 미리 알아두어야한다.

1. 원하는 순서와는 다르게 프로그램이 동작할 수 있다.

foreach문 이후에 반복문에서 수정한 변수를 사용할 때,

 

2. break, return로 반복문을 탈출할 수 없다.

비동기 방식이기 때문에 break나 return를 만나더라도 멈추지 않고 동작한다.

해당 번째의 루프만 진행되지 않고 다른 루프는 여전히 진행된다. 

예시)

 

 

 

반응형

개요

 

웹 UI를 제작하던 도중

오류를 console에서 만나게 되었다.

 

원인

 

styled-component 사용 시 발생하는 문제로

<input/> 등과 같이 자식을 가질 수 없는 태그에 자식을 넣었을 때 발생하는 에러이다.

<input type="button" onClick={(e) => handleChange(e)}>{val}</input>

이렇게 input태그 사이에 UI에 나타나길 원하는 값(val)을 넣었더니 에러가 났다. 

 

해결책

 

<input type="button" value={val} onClick={(e) => handleChange(e)}></input>

<input></input> 안에 값을 제거해준다.

값을 넣고싶다면 input태그 내 value를 이용한다.

 

 

반응형

 

필요조건

✔ Node 10 LTS 이상

 

node.js 설치

1.  터미널창 열기



2.  curl 설치

$ sudo apt-get install -y curl



3.  node.js 설치

$ sudo apt update
$ sudo apt install node.js



4. 설치 확인

설치된 node.js 버전 확인

$ nodejs -v

 

Node Package Manager 설치


1. npm 설치
    

$ sudo apt install npm



2. 설치 확인

설치된 npm 버전 확인

$ npm -v

 

Enact 설치


1. npm을 통한 설치

$ npm install -g @enact/cli



2. 설치 확인

설치된 enact 버전 확인

$ enact -v

 

VS Code 설치


1. Microsoft GPG key 다운로드 후 /etc/apt/trusted.gpg.d/. 경로에 복사

$ sudo sh -c 'curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > /etc/apt/trusted.gpg.d/microsoft.gpg'


2. 레퍼지토리 추가

$ sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'



3. 패키지 리스트 초기화

$ sudo apt update



4. VS code 설치

$ sudo apt install code

 

Git 설치


1. 패키지 리스트 초기화

$ sudo apt update



2. Git 설치

$ sudo apt install git



3. 설치 확인

설치된 git 버전 확인

$ git --version

 

SSH 공개키 생성


1. 공개키 설치 확인

$ cd ~/.ssh
$ ls

 

 

✔ ‘id_dsa’ 혹은 ‘id_rsa’ 확인

✔ id_dsa.pub



2. SSH 공개키 생성


    1. 생성 커맨드 입력
        

$ ssh-keygen

 

    2. 키 저장경로 입력
    



    3. 비밀번호 두 번 입력
    



    4. 키 생성 확인
    



    5. Git 서버 관리자에게 공개 키 전송

$ cat ~/.ssh/id_rsa.pub


 

 

Enact 프로젝트 빌드

 

1. clone된 프로젝트 폴더로 이동

$ cd [folder]



2. Npm 설치

$ npm install -P


3. 프로젝트 빌드

$ enact pack -p -i -s -l=tv



4. 프로젝트 폴더 내 dist 폴더 생성 확인

반응형

+ Recent posts