이미지 파일 때문에 서버 용량이 모자라다면? WebP로 압축 저장하기
·
개발/백엔드
이미지 업로드 기능을 운영하다 보면 가장 먼저 부딪히는 문제가 있다.바로 서버 저장 공간이 빠르게 소모된다는 점이다.특히 사용자 프로필 이미지나 음원 배너 같은 미디어 파일이 쌓이면 디스크 사용량이 가파르게 증가한다. 하지만 필자는 전기세만 나가는 로우 리스크 하이 리턴 프로젝트를 진행 중이기 때문에 사진 업로드를 s3 등 외부 스토리지를 사용하지 않고 로컬 디스크에 저장하기로 하였다. 그래서 이번 글에서는 파일을 업로드할 때 WebP로 압축하여 저장 공간을 크게 줄이는 방식을 사용했다.현재의 문제 상황JPEG, PNG는 화질은 좋지만 용량이 크고 압축 효율이 낮다.특히 모바일 앱에서 3000px 이상의 고해상도 이미지가 그대로 올라오면 서버는 금방 꽉 찬다.그래서 이 문제를 해결하기 위해서 3가지 방법..
Nginx proxy manager - Duckdns로 SSL 인증서 간단하게 받고 설정하기
·
나만의 놀이터/npm
Nginx proxy manager로 SSL 인증서 발급과 역방향 프록시를 설정하고 싶다면 이 글을 보면 거의 다 해결이 될 것이다. 일단 duckdns 사이트에 들어가서 회원가입을 한다.  그럼 토큰과 domain을 만들 수 있는 창이 있다. 여기서 도메인을 만들어준다.   그리고 npm에 들어가서 SSL Certificates에서 Add SSL Certificates를 눌러준다.  duckdns에서 만들었떤 도메인을 넣어주고 duckdns에 token 값을 넣어준 다음 save 눌러주면 발급이 완료된다. 도메인과 https/http 둘 중 필요한 거 설정해주고 SSL로 들어가서 여기서 자기가 설정한 SSL 인증서를 선택한 다음 Save를 눌러주면 끝이다. 필자는 Force SSL, HTTP/2 Sup..
OMV6 - OMV extra에 docker 설치를 해도 안 뜬다면? portainer + docker 해결 방법
·
나만의 놀이터/OMV
지금 사진과 같이 웹관리 화면에 보면 이렇게 되어있고, portainer, yacht 설치/관리 탭이 보이지 않고화면에 보면 openmediavault-compose 플러그인을 설치하라고 되어있어서 설치를 했지만  이렇게 뜬다면 docker 플러그인 설치 후 이렇게 공유 폴더를 만들어줍니다. 이렇게 설정하고 저장을 누릅니다. 그리고 Compose - File에 가서 portainer - extras - portainer - extras 를 선택 후 이름은 portainer로 설정 하고 저장 그리고 ssh 연결를 통하여docker container stop portainerdocker container rm portainerexit  그리고 나온 후 Files에 설정한 파일을 누르고 Up 버튼을 누르면 컨..
개발자가 더 큰 성장을 이루는 방법 ( Devfest Incheon )
·
회고
오늘은 내가 Devfest Incheon / Songdo 2024 컨퍼런스에 다녀온 후 제일 인상에 남은 강연이 있어서 서준수 님의 강연을 이 블로그에 정리해 보고자 이 글을 쓰게 되었다. 이번 세션은 우아한형제들 서준수 님이 발표해 주신 내용으로, 개발자로서의 성장에 대해 깊이 생각해 볼 수 있는 기회였다. 세션에서 다룬 핵심 주제는 메타인지, 성장 마인드셋, 내적 동기 부여, 그리고 효과적인 학습 방법이었다. 이 주제들은 성장이라는 큰 틀 안에서 서로 연결되어 있었다. 그리고 세션을 들으면서 인상 깊었던 점은 성장을 하며 겪은 문제점과 어려움을 직면하는 상황에서 문제점을 외부에게 찾지 말고 자신에게서 문제의 원인을 찾고 그 문제를 해결해 나아가는 과정이라는 것이었다. 결국 성장의 과정에서 나 자신을 ..
HTTP의 구조 - Header와 body
·
인터넷 | 네트워크 | 웹
💋 요청과 응답웹의 요청과 응답은 클라이언트와 서버 간의 통신을 위한 메시지이다. ✔ 요청 (Request)요청 메세지는 클라이언트가 서버로 보내는 메세지이다.먼저 예시를 보고, 구조에 대해서 파악해 보겠다!요청의 Header이다. 요청의 Body이다. 요청 메세지는 세 가지 부분으로 이루어져 있다.HTTP 프로토콜의 요청 라인요청 방식 (GET, POST, PUT, DELETE)URLHeader요청에 대한 부가적인 정보Body (본문)POST, PUT 요청과 같이 요청과 함께 전달되는 데이터를 포함한다.요청과 함께 전달되는 데이터가 없을 경우 Body가 없을 수도 있다.✔ 응답 (Response)응답 메세지는 서버가 클라이언트로 보내는 메세지이다.이번에도 먼저 예시를 보고, 구조에 대해서 파악해 보겠..
디스패처 서블릿은 뭘까? 한 번 알아보자
·
Language/JAVA
일단 서블릿(Java Servlet)뭘까?자바 서블릿(Java Servlet)은 자바를 사용하여 웹 페이지를 동적으로 생성하는 서버측 프로그램 혹은 그 사양을 말하며, 흔히 "서블릿"이라 불린다.자바 서블릿은 웹 서버의 성능을 향상하기 위해 사용되는 자바 클래스의 일종이다.즉, 서블릿(Servlet)은 클라이언트 요청을 처리하고, 그 결과를 반환하는 웹 프로그래밍 기술이다.디스패처 서블릿Dispatcher의 뜻은 보내는 사람 즉, 파견자라는 의미를 가지고 있다.단어 의미 그대로 가장 먼저 클라이언트로부터 어떠한 요청이 오면 Tomcat(톰캣)과 같은 서블릿 컨테이너가 요청을 받게 된다. 그리고 이 모든 요청을 프론트 컨트롤러인 디스패처 서블릿이 가장 먼저 받게 된다.그러면 디스패처 서블릿은 공통적인 작업..
park-til
PARK - TIL