전체 글 366

[DB] DB 형상관리를 위한 Flyway 적용

소스코드의 변경사항과 버전은 Git을 통해 관리하지만, DB의 변경사항을 관리할 때는 Flyway를 활용할 수 있습니다.  Flyway를 활용한다면, 수동으로 sql문을 실행하고 애플리케이션을 재구동해야하는 번거로움을 해소할 수 있게 됩니다. Flyway에 관련한 개념과 was에서의 설정, Convention 등을 알아보겠습니다. Flywayopen-source database-migration toolDB MigrationDB Schema의 version을 관리하기 위한 방법DB의 변경사항을 추적하고, 업데이트 및 롤백을 보다 쉽게 할 수 있도록 도와줍니다.Schema데이터베이스의 구조와 제약조건에 관하여 전반적인 명세를 기술개념 스키마: 전체적인 view 내부 스키마: 물리적인 저장장치에서 DB가 저..

Database 2025.01.07

[Spring] Json 직렬화, 역직렬화

개발 중 Lazy Loading 된 객체에서 해당 소스코드가 존재했습니다.public String getRegionName() { return region == null ? null : region.getName();} Intellij에서 no usage로 해당 메서드를 사용하는 클래스가 존재하지 않았지만, 해당 정보를 가져올 수 있었습니다. 그 이유는 Json 직렬화, 역직렬화의 내부적인 동작과정 때문인데요. Json 직렬화, 역직렬화에 대해 알아보고 정리해 보도록 하겠습니다.  기본적으로 Spring Application을 구동하기 위한 의존성인 spring-boot-starter-web에 Json 직렬화 및 역직렬화를 할 수 있는 라이브러리가 내장되어 있습니다. (Jackson Library)..

Java/Spring 2024.12.24

[필리핀🇵🇭] 필리핀 마닐라 여행 준비물 및 관광지 정리

내년 초에 마닐라 여행을 가게 됐는데요. 마닐라에서 필요한 항목들은 무엇인지 알아보겠습니다. 준비물돼지코 (110V 일수도 있기에 사전 대비), 비에 젖어도 되는 신발 우비, 상비약,  쪼리, 선크림, 필기구, 샤워기필터 (필수)여권, 왕복항공권ESIM, 보조배터리의류 되도록 한두 장 챙기고, 이외에는 필리핀에서 구매ESIM참고: https://blog.naver.com/sol2roo/223494309495?trackingCode=rss  ETravel 전자입국신고서 (입국 72시간 이내)참고: https://blog.naver.com/gung52/223354453887 Agoda 숙소 예약니노이아키오 국제공항과 교통이 원활한 곳으로 숙소 예약 관광 및 쇼핑이 목적이므로 치안이 안전한 곳으로 예약참고: ..

일상/여행 2024.12.22

[Java] Garbage Collection

Java 프로그램을 개발하다 보면 OutOfMemoryError을 마주하게 되는데, 이는 JVM Heap 메모리의 부족 현상에 밀접한 연관이 있는 에러입니다. 이를 해결하기 위해 Garbage Collection 과정이 발생하게 되는데 해당 개념과 동작원리, 알고리즘에 대해 알아보겠습니다.  Garbage Collection 메모리 관리 기술중 하나로서 JVM의 Heap 영역에서 동적으로 할당되었던 메모리 중 사용하지 않은 객체를 모아 주기적으로 제거하는 프로세스입니다. JVM의 메모리 구조중 일부인 Heap 영역에 관여하는 프로세스입니다. 뒷단에 내용을 수월하게 이해하기 위해 JVM Memory 구조를 설명드린 후 핵심 내용에 대해 알아보겠습니다. JVM Memory 구조Static (Method) 영..

Java 2024.12.05

[Spring] RestTemplate

카카오 OAuth 로그인을 구현해 보면서, RestTemplate을 사용하게 되었는데 RestTemplate이 무엇인지와 동작원리 등에 대해 정리해보려고 합니다.  RestTemplateHTTP 통신을 위한 도구로 Rest API 웹 서비스와의 상호작용을 쉽게 할 수 있도록 도와주는 도구HTTP 메서드를 제공하고 원격 서버와 동기적, 블로킹 방식으로 Json, xml 방식으로 다양한 데이터 형식으로 통신합니다.Spring Framework의 핵심이 제공하는 동기식 RestClient간단하게 외부 도메인과 Rest API을 제공하는 서비스와의 상호작용을 쉽게 해주는 도구로 해석하면 될 것 같은데요. 이제 동작 원리에 대해 설명드리도록 하겠습니다.  RestTemplate FlowApplication이 Re..

Java/Spring 2024.11.22

[Spring] Spring Cloud Gateway (+ Eureka Server)

오늘은 MSA에서 빠질 수 없는 개념인 API Gateway의 역할을 수행하는 Spring Cloud Gateway에 대해 포스팅하려고 합니다. 더불어 Microservice의 IP, Port 정보들을 저장 및 관리해 주는 Eureka Server도 함께 알아보도록 하겠습니다. Spring Cloud Gateway에 대해 알아보기 전, API Gateway가 무엇인지 설명드리겠습니다. API Gateway비즈니스 로직이 아닌 기타 관심사들을 처리하는 역할분산 시스템 또는 마이크로서비스 아키텍처에서 매우 중요한 역할을 하는 컴포넌트입니다.클라이언트와 백엔드 서비스 사이에 위치하는 리버스 프록시 역할을 하는 서비스입니다. 클라이언트 요청을 여러 마이크로서비스로 분배하고, 이를 중앙에서 관리하는 단일 진입점입..

Java/Spring 2024.10.26

[Spring] Spring Webflux

오늘은 비동기 기반의 반응형 프로그래밍을 위한 Framework인 Webflux에 대해 알아보려고 합니다. Webflux를 사용하기 위해서는 Reactive Stream, Mono, Flux, r2dbc 등 다양한 개념을 인지하고 있어야 하는데, 이러한 개념들을 대략적으로 정리해 보도록 하겠습니다.   WebFlux에 근간이 되는 Reactive Programming 방식에 대해서 설명드린 후, WebFlux에 대해 알아보도록 하겠습니다. Reactive Programming (반응형 프로그래밍)데이터의 흐름과 변경사항의 전파에 중점을 둔 선언적 프로그래밍 패러다임패더라임: 어떤 한 시대의 사람들의 견해나 사고를 근본적으로 규정하고 있는 테두리로서의 인식의 체계, 또는 사물에 대한 이론적인 틀이나 체계를..

Java/Spring 2024.10.23

[Architecture] MSA (vs MA)

오늘은 애플리케이션을 구성하는 방법론인 MSA와 MA에 대해 알아보고, 각각의 특징과 장단점에 대해서 설명드리겠습니다. 대략적인 Architecture image입니다. 사진만 봐도 Monolitic은 한 곳에 뭉쳐져 있고, MSA는 각각 Microservice로 분산되어 있는 것을 육안으로 확인할 수 있습니다.MSA (Microservice Architecture)소프트웨어 시스템을 여러 작은 독립적인 서비스로 분할하여 개발하고 배포하는 방식SOA (Service Oriented Architecture)의 특징을 공통으로 가집니다SOA: 대규모 컴퓨터 시스템을 구축할 때의 개념으로 업무상 일 처리에 해당 소프트웨어 기능을 서비스로 판단하고 그 서비스를 네트워크상에 연동하여 시스템 전체를 구축해 가는 방..

CS 2024.10.22

[RocketDock] RocketDock을 이용하여 Mac 처럼 작업 표시줄 꾸미기

오늘은 Window 11에서 Mac처럼 꾸미는 방법에 대해서 소개해보려고 합니다.윈도우의 작업 표시줄이 이쁘지 않아 바꾸고 싶었는데, 생각보다 자료가 많아 쉽게 바꿀 수 있었습니다. 우선 RocketDock이라는 앱을 해당 PC에 download 해줍니다.  유료로 5달러 지불하라는 문구가 나오는데, 무시하고 다운로드 해주시면 됩니다.   이후, windows 시작시에 자동으로 실행될 수 있도록 설정해 줍니다.  이제 사용할 프로그램들을 RocketDock에 추가해줘야 합니다. 해당 표시줄에 마우스 우클릭 -> 아이템 추가RocketDock에서 사용할 프로그램의 "경로를 추가"바탕화면에 있는 프로그램을 드래그해서 넣을 경우 인식이 안되는 경우가 있습니다. 이를 방지하기 위해 프로그램의 경로를 넣어서 추가..

기타 2024.10.16

[Spring] org.springframework.orm.jpa.JpaSystemException: Error attempting to apply AttributeConverter

오늘은 에러 로그 관련해서 포스팅을 진행하려고 합니다. 개발 도중에 발생한 Error log인데, Error log를 먼저 보여드리고 분석한 내용에 대해 설명드리겠습니다. Error logorg.springframework.orm.jpa.JpaSystemException: Error attempting to apply AttributeConverter; nested exception is javax.persistence.PersistenceException: Error attempting to apply AttributeConverter at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(E..

Java/Spring 2024.09.26