반응형

분류 전체보기 424

gcp wordpress 워드프레스 설치 방법(php 8.1)

구글 클라우드 플랫폼, 워드프레스 설치하는 방법(php 8.1) 최근 워드프레스 블로그에 관심이 있어 찾아보게 된 'GCP(Google Cloud Platform)에 WordPress를 설치하는 방법'에 대한 포스팅입니다. 아래 내용은 Ubuntu 20.04 LTS 버전에서 작업된 내용임을 참고 부탁드립니다. 2023년 6월 26일 기준 워드프레스의 최신 버전은 6.2.2인데요. Wordpress 5.9부터 PHP 8.1에 대한 베타 지원이 추가되었기 때문에 해당 포스팅에서는 PHP 8.1 버전을 설치하였습니다. (기존에 많이 사용되던 7.4 버전에 비해 8.1 버전의 성능이 많이 향상되었다고 합니다.) 전체 과정을 간단하게 설명드리면 Apache2, MariaDB, PHP 설치에 이어 데이터베이스 생성..

IT Info 2023.06.26

@RedisHash keyspace 사용 시 주의할 점 (RedisKeyValueAdapter)

얼마 전 @RedisHash를 통해 redis를 사용하는 과정에서 @Indexed 어노테이션을 통해 secondary index를 적용한 필드에 대해 ttl(time to live)가 적용되지 않는 현상을 해결하는 방법에 대한 포스팅을 하였는데요. 2023.05.26 - [Programming/Spring Boot] - RedisHash 사용 시 @Indexed 필드 TTL(timeToLive) 적용 안되는 문제 RedisHash 사용 시 @Indexed 필드 TTL(timeToLive) 적용 안되는 문제 @RedisHash @Indexed field ttl not working Spring Boot에서 @RedisHash + RedisRepository(CrudRepository를 상속받은)를 통해 인..

Programming/Error 2023.06.22

JPA 연관 관계 매핑 - 조인 테이블(@JoinTable) 개념과 적용 방법

Join Column, Join Table 관계형 데이터베이스에서는 정규화를 통해 의미 있는 데이터의 집단으로 테이블이 구성되며, 이렇게 구성된 각 테이블끼리는 연관 관계를 갖게 되는데요. 서로 연관 관계가 있는 데이터가 여러 테이블에 나눠서 저장될 수 있기 때문에 필요한 경우 여러 테이블에서 데이터를 효과적으로 검색하기 위해 조인(join)이 사용되는 것은 필수적입니다. * 정규화란 불필요한 데이터 모델의 중목을 최소화하고, 데이터의 일관성과 유연성을 확보하기 위한 목적으로 테이블을 구조화하는 프로세스입니다. 데이터베이스에서 테이블의 연관 관계를 설계하는 방법은 'Join Column'을 사용하는 방법과 'Join Table'을 사용하는 방법 크게 두 가지로 나뉩니다. 대부분의 경우 외래키(Foreig..

PropertyReferenceException: No property found for type 발생 원인과 해결 방법

PropertyReferenceException: No property found for type 발생 원인과 해결 방법 작업 중 'PropertyReferenceException: No property found for type' 예외가 발생하였고, 원인을 찾는데 한 시간이 넘게 걸렸지만 원인은 결국 아주 사소한 것(오타)이었는데요. jpa, querydsl을 사용하며 생각보다 자주 만날 수 있는 오류인 것 같았으며, 발생한 케이스 외에도 몇 가지 비슷한 경우가 있어 함께 정리한 내용입니다. (아래 예시에서 사용된 NoticeMember는 단순 예시를 위한 Entity 명입니다.) Caused by: org.springframework.data.mapping.PropertyReferenceExcepti..

Programming/Error 2023.06.17

Redisson 분산락을 사용하는 이유와 기본적인 사용 방법

동시성 문제(Concurrency Issue)와 분산락(Distributed Lock) 동일한 자원(data)에 대해 여러 스레드가 동시에 접근하면서 발생하는 '동시성 문제'는 상품의 재고 관리 등, 프로세스의 여러 곳에서 발생할 수 있는데요. 이러한 동시성 문제를 해결하는 방법 중 하나로 '분산락'이 있으며, 아래 내용은 'Redisson을 통한 분산락을 사용하는 방법'에 대한 정리입니다. * 동시성 문제(concurrency issue) - 하나의 스레드가 데이터를 수정 중인 상황에서 다른 스레드에서 수정 전의 데이터를 조회하여 수정함으로써 데이터의 정합성(consistency)이 깨지는 문제를 말합니다. * 분산락(distributed lock) - 경쟁 상황(race condition)에서 하나의..

Java List null check 방법 (isEmpty, size)

Java List null check 프로젝트를 진행하다 보면 List를 활용하는 부분에서 NullPointerException이 발생하는 경우를 생각보다 자주 접할 수 있는데요. 아래 내용은 java에서 list에 대한 null 체크를 하는 몇 가지 방법에 대해서 정리한 것입니다. List.isEmpty(), List.size() - isEmpty() //Returns true if this list contains no elements boolean isEmpty(); List interface의 isEmpty() 메서드는 해당 리스트 객체가 아무런 요소도 가지고 있지 않을 때(리스트가 비어있을 때) true를 반환합니다. //NullPointerException 발생 List list = null;..

Programming/Java 2023.06.09

Spring Boot + PayPal 결제 구현해 보기 (sandbox 테스트 환경)

Spring Boot + PayPal 결제 구현 해당 포스팅은 PayPal 결제 테스트 환경인 PayPal sandbox를 사용하여 Spring Boot 프로젝트에서 PayPal Checkout API를 통한 결제 테스트를 구현해 보며 정리한 내용입니다. 전체 코드가 있는 github 주소는 포스팅 맨 하단에 링크되어 있으니 부족한 내용은 해당 링크를 참고해 주시면 좋을 것 같습니다. (아래 구현된 부분은 전체 api 중 아주 일부분에 해당됩니다.) 결제 테스트에 필요한 부분 테스트에 앞서 필요한 것은 테스트를 위한 'PayPal 계정'이 필요하며, 해당 계정에서 생성한 'REST API apps', 'Sandbox text accounts'가 필요합니다. *** test account의 View/Edi..

포토샵 물결, 파도 모양 만들기 (Distort Filter -> Wave 사용)

(해당 포스팅은 포토샵 물결, 파도 모양을 만드는 방법에 대한 포스팅으로 사용된 포토샵 버전은 'Adobe Photoshop 2020 영문 버전'이 사용되었습니다.) 해당 예시는 'Rectangle Tool'을 기반으로 물결 모양을 만드는 예시로, 사용되는 경우에 따라 'Line Tool'을 사용하여 같은 방법을 적용할 수 있습니다. 먼저 위 이미지에서 보이는 것과 같이 물결 모양을 만들 Rantangle 하나를 생성합니다. 다음으로 포토샵 상단 'Filter -> Distort -> Wave...'의 경로를 통해 'Wave' 기능을 적용합니다. 그러면 아래와 같은 메시지가 출력되고 Convert To Smart Object, Rasterize 두 가지 선택지가 나오는데요. 'Convert To Smar..

Photoshop 2023.06.04

Kotlin + Spring Boot 기본적인 api를 만들면서 비교한 Java + Spring Boot와의 차이점

최근 여러 기업들이 Java + Spring 기반의 백엔드에서 Kotlin + Spring 기술 스택을 도입하고 있으며, 백엔드 개발자들 사이에서도 코프링(Kotlin + Spring)이라는 용어가 생길 정도로 코틀린에 대한 관심도가 증가하고 있는데요. 아래 내용은 Kotlin + Spring Boot를 통해 간단한 api(get, post)를 만들면서 비교해 본 Java + Spring Boot와의 차이점에 대한 정리입니다. *** JetBrains에서 만든 JVM 기반의 언어인 코틀린은 자바와의 호환성을 기반으로 생산성을 높이기 위해 나왔으며, 높은 가독성과 자바의 고질적인 문제였던 Null 안전성을 해결하는 것에 초점을 맞춘 언어입니다. 1. 하나의 파일(*.kt)에 여러 개의 클래스 정의 가능 자..

Programming/Kotlin 2023.06.02

스트랭글러 패턴(Strangler Pattern) 개념 정리

지난 5월 AWS Summit Seoul에서 '스트랭글러 패턴(Strangler Pattern)'에 대한 개념을 처음 접하게 되었는데요. 29cm에서 기존의 모놀리식 애플리케이션을 현대적 애플리케이션(MSA, MicroService Architecture)으로 전환하는 과정에서 스트랭글러 패턴이 주로 사용되었다고 하며, 시스템이 정상적으로 돌아가면서 점진적으로 서비스 아키텍처로 분리해 간다는 방식이 궁금증을 자아냈습니다. *Strangler Pattern의 어원은 Martin Fowler가 호주에서 본 Strangler figs라는 식물에서 기원되었습니다. 스트랭글러 패턴은 '소프트웨어 시스템을 점진적으로 재구축하기 위한 디자인 패턴'으로, 이 패턴은 기존에 구축된 레거시 시스템을 한 번에 완전히 대체하..

Programming/Web 2023.05.31
반응형