전체 글

개발하면서 끄적이는 여러내용
study/JAVA

JPA MappedSuperclass

DB용 JAVA 추상 클래스?@MappedSuperclassjpa로 간단한 걸 만지다 알게 된 @MappedSuperclass라는 어노테이션에 대한 글이다.우리는 OOP가 추구하는 재사용성에 대해 DB 작업을 진행할때도 사용할 수 있을까?라는 생각이 들었고JAVA의 JPA가 지원하는 기능에 대해 알게 되었다.보통 Entity 작업을 진행할때는 DB의 테이블과 동일하게 컬럼들을 일일이 작성해 준다.예를 들면private Long id;private String name;private String title;private String contents;private String pwd;private LocalDateTime createdAt;...여기서 대부분 createAt, updateAt 때에 따라 de..

Project/Web Project

쇼핑몰 프로젝트 리팩토링 - 2 : 리팩토링 갈피잡기

Top-Down하향식 접근 방식(단계별 설계), 커다란 목표를 설정하고 점진적으로 세분화하여 구체적인 실행 계획을 완성하는 방식 시작부터 잘못된 접근우선 성공적인 계획을 세웠던 것에 비해 처참히 실패? 를 겪으며 다시 처음으로 돌아오기로 마음먹었다.결론부터 말하자면 내가 추구하는 방식의 개발인 Top-Down 방식을 완전히 무시하며 단지 동작되기만을 기대했다. 실패의 과정차분히 분석하고 새로운 코드로 리팩토링 계획을 세워놓고 막상 코드를 열고 시작했던 것은"외부 결제 api부터 바꿔봐야지"이 생각이 결정적인 문제였다.처음엔 수백 개의 클래스들과 파일들을 보고 어디서부터 하지라는 답답한 마음이 들기도 했고, 가볍게 시작해야지 라는 생각으로 기존 포트원 서비스와 토스 api는 같은 결제 과정이니 바꿔 끼우는..

Project/Web Project

쇼핑몰 프로젝트 리팩토링

Refactoringcode refactoring은 외부 동작을 변경하지 않고 기존 소스코드의 구조를 재조정하는 과정으로, 기능성을 보존하면서 디자인, 구조 및 구현을 개선하는 목적을 두고 있다.패턴을 활용한 리펙터링 저자 Joshua Kerievsky는 코드 설계를 지속적으로 개선함으로써 우리는 코드를 다루기 점점 더 쉽게 만들고, 리팩토링 하는 습관은 코드를 확장하고 유지 관리하는것을 쉽게 만든다 라고 한다.- WIKIPEIDA계기나의 이력을 되돌아 보며, 적지 않은 시간을 투자했고, 팀프로젝트로 진행되었고 배운점도 많고 좋은 기억이 많았던 FineApple 프로젝트를 다시 열어보았다.정작 프로젝트에서 가장 중요하다 말하는 리팩토링이지만 최종 완성 이후 기술 부채를 상환하는 리팩토링은 미뤄두고 있었고..

study/DB

Flyway

DB도 git 과 같이 형상관리를 통해 효율적으로 관리할 수 있는 Flyway에 대해 정리해 보았다.Flyway?“Before Flyway, so many people were deploying to so many databases, it was hard to keep track of who was deploying what and when.”Flyway는 Redgate에서 제공하는 데이터베이스 마이그레이션 툴이다.- Redgate flyway앞선 문구에서 볼 수 있듯 Flyway는 데이터베이스 마이그레이션 툴을 말한다."데이터베이스 마이그레이션" 이 한 줄의 설명으로는 바로 이해하기 쉽지 않다.보통 마이그레이션이란 새로운 시스템으로 데이터를 옮기는 작업이 떠올랐다. 하지만 이러한 의미의 마이그레이션이 ..

study/Spring

Spring 외부 통신 RestTemplate / WebClient

스프링에서 외부 통신은 주로 RestTemplate과 WebClient를 통해 이루어지고 RestTemplate은 동기식, WebClient는 비동기 Non-Blocking 방식으로 외부 API와 통신 할 수 있다. 해당 포스팅에서는 두가지 방식에 대한 내용을 작성할 예정이다. RestTemplateRestTemplate?Synchronous client to perform HTTP requests, exposing a simple, template method API over underlying HTTP client libraries such as the JDK HttpURLConnection, Apache HttpComponents, and others. RestTemplate offers templ..

study/Design Pattern

Design Pattern

디자인 패턴이란 무엇인가디자인 패턴은 소프트웨어 설계에서 자주 발생하는 문제를 해결하기 위한 일종의 설계 템플릿이다.객체지향 설계 원칙에 기반하여, 유지보수성과 확장성이 높은 구조를 설계하는 데 사용된다.디자인 패턴은 특정 구현 기술에 의존하지 않으며, 다양한 언어나 프레임워크에서 반복적으로 재사용 가능하다.디자인 패턴의 장점코드 재사용성이 향상된다.시스템 유지보수가 용이해진다.설계 의도를 명확히 전달할 수 있다.결합도를 낮추고 유연한 구조를 만든다.GOF(Gang of Four)란?디자인 패턴은 1994년, Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides 네 명이 집필한『Design Patterns: Elements of Reusable Object..

TIL

2025_05_27 TIL

Spring Filter와 AOP 차이 및 활용 정리Spring 애플리케이션을 개발하다 보면 공통된 처리 로직을 여러 요청에 적용해야 할 때가 많다.모든 요청에 대해 IP를 로깅하거나, 특정 메서드 실행 전에 인증을 검사하거나, 실행 시간을 측정하는 등.이러한 횡단 관심사(Cross-Cutting Concern)를 처리하기 위한 대표적인 방법이 바로 Filter와 AOP.Filter란?Filter는 서블릿 스펙의 일부로, DispatcherServlet 이전 단계에서 동작.즉, Spring MVC가 요청을 처리하기 전에 먼저 실행 됨.특징HttpServletRequest와 HttpServletResponse에 접근 가능요청 전/후 처리 모두 가능인증/인가, IP 로깅, CORS 처리, RequestWra..

카테고리 없음

2025_05_20 TIL

보호되어 있는 글입니다.

hi_i
개발하는 행인