본문 바로가기

전체 글30

REST, RESTful 오늘은 REST에 대해서 정리해보려고 한다. REST (Representational State Transfer)REST는 2000년 Roy Fielding이 자신의 논문에서 제안한 아키텍처 스타일이다.SOAP보다 더 가볍고 단순한 방식으로, HTTP 프로토콜의 구조를 최대한 활용한다.REST는 리소스를 URI로 표현하고, HTTP 메소드를 사용하여 데이터를 주고받는다. 리소스를 이름으로 구분하여 상태(정보)를 주고받는다.  REST의 특징HTTP 프로토콜을 기반URI(Uniform Resource Identifier)로 리소스 표현상태를 유지하지 않는(Stateless) 구조JSON, XML 등 다양한 데이터 포맷 사용가능HTTP 메소드를 활용하여 CRUD(Create, Read, Update, Del.. 2025. 2. 23.
Proxy 이해하기 - Forward Proxy, Reverse Proxy 오늘은 언젠가 들어봤던 프록시에 대해서 정리해보려고 한다. 프록시(Proxy) 개념 프록시란 다른 컴퓨터와의 통신을 대신해주는 중간 서버를 의미한다. 내가 인터넷에 요청을 보낼 때 직접 보내지 않고 중간에 있는 다른 서버(프록시 서버)를 통해 요청을 보내는 방식으로,프록시 서버는 내가 요청한 정보를 대신 받아오고 그 정보를 다시 나에게 전달하는 역할을 한다. 직접보내면 보내면 되지 왜 굳이 프록시를 거치냐 생각할 수 있는데(내가 그랬다,,) 프록시가 가지는 주요 장점들이 있다. - 보안 (중요)- 캐싱을 통한 성능 향상- 접근 제어등등 대표적인 프록시인 포워드 프록시와 리버스 프록시에 대해 살펴보자. 포워드 프록시(Forward Proxy) - 포워드 프록시는 클라이언트와 인터넷 사이에서 중계 역할을 한.. 2025. 2. 18.
Entity, DTO, VO, DAO 비교하기 객체지향 프로그래밍을 한다면 꼭 접하게 되는 Entity, DTO, DAO, VO에 대하여 정리해본다.  EntityEntity는 시스템에서 관리하는 데이터의 실제 객체를 의미한다.DB 테이블과 1:1 매핑되는 객체로 시스템의 핵심 데이터와 관련된 정보를 저장하고 관리하는 역할을 하고, DB와의 상호작용을 위해 사용되며고유한 식별자(주로 ID)가 존재한다.비즈니스 로직을 처리하기도 한다.  Entity 클래스에서 비즈니스 로직을 처리하는 경우에 대해서 좀 더 구체적으로 이야기 해보자면..?우선 Entity에서 비즈니스 로직을 처리하는 이유는 아래와 같다. 1. 일관성 유지entity 자체가 자신의 상태를 관리할 경우에는 비즈니스 로직을 처리할 수 있다.예를 들어, 특정 상태에서는 값이 변경되면 안 되는 .. 2025. 2. 9.
[알고리즘] 기수 정렬(Radix Sort) 계수정렬에 이어 기수정렬도 정리하려고 한다.기수정렬(Radix Sort)기수 정렬은 같은 키 값을 가진 데이터의 상대적인 순서를 유지하는 정렬 알고리즘이다."기수"는 숫자의 자릿수를 의미하며, 자리수에 따라 정렬을 수행하는 방식에서 유래되었다고 한다.기수정렬은 비비교 정렬 알고리즘이다. 따라서 정수나 유한한 범위의 데이터를 대상으로 하고,기수정렬은 자리수를 기준으로 정렬되며, 안정적인 정렬방식으로 같은 값을 가진 요소의 상대적 순서는 유지된다.정수범위가 좁고(자리수), 양이 많은 데이터일 경우 유리하다.기수정렬의 시간복잡도최악의 경우 시간 복잡도는 O(d*(n + k))이다.여기서 n은 정렬할 요소의 수, d는 최대 자리수, k는 기수(base)를 의미한다.기수정렬 원리기수정렬은 가장 낮은 자리수(LSB.. 2024. 8. 31.