본문 바로가기
JAVA

221026 Properties

Properties
=>Map과 유사한데 key의 자료형과 Value의 자료형이 String만 가능합니다
=>환경 설정을 할 때 사용을 합니다.
예전에는 환경 설정을 할 때 대부분 텍스트파일에 key와 value형태로 작성을 해두고 이를 읽어서 사용하는 경우가 많았음
그시절에 사용하던 클래스. 최근에는 XML이나 YAML을 많이 사용하기 떄문에 사용빈도는 많이 줄어들었으나 아직도 이 형태로 설정하는 경우가 있음
=>Spring의 지역화나 Spring Boot Project의 기본 환경 설정(최근에는 YAML로도 가능)이 대표적.

=>메서드
String getProperty(String key)
String SetProperty(String key, String value)
void store(OutputStream out, String comment):파일이나 외부 서버에 저장
void storeToXML(OutputStream out, String comment):파일이나 외부 서버(XML)에 저장
+)json이나 yaml이 없는 이유는 최근에 사용하기 시작해서. 

package java_1026_Properties.Ex;

import java.io.FileOutputStream;
import java.util.Properties;

public class MainClass {
	public static void main(String[] args) {
		//프로퍼티스 인스턴스 생성
		Properties properties = new Properties();
		//없는 key를 사용하면 null이 리턴
		System.out.println(properties.getProperty("name"));
		
		//프로퍼티스에 프로퍼티를 저장
		properties.setProperty("아담", "한국 최초의 사이버 가수");
		properties.setProperty("강진 축구", "세계 최초의 온라인 축구 게임");
		properties.setProperty("프리스톤테일", "한국 최초의 자체 3D 엔진 MMORPG");
		
		System.out.println(properties.getProperty("프리스톤테일"));
		
		//텍스트 파일로 저장
		//자바는 예외처리를 강제할 경우가 있음. =>자바가 만들지 않은 걸 쓸때. 파일-운영체제/웹서버 or 다른 컴퓨터와 통신/데이터베이스 작업 할 때.
		//예외가 발생했을 때는 알림이 가야 함.
		try {
			//현재 작업 디렉토리에 파일로 저장
			//git에 연결되어 있으면 workspace가 아니고 c 드라이브-사용자 디렉토리-자신 계정-git 디렉토리에 있음
		properties.store(new FileOutputStream("./myproject.properties"), "텍스트로 저장");
		properties.storeToXML(new FileOutputStream("./myproject.xml"), "xml로 저장");
		}catch(Exception e) {
			System.out.println(e.getMessage());
		}
		
		
	}

}
null
한국 최초의 자체 3D 엔진 MMORPG

파일로 저장되어 있음. 메모장으로 열어서 확인할 것.







/*
왜 환경설정을 다른 파일로 할까?(properties, xml, json, yaml 등)

Source Code (.java) / Resources (.java를 제외한 모든 파일)
src-source의 약자
모든 sourcecode는 컴파일 과정(번역)을 거침
->class코드 생성 
->class코드와 resource를 합치는 build 과정
->실행코드 생성
->실행

개발환경-소스코드를 만들고 있는 환경
운영환경-데이터를 올려놓은 것. 

resource에 변경된 내용을 적으면 다시 compile을 할 필요가 없음. source code에 하지 않는 이유.
컴파일을 다시 하면 똑같은코드가 실행이 안되는 경우가 발생할수도 있음.
resource에 적는 걸 property라고 함.

옛날
a=10

xml
<a> 10 </a>

YAML
a
ㄴ10


또는, 컴퓨터에 운영환경을 세팅해서 개발하고 이미지를 넘기는 가상화
Docker + 쿠버네티스
 or 클라우드 안에서 개발
 
Docker는 리눅스의 기본.
*/

**Project를 3개 정도 하는 경우
=>Spring Legacy Project?
=>Spring boot + JPA를 이용해서 REST API Server를 구축하고 react나 vue를 이용해서 Client Application을 구축
=>Google의 Firebase나 AWS의 람다를 이용한 ServerLess(서버가 없다는게 아니라 내가 서버를 안만든다는 뜻)나 AWS의 S3를 이용한 별도의 업로드 서버를 구축

 

**사용법을 알아두면 좋은 것들
=>Git hub 필수
=>Linux
=>Docker & Kubernetes
=>Jenkins
=>JIRA

 

'JAVA' 카테고리의 다른 글

221027 ByteStream-FileOutputStream, FileInputStream  (0) 2022.10.27
221027 FIie과 Stream  (0) 2022.10.27
221026 Map  (0) 2022.10.26
221026 Set 실습 -ArrayList와 비교  (0) 2022.10.26
221026 Set  (0) 2022.10.26