전체 글26 Spring AOP, Custom Annotation을 이용한 권한 검사 개요스프링을 이용해 개발하며 언제든지 사용할 수 있는 나만의 레거시 코드를 작성해 두어야겠다는 생각이 들어 개발하던 도중 적용했던 권한검사에 관련된 부분을 적어두고자 한다. 다른 많은 방법들이 있겠지만 AOP와 Annotation을 이용한 방법이 개발 도중 만났던 문제점과 현재 회사에서 제시했던 AOP에 대한 문제점을 커버하는 해결책이라 생각하여 적용해 보았다. AOP 사용 시 문제점현재 근무하고 있는 회사에서는 AOP를 사용하지 않는다. 한눈에 코드의 흐름이 들어오지 않기 때문이다. 또한 나만의 레거시 코드를 위해 만들던 프로젝트에서는 일부 메서드에만 권한을 적용하고 싶었으나 순수 AOP만으로는 메서드 별로 적용할 수 없었다. 정리하자면 다음과 같다.복잡성: 코드의 모듈화가 향상되지만, 여러 곳에서 적.. 2024. 5. 8. MCMS 웹 고도화 프로젝트 후기 개요 목적: mcms 사용자 및 관리자 사이트 고도화 수행 기간: 2023년 6월 17일 ~ 2023년 12월 14일 수행 인원: 풀스택 2 기술 스택: vue.js, jsp, javascript, springframework, java, mybatis, mariaDB 협업 툴: svn CI/CD: jenkins 기존 운영 중이던 mcms 프로젝트를 고도화하는 작업을 담당하게 되었고 사수로써 참여하게 되었다. 사수로 참여하기에는 부족한 점이 많았지만 팀장님께서 맡겨주셨고, 부사수 때와는 다르게 일에 대한 책임감과 부담감을 알게 되며 인간적으로 한층 더 성장할 수 있는 감사한 시간이었다. MCMS란? mcms는 Media Contents Management System의 약자로 미디어 콘텐츠(기록물)를 관.. 2024. 1. 25. Director Builder Pattern (디렉터 빌더 패턴) 이 글에 주된 주제는 GoF의 디자인 패턴에서 정의하고 있는 디렉터 빌더 패턴입니다. 그러나 이펙티브 자바의 Simple Builder Pattern도 존재하기에 공부를 위해 일부를 다루고 있습니다. Director Builder Pattern (디렉터 빌더 패턴) 이란? 복잡한 객체들을 동일한 프로세스를 통해 단계별로 다양하게 생성할 수 있도록 하는 생성 디자인 패턴이다. Builder: 빌더 인터페이스는 제품 즉, 인스턴스를 생성할 때 필요한 단계들을 선언한다. ConcreateBuilderA: 빌더 인터페이스의 구현체다. 제품(Product) 생성에 필요한 단계들을 구현하며, 인터페이스를 따르지 않는 제품을 생산할 수도 있다. Product: ConcreateBuilder를 통해 생성된 제품이다. .. 2023. 9. 4. Abstract Factory Pattern (추상 팩토리 패턴) Abstract Factory Pattern (추상 팩토리 패턴) 이란? 관련 있는 여러 인스턴스를 만들어주는 팩토리를 구체적인 클래스에 의존하지 않고 만들 수 있게 해주는 생성패턴이다. 즉, 구체적인 구현에는 의존하지 않고 인터페이스에 주목하여, 인터페이스만을 사용해서 부품을 조립하고 제품으로 완성하는 패턴이다. AbstractFactory: 추상적인 공장이다. 추상적인 공장에서는 추상적인 제품을 생산한다. ProductA, ProductB: 추상적인 제품이다. ConcreateFactory: 추상적인 공장의 구현체다. 즉, 구체적인 공장이다. 구체적인 제품을 생산한다. ConcreateProductA, ConcreateProductB: 추상적인 제품의 구현체이다. 즉, 구체적인 제품이다. Client.. 2023. 8. 24. Factory Method Pattern (팩토리 메서드 패턴) 해당 글은 Java 8에 default 메서드가 추가된 이후 interface를 사용해 팩토리 메서드를 구현하는 것을 기준으로 작성된 글입니다. Factory Method Pattern(팩토리 메서드 패턴) 이란? 팩토리 패턴은 구체적인 인스턴스에 대한 구현을 서브 클래스가 정하는 패턴이다. 즉, 부모클래스에서 객체들을 생성할 수 있는 뼈대(interface)를 제공하고, 자식 클래스들이 생성될 객체의 유형을 결정할 수 있도록 하는 생성 패턴이다. Creator: 뼈대 즉, interface를 제공하는 최상위 팩토리 인터페이스다. 서브 클래스들에게 구현을 위임한다. templateMethod(): 객체 생성에 관한 전처리, 후처리를 템플릿화 한 메서드(공통 작업 처리) createProduct(): 서브.. 2023. 8. 9. Instagram Api Refresh Token batch 리펙토링 개발도중 Instagram API를 사용해야 할 일이 있었다. 해당 API를 사용하기 위해서는 Token을 발급받아 사용해야 하는데 토큰에 기한이 60일이라 주기적으로 새 토큰을 발급받아야 했다. 그래서 해당 기능을 하는 batch 서비스를 하나 만들게 되었고, 정말 짧은 코드지만 해당 코드를 리펙토링 하는 과정을 메모해 둔다. 초기 작성 코드 @Service public class TokenService { // 선언부 생략... public void callInstaRefreshTokenApi(){ TokenVO.Request tokenRequestData = this.getAccessToken(); webClientUtil.getBaseUrl(properties.getInstagramApiOptio.. 2023. 6. 24. 이전 1 2 3 4 5 다음