목록전체 글 (45)
ㅇ.ㅇ
JPA 소개ORM (Object-Relational Mapping)객체와 관계형 데이터베이스 간의 차이를 중간에서 해결.JPA는 자바 진영의 ORM 기술 표준으로 실행 시점에 자동으로 SQL을 생성하고 실행.CRUD SQL 작성이 필요하지 않음.JPA의 장점생산성과 유지보수성 향상SQL이 아닌 객체 중심 개발이 가능.데이터베이스 변경 시 코드 수정이 적음.테스트 용이성간결한 코드로 인해 테스트 작성이 쉬워지고 버그 감소. SQL을 직접 다루면 생기는 문제반복 작업객체, DAO, SQL 작성, JDBC API 연결, 매핑 등 번거로운 작업.SQL 의존적 개발속성을 하나 추가할 때마다 등록, 조회, 수정 코드를 모두 수정해야 함.JPA의 이점직접 SQL을 작성하지 않아도 JPA가 제공하는 API를 통해 작업..
상황Maven 프로젝트를 진행하다가 최근 Gradle을 사용하는 다른 프로젝트를 IntelliJ IDEA에서 실행하였다. 이후 다시 Maven 프로젝트를 실행하려고 할 때, 아래와 같은 에러가 발생하였다. 에러 내용 Cannot run program "{경로}\.gradle\jdks\jdk-11.0.24+8\bin\java.exe" (in directory "{경 로}\AppData\Local\JetBrains\IntelliJIdea2023.3\compile-server"): CreateProcess error=2, 지정된 파일을 찾을 수 없습니다 에러 파악Maven 프로젝트는 JDK 8을 사용하는데, Gradle 프로젝트 실행 후 위와 같은 에러가 발생한 점이 이상했다. 에러 메시지를 보니, Int..
가상화 기술은 현대 IT 환경의 핵심 기술로, 물리적인 컴퓨터 자원을 논리적으로 나누어 사용하거나 새로운 컴퓨팅 환경을 만드는 데 사용된다. 이번에는 가상화 기술이 무엇이고, 왜 필요한지 등에 대해 작성해보려고 한다. 가상화 기술이란?가상화 기술은 물리적으로 존재하지 않는 컴퓨터 환경을 마치 존재하는 것처럼 만들어주는 기술이다.쉽게 말해, 하나의 물리적 컴퓨터에서 여러 대의 가상 컴퓨터를 실행할 수 있는 방법을 제공하는 것이다. 이 기술을 통해 물리적인 자원을 효율적으로 활용하고, 독립적인 운영 환경을 제공할 수 있다. 왜 가상화 기술이 필요할까?하나의 컴퓨터에서 여러 프로그램을 동시에 실행할 때, 안전하고 효과적으로 설치 및 운영하는 방법을 고민해야 한다. 가령 아래의 같은 상황들이 발생할 수 있다..
엔터프라이즈 환경은 대규모 조직에서 사용하는 IT 인프라와 시스템을 의미한다. 그리고 이러한 엔터프라이즈 환경에서는 대규모 서버 운영이 필수적이고, 적합한 서버 운영 방식을 선택하는 건 효율성, 비용, 확장성에 큰 영향을 끼친다. 이번 글에서는 서버 운영 방식 세 가지인 베어메탈, 하이퍼바이저, 그리고 컨테이너 방식에 대해 살펴보도록 하겠다. 1. 베어메탈 방식베어메탈은 물리적인 서버 하드웨어를 직접 사용하여 운영 체제와 애플리케이션을 실행하는 방식이다. 가상화 계층이 없기 때문에 모든 리소스를 애플리케이션에 집중적으로 사용할 수 있다.1) 특징직접 실행 : 서버 하드웨어 위에 바로 운영 체제가 설치된다고성능 : 가상화로 인한 성능 손실이 없다제한된 유연성 : 특정 서버에 애플리케이션이 종속될 가능성이..
상황스프링부트 새 프로젝트를 설치한 후 run을 실행했을 때, 아래와 같은 에러가 발생하였다. 에러 내용 starting gradle daemon... gradle daemon started in 2 s 158 ms failure: build failed with an exception. * what went wrong: multiple build operations failed. could not move temporary workspace 에러 파악Gradle 빌드 시스템에서 발생하였다. 에러에서 알 수 있는 주요 문제점은, Gradle이 임시 작업 공간을 불변 위치로 이동하는데 실패했다는 것이다. 나의 시행착오..Gradle 캐시 폴더 삭제 후 빌드 다시 실행C:\Users\사용자\.gradl..
최근에 BiFunction을 사용해 볼 기회가 있었는데 관련 내용을 좀 더 찾아보다가 ToIntBiFunction과 함께 비교해보면 좋을 것 같아 이렇게 정리를 해보려고 한다. 우선 두 인터페이스는 둘 다 Java의 함수형 인터페이스로서, 두 개의 입력 값을 받아 하나의 출력 값을 반환하는 기능을 한다. 가장 큰 차이점은 반환값의 타입이 다르다는 점이다.1. BiFunction다양한 결과를 반환할 수 있는 다목적 함수형 인터페이스BiFunction는 두 개의 입력 값(T, U)을 받아 원하는 타입(R)의 결과를 반환한다.R 타입은 제한이 없기 때문에, 문자열, 숫자, 객체 등 무엇이든 반환할 수 있다.// 메서드 시그니처R apply(T t, U u);// 예시: 두 숫자를 문자열로 합치는 작업BiFun..
회사에서 작업하던 MyBatis 쿼리에서 처음 보는 형식의 쿼리를 발견했다. 내용을 살펴보니 JSON 연산자와 관련된 부분이었다. 현재 회사 DB에서는 리소스의 세부 속성들을 props라는 컬럼에 JSON 형태로 그대로 저장하고 있었고, 이 JSON 데이터를 추출하는 데 이 연산자가 사용되고 있었다. 이번 기회에 JSON 데이터를 다루는 필요성과 함께 PostgreSQL과 Oracle의 JSON 처리 방식을 정리해 보려고 한다. 1. JSON 데이터 처리의 필요성 JSON은 현대 애플리케이션에서 데이터 교환과 저장에 널리 사용되는 포맷이다. 유연한 구조와 가독성 덕분에 REST API, 웹 애플리케이션, 데이터베이스 등 다양한 환경에서 중요한 역할을 한다. PostgreSQL과 Oracle은 JSON ..
lazydocker란?lazydocker는 Docker와 Docker Compose 환경을 효율적으로 관리하기 위한 터미널 기반 인터페이스이다. 이 도구는 명령어 입력 없이 Docker 환경을 직관적으로 모니터링하고 제어할 수 있도록 설계되었다. 그러므로 Docker 환경에서 자주 작업하는 개발자들에게 특히 유용하다. lazydocker 설치 방법다양한 방법이 있다. 나는 초반에는 도커 이미지로 설치했다가 생각보다 메모리를 많이 잡아먹는 것 같아서 바이너리로 다시 설치하였다. 여기에서는 바이너리 설치 방법으로 적어보겠다. 1. 바이너리 파일 다운로드먼저, lazydocker 바이너리 파일을 자신이 원하는 운영체제, 버전으로 다운로드한다. lazydocker GitHub : https://github.c..