일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- 이펙티브 자바
- package-private
- 자바
- 알고리즘
- 스터디
- 컴퓨터과학
- 깃허브
- 메모리
- 우리카드
- spring
- java
- 컴퓨터공학
- Effective Java
- 뮤텍스
- 디지털
- 스프링
- 공채
- 프로그래밍
- Public
- IT
- 깃
- 운영체제
- OS
- 신입
- 개발
- 세마포어
- CS
- 신입사원
- github
- 정보처리기사
- Today
- Total
목록Spring/프로젝트 pin (6)
주니어 개발자 성장기
개요 평소 API 문서 자동화 프레임워크로 `Swagger`를 많이 써왔는데 `multipart/form-data`를 Body로 받는 API의 경우 `Swagger` 문서에서 try out(실행)할 시에 예외(HttpMediaTypeNotSupportedException)가 발생하는 문제가 있었다. 내가 본격적으로 개발을 시작한 2022년부터 꽤 거슬렸다. 그렇지만 문제가 치명적인 것도 아니고 `Swagger`상에서만 실행이 안되는 것이라 적극적으로 해결할 생각은 안하다가, 이번년도 초에 집중해서 구글링하면서 해법을 찾아서 해결할 수 있었다. 미리 문제상황을 말하자면 파일과 JSON 값을 동시에 입력받으려고 할 때 발생하는 문제다. Spring Fox와 Spring Doc 먼저 `Swagger`는 Ope..
개요 이번 Cheffi 프로젝트를 진행하면서 꼭 해보고 싶었던 것 중 하나가 CI/CD 파이프라인 구축이었다. 저번 프로젝트(Glims)에서 배포를 내가 담당했었는데 낮에는 회사일로 바쁘고 밤에는 회사 프로젝트를 위해서 Vue.js 공부를 하다보니 CI/CD 공부를 할 수 있는 물리적인 시간이 부족했었고, 프로젝트 진행 내내 수동 테스트와 배포를 반복했었다. 직접 경험한 수동 배포의 문제점 1. 서버 업데이트가 늦다. 매번 수동 배포를 하다보니 팀원이 기능을 추가하거나 디버깅을 해도 수정이 반영되려면 항상 내가 배포를 해야했다. 내가 변경을 인지하고 작업할 수 있는 상황이어야만 배포가 가능해지니 기능 업데이트가 나라는 병목현상(?)을 겪게 되는 것이다. 내가 개인 사정으로 바쁠때는 나의 배포를 하염없이 ..
*개인 참고, 공부용 포스팅입니다. 아래 포스팅을 참고해서 yml 파일과 깃허브 시크릿을 등록한다. https://mumomu.tistory.com/132 [Github Actions] Github Secrets에 secret파일 등록(secret.yml 등) Github Secrets에 Secret파일 등록으로 CI/CD 깃허브에 올릴 때는 조심해야하는 파일들이 있는데 AWS, API 등에 접근할 수 있는 키를 가진 환경변수 등이 공유될 경우 큰 문제가 생길 수 있다. 그렇기 때문 mumomu.tistory.com 내가 헤맨 부분은 깃허브 시크릿을 등록하는 부분이었는데 처음에 yml 파일을 그대로 복붙 해 등록해서 문제가 생겼었다. 그런데 위 포스팅에서는 `base64 --decode` 명령어를 이용하..
개요Cheffi 프로젝트를 진행하면서 develop 서버 자동 배포를 위해 도커파일을 작성하면서 생긴 이슈에 관해 말해보고자 한다. 필요한 도커 이미지 & 컨테이너 스프링 부트 애플리케이션 서버 레디스 Todo 스프링 부트 환경설정 파일 분리 (application-dev.yml) 컨테이너 이름으로 호스트 설정 스프링 부트 도커파일 작성 도커 컴포즈 파일 작성 컨테이너 간 네트워크 연결 배포 툴 Github Actions 과정먼저 Github Actions를 통해 배포하려면 yml 파일을 작성해야하는데, 나는 어떻게 작성하는 지 잘 몰라서 같은 팀원이 작성해준다고 했고 흐름은 다음과 같이 정했다. Jar 파일 빌드 → SCP로 Jar파일과 dockerfile, docker-compose 를 EC2 호스트..
RestTemplate이란? 스프링 3.0에서부터 지원하는 RestTemplate은 HTTP 통신에 유용하게 쓸 수 있는 템플릿이다. REST 서비스를 호출하도록 설계되어 HTTP 프로토콜의 메서드(GET,POST,DELETE,PUT)에 맞게 여러 메서드를 제공한다. RestTemplate 특징 통신을 단순화하고 RESTful 원칙을 지킨다 멀티쓰레드 방식을 사용 Blocking 방식을 사용 의존성 설정 기본 스프링 부트 의존성을 추가한다면, 자동으로 추가된다. WebClient란? WebClient는 스프링 5.0에서 추가된 인터페이스다. 스프링 5.0 이전에는 비동기 클라이언트로 AsyncRestTemplate을 사용했었다. 하지만 스프링 5.0 이후부터는 WebClient를 사용할 것을 권장한다. ..
Scheduling 일정 주기로 특정한 작업을 수정하는 것 참고 블로그 https://data-make.tistory.com/699 [Spring Boot] Scheduler 사용해보기(일정 주기로 실행하는 스프링 스케쥴러) The Scheduled Annotation in Spring @Scheduler 를 사용해서 일정한 시간 간격으로, 혹은 특정 일정에 코드가 실행되도록 해보자. Spring Scheduler Dependency Spring Boot starter 에 기본적으로 의존 org.spri.. data-make.tistory.com https://wooncloud.tistory.com/75#cronExpr [Spring] 스케줄러 Cron 사용하기 스프링 프로젝트를 개발하면서 시스템이 커지..