반응형

개발 281

[개발관련] 이미지를 base64로 인코딩할 경우 HTTP 요청을 할 필요가 없는 이유_chatGPT

서적에서 HTTP/1.0에서 RTT 증가에 대한 방안을 읽던 중 이미지를 Base64 인코딩 할 경우 HTTP 요청을 할 필요가 없다는 부분이 이해가 가지 않아 chatGPT에게 문의하였다. 이해가 쏙쏙 잘 된다. 이미지를 문자열로 변환하여 응답할 수 있기 때문에 이미지 그 자체에 대한 HTTP Request를 또 할 필요가 없다는 것. 이미지를 Base64로 인코딩하면 HTTP 요청을 할 필요 없이 이미지 데이터를 문자열로 포함시킬 수 있습니다. 이는 이미지를 직접 포함시키는 것으로, 별도의 HTTP 요청 없이 이미지 데이터를 전송하고 처리할 수 있게 됩니다. 일반적으로 이미지를 HTTP 요청을 통해 전송하는 경우, 클라이언트는 서버에게 이미지 파일의 URL을 제공하고, 서버는 해당 URL로부터 이미지..

개발/개발관련 2023.07.12

[개발관련] 재귀에 대한 이해 (Recursive)

재귀적으로 동작하는 소스 코드에 대한 이해가 필요하다고 생각하여 정리해본다. 함수가 자기 자신을 호출하는 처리를 재귀(Recursive)라고 한다. 함수를 재귀적으로 사용하면 반복문처럼 사용하거나 결과가 다른 결과 도출을 위한 단계가 되도록 점진적인 처리를 하거나 대상의 범위 등을 달리해가며 같은 처리를 적용하여 원하는 결과를 만들어 내는 등 응용할 수 있는 방법이 다양하다. 재귀를 활용하여 팩토리얼을 구한다거나, 퀵정렬을 한다거나, 트리구조에서 하위 노드를 탐색한다거나 할 수 있다. *클래스 내에 선언한 함수를 메소드(method)라고 표현하지만 해당 포스팅에서는 '함수'라는 단어로 통일한다. 1. 조건 없는 재귀 호출 = 무한궤도 영원한 굴레 자기 자신을 호출하는 재귀 함수의 모습은 다음과 같다. p..

개발/개발관련 2023.07.09

[linux] firewalld 포트포워딩 설정법 등

[포트포워딩 설정법] ▶firewalld 서비스 실행 확인 systemctl status firewalld (firewalld는 root권한으로 실행중) ▶포트포워딩설정 firewall-cmd --zone=public --add-forward-port=port=443:proto=tcp:toport=8443 --permanent ▶firewalld 재시작 firewall-cmd --reload [포트포워딩 삭제법] ▶삭제할 포트 포워딩 설정 확인 firewall-cmd --list-forward-ports ▶포트포워딩 설정 제거 firewall-cmd --zone=public --remove-forward-port=port=443:proto=tcp:toport=8443 --permanent ▶firewal..

개발/linux 2023.07.05

[linux] 소유자, 그룹, 권한을 잘 생각해야 한다. (원인 미파악)

SSL 인증서 및 도메인 교체 중 nginx 리로드, 리스타트 후 206, 404 가 발생하고, 나중에는 접속이 되지 않는 현상이 발생하였다. 여러 사람이 조치를 취하면서 더 꼬이게 된 것인지, 이러한 현상의 정확한 원인이 무엇이었는지 파악해보고자 한다. 무언가 문제가 발생했을 때 침착하게 현 상황을 분석하고 섣불리 다른 조치를 취하지 않는 것이 좋다는 것을 깨달았다. 절차대로 조작하고 이것저것 건드려서 일을 키우지 않고 정확한 원인을 파악하는 것이 중요하다. 1. nginx listen 포트를 사용하지 않는 port로 설정하였다. firewalld에서 443을 8443으로 포워딩하고 있었는데 이를 파악하지 않고 listen 포트를 443으로 설정하였다. 2. 각 도메인의 ssl 인증파일이 다르기 때문에..

개발/linux 2023.06.30

[개발관련] 프로세스와 포트에 대한 이해

프로세스는 통신을 위해 포트를 사용한다0~65535번까지 포트가 정해져 있다. 프로세스는 이 포트들 중 한 포트를 선택하여 외부의 요청을 받고 응답하는 등 통신을 할 수 있다. 대표적인 포트번호는 80, 8080, 443, 8443이 있다. 보통 이 포트들은 외부에서 무언가 요청을 할 수 있도록 열어둔다. 프로세스는 열려 있는 포트를 사용하여 외부 또는 다른 프로세스와 통신을 할 수 있다. 통신을 위해 필요한 것은 통신규약, 주소, 포트번호인터넷 브라우저의 주소창에 입력하는 문자열에는 통신을 위해 필요한 정보들이 담겨 있다. [통신규약(프로토콜)] [수신 측의 주소] [수신 측의 프로세스가 사용하고 있는 포트번호] [요청사항] 특정 프로토콜은 기본적으로 몇 번 포트로 가야 한다.라고 약속해 둔 것이 있는..

개발/개발관련 2023.06.29

[개발관련] DNS전파 , 네임서버

CMD에 ping localhost를 입력했을 때 localhost가 127.0.0.1 임을 어떻게 인지할까? Windows에서는 해당 PC의 Window-system32-drivers-etc-hosts 파일에 127.0.0.1 루프백주소를 localhost로 사용하겠다고 명시가 되어 있다. 하지만 hosts 파일에 네이버나 구글 또는 기타 수많은 사이트의 도메인과 IP주소가 매핑되어 있지는 않다. 도메인을 입력했을 때 매핑되어 있는 IP주소로 반환해 주는 서버를 DNS서버 (Domain Name Server)라고 한다. CMD에서 ping google.com 을 입력했을 때 DNS를 통해 입력한 도메인을 142.250.206.206이라는 IP주소로 치환하여 ping 명령어를 수행한다. 한 편 내가 사용..

개발/개발관련 2023.06.27

[개발관련] 액티브-스탠바이, 그리고 VIP (chatGPT)

궁금한 것을 chatGPT에게 문의하였다. 액티브 스탠바이(Active Standby)는 고가용성을 위해 사용되는 서버 구성 방식 중 하나입니다. 이 방식에서는 주 서버와 보조 서버(스탠바이 서버)가 쌍을 이루어 동작하며, 주 서버가 동작 중이면 보조 서버는 대기 상태로 있습니다. 그러나 주 서버가 다운되거나 문제가 발생할 경우, 보조 서버가 주 서버로 승격되어 서비스를 계속 제공합니다. VIP 서버(Virtual IP Server)는 가상 IP 주소를 사용하여 서버들을 그룹화하는 기술입니다. 주로 로드 밸런싱과 고가용성을 위해 사용됩니다. VIP 서버는 클라이언트의 요청을 받아들이고, 이를 그룹 내의 실제 서버 중 하나로 전달하는 역할을 합니다. 이러한 구성에서는 클라이언트는 VIP 주소에 접속하여 서..

개발/개발관련 2023.06.21
반응형