본문 바로가기

전체 글

(42)
Apple Silicon Oracle Docker (M1, M2, M3) 1. 문제 정의로컬 환경에서 oracle을 실행할 일이 생겼습니다.하지만 Oracle의 경우 공식적인 oracle image를 제공하지 않기 때문에 oracle 로컬 구축에 어려움이 있습니다.심지어 apple sillicon의 경우 docker-desktop을 이용해서는 컨테이너를 실행할 수 없습니다.2. 해결 방법2-1 colima 설치가장 많이 나오는 해결 방법입니다.oracle을 x86-64 환경에서 실행할 수 있도록 docker 의 새로운 context를 생성해줍니다.해당 방법은 다른 블로그 글이 많이 때문에 생략하도록 하겠습니다.2-2 oracle linux를 이용한 oracle db 생성해결방법은 oracle 깃헙을 통해서 찾을 수 있었습니다.https://github.com/oracleora..
데코레이터 패턴 데코레이터 패턴이란?기존에 있는 코드를 변경하지 않으면서 부가적인 기능을 추가할 수 있는 패턴이다.데코레이터 패턴 적용 전예시로 댓글 서비스를 확인해보자public class CommentService { public void addComment(String comment) { System.out.println(comment); }}여기서 댓글의 특정 키워드를 trim 하는 기능을 추가해보자 .public class TrimmingCommentService extends CommentService { @Override public void addComment(String comment) { System.out.println(trim(comment)); ..
레거시 코드 전략패턴 적용기 기존 코드 (회사 코드중 일부를 추출해서 간단한 예시로 변형한 코드입니다.) 기존 코드는 id를 조회하기 위해 여러 Repository에 의존적이고 if-else 문이 반복되고 있습니다. 이는 코드의 가독성을 저하시키며, 새로운 type 혹은 value가 추가될 경우 다시 else문이 추가되어야 한다는 단점이 존재합니다. public long getCustomerId(String type, String value) { long id = 0; if (type.equals("TypeA")) { id = aRepository.readId(value); } else if (type.equals("TypeB")) { id = bRepository.readId(value); } else if (uniqueValue..