Java 6

Template Pattern(템플릿패턴) 적용기

템플릿 패턴이란? 어떤 작업 처리 일부분을 서브 클래스로 캡슐화해 전체 일을 수행하는 구조는 바꾸지 않으면서 특정 단계 수행에 있어서는 서브 클래스에서 정의한 작업을 실행하는 디자인 패턴. 즉, 전체적인 큰 흐름은 슈퍼클래스를 따라가고 특정 부분에 있어서만 서브 클래스가 정의한 작업을 실행한다는 내용입니다. 내용은 이해했지만, 막상 어떻게 적용해야 될지 모르다가 이번에 업무에 사용했던 내용을 간단히 작성해 봅니다. 요구사항 회원가입 시 사용자가 업로드한 신분증 이미지를 저장합니다. 이미지 저장 시 신분증 타입(ex. 운전면허증, 외국인등록증 등)에 따라 파일명이 다르며, 내국인은 운전면허증과 주민등록증. 외국인은 여권과 외국인등록증만 업로드할 수 있습니다. 또한 이미지 파일 저장 시 공통된 키 값으로 암..

Java 2022.03.04

Transaction & AOP

글의 목적 - 프록시 패턴 이해 - 트랜잭션 동작 원리 이해 - 트랜잭션을 통해 AOP 이해 이 글은 'Spring Transaction 관리'와 연관되어 있습니다. 서두에 해당 글 내용과 연관지어 작성하오니 링크된 블로그 글을 먼저 읽어보시길 바랍니다. 트랜잭션 코드의 문제점 트랜잭션을 아래와 같이 적용 할 경우 어떤 문제점이 발생할까? 잠시만 생각해보자... public class PaymentService{ ... private PlatformTransactionManager transactionManager; public void setTransactionManager(PlatformTransactionManager transactionManager){ this.transactionManager ..

Java 2020.02.26

전략패턴(Strategy Pattern)를 이용해 코드 리팩토링

글의 목적 프로젝트 코드 내용 중 다중 if문으로 처리되어 있는 것을 객체 지향 설계 원칙(단일 책임 원칙)에 맞는 구조로 변경하기 위해 리팩토링 했다. 리팩토링 중 전략패턴을 사용하게 되었고, 리팩토링 과정과 코드의 장단점을 이해하기 위해 작성했다. 리팩토링(전) 코드 아래는 리팩토링 하기 전 각각의 '결제 타입'에 따라 '결제' 기능을 구현하는 코드를 작성했다. public class OrderController{ @Autowired OrderService orderService; @PostMapping("/payments") public void payment(@RequestBody PaymentInfoDTO paymentInfoDTO) { orderService.payment(paymentInfo..

Java 2020.02.13

Spring Transaction 관리

글을 작성하는 목적 Transaction 이해 Transaction 코드 사용 예시 스프링 프레임워크에서 구현한 Transaction 추상화 Transaction이란? 위키피디아에서는 트랜잭션을 '데이터베이스 관리 시스템 또는 유사한 시스템에서 상호작용의 단위'라고 설명한다. 이해되지 않아 다시 인터넷을 검색해보면 '데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미한다'라고 설명된다. 즉, 데이터베이스에 기능을 수행하기 위한 상호 작용하는 하나의 단위라고 볼 수 있으며, 안전하게 수행되는 것을 보장하기 위해 네가지의 성질을 갖고 있다. 원자성(Atomicity), 일관성(Consistency), 고립성(Isolation..

Java 2020.02.11

SpringBoot + Maven => JAR파일 생성

SpringBoot + Maven => JAR 파일 생성 개발 환경 - 맥북 : MojaveOS 10.14.1 - IDE : Intellij - SpringBoot : 2.1.2 Goal - SpringBoot와 Maven으로 JAR 파일 생성 - 생성된 JAR 파일 외부 서버에 업로드 핵심 사항 - pom.xml에 build 설정 - 외부 라이브러리(ex. json, ojdbc 등) maven 에 추가 - JAR 파일 생성 1. mvnw 설치 및 ojdbc 라이브러리 추가 외부 라이브러리(ojdbc8.jar)를 dependency에 추가하기 위해 mvnvm 을 설치해야 한다. 아래와 같이 실행한다. brew update : 디렉토리 위치 상관 없음 brew install mvnvm : mvnvm을 설치..

Java 2019.06.16

Node.js + mongoDB 설치 및 mongoose 연동

Node.js + MongoDB 설치 및 mongoose 연동 서버 환경 : AWS(EC2) Ubuntu16.04 LTS 버전 사용 1. Node.js 설치 1) Node.js 설치# Using Ubuntu curl -sL https://deb.nodesource.com/setup_11.x | sudo -E bash - sudo apt-get install -y nodejs cmd 창에서 위의 내용과 같이 작성해주면 설치 끝.(여러 블로그에서 설치 및 사용방법에 대해 잘 설명해주지만, 뭐니뭐니해도 해당 홈페이지에서 읽어보는게 가장 확실한 방법인 것 같다.)출처 : https://github.com/nodesource/distributions/blob/master/README.md 2) npm 설치- No..

Java 2018.12.24