본문 바로가기

메모

MySQL 데이터베이스 생성과 사용, 향상된 for문, properties와 yml

1. MySQL 에서 데이터베이스 생성

create database 데이터베이스명 character set utf8 default collate utf8_general_ci;

2. 데이터베이스 사용

use 데이터베이스명;

 

3. 향상된 for문

  • 일반 for문
	for(초기값; 조건식; 증감식) {
		반복할 코드;
	}
	for(int i=0; i<10; i++) {
		System.out.println(i);
	}
  • 향상된 for문 1
	for(타입 변수명 : 배열명) {
		반복할 코드;
	}
	for(StaffEntity e : list) {
		list_dto.add(new ModelMapper().map(e, StaffDTO.class));
	}
  • 향상된 for문 2 (forEach)
	배열명.forEach(변수명 -> 반복할 코드);
	list.forEach(e -> list_dto.add(new ModelMapper().map(e, StaffDTO.class)));

 

4. properties와 yml

 - 개요

SpringBoot 를 이용해서 어플리케이션을 만들다 보면 외부에서 특정 값들을 주입받아야 하는 경우가 있다. 

예를 들면 AWS의 특정 컴포넌트를 사용하기 위한 secret key가 될 수도 있고 외부 API를 사용하기 위한 API key가 될 수도 있다. 이러한 값들을 소스 코드에 하드 코딩하는 경우 보안에 취약하다.

따라서 이렇게 중요한 값들을 application.properties 또는 application.yml 과 같은 외부 설정값을 관리하는 파일에 적어두고 사용한다.

 

 - 차이

<application.properties>
server.port=9001

server.servlet.context-path=/

server.servlet.encoding.charset=UTF-8
server.servlet.encoding.enabled=true
server.servlet.encoding.force=true

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/item?serverTimezone=Asia/Seoul
spring.datasource.username=tj705
spring.datasource.password=tj705

spring.jpa.hibernate.ddl-auto=update
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
spring.jpa.show-sql=true
<application.yml>
server:
  port: 9002
  servlet:
    context-path: /
    encoding:
      charset: UTF-8
      enabled: true
      force: true
    
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/staff?serverTimezone=Asia/Seoul
    username: tj705
    password: tj705
    
  jpa:
    hibernate:
      ddl-auto: update
      naming:
        physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
        
    show-sql: true