CDN(Content Delivery Network) 이란?CDN은 클라이언트와 오리진 서버의 지역적인 한계로 발생하는 지연을 최소화 하고, 컨텐츠 요청이 많아진 경우 오리진 서버의 변목현상과 서버 다운을 방지하고자 사용하는 기술입니다.여러 지역에 분산된 캐싱 서버에 컨텐츠를 저장하고, 클라이언트가 요청할 경우 가까운 곳의 캐싱 서버로부터 컨텐츠를 제공함으로써 성능을 최적화 해줍니다.CDN의 캐싱 방식CDN의 캐싱에는 Static Caching, Dynamic Caching 두가지 방식이 존재합니다.Static Caching운영자가 오리진 서버에 있는 컨텐츠를 캐싱 서버에 복사해두어 클라이언트가 컨텐츠를 요청할시 무조건 캐싱 서버에 존재할 수 있도록 한다.주로 게임 클라이언트 다운로드 할때 해당 방식 많..
버니케어 프로젝트에서 회원가입 및 회원탈퇴를 즉각적으로 알기 위한 요구사항이 생겼고, 이를 위해 간단하고 비용이 들지 않는 텔레그램을 통해 기능 구현한 과정을 설명드리겠습니다. 구현 순서는 아래와 같습니다.텔레그램 봇 생성채팅방 생성 및 관리자 권한 설정채팅방의 ID 알아내기 PostMan으로 채팅방에 채팅 보내기텔레그램 API를 통해 Spring 에서 Post 요청 보내기 1. 텔레그램 봇 생성먼저 테스크탑에 텔레그램을 설치해야 합니다. 설치 후 BotFather 검색 후 체크표시가 있는 챗을 선택 후 시작을 누릅니다. /newbot 명령어를 통해 봇의 이름을 생성할 수 있습니다. 봇의 이름은 중복을 허용하지 않고 반드시 뒤에 _bot으로 끝나야 합니다. 중복되지 않은 이름을 정하면 다음과 같이 토큰과..
CI/CD 적용 배경회사에서 주로 수동 배포를 진행하고 있는데 몇 가지 불편함을 느끼고 있습니다.SSH로 매번 서버에 접속해야 하는 번거로움휴먼에러 발생 가능성 특히 잘못된 profile 지정이러한 문제를 해결하고 배포 과정을 간소화하기 위해, 버니케어 프로젝트에 CI/CD를 적용했습니다.CI/CD Tools인터넷에서 CI/CD 도구를 검색해 본 결과, 주로 다음과 같은 조합으로 사용되는 것을 확인했습니다.Github Actions + AWSGithub Actions 단독JenkinsJenkins는 강력하고 실무에서 자주 사용하는 도구입니다. 하지만,별도 서버가 필요해 초기 비용이 증가하고,이는 비용절감 목표에 부합하지 않습니다.따라서, 추가 설치없고 한가지 툴로 구현할 수 있는 Github Action..
CORS(Cross-Origin-Resource Sharing)는 다양한 원천(Origin) 사이에서 자원(Resource)을 공유할 수 있도록 하는 웹 보안 메커니즘입니다. 현대에 클라이언트와 서버를 분리해 개발하면서 많이 사용되므로 필수적인 기술입니다. CORS란 무엇인가? 웹 페이지는 SOP(Same Origin Policy)정책을 따르기에 동일한 출처의 리소스만 공유할 수 있습니다. 하지만 웹 서비스가 커지고 클라이언트와 서버를 분리함으로 다른 출처와의 리소스 공유가 발생했고, 다른 출처와 리소스를 공유할 수 있도록 허용해주는 것을 CORS라고 합니다. Origin이란 무엇인가? Origin은 프로토콜, 도메인 이름, 포트번호를 말하고 오리진이 다르다는 것은 이 3개 중에 하나라도 다른면 다른 오..
DB 설계 시 자식 테이블에 부모의 PK를 소유하고 있고, 부모 삭제 시 여러 가지의 제약조건을 통해 PK의 값을 null로 변경해 주거나, PK를 소유한 자식의 데이터를 삭제 등... 여러 동작을 할 수 있다. 하지만 jpa에서는 자식 데이터를 조회해 값을 수정한 다음 저장하는 방식으로 동작해야 한다. 이에 변경감지에 의한 업데이트, 벌크 업데이트에 대해 알아보자. 변경감지 업데이트변경감지란 엔티티가 조회 또는 저장시 영속성 컨텍스트의 1차 캐시에 저장이 되고 트랜잭션 전 flush 동작시 1차 캐시에 저장된 값과 현재의 값을 비교해 업데이트 쿼리를 생성 후 실행하는 것을 의미한다.List todos = todoRepository.findAllByProjectAndStatusOrderByEndDateA..
프로젝트 내에서 실시간 채팅을 웹 소켓을 이용해 구현했고, 개발 환경에서는 아무 문제 없이 동작했는데 배포 환경에서 websocket connection to failed가 발생했습니다. 해결 방법 /etc/nginx/sites-available/reverse-proxy.conf 파일 수정 proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; location / { proxy_pass http://127.0.0.1:8081; proxy_http_version 1.1; # 추가 proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; p..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.