본문 바로가기

전체 글30

서버 이중화 금융권과 같이 대규모 회사의 IT 설계를 할 때는 안정적인 운영이 필수이다. 서비스가 24시간 365일 중단되지 않고 안정적으로 운영되는 것을 항상 목표로 한다. 이렇게 서비스(서버, 네트워크, 프로그램 등)를 오랜 기간 동안 지속적으로 정상 운영이 가능한 성질을 고가용성 (HA, High Availability) 라고 한다. 높은 고가용성을 보장하기 위해서는 서버 이중화가 필수이다. 이때, 서버 이중화에 대한 정의와 구조에 대해 알아보도록 하자. 서버 이중화란? 인프라 설계 시 서비스의 안정성을 위해 서버를 이중으로 구성 하나의 서비스 장애 발생 시 다른 서버를 통해 서비스를 지속 가능하게 함. Active / Standby 구조 장애가 발생한 Active 서버를 내리고 대기하고 있던 Standby 서.. 2023. 10. 26.
[Spring] Spring DI 개념과 방법 Spring DI란? 외부에서 두 객체 간의 관계를 결정해주는 것으로 클래스 레벨에서는 의존 관계가 고정되지 않게 하고 런타임 시에 관계를 동적으로 주입하여 유연성을 확보하고 결합도를 낮출 수 있게 해준다. 객체를 직접 생성하는 것이 아니라, 외부(IoC/DI 컨테이너)에서 생성한 후 주입시켜주는 방식이다. 애플리케이션 실행 시점에 필요한 객체(빈)을 생성해야 하며, 의존성이 있는 두 객체를 연결하기 위해 한 객체를 다른 객체로 주입시켜야 한다. 이때, 주입시켜주는 역할을 위해 IoC/DI 컨테이너가 필요하다. 의존성 주입은 제어의 역전(IoC)라고 불리기도 한다. 어떠한 객체를 사용할지에 대한 책임은 프레임워크에게 넘어갔고, 사용자는 수동적으로 주입받는 객체를 사용하기 때문이다. 한 객체가 어떤 객체에.. 2022. 8. 22.
[Spring] SMTP와 비동기 프로젝트에서 회원가입 시 메일 인증을 위해 서버에서 메일을 보내는 기능이 필요하다. 해당 기능을 사용하기 위해 SMTP (간이 우편 전송 프로토콜)에 대해 알아보고 사용해보자. SMTP (Simple Mail Transfer Protocol) 메일 전송에 사용되는 네트워크 프로토콜로 인터넷에서 메일 전송에 사용되는 표준이다. 메일을 송수신하는 서버를 SMTP 서버라고 한다. TCP 프로토콜을 사용하며 포트는 다음과 같다. 기본 TCP 포트: 25 TLS 포트: 587 SSL 포트: 465 SMTP 서버 메일을 보내는 사람: username@gmail.com 메일 주소에서 username@gmail.com는 SMTP 클라이언트가 될 것이고 gmail.com 주소는 메일을 송수신하는 SMTP 서버가 될 것이.. 2022. 8. 5.
[JPA] Spring Data JPA containing 관련 에러 프로젝트 진행 중 검색 기능을 구현하는 과정에 발생한 일이다. /api/search?keyword="검색어" RequestParam으로 넘어온 검색어를 포함한 데이터를 찾기 위해 Spring Data JPA를 사용했고 like 쿼리문을 사용하기 위해 다음과 같이 containing을 사용하여 작성했다. public interface SearchRepository extends JpaRepository { List findByTitleContaining(String keyword); } 다음과 같이 임의로 세 개의 post를 저장하고 private void savePost() { Post post = new Post(1L, "유교수님 운영체제 전공책 팔아요~"); Post post2 = new Post(2.. 2022. 5. 5.