이번에 진행한 프로젝트에서 실시간 푸시 메세지가 꼭 필요한 기능이였습니다. 따라서 푸시메세지를 구현하기 위해 FCM을 사용했으며, 이를 사용할때 마주했던 문제들과 이를 해결했던 방법들을 공유해보고자 합니다.우선, 실시간 푸시 메세지를 구현할 수 있는 방법은 다양한데, 대표적인 기술들을 알아 보도록 하겠습니다. 실시간 푸시 메세지 구현 기술 종류WebSocket클라이언트와 서버간 지속적인 연결을 통해 양방향 통신을 할 수 있음.이 지속적인 연결을 통해 실시간 푸시메세지를 구현할 수 있음.하지만, 웹소켓 구현이 복잡하며 실시간 푸시메세지 구현을 위해 WebSocket을 쓰는게 알맞지 않음 Message Queue(Pub/Sub)Redis, Kafka 등의 메세지 큐를 통해 메세지 게시 및 구독을 할 ..
LAMP 스택이란? -웹사이트나 보통의 서버 운영에 자주 쓰이는 소프트웨어들의 이름을 합한 약자로, 보통 도커에 서버를 올릴 때필수적으로 필요한 것들을 말합니다. 이들은 모드 오픈소스 로 제공되며 다양한 커뮤니티가 있으며, 안정성과 신뢰성이 높다는 장점이 있습니다. LAMP스택은 자세한 설명은 다음과 같습니다. 보통 서버를 구축할 때 아래의 내용처럼 운영체제 + 웹서버 + 데이터베이스 서버 + 프로그래밍언어가 한 세트로 묶여서 필수적으로 서버에 들어가야 합니다. L - Linux (운영체제) A - Apache(웹 서버) M - Mysql(데이터베이스 서버) P - PHP(프로그래밍 언어) 데이터베이스 구축 및 연결 과정 도커를 활용해 서버를 구축하여 올릴 땐 데이터베이스 컨테이너를 따로 생성하여 연동 ..
도커란? -컨테이너 기반으로 작동하는 오픈소스 가상화 플랫폼으로 물리적 자원인 하드웨어를 효율적으로 활용 하기 위해 하드웨어 위에 가상의 머신을 생성하여 데이터, 응용 프로그램등을 호스트 환경과 격리 시켜 빠르게 구축,테스트, 배포 할 수 있는 소프트웨어입니다 즉, 호스트 컴퓨터의 OS의 기능은 그대로 사용하지만, 프로세스 공간을 격리해 독립된 환경을 만들어 하드웨어를 효율적으로 활용하는 기술입니다. 도커가 필요한 이유 하드웨어 자원 조정 어려움 도커 없이 물리적 컴퓨터에 서버를 구축한다고 했을 시, 서버 컴퓨터 OS위에 프로그램을 올려 실행을 합니다. 이렇게 서버 프로그램을 하나 올려서 사용할 시에, 프로그램의 필요 성능에 맞게 직접 하드웨어를 구축하기 어려워 하드웨어의 자원의 부족,낭비 현상이 일어납..
로드 밸런싱이란? -컴퓨터 네트워크나 서버 환경에서 트래픽을 고르게 분산시키는 기술을 말합니다. 서버에 들어오는 다수의 요청을 여러대의 서버로 분산하여 부하를 균등하게 분배함으로써 시스템의 성능을 향상시키고 가용성을 향상시키는 기술입니다. 이는 로드 밸런서라는 장치로 구현될 수 있으며, 다양한 방법으로 구성이 됩니다. 로드밸런싱 특징 부하 분산 -로드 밸런스는 여러대의 서버를 동시에 관리하고 클라이언트로 부터 들어오는 요청을 서버들에게 균등하게 분배합니다.이를 활용해 서버의 부하를 줄일 수 있으며 서버 처리 속도를 높일 수 있습니다. 가용성 증가 -로드 밸런스를 통해 여러개의 서버를 관리를 함으로써, 한대의 서버에 장애가 발생하더라고 다른서버들이 계속해서 작동합니다. 따라서, 시스템의 가용성을 향상시키고..
프록시 서버(Proxy Server) -클라이언트와 웹 서버 사이에서 중개역할을 수행하는 서버입니다. 사용자가 웹사이트에 접속하거나 인터넷을 사용할때, 클라이언트가 웹서버에 요청을 보내고 그에 대한 응답을 받게 되는데 이 사이에서 프록시 서버가 중간에서 중계를하는 역할을 합니다. 프록시 서버 특징 보안 -클라이언트의 요청과 응답을 필터링하여 악성 코드나 해킹 시도와 같은 보안 위협을 차단하거나 감시 가능합니다. 또한,외부 인터넷에서 서버 내부의 침입을 막는 방화벽과 같은 효과를 가집니다. 익명성 보장 -프록시 서버를 통해 인터넷에 접속하면, 웹서버에선 클라이언트의 실제 IP주소를 알수 없고, 프록시 서버 IP주소만 볼 수 있으므로, 클라이언트의 익명성을 유지할 수 있습니다. 데이터 캐시 -프록시 서버는 ..
DHCP란? -Dynamic Host Configuration Protocol의 약자로 컴퓨터네트워크에서 IP주소,서브넷마스크,게이트웨이 등의 구성 요소를 자동으로 할당하는 프로토콜입니다. 수동으로 IP주소를 할당하는것보다 효율적입니다. DHCP서버가 IP주소, 서브넷 마스크,기본 게이트웨이, DNS서버등의 네트워크 구성 정보를 저장하고 관리하고 있으며, 클라이언트가 네트워크에 연결될때 클라이언트에 맞게 자동 할당을 하게 됩니다. 사진과같이 DHCP 서버는 LAN 내부에 존재하고 있으며, 내부에서 DHCP 서버가 각각의 컴퓨터에게 IP번호, 서브넷마스크 등의 정보를 설정하는역할을합니다. 최근에는 스위치 라우터에 DHCP가 내장되어 있는 상황이 더많습니다. 따라서 최근에는 DHCP서버가 LAN에 따로 독립..
DNS서버란? -인터넷 상에서 도메인이름을 IP주소로 변환하는 시스템입니다. 도메인이름과 해당 IP주소를 쌍으로 가지고 있으며 이 DNS서버는 전 세계에 분산되어 있습니다. 모든기기의 IP주소를 활용하여 인터넷 통신하기엔 IP주소를 외우는기 어렵기때문에 도메인 이름을 사용하여 쉽게 통신을 가능하게 하는 서버입니다. DNS 계층구조 (여기서 빨간색 구간을 보시면 .com에 있는 하위 도메인들과 .com도메인이 묶여있습니다. 여기서 .com은 Authoritative name server인데 해당 DNS ZONE에서 가장 최상위 노드이기 때문에 모든 DNS정보를 가지고 있어 가장정확하게 제공하는 DNS서버입니다.) 루트 (Root) -전 세계에 존재하는 DNS 서버중 최상위에 위치하는 DNS 서버. DNS에..
- Total
- Today
- Yesterday
- 배포
- 서버
- 데이터
- 깃허브
- 스프링
- 도커
- 인공지능
- 깃
- 프로토콜
- DB
- 메세지큐
- 포트포워딩
- nat
- sql
- 자동화
- 쿼리
- 보안
- 자바
- 파인튜닝
- 웹소켓
- 문법
- 컨테이너
- 컴퓨터구조
- 네트워크
- 클라우드
- 데이터베이스
- IP주소
- 테이블
- 소프트웨어공학
- JPA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |