70. 회사일/79. 잡다구리
[DEV] CDN 퍼지 주소가 일몰로 신규 주소 변경 : 생소한 단어들의 향연
Wooris
2022. 12. 26. 16:12
[REQ]
- CDN 퍼지 주소가 일몰로 신규 주소 변경 : 생소한 단어들의 향연
[요청내용]
- CDN 퍼지 주소가 바뀌어서 새로운 신규 주소로 변경을 해야한다.
- 기한 : 2022.12.29일까지
- - 개인일정 : 2022.12.22까지 무조건 다 한다.
(29일까지면 연말이고 휴가때문에 도움받거나 반영하거나 오류가 생기면 Risk가 너무 크다)
[작업순서]
- 내용이해
- 소스분석
- 사용처분석
- 교체작업 1개
- 교체됬는지 Test
- 나머지것 들도 교체
- 전부 다 Test
- 전략패턴이든 추상화든 리팩토링
[업무용어이해]
- CDN(Content Diliverty Network)
: 분산되어 있는 서버 네트워크를 이용하여 용량 큰 리소스를 사용자가 빠르게 받기 위한 Network 기술
: 일반적으로 Cashe Server에 콘텐츠를 저장후 요청을 받으면 가까운 캐시 서버에서 응답을 보내준다. - 퍼지(Purge)
: (CDN)캐시를 리프레시 하여 원래 리소스와 캐시서버의 리소스를 동기화하는 작업
참고 : https://velog.io/@sryung1225/%EC%97%85%EB%AC%B4-%EC%A4%91-%EB%82%AF%EC%84%A0-%EC%9A%A9%EC%96%B4-%EC%A0%95%EB%A6%AC - 일몰
: 일몰시하다 日沒時--
: 자동사 기한이 다 되어 끝나다. (=일진하다) - 즉, 내가 해야하는 일 : 소스에 URL(퍼지하는) 바꾸기
- 인줄 알았으나....API쓰는 방법 자체를 바꿔야 하는 구나
- 인줄 알았으나....API쓰는 방법 자체를 바꿔야 하는 구나
[분석내용]
- 1. AS-IS 와 TO-BE 방법의 차이
- AS-IS : ID만 사용 GET방식 단건 호출
- TO-BE : ID와 KEY를 POST방식 List 호출
- 2. 사용처
- 어지럽다 ...내일 다시... 안스
- [주의할 점]
- 야누스 PROJECT의 AWS S3 분기처리에 속아 길을 잃지 않게 하기
- GS Fresh 분기처리에 속아 길을 잃지 않기
[지원받아야 할부분]
- 기존방식 문서 받기
[WorkLog]
- 85. 내가 어렵게 개발하려고 했던 이유들
- 시간이 많이 남아서 Generic type의 interface로 만들어보고 싶어서
- 나중에 쓸일이 있을까 싶어서
- TestCode를 작성 및 Test에 용이해서
- OOP 특징을 살리고 싶어서
- 90. 시험 삼아 만들었지만, 옆에 황M이 현재 개발하는 중인 내용과 겹치고 진행도 많이 되어있어서 삭제 결정!
- Image Path하나 가져오는 데 너무 오버스펙이다.
- 2시간 정도 낭비! => 소중한 것을 Flex할때 느끼는 행복!!
- 황M 개발 완료 시 까지 일단 하드코딩으로 가자!
- Image Path하나 가져오는 데 너무 오버스펙이다.
- 91. 그래도 아쉬워서 만든 것들 기록으로 남기기
- 86. Diagram
- (회사PC에서 이미지 안올라감ㅋ)
- 87. Source
- ImagePathGenerator.java
-
123public interface ImagePathGenerator<T1> {public T1 getImagePath(T1 stringParam);}
- PlanPrdRepImagePath.java
1234567public class PlanPrdRepImagePath implements ImagePathGenerator<String>{private static final String IMAGE_SERVER_URL = MessageSourceUtils.getConfigMessage("xxxxxxxx");@Overridepublic String getImagePath(String planPrdCD) {return IMAGE_SERVER_URL+"Image path rule"}}cs - 사용
-
12345678910List<String> imageUrlList = new ArrayList<>();ImagePathGenerator<String> planPrdRepImagePath = new PlanPrdRepImagePath();String tempPlanPrdRepImagePath;for (PlanPrdSectPrd planPrdSectPrd : planPrdSectPrdList ) {tempPlanPrdRepImagePath = planPrdRepImagePath.getImagePath(String.valueOf(planPrdSectPrd.getPrdCd()));imageUrlList.add(tempPlanPrdRepImagePath);}
cs
- 86. Diagram
- 92. Post API 동작 안됨
- Cloud 환경에서 403에러
- 개인PC에서 문서에서는 Erro code Return
- 용M 지원요청
- 직접 컨택하지 않겠다
- API동작하는 지 부터 Test해보고 개발 시작했어야 했는데 시간이 좀 뜨네
- 93. 다 만들어버렸다.
- 갑자기 귀찮아져서 막~ 생각하고 막~ 만들고 막히는 부분 그때 그때 찾아서 막 붙여 넣다 보니까 다 만들어 버렸다.
- [결과적으로]
- CDN 퍼지라는 것이 많이 필요할 거 같아서 이곳저곳에 있을 걸로 예상했다
- But, 대부분 싱크가 맞는다. 싱크가 안 맞는 일부 경우에만 퍼지를 해주면 된다.
- 즉 고칠 부분이 별로 없다. - 개발 이미지 서버는 대상이 아니라 로컬 및 개발에서는 테스트가 불가했다.
- 클라우드 (로컬)에서 CDN Purge 호출이 불가했다.
- 그렇다고 최소한의 테스트도 없이 올릴 수는 없었다.
- 파일의 경로를 입력받아 수동으로 CDN Purge하는 API를 따로 만든 후 개발에 올렸다.
- 개발서버에서 운영의 이미지 서버의 파일이 CDN Purge를 테스트 하였다.
- CDN 퍼지라는 것이 많이 필요할 거 같아서 이곳저곳에 있을 걸로 예상했다
[마치며]
1. 일의 순서가 중요
- API가 안된다는 걸 먼저 확인한 후 요청한다음에 개발을 시작했어야 했다.
- 클라우드환경 문제, 이미지서버 대상 문제
- 공부를 위한 억지 개발은 환영받지 못한다.
- 협업이 중요하니까 이렇게 하면 구조적으로 맞지만, 생산성에 도움이 되지 않는 것은 하지 않는 편이 낫다.
- TDD를 배울때 작은 부분도 테스트 코드 구현을 하며 개발을 했는데 그 작은 부분들이 어떻게 보면 의미없는 테스트를 하고 있는 건 아닐까 하는 생각이 든다.
- 개발중 구글링으로 해결했던 부분은 카테고리별로 나눠서 Upload예정