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 |