기술 창고(246)
-
@Primary
@Primary Primary는 Component 객체들 중에서 가장 우선 순위가 높은 Component 임을 명시해주는 어노테이션입니다. 다르게 해석한다면, 기본 Component 로 지정해준다고도 볼 수 있습니다. 동일한 Component 객체들이 존재하고 그 중에서 호출하려고 할 때 이 Primary 를 지정해주면 해당 Component 클래스 객체가 기본값으로 호출되게 됩니다. @Component // Spring Bean 등록 생성 @Primary // ComponentScan 시 우선권 부여. 여러 객체가 Component 가 있어도 이 객체가 우선적으로 호출 실행 public class PackMan implements GamingConsole{ ~ 로직 ~ }
2023.05.30 -
@Qualifier
@Qualifier Component 로 지정하고 ComponentScan을 통해 Bean 객체들을 생성하고 호출할 때 만약 동일한 객체들이 전부 Component 로 선언되어있다면 에러가 발생합니다. 호출할 때 반드시 단일 Component Bean 객체를 받아와야하기 때문이죠. 그래서 Qualifier는 호출하고자 하는 Component Bean 객체를 특정지어 고정적으로 호출할 수 있게끔 해줍니다. @Component @Qualifier("mario") // Qualifier 를 통해 특정지어 component 호출 가능. 하지만 반드시 primary 어노테이션이 존재하는 객체가 존재해야 한다. public class MarioGame implements GamingConsole{ ~ 로직 ~ } ..
2023.05.30 -
@ComponentScan
@ComponentScan Component로 지정된 Bean 객체를 찾기위한 어노테이션으로 Bean 객체를 찾아 자동으로 생성하고 관리해주는 어노테이션입니다. @Configuration @ComponentScan // Component로 선언된 객체가 있는 경로로 가서 해당 객체를 자동으로 Bean 객체 생성 주입 public class GamingAppLauncherApplication { public static void main(String[] args) { try (var context = new AnnotationConfigApplicationContext(GamingAppLauncherApplication.class)) { context.getBean(GamingConsole.class).u..
2023.05.30 -
@Component
@Component 클래스의 인스턴스를 Spring 프레임워크에서 관리하도록 Bean 객체로 지정하는 어노테이션. 클래스 단에 적용시키며, @ComponentScan을 통해 Spring Bean 이 생성되고 관리되게 됩니다. @Component // Component 적용 및 Bean 등록 public class SuperContraGame implements GamingConsole{ ~ 로직 ~ }
2023.05.30 -
[AWS] EC2 HTTPS 및 로드밸런서 적용
HTTPS 는 암호화된 HTTP 프로토콜로서 안정화된 데이터 통신을 가능하게 합니다. 따라서 현재 계정을 사용하거나 민감한 정보들을 다루는 모든 웹 들은 전부 HTTPS 프로토콜을 사용하고 있다고 보면 될 것입니다. 기본적인 HTTP 프로토콜에 SSL 이라고 하는 인증서를 발급하여 암호화된 서버를 운영할 수 있도록 해줍니다. AWS 는 클라우드 서비스를 제공하는 가장 큰 기업이기 때문에 도메인을 발급받고 HTTPS 적용을 한 곳에서 할 수 있어 편리합니다. 로드밸런서는 간단히 말하자면 클라이언트의 요청으로 인한 서버의 과부하 혹은 트래픽을 분산시켜줌으로서 속도 면에서나 서버의 가용성, 부하적인 측면에서 도움을 줄 수 있는 기술입니다. AWS에서 HTTPS 를 적용하게 되면 이 로드밸런서는 거의 필수적으로..
2023.05.27 -
[AWS] EC2 환경 AWS DNS 적용
EC2 환경에 배포한 서버에 도메인을 적용해야할 때 기존에는 가격면에서 부담이 없는 가비아를 이용하여 도메인을 적용하였습니다. 하지만, 매번 가비아 도메인을 이용할 때마다 이후에 HTTPS를 적용해야될 때 AWS 도메인 서비스를 사용하는 것이 아니기 때문에 인증서 발급을 다시 또 nginx 와 같은 프록시 서버를 이용하여 인증서를 발급받거나 해야했습니다. 이 과정에서 매번 인증서 발급이 정상적으로 진행될 때도 있지만 그만큼 원인모를 이슈로 인해 인증서 발급이 안되는 문제도 비일비재했습니다. 더군다나, nginx 를 이용해 인증서 발급을 수행하기 위해서는 보통 certbot을 통해 인증서를 발급받곤 하는데 이 cerbot이 매번 버전이 바뀔 때마다 설정값들을 새로 파악하고 바꿔줘야 하기 때문에 이런 부분에..
2023.05.27