본문 바로가기

전체 글53

[Spring boot] 암호화된 PK의 복호화 구현 PK 암호화저번 포스트에서 URI에서 PK가 노출되는 것을 막기 위해PK를 암호화하여 URI를 구성하도록 구현하였다. [Spring boot] PK Id 노출을 막는 Rest APIRest APIRest API 설계에서 자원을 식별하는 데 URI를 사용하는 방식은 매우 일반적이며, 자원이 명확히 식별될 수 있어야 한다는 REST의 개념에 부합한다. 따라서 URI에 리소스 식별자인 ID를 포함하는kyu-nahc.tistory.com따라서 Rest API를 요청할 때 URI 형식은 /test/aAPzwpKf+0mFtlfbU1wCWA== 다음과 같고,이런 식으로 암호화된 값을 통해 URI를 구성하여 API 요청을 하게 된다.그렇다면 API 요청을 받고 이를 복호화하는 로직도 반드시 존재해야 한다. 컨트롤러에서.. 2024. 10. 4.
[Spring boot] PK Id 노출을 막는 Rest API Rest APIRest API 설계에서 자원을 식별하는 데 URI를 사용하는 방식은 매우 일반적이며, 자원이 명확히 식별될 수 있어야 한다는 REST의 개념에 부합한다. 따라서 URI에 리소스 식별자인 ID를 포함하는 것은 흔한 접근 방식이다. 예를 들어, Http PUT 요청을 통해 /api/post/1이라는 엔드포인트는 1번 포스트를 수정하는 API라는 것을 직관적으로 알 수 있다. 리소스 식별자와 PK( Primary Key ) 사용리소스를 식별하기 위해 보통 고유한 값을 필요로 하는데, 중복되지 않는 고유 ID를 생성하는 방식 중 하나로 DB의 PK를 자주 활용한다. PK는 이미 DB에서 유일성을 보장하고 있기 때문에 이를 REST API에서 식별자로 사용하는 것이 자연스럽고 URI를 표현하는데 .. 2024. 10. 3.
[Server] Spring vs Node.js Spring / Node.js Framework대중적으로 사용하는 백엔드 프레임 워크는 Spring, Node.js 가 있다. 백앤드 개발자 공고를 찾아봐도 Spring 혹은 Node.js 서버 개발 경험을 중요시 여긴다.따라서 두 가지 Framework의 차이점을 이해하고 상황에 맞는 프레임워크를 선택할 필요가 있다. Node.js 먼저 Node.js의 정의를 살펴보면 다음과 같다.Google Chrome의 V8 Javascript 엔진으로 빌드된 Javascript 런타임 쉽게 말하자면 JavaScript를 이용하여 서버를 만들어 줄 수 있는 툴이다.이 전의 Javascript는 스크립트 언어이기 때문에, 특정 웹 브라우저(익스플로어, 크롬, 사파리) 안에서만 동작하였다.  즉, Javascript는.. 2024. 10. 2.
[Server] Nginx vs Apache Web ServerWeb Server란 HTTP 프로토콜을 기반으로 클라이언트가 웹 브라우저에서 어떠한 요청을 하면 그 요청을 받아 정적 컨텐츠를 제공하는 서버이다. 정적 컨텐츠란 단순 HTML 문서, CSS, 이미지, 파일 등 즉시 응답 가능한 컨텐츠이다. 이때 웹 서버가 정적 컨텐츠가 아닌 동적 컨텐츠를 요청받으면 WAS에게 해당 요청을 넘겨주고, WAS에서 처리한 결과를 클라이언트에게 전달하는 역할도 해준다. 대표적으로 Apache, Nginx 가 있다.웹 서버와 WAS 서버에 대한 개념과 자세한 차이점은 아래 포스팅을 참고하면 된다. [Server] Web Server / WAS 개념 및 차이점Web ServerWeb Server는 정적인 웹 리소스(HTML, CSS, 이미지 파일 등)를 서비스하.. 2024. 9. 30.
[Server] Web Server / WAS 개념 및 차이점 Web ServerWeb Server는 정적인 웹 리소스(HTML, CSS, 이미지 파일 등)를 서비스하는 데 특화된 서버 소프트웨어를 의미한다. 웹 서버는 클라이언트의 HTTP 요청을 받아 해당 요청에 맞는 정적 컨텐츠를 반환한다. 웹 서버는 주로 웹 애플리케이션의 비즈니스 로직을 처리하지 않고, 단순히 클라이언트에게 정적인 웹 페이지를 제공하는 데 사용된다.웹 서버의 주요 기능과 특징은 다음과 같다. 정적 컨텐츠 제공웹 서버는 HTML, CSS, JavaScript, 이미지, 비디오 등과 같은 정적인 웹 리소스를 클라이언트에게 전송한다. 이러한 리소스는 웹 애플리케이션의 비즈니스 로직과 상관없이 변하지 않는 고정된 내용이다.HTTP 요청 처리클라이언트의 HTTP 요청을 받아 해당 요청에 맞는 파일이나.. 2024. 9. 29.
[Server] What is Load Balancing? Load Balancing 로드 밸런싱은 애플리케이션을 지원하는 리소스 풀 전체에 네트워크 트래픽을 균등하게 배포하는 방법이다. 최신 애플리케이션은 수백만 명의 사용자를 동시에 처리하고 정확한 텍스트, 비디오, 이미지 및 기타 데이터를 빠르고 안정적인 방식으로 각 사용자에게 반환해야 한다. 이렇게 많은 양의 트래픽을 처리하기 위해 대부분의 애플리케이션에는 데이터가 중복되는 리소스 서버가 많이 존재한다. 로드 밸런서는 사용자와 서버 그룹 사이에 위치하며 보이지 않는 촉진자 역할을 하여 모든 리소스 서버가 동일하게 사용되도록 하는 디바이스이다. 저번 포스트에서 Reverse Proxy에 대해 설명하였는데,Reverse Proxy의 사용 이유에 로드밸런싱을 명시하였다. [Server] Reverse Proxy.. 2024. 9. 26.

loading