프로젝트/학습(8)
-
[Exception] 프로필 이미지 수정 기능에서 이미지가 아닌 경우에 대한 예외 처리 - Hype
💡Hype이란 프로젝트를 구현하면서 프로필 이미지 수정 기능을 구현했습니다. 이 때, png, jpg와 같이 특정 파일 형식이 아닌 경우에 대해서 예외처리를 구현했는데 해당 기능에 대한 테스트도 없었고 프론트 측에서 이 기능을 나중에 만들면서 해당 예외 처리가 제대로 동작하지 않는 것을 확인했습니다. 이 부분에 대한 테스트 추가와 기능 수정을 해보려고 합니다. 기존 기능 코드 현재 구현된 부분은 프로필 이미지 수정 요청이 들어오면 요청과 함께 multipart/form-data 형식으로 이미지 데이터가 들어오고 이를 AWS S3에 저장한 후 해당 이미지의 url 정보를 유저 정보에 update 하는 형식으로 구현되어 있습니다. 그래서 문제가 발생한 부분은 이미지를 저장하는 부분에서의 예외처리가 제대로 동..
2023.04.19 -
[Spring Cloud] OpenFeign 적용하기 - 고양이 이미지 API 구현 과제
과제 저장소: https://github.com/twotwobread/jwp_cat_picture_search 💡본문에 들어가기 앞서... 해당 고양이 이미지 API 구현 과제에서의 요구사항 중 하나가 Feign을 적용하여 API 호출을 하는 것이었습니다. Feign이 뭔지 공부를 해보고 적용해보려고 하고 Hype이란 프로젝트에서 Feign없이 서버에서 API를 호출해본 경험이 있어서 그 때 코드도 한 번 보면서 비교해려고 합니다아! 레츠 고도리! ※ 제가 사용하는 외부 open api는 TheCatAPI 입니다!! OpenFeign 란? Feign는 Netflix에서 개발된 Http Client Binder입니다. 원래 이름이 Spring Cloud Netflix Feign이었는데 현재는 오픈소스 프로..
2023.04.06 -
[DevOps] DockerFile 사용해보기 - 고양이 이미지 API 구현 과제
과제 저장소 : https://github.com/twotwobread/jwp_cat_picture_search 💡본문에 들어가기 앞서... 프로그래머스 백엔드 데브코스 멘토님께서 연 코드리뷰 강의인 고양이 이미지 API 구현하는 과제에서 Docker를 이용해서 로컬 DB를 설정하라는 요구사항이 있었습니다. 그래서 저는 DockerFile을 이용해서 설정파일을 만들어야겠다고 생각을 했고 그 전에 Docker에 대해서 공부해보고자 글을 씁니다아! ※ 도커의 개념에 대해선 해당 글을 기반으로 작성했습니다!! Docker란? 도커를 이용해서 프로젝트도 하고 꽤 많이 이용을 해봤는데 사실 도커가 뭔지에 대해서 명확히 몰랐습니다. 도커란? 도커(Docker)는 리눅스 컨테이너에 리눅스 어플리케이션을 프로세스 격리..
2023.04.06 -
[DevOps] Nginx 무중단 배포 설정하기 - Hype
💡본문에 들어가기 앞서... 앞전에 썼던 글처럼 무중단 배포를 설정하고 배포를 진행하고 다른 기능들을 붙여보면서 발생했던 문제를 해결하는 글입니다. Nginx 무중단 배포 구현 후 발생한 문제 되겠지 생각하면서 모르고 있다가 어느 순간 확인해보니까 배포가 안되는 것 같았고 AWS를 보니까 배포가 계속 실패하고 있었습니다. 이런 문제가 발생했었습니다. 문제 해결 방법 구글링을 해보니까 공식 문서에서 해결 방법을 알려주고 있었습니다. 리눅스 기반 OS에서 백그라운드로 프로세스를 실행하려면 &를 붙여야 한다고 알고 있었고 그래서 저도 위와 똑같이 &만을 붙였습니다. 하지만 Code Deploy 사용 설명서에서는 이것만 추가해서는 백그라운드에서 실행되도록 할 수 없다고 합니다. 위와 같이 stdout, stde..
2023.04.04 -
[DevOps] Nginx를 이용한 무중단 배포 공부하기 - Hype
💡본문에 들어가기 앞서... 최근 이전에 수행했던 프로젝트인 Hype을 리팩토링 및 추가 기능 구현하고 있습니다. 그래서 기존 환경을 조금 수정하고 있는데 여기서는 Nginx를 WAS와 따로 분리하고 무중단 배포를 붙인 부분에 대해서 적어보겠습니다. 기존 서버 구조 저희 서비스의 기존 구조는 아래 그림과 같았습니다. 즉, Nginx가 ec2 인스턴스 내부에 WAS랑 같이 존재하고 외부에서 접근하면 nginx를 통해서 was로 붙도록 구현했는데 그 이유가 https를 붙이기 위해서 이런 방식을 채택했습니다. 그리고 ec2 인스턴스는 micro freetier를 이용했습니다. 기존 서버에서 발생한 문제점 및 구조 변경 기존 서버를 운영하면서 문제가 발생했었는데 ec2 인스턴스의 크기로 인한 문제였습니다. e..
2023.04.02 -
[네트워크] CIDR(사이더) 공부하기 - Hype
💡 본론에 앞서... : 최근 기존 구현했던 프로젝트 Hype을 리팩토링 & 기능 추가 구현을 하고 있는데 그러면서 개발 환경도 변경을 하고 있습니다. nginx를 was와 분리해서 따로 서버로 빼내고 nginx를 이용한 무중단 배포를 구현하고 있는데 8081 포트 상에 was가 돌아가고 있음에도 외부에서 접근이 안되는 문제가 생겼습니다. 생각해보니까 EC2의 보안 그룹에 인바운드 규칙 설정을 안해줘서 그런 문제가 발생한 것 같아서 이를 설정하려는데 CIDR 라는 것을 설정해줘야 했습니다. 그래서 이것에 대해서 알아야 설정할 수 있을 것 같아서 공부해봅니당~ CIDR(사이더) 란? >> 위키백과 CIDR(Classless Inter-Domain Routing, 사이더)는 클래스 없는 도메인 간 라우팅 기..
2023.04.02