본문 바로가기

전체 글249

[DDD 헥사고날 아키텍처] 도메인 -> 엔티티 변환간 baseEntity 내 createdDateTime 초기화 현상 트러블 슈팅 이슈 내용1. DDD 구조 (헥사고날 아키텍처)를 통해 엔티티와 도메인을 분리한 상황에서, 게시글 수정 작업이 필요하여 아래 코드를 실행public void patchPost(Long id, ModifyPostReq modifyPostReq) { PostEntity postEntity = postRepository.findById(id).orElseThrow( () -> new IllegalArgumentException("해당 게시글이 존재하지 않습니다.") ); Post post = postMapper.toDomain(postEntity); post.updatedPostInfo(modifyPostReq); pos.. 2024. 7. 14.
[DB ORM] INSERT DEFAULT 트러블 슈팅 이슈 내용- flyway를 통한 DB 마이그레이션 툴을 이용하던 중, 특정 기능 구현으로 인해 post 테이블에 view_count와 likes_count를 추가해야하는 상황이 발생하였다. public class PostEntity extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "post_id") private Long id; private String userId; private String title; private String content; private String image; private String category; .. 2024. 7. 7.
[MIME 이슈] 파일 타입 트러블 슈팅 [이슈 상황]웹툰 관리자 페이지에서 웹툰 등록을 위해 이미지 파일 및 zip 파일을 업로드 할 시, 검증하는 로직이 있음파일 타입들은 아래 목록 중 하나에 속해야만 다음 로직으로 가며, 그렇지 않을 시에는"허용된 파일 형식이 아닙니다. 확인 후 올려주세요."라는 alert를 띄워줌'image/jpeg','application/zip' 해당 상황에서, 파일 업로드를 했을 때 계속 경고 alert이 발생하여 아래 명령문으로 파일의 타입을 확인해보았음file --mime-type 파일명 그 결과, 이미지와 zip파일 모두 위 형식에 해당하고 있음.. [이슈 파악]웹툰 관리자 페이지는 현재 웹툰을 제공하는 파트너사들이 이용하는 페이지임.해당 파트너사들은 대부분 윈도우를 이용하는데, 윈도우에서는 mime가 어떻게.. 2024. 6. 14.
Vercel 환경설정 정말 물건이다. Vercel은 웹 어플리케이션 배포를 위한 end-to-end 플랫폼이다.쉽게말하자면, 깃 저장소에 소스코드를 올리고 연결하기만 하면 Deploy, CI/CD, 도메인, 모니터링까지 제공해주는 아주 간편한 툴이다. 배포하는 방법은 너무 간단해서 아래에 텍스트로만 설명해놓을 예정이다. - 배포방법1. vercel 로그인 (현재 사용 중인 github으로 로그인)2. github에서 배포하고 싶은 프로젝트 선택3. 배포 진행  이제 환경 설정에 대해 기술해놓고자 한다. Local환경에서는 .env에 환경변수를 설정한 뒤, 아래와 같은 형식으로 환경변수를 활용했다.Local환경 .env 적용과정1. dotenv 설치npm install dotenv dotenv란?Node.js 애플리케이션에서 .. 2024. 6. 9.
[ELB WAF 이슈] ELB WAF 데이터 차단 트러블 슈팅 [이슈 상황]웹툰 관리자 페이지에 ELB를 붙인 후로, CSV 파일을 업로드하는 기능에서 계속 403 Error가 발생하고 있음- 현재 상황서버 : GCPELB : GCP ELBWAF : GCP WAF [이슈 파악]이전 상황과 다른 요소는 ELB를 붙인 것말고는 없으니, ELB 환경에 이상한 점이 없는지 체크하기로 하고, 아래와 같이 작업진행 - 작업 진행순서1. ELB 세팅 내용확인 -> 이상없음2. ELB Log 확인 -> 이상 발견함 - Log 내용내부 보안상 아래 내용만 표기하겠습니다httpRequest: {}statusDetails: "body_denied_by_security_policy"}  body_denied_by_security_policy 라는 키워드로 조사한 결과, 아래 내용을 찾았.. 2024. 5. 27.
[Base64 인코딩 이슈] CloudFront / S3 트러블 슈팅 (6) 이전에 이미지 서빙속도 개선을 위한 CloudFront / S3 프로젝트를 진행하며 겪었던 아래 이슈가 있었는데, 메모하는 걸 깜빡하여 이제 기술해놓는다! 내용은 아래와 같았다. [현 상황] - 보안에 중점을 둔 회차 컨텐츠 이미지 파일들은 url path를 암호화함과 동시에, Cloudfront 퍼블릭키를 사용한 signed url을 생성하여 호출하였음. 이를 위해 cloudfront 뒤에 있는 s3의 path를 암호화를 하게 되는데, 해당 데이터는 이진데이터 (binary-data)이기 때문에 안전하게 텍스트 형식으로 보내기 위해 base64를 진행하였다. [문제 상황] 전달받은 url을 통해 이미지를 조회하려고 할 때, url 중간중간에 공백이나 '/' 같은 것들이 껴 있어 정상적인 경로에 대한 조.. 2024. 3. 14.