본문 바로가기

Java4

[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.
[Language] C언어, C++, JAVA, Python의 차이점 TIOBE Index에서 발췌한 2022년 8월 프로그래밍 언어 인기 순위입니다. 우리에게는 익숙한 Python, C, Java 등이 상위권에 랭크된 모습을 볼 수 있습니다. 위의 순위는 프로그래밍 언어를 이용하는 엔지니어의 수, 해당 프로그래밍 언어 관련 강좌 및 홈페이지의 수, 검색엔진에서 프로그래밍 언어가 검색된 횟수를 토대로 순위를 산정합니다. 이 포스팅은 1위 ~ 4위 까지의 프로그래밍 언어의 특징을 소개합니다. 1. Python 1.1. 객체지향 언어, 스크립트 언어, 인터프리터 언어이다. 파이썬은 스크립트 언어로 컴파일 과정 없이 인터프리터에 의하여 실행되므로, 컴파일 언어에 비해서는 속도가 느린 편이다. 1.2. 동적 타입 언어이다. 변수의 자료형을 따로 지정하지 않고 선언하는 것으로 값을.. 2022. 9. 3.
[Java] JVM (1) 일반적인 언어는 CPU 아키텍쳐와 플랫폼의 환경에 맞추어 기계어로 컴파일 됩니다. 그렇기 때문에 플랫폼이 변경되는 경우, 타겟 플랫폼에 알맞게 크로스 컴파일을 해주지 않는다면 제대로 동작하지 않을 수 있습니다. 자바의 경우는 CPU의 아키텍쳐와 플랫폼의 환경에 맞추는 것이 아닌 바이트코드라는 것으로 컴파일 됩니다. 바이트 코드로 컴파일된 결과물이 .class 파일 입니다. class 파일을 해석하고 실행하기 위해서는 반드시 자바 가상 머신 JVM이 필요합니다. 우리가 JDK 또는 JRE 를 설치하는 이유 입니다. 위 그림을 보면 JRE는 JVM을 포함하고 있고, JDK는 JRE를 포함하고 있습니다. 그렇기 때문에 Java 어플리케이션을 실행만 하기 위한 환경이라면 JDK를 설치할 필요는 없습니다. JVM.. 2022. 2. 8.