본문 바로가기

분류 전체보기61

[JPA] ENTITY의 DTO 전환 반드시 필요한가 Entity의 속성이 Presentation layer에서 노출되는 것을 막기 위해 도메인 레이어에서 DTO 전환이 반드시 필요한 것일까완벽하게 동일한 레이아웃인데..?  일반적으로 Entity를 DTO(Data Transfer Object)로 변환하는 것은 좋은 실천 방법임에 분명하다.Entity가 민감한 정보를 포함하고 있다면 보안상, DTO를 사용하여 필요 정보만 노출DTO를 사용하면 Presentation layer의 요구사항 변경에 더 유연하게 대응이 가능필요한 데이터만 전송함으로써 네트워크 부하를 줄여 성능적으로 유리Entity와 Presentation layer 간의 결합도를 감소API 버전 관리가 용이반면, 다음과 같은 경우에는 Entity를 직접 사용하는 것이 더 효율적일 수 있다.간단한.. 2024. 8. 24.
[JAVA] 카데인 알고리즘(Kadane's Algorithm) 카데인 알고리즘이란?카데인 알고리즘은 연속 부분 배열의 최대 합을 구하는 효율적인 방법으로, 컴퓨터 과학과 알고리즘 문제 해결에서 자주 사용됩니다. 이 알고리즘은 O(n) 시간 복잡도를 가지며, 동적 계획법(Dynamic Programming) 접근법을 사용합니다.카데인 알고리즘의 원리카데인 알고리즘은 현재까지의 최대 부분 배열의 합을 유지하면서, 각 요소를 순차적으로 탐색합니다. 알고리즘은 두 가지 값을 유지합니다.현재까지의 최대 합 (max_so_far) : 지금까지 발견한 최대 부분 배열의 합현재 위치에서 끝나는 최대 합 (max_ending_here) : 현재 위치에서 끝나는 부분 배열 중 최대 합알고리즘 단계1. max_so_far와 max_ending_here를 배열의 첫 번째 요소로 초기화합.. 2024. 8. 14.
[JAVA] 다익스트라(Dijkstra) 알고리즘 다익스트라(Dijkstra) 알고리즘다익스트라 알고리즘이란BFS와 DP를 활용한 최단경로 탐색 알고리즘이다다이나믹프로그래밍인 이유는 하나의 최단 거리를 구할 때 그 이전까지 구했던 최단 거리 정보를 그대로 사용하기 때문이다.다익스트라 알고리즘의 특징그래프 내부 하나의 정점(노드, Vertex)에서 다른 모든 정점으로 가는 최단경로를 알려준다.그래프의 간선(Edge)마다 가중치가 존재할 때 사용한다. 이 점이 BFS를 활용한 최단 경로 구하기와 다른 점이다.간선의 음의 가중치는 존재하지 않는다. 음의 가중치가 하나라도 있으면 다익스트라를 사용할 수 없다.음의 가중치가 존재하지 않기 때문에 현실세계에 사용하기 적합한 알고리즘이다.(ex. GPS, 네비게이션)출발노드, 도착노드로 구성된 이차원 배열 활용 구현.. 2024. 7. 2.
[DataBase] 보이지않는 비표시 문자와 SQL별 대처법 제로 너비 공간이란?제로 너비 공간(ZWSP)은 텍스트에서 눈에 보이지 않는 공백으로, 그 자체는 아무런 너비도 가지지 않지만 텍스트의 형식을 제어하는 데 사용됩니다.이 문자들은 텍스트의 가독성을 해치지 않으면서도 데이터 처리 과정에서 문제를 일으킬 수 있습니다.특히 SQL 데이터베이스에서는 데이터 무결성을 저해하거나 예상치 못한 결과를 초래할 수 있습니다.주요 제로 너비 문자 종류 및 설명제로 너비 공간 (Zero Width Space, ZWSP)  - U+200B설명: 두 글자 사이에 보이지 않는 간격을 추가합니다. 줄 바꿈 지점을 표시하거나 텍스트를 구분하는 데 사용됩니다.용도: 줄 바꿈 허용 지점 표시, 언어별 단어 분리제로 너비 비조인자 (Zero Width Non-Joiner, ZWNJ)  -.. 2024. 7. 1.