일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 1차원 DP
- 2차원 dp
- 99클럽
- @BeforeAll
- @BeforeEach
- @Builder
- @Entity
- @GeneratedValue
- @GenericGenerator
- @NoargsConstructor
- @Query
- @Table
- @Transactional
- Actions
- Amazon EFS
- amazon fsx
- Android Studio
- ANSI SQL
- ApplicationEvent
- assertThat
- async/await
- AVG
- AWS
- Azure
- bind
- builder
- button
- c++
- c++ builder
- c03
- Today
- Total
목록전체 글 (359)
기록
시작하면서 스크립트 파일을 사용하여 배포를 조금더 편하게 하는 방법에 대해 공유하려고 한다. 현재 진행하고 있는 사이드 프로젝트는 EC2에 ssh콘솔에 접속해서 배포를 진행하고 있다. (2023.11.20 - [DevOps] - DevOps/AWS EC2 jar 배포하기) 배포 프로세스를 단순하고 쉽게 하기 위해서 배포때 사용할 스크립트를 작성하였다. 아래에서는 스크립트의 구성과 주의해야 할점을 몇가지 소개하려고 한다. 본문 스크립트 작성하기 전체스크립트 더보기 공통함수를 모아둔 apiProject.sh #!/bin/bash # Functions check_running() { pgrep -f "$COMMAND" > /dev/null } find_pid_using_port() { netstat -tulp..
환경분리 Spring Boot를 사용하여 프로젝트를 개발할 때, 각각의 작업 환경에 대해 설정을 분리하고 싶은 경우가 있다. 이글에서는 spring.profiles.active 옵션을 사용하여 Spring Boot 애플리케이션의 작업 환경을 분리하는 방법을 정리하고자 한다. 필요성 개발, 테스트, 프로덕션 환경에서는 각기 다른 설정이 필요. 테스트서버, 프로덱션용 서버는 보통 분리하는 경우가 많은데, 개발 환경을 분리하여 각 환경에 맞는 데이터베이스에 연결하는 등 다르게 설정할 수 있다. 예를 들어서, 현재 진행하고 있는 프로젝트에서는 이미지저장소 및 데이터 베이스를 환경에 따라 다르게 채택하였다. 이미지 저장소 및 데이터베이스 설정 profile 설명 이미지저장소 데이터베이스 test 테스트환경 로컬 ..
개발 프로젝트를 진행하면서, 메이븐을 활용한 프로젝트 구성에서 발생한 .DS_Store 파일 관리에 대한 경험을 공유하고자 한다. 들어가면서 오프라인 환경에서 메이븐 프로젝트를 관리하던 중, 윈도우 환경에서 개발하는 상황에서 인터넷이 되는 PC에서 메이븐 라이브러리를 다운로드하고 개발용 PC로 옮겨야 했다. 이때, 윈도우로 옮겨온 라이브러리 파일들을 확인하니 .DS_Store 파일들이 숨겨져 있었다. 윈도우에서는 필요하지 않은 .DS_Store 파일들을 깔끔하게 제거하고, 라이브러리 파일을 개발자들 간에 깃으로 공유하기 위해 이 파일들을 깃에서 추적하지 않도록 설정하려고 했다. 해결방법 A) 터미널 명령어로 모든 경로의 .DS_Store 파일 삭제 # Windows cd /d C:\path\to\your..
시작하면서 사이드 프로젝트를 진행하던 도중에 팀원에게 API서버에 접속할수 없다는 연락을 받았다. 직접 서버에 콘솔(SSH)로 접속하려고 하였으나 접속할수 없었다. AWS 인스턴스를 확인한 결과, 아래처럼 연결성 검사에 실패하였다는 오류메세지를 확인할 수 있었다. (24/01/24) 다른 글들을 찾다가, 인스턴스 내부에서 메모리 부족이나 심각한 오류가 발생한다면 같은 오류가 발생할수 있다는 것을 알았다. 메모리 사용량과 AWS 시스템 상에 제공하는 시스템 로그를 확인하였으나, 특별한 문제를 찾지 못하였다. 해결방법 우선, 재시작하기 우선 인스턴스를 재시작하고, 서비스를 실행시켰다. 그러나 일주일 정도 후에 같은 문제가 발생하였고, 그 주기가 점점 짧아졌다. CPU 100% 점유 문제의 원인을 찾고자 EC..
들어가면서 토이 프로젝트를 진행하면서 이미지를 효과적으로 관리하기 위해 로컬 저장소 대신 AWS S3를 활용하려고 한다. 이에 따라 이미지의 안전한 업로드, 조회, 삭제 방법을 찾아보고 적용한 내용을 공유하고자 한다. (1) 이전 글 2024.01.29 - [Web/Spring] - API/이미지 처리 및 저장 방법 2024.02.05 - [Web/Spring] - 이미지 처리 및 저장 방법 : 로컬 저장소 업로드/조회/삭제 (2) 프로젝트 구성 Java Version: 17 Build Tool: Gradle Kotlin Spring Boot Swagger (3) 패키지 구성 아래에서는 S3Service (AWS S3에 이미지 저장)하는 부분을 다루고자 한다. 본문 AWS S3 설정 AWS S3 버킷 생..
들어가며 토이 프로젝트를 진행하면서 이미지를 효과적으로 관리하기 위해 로컬 저장소를 활용하는 방법에 대해 고민하게 되었다. 이에 따라 이미지의 안전한 업로드, 조회, 삭제 방법을 찾아보고 적용한 내용을 공유하고자 한다. (1) 이전글 2024.01.29 - [Web/Spring] - API/이미지 처리 및 저장 방법 (2) 프로젝트 구성 Java Version: 17 Build Tool: Gradle Kotlin Spring Boot (3) 패키지 구성 아래에서는 ImgLocalService (로컬영역에 이미지 저장)하는 부분을 다루고자 한다. 본문 1. 로컬 저장소에 이미지 업로드하기 (1) POST /api/image 엔드포인트 클라이언트에서 서버로 이미지를 업로드 @RequestMapping("/a..
들어가면서 토이 프로젝트를 진행하면서 이미지를 효과적으로 처리하는 방법을 고려하였다. 그 과정과 결과를 고려하려고 한다. 예를 들어서 공지사항을 저장하는 기능을 구현한다고 해보자. 공지사항과 이미지 정보를 데이터베이스에 저장하도록 설계하였고, 각 테이블은 아래와 같다. 공지사항 테이블 TB_NOTICE type comment notice_id String 공지사항 구분자 content String 공지사항 내용 title String 공지사항 제목 이미지 테이블 TB_IMAGE type comment image_id String 이미지 구분자 file_name String 이미지파일 이름 file_size Integer 이미지파일 크기 본론 1. 공지사항 저장하기 클라이언트에서 공지사항을 저장하기 위해서..
1. 문제 정의: 서비스 간 순환참조로 인해 스프링 부트 애플리케이션 실행 시 빈 초기화에서 순환 의존성 문제 발생. The dependencies of some of the beans in the application context form a cycle ┌─────┐ | challengeService defined in file ↑ ↓ | couponService defined in file └─────┘도메인 서비스 A와 B 간에 의존성이 존재하며, A는 B를 참조하고 B는 A를 참조하면서 순환참조 문제가 발생. 서비스 A는 ChallengeService를, 서비스 B는 CouponService를 참조하고 있음. 2. 고려사항 서비스 간 의존성 그래프를 분석하여 순환참조를 발생시키는 의존성 구조를 ..