Programming

프로젝트 API를 개발하다보니 API 응답에 대한 뭔가 체계적인 방법을 찾고 싶었다. 그래서 열심히 서치하며 정리를 해보았다. 일단 결론만 보자면, ResponseWrapperDto : 전반적인 응답에 대한 공통 포맷ErrorResponse : 에러 상황에 대한 구체적 응답 포맷ErrorCode : 에러의 종류별로 상태/코드/기본 메시지를 모아둔 EnumFieldError : 유효성 검증 실패 등에서 발생하는 구체적 필드단위 에러정보를 담기 위한 서브클래스 이 네가지를 구분해서 만들었다. 그 이유는 !?!??-> API 응답을 체계적으로 분류하고, 일관된 형식으로 제공하려고 ! 더 자세히 살펴보겠다. 1. ResponseWrapperDto: 정상 응답을 감싸는 공통 DTO. package com.ex..


아주 다양한 오류들을 마주쳤다... = 내가 성장하는 과정잊지 않도록 기록하기 나의 현재 상황은 Nginx로 SSL 인증서는 받았고, 도커 이미지로 업로드하다가 HTTPS 적용이 어려워서 결국 Docker Container로 Nginx 서버와 Backend 서버를 함께 올리기로 함. 그리고 이를 위해 github에 올리고, 해당 소스를 EC2 인스턴스에서 받아 docker compose up 하기로 함.1. 첫번째 오류깃에서 pull 받고 빌드 해보는 과정에서 이러한 오류가 났다. RefrigBackendApplicationTests > contextLoads() FAILED java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDel..


1. Docker 회원가입 및 설치 https://hub.docker.com/ Docker Hub Container Image Library | App ContainerizationIncrease your reach and adoption on Docker Hub With a Docker Verified Publisher subscription, you'll increase trust, boost discoverability, get exclusive data insights, and much more.hub.docker.com https://www.docker.com/products/docker-desktop/ Docker Desktop: The #1 Containerization Tool for D..


EC2 서버에서 도커 다운로드를 하려고 할 때 계속 Timeout 오류가 생겼다. 여러번 시도했는데도 계속 지속적으로 해당 오류가 나왔다. 도통 이유를 모르겠는데 어찌됐든 해당 서버와의 네트워크 통신이 되지 않는 듯한 느낌이었다. Curl error (28): Timeout was reached for https://al2023-repos-ap-northeast-2-de612dc2.s3.dualstack.ap-northeast-2.amazonaws.com/core/mirrors/2023.6.20250211/x86_64/mirror.list [Connection timeout after 30002 ms] 뭔가 EC2가 문제이겠거니 하고 AWS 콘솔을 살펴보던 중 아주 바보같은 실수를 찾아냈다. ..


AWS에서 가상 서버 EC2를 실행하였다면 해당 서버에는 어떻게 접속하느냐 생성 시 사용했던 keypair를 활용하면 된다. 1. 키 파일 준비 EC2 인스턴스를 생성할 때 사용한 PEM 형식의 키 파일이 있어야 한다. ex. refrig-keypair.pem 2. 퍼블릭 IP 확인AWS 콘솔에서 EC2 인스턴스의 퍼블릭 IP 주소 또는 퍼블릭 DNS 이름을 확인한다. 3. SSH 접속 터미널에 해당 명령어를 입력하여 접속한다.ssh -i /path/to/my-key.pem ec2-user@ 🔔 WARNING: UNPROTECTED PRIVATE KEY FILE!해당 명령어를 입력했는데 이러한 오류가 난다면 프라이빗 키 파일의 권한이 너무 열려있다는 뜻이다. 즉, 프라이빗 키 파일이 다른 사용자에게 ..


배포를 위해 EC2를 생성하던 중에 탄력적 IP에 대한 궁금증이 생겼다. 그래서 찾아보게 된 탄력적 IP ! 1. Elastic IP https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html 탄력적 IP 주소 - Amazon Elastic Compute Cloud이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.docs.aws.amazon.com AWS의 사용자 가이드에서 참고한 결과한 마디로 탄력적 IP 주소는 동적 클라우드 컴퓨팅을 위해 고안된 정적 IPv4 주소이다.즉, 클라우드 환경에서..


⚠️ 오류 화면프로젝트 생성 후 빌드 중에 이러한 오류 발생.failed to calculate the value of task ' compilejava' property 'javacompiler'자바 17버전을 선택했고, 프로젝트 설정에서는 17로 잘 설정되어 있었는데 어디서 프로젝트 버전이 안맞는거지!? 했는데 전체 Setting에서 불일치가 있었다.Settings > Build, Execution, Deployment > Build Tools > Gradle > Gradle Projects 내에서 Gradle JVM을 21에서 17로 일치 시켜주어야 한다. 그랬더니 빌드 성공!

4. HTTP와 HTTPS의 차이점더보기HTTP (HyperText Transfer Protocol): 클라이언트(브라우저)와 서버 간의 요청/응답 기반 통신 프로토콜. 브라우저가 서버에 요청을 보내면 서버가 응답을 반환한다.- 평문 통신 : 데이터를 암호화하지 않고 전송하므로 네트워크 상에서 데이터를 가로채기 쉽다.- 포트 : 기본적으로 80 포트를 사용한다.- 속도 : 암호화가 없기 때문에 속도가 약간 빠르다- 단점 : 로그인 정보, 결제 정보 등 민감한 데이터를 보호하지 못하여 보안에 취약하다. HTTPS (HyperText Transfer Protocol Secure): HTTP에 SSL/TLS(암호화 프로토콜)를 추가한 보안 통신 프로토콜. 데이터를 암호화하여 전송하며, 서버 인증서를 통해 서버..

1. 싱글톤 패턴더보기싱글톤 패턴 특정 클래스의 인스턴스가 하나만 존재하도록 보장하고, 이 인스턴스를 전역적으로 접근할 수 있게 하는 디자인 패턴. 이를 통해 시스템 리소스를 효율적으로 사용하고, 동일한 상태를 유지해야 하는 객체를 쉽게 관리할 수 있다. - 프로그램 내에서 하나의 객체만 존재해야 한다.- 프로그램 내에서 여러 부분에서 해당 객체를 공유하며 사용해야 한다. ex. 데이터베이스 연결 모듈 장점- 메모리 절약 : 하나의 인스턴스만 사용하므로 불필요한 객체 생성을 방지- 전역 상태 공유 : 애플리케이션 전역에서 동일한 상태를 유지하며 접근 가능- 객체 관리 용이 : 인스턴스를 중앙에서 관리하여 효율적인 자원 활요 단점- 테스트 어려움 : 전역 상태를 공유하기 때문에 테스트 환경에서 각 테스트마..