2024.07.19 - [개발/SPRING] - Kotlin + SpringBoot 서버에 테스트 도입기. Kotest와 MockK 이전 포스팅에서 테스트는 왜 필요하고, 어떤 것들이 있는지에 대해 정리해봤다. 그리고 현재 프로젝트에서 어떻게 쓰면 좋을지도 결정했었다. 이 후 한동안 실제로 테스트를 구현하면서, 어떻게 테스트를 서비스에 잘 녹일 수 있을지 고민하면서 구현했다. 테스트가 있긴 있었지만, 레거시의 레거시를 테스트하는 용도라 싹 들어내고 다시 구현했다. 1. 테스트는 기능을 테스트하는 용도도 크지만 히스토리 용도도 크다테스트는 사이드 이펙트를 잡는 용도도 크지만 이 코드가 왜 만들어졌는가를 남기는 요소도 포함하고 있다. 주석도 서비스 로직에 남겨져 있는 것보다, 테스트에 남기는게 최신화 하기 ..
서버 to 서버로 데이터를 전송할 일이 생겼는데.... 문제가 생겼다. 문제 상황은 다음과 같다. 1. A 서버에서 B서버로 요청을 보낼 계획2. A 서버는 S3에서 파일정보를 가져와서 ByteArray 형태로 들고 있음3. B 서버에는 MultipartFile을 파라미터로 받는 API(ex. /api/file)가 존재함 - 수정 불가(FE에서 사용 중) 4. A 서버에서 B 서버로 /api/file을 요청해야 함 - 데이터만 삽입하고 끝내기엔 이력이나 업데이트해야할 정보가 많음5. A 서버에서는 FeginClient를 사용 중(HTTP 통신을 위해서 사용 중, 굳이 고집하지 않아도 됨) 요약하면, 요청을 보내기 위해서 스프링부트 서버에서 MultipartFile을 어떻게 만들 것인가? 와 Feign..
서비스의 규모가 커짐에 따라 수정 사항도 늘어나고, 서로 간의 의존성도 커지면서 다른 한쪽의 문제를 예상하지 못하고 수정해버려서 발생하는 이슈가 늘어났다. 그래서 개발을 할 때나 수정할 때 점점 부담이 많이 생기게 되서, 제대로된 테스트의 도입 방식을 검토했다. 이전에 강의를 하나보고 여기에 감명을 받았다. 2024.04.15 - [일상] - [인프런 강의] Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트를 듣고위 그래프처럼 개발 양은 많아지는데, 이게 잘 동작할까? 에 대한 부담감이 점점 커지는 상황이라 조치가 필요해졌다. 그러나 테스트 도입에는 정말 많은 애로 사항들이 있었는데... 다음과 같은 의사결정이 필요했다. 1. 테스트의 종류 선정: 몇 종류의 테스트를 실행할 것인가?2. 어..
2~3가지 서비스를 거치면서 개발했던 방식은 Layered 아키텍처를 벗어난 적이 없다. 6년짜리 레거시 코드를 Layered 아키텍처로 운영/개발할 때도 큰 불편함을 느끼지 못 했었다. 당시를 떠올려보면 그렇게 생각했던 이유가 몇 가지 있는데.. 1. 테스트를 구현하지 않았음2. 불행인지 다행인지 레거시 코드를 수정할 일이 거의 없었음3. 서비스의 규모와 팀의 규모가 크지 않았음4. R&R을 나누는 직급이 아니었음 이 정도가 아닐까 싶다. 그러나 이직 후 업무 분담도 하는 직급이 됐고, 서비스 규모가 점점 커지면서 운영 개발 건이 늘어나다보니 Layered 아키텍처의 문제를 느끼게 됐다. (내가 느꼈던) Layered 아키텍처의 문제 1. Service가 너무 커져서 파생되는 문제들- 어떤 기능을 추..
번역 API에 대한 기술 검토 중에 문서 번역에 대한 요청을 받게 됐다. 이런 저런 방법에 대한 고민을 해보다가 직접하는 것보단 통합으로 제공하는 곳이 없을까 찾아봤다. 그리고, GCP에서 제공하는 Document Translation API를 알게 됐다. Document Translation API는 Cloud Translation API 일부인데, 말 그대로 구글에서 제공하는 번역 API 에서 제공하는 세부 기능 중 하나다. API를 자유롭게 사용할 수 있으면 좋겠지만, 유료 결제를 등록한 계정만 사용할 수 있다. 카드 등록도 해야 쓸 수 있다. 일단은 무료 크레딧으로 사용해보기로 하고, 하나씩 시작해보자. 1. 서비스 계정 만들고 키 발급 받기 처음 시작은 indexing API와 크게 다르지않다...
작년 입사 후 얼마 지나지 않아서 로그 파이프라인을 구성했었다. 2023.05.28 - [개발/SPRING] - 스프링부트 서비스에 LOG 남기기 (with. Logback) 당시에는 요청에 대한 로그가 없어서 급하게 구축하게 됐는데, 지금 생각해보면 입사한지 한달도 되지 않은 개발자가 로그 파이프라인을 구성한다는 자체가 말이 좀 안되는 일이긴했다. 그래서 로그 파이프라인에 구멍이 조금씩 있었는데, 최근에 가장 큰 구멍을 알게되서 개선이 필요했다. 바로 Multipart/form-data 형식에서 MultipartFile에 대한 처리가 없어서, 어떤 파일이 업로드가 되었는지 알 수 없었다. 그런데, 현재 담당하고 있는 서비스가 파일 업로드를 지원하기 때문에 로그의 개선을 필요로 했다. 로그를 몇 번 개선..
이전 글에서 SEO 노출도를 올리기 위한 indexing API 작업을 했다. 그런데 문제가 있는게 indexing API는 하루에 200회의 제한이 있다. https://developers.google.com/search/apis/indexing-api/v3/quota-pricing?hl=ko 제한 횟수를 늘려달라고 요청할 수 있는데, 구글 친구들은 늘 그렇듯이 언제 해줄 수 있다고 알려주지 않는다. 그렇다고 한 개씩 등록하면(요청하면) HTTP 연결풀을 순간적으로 많이 잡아먹으니까 한번에 보낼 수 있는 방법을 만들어 뒀다. 일괄 색인 생성 요청 보내기라는 섹션을 만들어 둘 정도로 써달라고 만들어뒀는데... 이게 일단 예시를 바로 가져다 쓸 수 있게 생기질 않았다. https://googleapis.g..
- Total
- Today
- Yesterday
- Kotlin
- chat GPT
- AWS EC2
- elasticsearch
- Log
- ChatGPT
- Elastic cloud
- springboot
- EKS
- MySQL
- OpenFeign
- docker
- CloudFront
- cache
- 람다
- AWS
- OpenAI
- S3
- 스프링부트
- GIT
- openAI API
- serverless
- 인프런
- Spring
- JWT
- AOP
- terraform
- lambda
- awskrug
- java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |