CloudFront를 통해 S3 액세스 하기
☁️ Summary Amazon S3(Simple Storage Service)는 간편한 데이터 관리 및 액세스 제어를 제공해주는 저장소다. ‘무한대로 늘어나는 외부 저장소 + 간편한 액세스 제어’ 정도로 생각하면 편할 것 같다. Amazon CloudFront .html, .css, .js 및 이미지 파일과 같은 정적 및 동적 웹 콘텐츠를 사용자에게...
private IP 만으론 인터넷 연결이 불가능한가?
AWS EC2 인스턴스 4개를 이용해 서비스 인프라를 구축하려 할 때, 팀원 루트가 “WAS랑 DB한테 public IP를 할당할 필요가 있어?” 라는 이야기를 꺼냈다. 어차피 클라이언트와 통신을 주고 받아야하는 Web Server(Reverse Proxy)와 우리가 직접 접속해야 할 Bastion은 public IP가 필수로 필요하지만, 그 외에 같...
@ModelAttribute을 setter 없이 사용할 수 있는 이유
많은 블로그에서 @ModelAttribute 어노테이션을 통해 데이터를 바인딩 할 때 setter 메서드가 필요하다고 했다. 그러나 실제 테스트를 진행해보니 setter 메서드 없이도 @ModelAttribute를 통한 데이터 바인딩이 성공됨을 확인할 수 있었다. // DTO public class TestRequestDto { private Stri...
Spring JDBC를 통한 DB 연동
DataSource JDBC API는 DriverManager 외에 DataSource를 이용해서 DB 연결을 구하는 방법을 정의하고 있다. DB연동 기능을 구현하고 Bean으로 등록되어 있는 객체(주로 @Repository 어노테이션을 붙인)에 DataSource를 주입하는 식으로 많이 사용한다. 아래는 DB연동 기능을 구현한 Bean 객체에 주입하...
Spring AOP
AOP(Aspect Oriented Programming)은 관점 지향 프로그래밍으로, 어떤 로직에 대해 핵심적인 관점, 부가적인 관점을 나누어 보고 그 관점들을 기준으로 각각 모듈화를 하겠다는 것이다. (모듈화 - 공통된 로직이나 기능을 하나의 단위로 묶는 것) 예를 들어 핵심적인 관점을 우리가 적용하고자 하는 핵심 비즈니스 로직. 부가적인 관점은 ...