사실 너무 기초적인 내용이기도하고 글 쓸 생각 없었는데,,
아 저 AWS 98 만원 과금됐어요 ㅎ_ㅎ
처음에 이클립스랑 깃 연동하는거 연습한다고 아무 프로젝트나 올린다는게 AWS 보안증명 키도 같이 올려버렸는데,
하루? 만에 찾고 다시 지웠음에도 아 오늘 정말 놀라 자빠지는줄 알았다.
EC2 인스턴스 20개는 생겨있고, 98만원 과금 딱 찍혀있음 ㅠㅠ
구제신청 하긴 했는데 되겠지,, 아니면 나 정말 난몰라 ..!
결론은 "보안"의 중요성을 느꼈다이고,
그럼 과거의 나처럼 되지 않기 위해 DB 계정, AWS의 경우 EC2, S3등 "키" 값으로 자신을 증명하는 값들은 직접 삽입하여 그 코드가 돌아다니지 않도록 하기 위해, 그러한 값들은 따로 프로퍼티 파일에 보관하여 불러다 쓰도록 설정해보자
Spring boot, Spring 5 / Spring 4 순서로 기술하겠다.
왜냐면 의도한건 아닌데 내가 진행하는 세 프로젝트가 버전이 다 다르다 ㅎㅓ허 어쩌다 그렇게된거지
1) Spring boot, Spring 5.0
Spring 을 더 쉽게 사용해주는 것 답게 따로 설정해줄 필요도 없다.
먼저, application.yml 또는 application.properties를 사용하는 경우(기본 클래스패스)
amazonProperties: region: OO accessKey: OO secretKey: OO bucketName: OO애증의 AWS 설정 ^____^ 아 나 되게 쿨한것같아!
@Value("${amazonProperties.bucketName}") private String bucket;그냥 이렇게 불러다 쓰면 된다!
별도의 properties 파일을 생성했다면, (main/resources 아래!!!!)
사용하려는 클래스 상단에 다음과 같은 어노테이션 하나만 추가해주자
@PropertySource("classpath:mail(파일명).properties")
그리고 똑같이 @Value(~~~~) 하면 된다. 참 쉽쥬?
2) Spring 4.0
Spring 4.0에서 프로퍼티를 불러다 쓰는 방법은 여러가지가 있는데,
나는 무조건 @Value를 쓰고 싶어서 무한 구글링 ,, 여러 방법이 있던데 설정할 것도 너무 많고 복잡하더라 ㅠ__ㅠ
Spring 4.0도
@PropertySource 쓰는건 똑같다. 단, Configuration 하나만 추가해주자
@Configuration @PropertySource("classpath:setting.properties") public class Config { @Bean public PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer(){ return new PropertySourcesPlaceholderConfigurer(); } }그리고 똑같이 @Value를 사용하면 완료!