분류 전체보기(8)
-
[AWS] Domain SSL 인증서 발급 및 Domain Routing
HttpsHttps는 SSL이라는 보안 프로토콜을 위해서 HTTP통신을 하는 프로토콜을 말합니다.( 요즘은 발전된 버전인 TSL를 사용한다고 합니다. https는 우선 구글 검색엔진에 가산점이 있습니다. http는 브라우저에서 보안 위험 표시가 나옵니다. ) 진행 과정도메인 구매 --> 도메인 인증 --> ACM 인증서 발급 --> Target Group 생성 --> Load Balancer 생성 --> 규칙 수정 --> Health check 성공 위와 같은 방식으로 진행하겠습니다. 가비아에서 도메인 구매우선 저는 현재 EC2를 배포해놓은 상황이니 가비아에 가서 도메인을 구매해주겠습니다. 도메인을 구매해주는 이유는 퍼블릭 ip주소를 외우기 매우 어려울뿐더러 프론트에서 ip연결시에 더 편리하기 때문입..
2024.10.04 -
[AWS] EC2 + DOCKER +CI/CD(Github Action) 배포
DOCKER + EC2 + CI/CD프로젝트 서버를 배포할때 cicd를 활용하여서 무중단 배포를 구축하려고 하였습니다.- ec2는 다양한 인스턴스 유형을 제공해주기에, 트래픽 증가에 따라서 리소스를 확장함에있어 유리합니다.- docker는 애플리케이션을 컨테이너화 하여서 개발 환경과 동일한 조건에서 배포할 수 있어서 환경 차이에 따른 문제를 방지할 수 있으며, 컨테이너는 경량화가 되어있기에 애플리케이션을 신속하게 배포할 수 있으며, 새로운 버전으로 쉽게 교체가 가능합니다.- CI/CD 를 통하여 코드변경이 감지될때마다 자동으로 테스트 및 통합이 진행되어서 지속적인 통합을 할 수 있고, 지속적인 자동 배포를 통하여 새로운 기능이나 버그 수정을 빠르게 재배포 할 수 있습니다.위에 같은 이점들로 인하여 이 방..
2024.09.25 -
[SERVER] - EducationClassProject : Query dsl로 클래스 필터링 기능 구현
query DSL(domain specific language) 하이버네이트 쿼리 언어(HQL)의 쿼리를 타입에 안전하게 생성 및 관리해주는 프레임워크입니다.정적 타입을 이용하여 SQL과 같은 쿼리를 생성할 수 있게 해줍니다. 기존 객체지향 어플리케이션과 관계형 db 불일치 문제를 해결해주는 것이 jpa 프레임 워크입니다.따라서 개발자는 객체지향 관점에서 개발을 하고, jpa 프레임워크는 자동으로 sql 쿼리문을 생성하여 진행 할 수 있었습니다. ( sql문이 자동으로 생성되니, 개발자는 sql 관점 프로그래밍을 안해도 됩니다. ) 하지만 완전한 분리는 불가능 합니다. 따라서 jpa는 jpql을 지원합니다.jpa가 모든 쿼리를 객체방식으로 표현할 수 없기에 이를 커버하기 위해 jpql을 지원하는 것입니다..
2024.09.21 -
[SERVER] - EducationClassProject : 실시간 채팅 기능 구현(WebSocket, STOMP)
WebSocket + STOMP 프로토콜 사용현재 개인 프로젝트로 진행하고있는 EducationClassProject는 학생들과 선생의 원활한 소통이 이루어져야하기에 실시간 채팅 기능을 도입하여 이 부분을 충족해야겠다고 생각하였습니다.실시간 채팅은 Websocket과 STOMP 프로토콜을 사용하여서 구현하게 되었습니다. RabbitMQ는 대규모의 트래픽을 처리하거나 내구성이 중요할 때, 특히 확장성과 안정성이 필요한 대규모 시스템에서 사용하기에 어느정도 고려를 해봤지만 아무래도 지금 프로젝트상 규모가 크진않고 실시간성이 더 중요하다고 판단되어 stomp 프로토콜을 사용하여 구현하게 되었습니다. 전체적인 채팅기능 모델 설계우선 전체 채팅방들의 목록들이 나오고 각각의 채팅방들옆에는 참여하기 버튼이 존재한다...
2024.09.20 -
[SERVER] - shared solution project : IAMPORT로 결제 기능 구현
프로젝트 진행중 아무래도 비즈니스모델을 구축하려면 결제기능은 필수라고 생각하여 결제기능을 구현해야겠다고 생각하였습니다. 결제 게이트 웨이 시스템중 IAMPORT를 사용하기로 결정하였습니다. IAMPORT는 신용카드, 체크카드, 휴대폰 결제, 은행 이체, 가상 계좌, 간편 결제(카카오페이, 네이버페이, 페이코) 등 다양한 결제 수단을 지원하며, 한 가지 api로 다양한 결제 수단을 처리할 수 있어 개발과 유지보수가 용이한다는 이점이 있었기 때문입니다.그중 가장 이점이라고 생각하였던 것은 IAMPORT의 결제 시스템에 대한 유연성입니다. 결제 금액 조정, 결제 후 리다이렉션 처리, 결제 페이지 커스터마이징 등 필요한 기능을 자유롭게 구현할 수 있어서 결제 에러처리, 결제 후 결제 사안에 대한 데이터 처리를 ..
2024.09.14 -
[SERVER] - shared solution project : 최근 검색어 Redis - sorted set (refactoring)
shared solution project 중 최근 검색어 구현시 Redis를 사용하면 좀 더 많은 이점이 있다고 생각하였습니다. 우선 redis는 메모리 기반 데이터 저장소로, 디스크 기반 데이터베이스에 비하여 훨씬 빠른 읽기와 쓰기 성능을 제공해주며, 검색어 처럼 자주 업데이트되고 빠르게 조회되어야하는 데이터를 저장하기에 적합하다고 생각하였습니다. 우선 최근 검색어 자체가 순서가 있는 목록이기에 단순한 key-value 저장소가 아닌 리스트, 셋, 해시 등 다양한 데이터 구조를 지원하기에 효율적으로 관리할 수 있다고 생각했습니다. 또한 TTL( 유효기간 ) 을 설정할 수 있어서 일정 시간이 지난 후에 데이터가 자동으로 삭제 될 수 있어서 오래된 검색어를 자동으로 제거하는데 유용하며, 메모리 사용을 최..
2024.09.11