연관관계 매핑
map으로 Post -> PostResponseDto 변환
엔티티 메서드와 서비스에 트랜잭션?
날짜와 관련된 데이터를 보낼 때 형식에 주의해야 한다.
원하는 익셉션이 없을 때는 RunTimeException을 extends하여 간단하게 만들어 사용할 수 있다.
업데이트 관련 메서드를 만들어 사용할 때 여러 개를 한 번에 묶어서 사용하게 되면 입력되지 않은 데이터가 null로 변하게 된다.
이때 업데이트 메서드에 if문을 사용하여 선택적으로 업데이트 할 수 있다.
민감정보를 포함하는 파일은 gitignore를 사용하여 git에 올리지 않을 수 있다.
gitignore에 올리지 않더라도 파일에 하드코딩하는 것은 권장되지 않는다
외부 리소스를 통해 가져오거나, 환경변수를 통해 받아온다.
// 터미널
setx AWS_ACCESS_KEY_ID your_access_key
setx AWS_SECRET_ACCESS_KEY your_secret_key
// properties
aws.access.key={AWS_SECRET_ACCESS_KEY}
// config
@Value("${aws.access.key}") // 액세스 키 값 주입 받기
private String awsAccessKey;
@Value("${aws.secret.key}") // 시크릿 키 값 주입 받기
private String awsSecretKey;
private String awsAccessKey = System.getenv("AWS_ACCESS_KEY_ID"); // 시스템 환경 변수에서 액세스 키 값 가져오기
private String awsSecretKey = System.getenv("AWS_SECRET_ACCESS_KEY"); // 시스템 환경 변수에서 시크릿 키 값 가져오기
private String awsRegion = System.getenv("AWS_REGION"); // 시스템 환경 변수에서 리전 값 가져오기
위와 같은 방법으로 직접 환경변수를 가져올 수 있다.
redis는 컴퓨터 재 실행시 직접 실행을 시켜줘야 한다.
sudo systemctl enable redis
위 명령어로 재부팅시 자동시작 설정을 할 수 있다.
sudo systemctl disable redis
위 명령어로 자동시작 설정을 해제할 수 있다.